FEAT: Replace Tiptap editor with CodeMirror
Replaced the Tiptap-based rich text editor with CodeMirror for basic markdown formatting. - Removed directory. - Removed all and dependencies from . - Renamed to . - Updated to use and removed Tiptap-specific logic. - Updated all Svelte components that were importing the old Tiptap wrapper to import the new CodeMirror wrapper and removed unsupported props (, , , ). - Ran up to date, audited 492 packages in 1s 92 packages are looking for funding run `npm fund` for details 8 low severity vulnerabilities To address issues that do not require attention, run: npm audit fix To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. and > osit-aether-app-svelte@3.9.6 format > prettier --write . .eslintrc.cjs 18ms (unchanged) .prettierrc 4ms (unchanged) .vscode/settings.json 2ms (unchanged) ae_app_svelte_tailwind_skeleton.code-workspace 1ms (unchanged) ARCHITECTURE.md 22ms (unchanged) components.json 1ms (unchanged) COMPONENTS.md 9ms (unchanged) DATA_STRUCTURES.md 7ms (unchanged) eslint.config.js 4ms (unchanged) GEMINI.md 5ms (unchanged) jsconfig.json 1ms (unchanged) NAMING_CONVENTIONS.md 8ms (unchanged) OLD_README_guidelines_ui_ux.md 6ms (unchanged) OLD_README_guidelines_v1.md 8ms (unchanged) OLD_README_guidelines_v2.md 26ms (unchanged) package.json 1ms (unchanged) playwright.config.ts 3ms (unchanged) README.md 6ms (unchanged) src/ae-c-idaa-light.css 14ms (unchanged) src/ae-c-lci.css 9ms (unchanged) src/ae-osit-default.css 9ms (unchanged) src/aeclci_v1.css 7ms (unchanged) src/app.css 16ms (unchanged) src/app.d.ts 1ms (unchanged) src/app.html 11ms (unchanged) src/index.test.ts 1ms (unchanged) src/lib/ae_api/api_delete_object.ts 10ms (unchanged) src/lib/ae_api/api_get__crud_obj_id.ts 9ms (unchanged) src/lib/ae_api/api_get__crud_obj_li_v1.ts 7ms (unchanged) src/lib/ae_api/api_get__crud_obj_li_v2.ts 6ms (unchanged) src/lib/ae_api/api_get_object_v1.ts 19ms (unchanged) src/lib/ae_api/api_get_object.ts 9ms (unchanged) src/lib/ae_api/api_patch_object.ts 5ms (unchanged) src/lib/ae_api/api_post_object.ts 10ms (unchanged) src/lib/ae_archives/ae_archives__archive_content.ts 12ms (unchanged) src/lib/ae_archives/ae_archives__archive.ts 14ms (unchanged) src/lib/ae_archives/ae_archives_functions.ts 1ms (unchanged) src/lib/ae_archives/db_archives.ts 4ms (unchanged) src/lib/ae_archives/README.md 2ms (unchanged) src/lib/ae_core/ae_comp__hosted_files_clip_video_li.svelte 33ms (unchanged) src/lib/ae_core/ae_comp__hosted_files_clip_video_v1.svelte 25ms (unchanged) src/lib/ae_core/ae_comp__hosted_files_clip_video.svelte 21ms (unchanged) src/lib/ae_core/ae_comp__hosted_files_download_button.svelte 10ms (unchanged) src/lib/ae_core/ae_comp__hosted_files_upload.svelte 13ms (unchanged) src/lib/ae_core/ae_core_functions.ts 10ms (unchanged) src/lib/ae_core/core__account.ts 1ms (unchanged) src/lib/ae_core/core__activity_log.ts 7ms (unchanged) src/lib/ae_core/core__api_helpers.ts 2ms (unchanged) src/lib/ae_core/core__check_hosted_file_obj_w_hash.ts 1ms (unchanged) src/lib/ae_core/core__countries.ts 2ms (unchanged) src/lib/ae_core/core__country_subdivisions.ts 2ms (unchanged) src/lib/ae_core/core__crud_generic.ts 6ms (unchanged) src/lib/ae_core/core__data_store.ts 2ms (unchanged) src/lib/ae_core/core__hosted_files.ts 6ms (unchanged) src/lib/ae_core/core__idb_dexie.ts 4ms (unchanged) src/lib/ae_core/core__person.ts 16ms (unchanged) src/lib/ae_core/core__qr_code.ts 6ms (unchanged) src/lib/ae_core/core__site_domain.ts 2ms (unchanged) src/lib/ae_core/core__site.ts 1ms (unchanged) src/lib/ae_core/core__time_zones.ts 2ms (unchanged) src/lib/ae_core/core__user.ts 6ms (unchanged) src/lib/ae_core/db_core.ts 3ms (unchanged) src/lib/ae_events_functions.ts 2ms (unchanged) src/lib/ae_events/ae_events__event_badge_template.ts 9ms (unchanged) src/lib/ae_events/ae_events__event_badge.ts 13ms (unchanged) src/lib/ae_events/ae_events__event_device.ts 16ms (unchanged) src/lib/ae_events/ae_events__event_file.ts 14ms (unchanged) src/lib/ae_events/ae_events__event_location.ts 12ms (unchanged) src/lib/ae_events/ae_events__event_presentation.ts 10ms (unchanged) src/lib/ae_events/ae_events__event_presenter.ts 11ms (unchanged) src/lib/ae_events/ae_events__event_session.ts 18ms (unchanged) src/lib/ae_events/ae_events__event.ts 17ms (unchanged) src/lib/ae_events/ae_events__exhibit.ts 10ms (unchanged) src/lib/ae_events/db_events.ts 10ms (unchanged) src/lib/ae_journals/ae_journals__journal_entry.ts 13ms (unchanged) src/lib/ae_journals/ae_journals__journal.ts 15ms (unchanged) src/lib/ae_journals/ae_journals_functions.ts 1ms (unchanged) src/lib/ae_journals/ae_journals_stores.ts 3ms (unchanged) src/lib/ae_journals/db_journals.ts 6ms (unchanged) src/lib/ae_posts/ae_posts__post_comment.ts 8ms (unchanged) src/lib/ae_posts/ae_posts__post.ts 12ms (unchanged) src/lib/ae_posts/ae_posts_functions.ts 1ms (unchanged) src/lib/ae_posts/db_posts.ts 2ms (unchanged) src/lib/ae_posts/README.md 2ms (unchanged) src/lib/ae_sponsorships/ae_sponsorships_functions.ts 7ms (unchanged) src/lib/ae_sponsorships/db_sponsorships.ts 2ms (unchanged) src/lib/ae_sponsorships/README.md 2ms (unchanged) src/lib/ae_utils/ae_utils__crypto.ts 5ms (unchanged) src/lib/ae_utils/ae_utils__datetime_format.ts 3ms (unchanged) src/lib/ae_utils/ae_utils__extract_prefixed_form_data.ts 3ms (unchanged) src/lib/ae_utils/ae_utils__file_extension_icon.ts 1ms (unchanged) src/lib/ae_utils/ae_utils__files.ts 2ms (unchanged) src/lib/ae_utils/ae_utils__get_obj_li_w_match_prop.ts 1ms (unchanged) src/lib/ae_utils/ae_utils__is_datetime_recent.ts 1ms (unchanged) src/lib/ae_utils/ae_utils__perm_checks.ts 3ms (unchanged) src/lib/ae_utils/ae_utils__process_data_string.ts 2ms (unchanged) src/lib/ae_utils/ae_utils__return_obj_type_path.ts 2ms (unchanged) src/lib/ae_utils/ae_utils__set_obj_prop_display_name.ts 2ms (unchanged) src/lib/ae_utils/ae_utils__to_title_case.ts 2ms (unchanged) src/lib/ae_utils/ae_utils.ts 5ms (unchanged) src/lib/api/api.ts 14ms (unchanged) src/lib/app_components/analytics.svelte 3ms (unchanged) src/lib/app_components/e_app_access_type.svelte 26ms (unchanged) src/lib/app_components/e_app_cfg.svelte 12ms (unchanged) src/lib/app_components/e_app_clipboard.svelte 6ms (unchanged) src/lib/app_components/e_app_codemirror_v5.svelte 8ms (unchanged) src/lib/app_components/e_app_debug_menu.svelte 7ms (unchanged) src/lib/app_components/e_app_help_tech.svelte 26ms (unchanged) src/lib/app_components/e_app_sign_in_out.svelte 32ms (unchanged) src/lib/app_components/e_app_sys_menu.svelte 25ms (unchanged) src/lib/app_components/e_app_theme.svelte 9ms (unchanged) src/lib/components/ui/button/button.svelte 6ms (unchanged) src/lib/components/ui/button/index.js 1ms (unchanged) src/lib/components/ui/button/index.ts 1ms (unchanged) src/lib/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte 5ms (unchanged) src/lib/components/ui/dropdown-menu/dropdown-menu-content.svelte 2ms (unchanged) src/lib/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte 2ms (unchanged) src/lib/components/ui/dropdown-menu/dropdown-menu-item.svelte 2ms (unchanged) src/lib/components/ui/dropdown-menu/dropdown-menu-label.svelte 2ms (unchanged) src/lib/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte 3ms (unchanged) src/lib/components/ui/dropdown-menu/dropdown-menu-separator.svelte 2ms (unchanged) src/lib/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte 2ms (unchanged) src/lib/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte 2ms (unchanged) src/lib/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte 2ms (unchanged) src/lib/components/ui/dropdown-menu/index.js 1ms (unchanged) src/lib/components/ui/dropdown-menu/index.ts 1ms (unchanged) src/lib/components/ui/input/index.js 0ms (unchanged) src/lib/components/ui/input/index.ts 0ms (unchanged) src/lib/components/ui/input/input.svelte 2ms (unchanged) src/lib/components/ui/popover/index.js 0ms (unchanged) src/lib/components/ui/popover/index.ts 1ms (unchanged) src/lib/components/ui/popover/popover-content.svelte 2ms (unchanged) src/lib/components/ui/separator/index.js 0ms (unchanged) src/lib/components/ui/separator/index.ts 1ms (unchanged) src/lib/components/ui/separator/separator.svelte 2ms (unchanged) src/lib/components/ui/tooltip/index.js 0ms (unchanged) src/lib/components/ui/tooltip/index.ts 1ms (unchanged) src/lib/components/ui/tooltip/tooltip-content.svelte 2ms (unchanged) src/lib/electron/electron_native.js 33ms (unchanged) src/lib/electron/electron_relay.js 6ms (unchanged) src/lib/electron/README.md 4ms (unchanged) src/lib/element_qr_scanner_v2.svelte 15ms (unchanged) src/lib/elements/element_ae_crud_v2.svelte 22ms (unchanged) src/lib/elements/element_ae_crud.svelte 20ms (unchanged) src/lib/elements/element_codemirror_editor.svelte 4ms (unchanged) src/lib/elements/element_codemirror_wrapper.svelte 1ms (unchanged) src/lib/elements/element_data_store_v2.svelte 38ms (unchanged) src/lib/elements/element_data_store.svelte 29ms (unchanged) src/lib/elements/element_input_file.svelte 13ms (unchanged) src/lib/elements/element_input_files_tbl.svelte 13ms (unchanged) src/lib/elements/element_input_v2.svelte 59ms (unchanged) src/lib/elements/element_manage_event_file_li_all.svelte 2ms (unchanged) src/lib/elements/element_manage_event_file_li_direct.svelte 2ms (unchanged) src/lib/elements/element_manage_event_file_li.svelte 45ms (unchanged) src/lib/elements/element_manage_hosted_file_li_all.svelte 8ms (unchanged) src/lib/elements/element_manage_hosted_file_li.svelte 15ms (unchanged) src/lib/elements/element_obj_tbl_row.svelte 11ms (unchanged) src/lib/elements/element_sql_qry.svelte 6ms (unchanged) src/lib/elements/element_tiptap_editor.scss 2ms (unchanged) src/lib/elements/element_websocket_v2.svelte 16ms (unchanged) src/lib/stores/ae_events_stores.ts 6ms (unchanged) src/lib/stores/ae_idaa_stores.ts 2ms (unchanged) src/lib/stores/ae_stores.ts 6ms (unchanged) src/lib/utils/ae_string_snippets.ts 1ms (unchanged) src/lib/utils/index.ts 0ms (unchanged) src/lib/utils/utils.ts 1ms (unchanged) src/parent_iframe.html 5ms (unchanged) src/routes/+layout.svelte 31ms (unchanged) src/routes/+layout.ts 5ms (unchanged) src/routes/+page.svelte 7ms (unchanged) src/routes/admin/+layout.svelte 6ms (unchanged) src/routes/admin/+page.svelte 8ms (unchanged) src/routes/core/+layout.svelte 3ms (unchanged) src/routes/core/+page.svelte 15ms (unchanged) src/routes/core/+page.ts 0ms (unchanged) src/routes/core/ae_comp__person_obj_tbl.svelte 9ms (unchanged) src/routes/core/not_used+layout.ts 1ms (unchanged) src/routes/core/person_view.svelte 55ms (unchanged) src/routes/core/person/[person_id]/+page.svelte 13ms (unchanged) src/routes/core/person/[person_id]/+page.ts 2ms (unchanged) src/routes/core/README.md 2ms (unchanged) src/routes/events_badges/+layout.svelte 7ms (unchanged) src/routes/events_badges/+layout.ts 1ms (unchanged) src/routes/events_badges/+page.svelte 2ms (unchanged) src/routes/events_badges/+page.ts 0ms (unchanged) src/routes/events_badges/README.md 3ms (unchanged) src/routes/events_badges/review/+layout.ts 1ms (unchanged) src/routes/events_badges/review/+page.svelte 35ms (unchanged) src/routes/events_badges/stats/+layout.ts 1ms (unchanged) src/routes/events_badges/stats/+page.svelte 33ms (unchanged) src/routes/events_leads/+layout.svelte 2ms (unchanged) src/routes/events_leads/+layout.ts 1ms (unchanged) src/routes/events_leads/+page.svelte 8ms (unchanged) src/routes/events_leads/+page.ts 1ms (unchanged) src/routes/events_leads/exhibit/[slug]/+page.svelte 36ms (unchanged) src/routes/events_leads/exhibit/[slug]/+page.ts 2ms (unchanged) src/routes/events_leads/exhibit/[slug]/leads_add_scan.svelte 37ms (unchanged) src/routes/events_leads/exhibit/[slug]/leads_list.svelte 25ms (unchanged) src/routes/events_leads/exhibit/[slug]/leads_manage.svelte 40ms (unchanged) src/routes/events_leads/exhibit/[slug]/leads_payment.svelte 10ms (unchanged) src/routes/events_leads/exhibit/[slug]/leads_view_lead.svelte 42ms (unchanged) src/routes/events_leads/README.md 4ms (unchanged) src/routes/events/[event_id]/(badges)/badges/[badge_id]/+page.svelte 5ms (unchanged) src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_obj_view.svelte 41ms (unchanged) src/routes/events/[event_id]/(badges)/badges/+layout.svelte 3ms (unchanged) src/routes/events/[event_id]/(badges)/badges/+page.svelte 5ms (unchanged) src/routes/events/[event_id]/(badges)/badges/ae_comp__badge_obj_li.svelte 9ms (unchanged) src/routes/events/[event_id]/(badges)/badges/ae_comp__badge_search.svelte 15ms (unchanged) src/routes/events/[event_id]/(launcher)/launcher_cfg.svelte 26ms (unchanged) src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte 32ms (unchanged) src/routes/events/[event_id]/(launcher)/launcher_menu.svelte 12ms (unchanged) src/routes/events/[event_id]/(launcher)/launcher_presenter_view_posters.svelte 6ms (unchanged) src/routes/events/[event_id]/(launcher)/launcher_presenter_view.svelte 6ms (unchanged) src/routes/events/[event_id]/(launcher)/launcher_session_view.svelte 17ms (unchanged) src/routes/events/[event_id]/(launcher)/launcher/[event_location_id]/+page.svelte 4ms (unchanged) src/routes/events/[event_id]/(launcher)/launcher/[event_location_id]/+page.ts 2ms (unchanged) src/routes/events/[event_id]/(launcher)/launcher/+layout.svelte 45ms (unchanged) src/routes/events/[event_id]/(launcher)/launcher/+layout.ts 2ms (unchanged) src/routes/events/[event_id]/(launcher)/launcher/+page.svelte 0ms (unchanged) src/routes/events/[event_id]/(launcher)/launcher/+page.ts 0ms (unchanged) src/routes/events/[event_id]/(launcher)/menu_location_list.svelte 6ms (unchanged) src/routes/events/[event_id]/(launcher)/menu_session_list.svelte 10ms (unchanged) src/routes/events/[event_id]/+layout.svelte 2ms (unchanged) src/routes/events/[event_id]/+layout.ts 1ms (unchanged) src/routes/events/[event_id]/+page.svelte 20ms (unchanged) src/routes/events/[event_id]/+page.ts 1ms (unchanged) src/routes/events/[event_id]/device/ae_comp__event_device_obj_li_wrapper.svelte 2ms (unchanged) src/routes/events/[event_id]/device/ae_comp__event_device_obj_li.svelte 28ms (unchanged) src/routes/events/[event_id]/event_page_menu.svelte 37ms (unchanged) src/routes/events/[event_id]/location/[event_location_id]/+page.svelte 11ms (unchanged) src/routes/events/[event_id]/location/[event_location_id]/+page.ts 2ms (unchanged) src/routes/events/[event_id]/location/[event_location_id]/location_page_menu.svelte 26ms (unchanged) src/routes/events/[event_id]/location/[event_location_id]/location_view.svelte 27ms (unchanged) src/routes/events/[event_id]/locations/+page.svelte 5ms (unchanged) src/routes/events/[event_id]/locations/ae_comp__event_location_obj_li.svelte 18ms (unchanged) src/routes/events/[event_id]/locations/locations_page_menu.svelte 11ms (unchanged) src/routes/events/[event_id]/presenter/[presenter_id]/+page.svelte 17ms (unchanged) src/routes/events/[event_id]/presenter/[presenter_id]/+page.ts 1ms (unchanged) src/routes/events/[event_id]/presenter/[presenter_id]/ae_comp__event_presenter_form_agree.svelte 13ms (unchanged) src/routes/events/[event_id]/presenter/[presenter_id]/presenter_page_menu.svelte 30ms (unchanged) src/routes/events/[event_id]/presenter/[presenter_id]/presenter_view.svelte 108ms (unchanged) src/routes/events/[event_id]/presenter/ae_comp__event_presenter_obj_li_wrapper.svelte 3ms (unchanged) src/routes/events/[event_id]/presenter/ae_comp__event_presenter_obj_li.svelte 22ms (unchanged) src/routes/events/[event_id]/presenter/ae_comp__event_presenter_obj_tbl_wrapper.svelte 4ms (unchanged) src/routes/events/[event_id]/presenter/ae_comp__event_presenter_obj_tbl.svelte 15ms (unchanged) src/routes/events/[event_id]/reports/+page.svelte 66ms (unchanged) src/routes/events/[event_id]/reports/event_reports_page_menu.svelte 16ms (unchanged) src/routes/events/[event_id]/reports/reports_files.svelte 14ms (unchanged) src/routes/events/[event_id]/reports/reports_presenters.svelte 9ms (unchanged) src/routes/events/[event_id]/reports/reports_sessions.svelte 10ms (unchanged) src/routes/events/[event_id]/session/[session_id]/+page.svelte 16ms (unchanged) src/routes/events/[event_id]/session/[session_id]/+page.ts 2ms (unchanged) src/routes/events/[event_id]/session/[session_id]/ae_comp__event_session_poc_form_agree.svelte 17ms (unchanged) src/routes/events/[event_id]/session/[session_id]/ae_comp__event_session_poc_profile.svelte 9ms (unchanged) src/routes/events/[event_id]/session/[session_id]/session_page_menu.svelte 30ms (unchanged) src/routes/events/[event_id]/session/[session_id]/session_view.svelte 59ms (unchanged) src/routes/events/[event_id]/session/ae_comp__event_session_alert.svelte 9ms (unchanged) src/routes/events/[event_id]/sign_in_out.svelte 7ms (unchanged) src/routes/events/+layout.svelte 11ms (unchanged) src/routes/events/+layout.ts 1ms (unchanged) src/routes/events/+page.svelte 7ms (unchanged) src/routes/events/+page.ts 1ms (unchanged) src/routes/events/ae_comp__event_file_obj_tbl_wrapper.svelte 3ms (unchanged) src/routes/events/ae_comp__event_file_obj_tbl.svelte 31ms (unchanged) src/routes/events/ae_comp__event_files_upload.svelte 10ms (unchanged) src/routes/events/ae_comp__event_presentation_obj_li.svelte 27ms (unchanged) src/routes/events/ae_comp__event_session_obj_li_wrapper.svelte 2ms (unchanged) src/routes/events/ae_comp__event_session_obj_li.svelte 31ms (unchanged) src/routes/events/ae_comp__event_session_obj_tbl_wrapper.svelte 3ms (unchanged) src/routes/events/ae_comp__event_session_obj_tbl.svelte 5ms (unchanged) src/routes/events/ae_comp__events_menu_nav.svelte 5ms (unchanged) src/routes/events/ae_comp__events_menu_opts.svelte 25ms (unchanged) src/routes/events/README.md 3ms (unchanged) src/routes/hosted_files/+layout.svelte 2ms (unchanged) src/routes/hosted_files/+layout.ts 1ms (unchanged) src/routes/hosted_files/+page.svelte 3ms (unchanged) src/routes/hosted_files/video_util/+page.svelte 8ms (unchanged) src/routes/hosted_files/video_util/hold_video_util.svelte 7ms (unchanged) src/routes/idaa/(idaa)/+layout.svelte 6ms (unchanged) src/routes/idaa/(idaa)/archives/[archive_id]/+page.svelte 12ms (unchanged) src/routes/idaa/(idaa)/archives/[archive_id]/+page.ts 2ms (unchanged) src/routes/idaa/(idaa)/archives/[archive_id]/ae_idaa_comp__archive_content_obj_id_edit.svelte 32ms (unchanged) src/routes/idaa/(idaa)/archives/[archive_id]/ae_idaa_comp__archive_content_obj_li.svelte 15ms (unchanged) src/routes/idaa/(idaa)/archives/[archive_id]/ae_idaa_comp__archive_obj_id_edit.svelte 19ms (unchanged) src/routes/idaa/(idaa)/archives/[archive_id]/ae_idaa_comp__archive_obj_id_view.svelte 10ms (unchanged) src/routes/idaa/(idaa)/archives/[archive_id]/ae_idaa_comp__modal_media_player.svelte 4ms (unchanged) src/routes/idaa/(idaa)/archives/[archive_id]/not_used+layout.ts 0ms (unchanged) src/routes/idaa/(idaa)/archives/+layout.svelte 1ms (unchanged) src/routes/idaa/(idaa)/archives/+layout.ts 1ms (unchanged) src/routes/idaa/(idaa)/archives/+page.svelte 5ms (unchanged) src/routes/idaa/(idaa)/archives/ae_idaa_comp__archive_obj_li.svelte 5ms (unchanged) src/routes/idaa/(idaa)/archives/ae_idaa_comp__media_player.svelte 6ms (unchanged) src/routes/idaa/(idaa)/bb/[post_id]/+page.svelte 7ms (unchanged) src/routes/idaa/(idaa)/bb/[post_id]/+page.ts 1ms (unchanged) src/routes/idaa/(idaa)/bb/+layout.svelte 2ms (unchanged) src/routes/idaa/(idaa)/bb/+layout.ts 1ms (unchanged) src/routes/idaa/(idaa)/bb/+page.svelte 7ms (unchanged) src/routes/idaa/(idaa)/bb/+page.ts 2ms (unchanged) src/routes/idaa/(idaa)/bb/ae_idaa_comp__post_comment_obj_id_edit.svelte 26ms (unchanged) src/routes/idaa/(idaa)/bb/ae_idaa_comp__post_obj_id_edit.svelte 38ms (unchanged) src/routes/idaa/(idaa)/bb/ae_idaa_comp__post_obj_id_view.svelte 17ms (unchanged) src/routes/idaa/(idaa)/bb/ae_idaa_comp__post_obj_li.svelte 9ms (unchanged) src/routes/idaa/(idaa)/bb/ae_idaa_comp__post_options.svelte 8ms (unchanged) src/routes/idaa/(idaa)/hold_+page.svelte 0ms (unchanged) src/routes/idaa/(idaa)/hold_app.pcss 7ms (unchanged) src/routes/idaa/(idaa)/recovery_meetings/[event_id]/+page.svelte 8ms (unchanged) src/routes/idaa/(idaa)/recovery_meetings/[event_id]/+page.ts 1ms (unchanged) src/routes/idaa/(idaa)/recovery_meetings/+layout.svelte 2ms (unchanged) src/routes/idaa/(idaa)/recovery_meetings/+layout.ts 1ms (unchanged) src/routes/idaa/(idaa)/recovery_meetings/+page.svelte 9ms (unchanged) src/routes/idaa/(idaa)/recovery_meetings/ae_idaa_comp__event_obj_id_edit.svelte 80ms (unchanged) src/routes/idaa/(idaa)/recovery_meetings/ae_idaa_comp__event_obj_id_view.svelte 34ms (unchanged) src/routes/idaa/(idaa)/recovery_meetings/ae_idaa_comp__event_obj_li_wrapper.svelte 3ms (unchanged) src/routes/idaa/(idaa)/recovery_meetings/ae_idaa_comp__event_obj_li.svelte 24ms (unchanged) src/routes/idaa/(idaa)/recovery_meetings/ae_idaa_comp__event_obj_qry.svelte 27ms (unchanged) src/routes/idaa/(idaa)/recovery_meetings/not_used+page.ts 0ms (unchanged) src/routes/idaa/+layout.svelte 9ms (unchanged) src/routes/idaa/README.md 3ms (unchanged) src/routes/journals/[journal_id]/+layout.svelte 12ms (unchanged) src/routes/journals/[journal_id]/+layout.ts 2ms (unchanged) src/routes/journals/[journal_id]/+page.svelte 8ms (unchanged) src/routes/journals/[journal_id]/+page.ts 1ms (unchanged) src/routes/journals/[journal_id]/entry/[journal_entry_id]/+page.svelte 6ms (unchanged) src/routes/journals/[journal_id]/entry/[journal_entry_id]/+page.ts 1ms (unchanged) src/routes/journals/+layout.svelte 14ms (unchanged) src/routes/journals/+layout.ts 1ms (unchanged) src/routes/journals/+page.svelte 8ms (unchanged) src/routes/journals/+page.ts 1ms (unchanged) src/routes/journals/ae_comp__journal_entry_obj_file_li.svelte 12ms (unchanged) src/routes/journals/ae_comp__journal_entry_obj_id_view.svelte 102ms (unchanged) src/routes/journals/ae_comp__journal_entry_obj_li.svelte 34ms (unchanged) src/routes/journals/ae_comp__journal_entry_obj_qry.svelte 7ms (unchanged) src/routes/journals/ae_comp__journal_obj_id_edit.svelte 39ms (unchanged) src/routes/journals/ae_comp__journal_obj_id_view.svelte 9ms (unchanged) src/routes/journals/ae_comp__journal_obj_li.svelte 6ms (unchanged) src/routes/journals/ae_comp__obj_core_props.svelte 12ms (unchanged) src/routes/journals/modal_journals_config.svelte 12ms (unchanged) src/routes/journals/README.md 2ms (unchanged) src/routes/testing/+layout.ts 0ms (unchanged) src/routes/testing/+page.svelte 4ms (unchanged) static/idaa_novi_iframe_archives.html 4ms (unchanged) static/idaa_novi_iframe_bulletin_board.html 3ms (unchanged) static/idaa_novi_iframe_jitsi_meeting.html 3ms (unchanged) static/idaa_novi_iframe_recovery_meetings.html 3ms (unchanged) static/jitsi_iframe_api.html 4ms (unchanged) static/manifest.json 1ms (unchanged) SVELTE_DEXIE_GUIDE.md 8ms (unchanged) svelte.config.js 1ms (unchanged) test-results/.last-run.json 0ms (unchanged) tests/example.test.ts 1ms (unchanged) TODO.md 18ms (unchanged) tsconfig.json 1ms (unchanged) vite.config.ts 1ms (unchanged) vitest.config.ts 0ms (unchanged) to clean up dependencies and fix formatting.
This commit is contained in:
80
src/lib/elements/element_codemirror_editor.svelte
Normal file
80
src/lib/elements/element_codemirror_editor.svelte
Normal file
@@ -0,0 +1,80 @@
|
||||
<script lang="ts">
|
||||
import { Codemirror } from 'svelte-codemirror-editor';
|
||||
import { EditorView } from '@codemirror/view';
|
||||
import { EditorState } from '@codemirror/state';
|
||||
|
||||
export let content: string = '';
|
||||
export let placeholder: string = 'Start typing...';
|
||||
|
||||
let editor: EditorView;
|
||||
|
||||
const wrapSelection = (before: string, after: string = before) => {
|
||||
if (!editor) return;
|
||||
const state = editor.state;
|
||||
const changes = state.changeByRange((range) => {
|
||||
const isAlreadyWrapped =
|
||||
state.sliceDoc(range.from - before.length, range.from) === before &&
|
||||
state.sliceDoc(range.to, range.to + after.length) === after;
|
||||
|
||||
if (isAlreadyWrapped) {
|
||||
return {
|
||||
changes: [
|
||||
{ from: range.from - before.length, to: range.from, insert: '' },
|
||||
{ from: range.to, to: range.to + after.length, insert: '' }
|
||||
],
|
||||
range: EditorState.range(range.from - before.length, range.to - before.length)
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
changes: [
|
||||
{ from: range.from, insert: before },
|
||||
{ from: range.to, insert: after }
|
||||
],
|
||||
range: EditorState.range(range.from + before.length, range.to + before.length)
|
||||
};
|
||||
});
|
||||
editor.dispatch(changes);
|
||||
editor.focus();
|
||||
};
|
||||
|
||||
const insertList = () => {
|
||||
if (!editor) return;
|
||||
const state = editor.state;
|
||||
const changes = state.changeByRange((range) => {
|
||||
const line = state.doc.lineAt(range.from);
|
||||
return {
|
||||
changes: [{ from: line.from, insert: '- ' }],
|
||||
range: EditorState.range(range.from + 2, range.to + 2)
|
||||
};
|
||||
});
|
||||
editor.dispatch(changes);
|
||||
editor.focus();
|
||||
};
|
||||
</script>
|
||||
|
||||
<div class="codemirror-wrapper border rounded">
|
||||
<div class="toolbar p-1 bg-gray-100 border-b">
|
||||
<button on:click={() => wrapSelection('**')} class="px-2 py-1 rounded hover:bg-gray-200"
|
||||
><b>B</b></button
|
||||
>
|
||||
<button on:click={() => wrapSelection('*')} class="px-2 py-1 rounded hover:bg-gray-200"
|
||||
><i>I</i></button
|
||||
>
|
||||
<button on:click={insertList} class="px-2 py-1 rounded hover:bg-gray-200">List</button>
|
||||
</div>
|
||||
<Codemirror
|
||||
bind:value={content}
|
||||
bind:view={editor}
|
||||
{placeholder}
|
||||
styles={{
|
||||
'&': {
|
||||
height: '100%',
|
||||
minHeight: '150px'
|
||||
},
|
||||
'.cm-scroller': {
|
||||
overflow: 'auto'
|
||||
}
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
15
src/lib/elements/element_codemirror_wrapper.svelte
Normal file
15
src/lib/elements/element_codemirror_wrapper.svelte
Normal file
@@ -0,0 +1,15 @@
|
||||
<script lang="ts">
|
||||
import ElementCodemirrorEditor from './element_codemirror_editor.svelte';
|
||||
|
||||
export let html_text: string = '';
|
||||
export let placeholder: string = 'Type your text here...';
|
||||
export let classes: string = '';
|
||||
</script>
|
||||
|
||||
<div class="block w-full h-full {classes}">
|
||||
<ElementCodemirrorEditor
|
||||
class="p-1 transition-all duration-1000"
|
||||
bind:content={html_text}
|
||||
{placeholder}
|
||||
/>
|
||||
</div>
|
||||
@@ -1,155 +0,0 @@
|
||||
<script lang="ts">
|
||||
import { onMount, onDestroy } from 'svelte';
|
||||
// import { fade } from 'svelte/transition'
|
||||
// import { cubicOut } from 'svelte/easing';
|
||||
|
||||
import ShadEditor from '$lib/components/shad-editor/shad-editor.svelte';
|
||||
|
||||
// Import Tiptap related modules
|
||||
// import { Editor } from "@tiptap/core";
|
||||
// import StarterKit from "@tiptap/starter-kit";
|
||||
// import Bold from '@tiptap/extension-bold';
|
||||
// import BulletList from '@tiptap/extension-bullet-list';
|
||||
// import CodeBlock from '@tiptap/extension-code-block';
|
||||
// import Code from '@tiptap/extension-code';
|
||||
// import Color from '@tiptap/extension-color';
|
||||
// import Document from '@tiptap/extension-document';
|
||||
// import Heading from '@tiptap/extension-heading';
|
||||
// import Highlight from '@tiptap/extension-highlight';
|
||||
// import History from '@tiptap/extension-history';
|
||||
// import Italic from '@tiptap/extension-italic';
|
||||
// import Link from '@tiptap/extension-link';
|
||||
// import ListItem from '@tiptap/extension-list-item';
|
||||
// import OrderedList from '@tiptap/extension-ordered-list';
|
||||
// import Paragraph from '@tiptap/extension-paragraph';
|
||||
// import Strike from '@tiptap/extension-strike';
|
||||
// import Text from '@tiptap/extension-text';
|
||||
// import TextStyle from '@tiptap/extension-text-style';
|
||||
// import Typography from '@tiptap/extension-typography';
|
||||
// import Underline from '@tiptap/extension-underline';
|
||||
|
||||
import './element_tiptap_editor.scss';
|
||||
|
||||
// https://tiptap.dev/docs/examples/basics/default-text-editor
|
||||
// https://tiptap.dev/docs/examples/basics/formatting
|
||||
// <code class="language-css">
|
||||
|
||||
export let html_text: string = '';
|
||||
export let default_minimal: boolean = false;
|
||||
export let show_toolbar: boolean = true;
|
||||
export let placeholder: string = 'Type your text here...';
|
||||
export let changed: boolean = false;
|
||||
|
||||
export let classes: string = '';
|
||||
|
||||
if (default_minimal) {
|
||||
show_toolbar = false;
|
||||
}
|
||||
|
||||
// export let html_text: string = `
|
||||
// <h2>
|
||||
// Hi there,
|
||||
// </h2>
|
||||
// <p>
|
||||
// this is a <em>basic</em> example of <strong>Tiptap</strong>. Sure, there are all kind of basic text styles you’d probably expect from a text editor. But wait until you see the lists:
|
||||
// </p>
|
||||
// <ul>
|
||||
// <li>
|
||||
// That’s a bullet list with one …
|
||||
// </li>
|
||||
// <li>
|
||||
// … or two list items.
|
||||
// </li>
|
||||
// </ul>
|
||||
// <p>
|
||||
// Isn’t that great? And all of that is editable. But wait, there’s more. Let’s try a code block:
|
||||
// </p>
|
||||
// <pre><code class="language-css">body {
|
||||
// display: none;
|
||||
// }</code></pre>
|
||||
// <p>
|
||||
// I know, I know, this is impressive. It’s only the tip of the iceberg though. Give it a try and click a little bit around. Don’t forget to check the other examples too.
|
||||
// </p>
|
||||
// <blockquote>
|
||||
// Wow, that’s amazing. Good work, boy! 👏
|
||||
// <br />
|
||||
// — Mom
|
||||
// </blockquote>
|
||||
// `;
|
||||
|
||||
let element: HTMLDivElement;
|
||||
let editor: any;
|
||||
// More default options should be defined later.
|
||||
// minimal, basic, full
|
||||
|
||||
export let show_button_kv: any;
|
||||
|
||||
// export let new_json = editor?.getJSON();
|
||||
export let new_html: string = '';
|
||||
let orig_html: string = html_text;
|
||||
|
||||
onMount(() => {});
|
||||
|
||||
onDestroy(() => {});
|
||||
|
||||
$: if (html_text !== orig_html && html_text !== '<p></p>') {
|
||||
console.log('html_text changed:', html_text);
|
||||
console.log('orig_html:', orig_html);
|
||||
changed = true;
|
||||
} else {
|
||||
changed = false;
|
||||
}
|
||||
|
||||
let mouse_entered_timer: any;
|
||||
let mouse_enter_wait: number = 500;
|
||||
let mouse_leave_wait: number = 2000;
|
||||
</script>
|
||||
|
||||
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
||||
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
||||
<div
|
||||
on:click={() => {
|
||||
if (default_minimal) {
|
||||
show_toolbar = true;
|
||||
}
|
||||
}}
|
||||
on:mouseleave={() => {
|
||||
clearTimeout(mouse_entered_timer);
|
||||
|
||||
mouse_entered_timer = setTimeout(() => {
|
||||
if (default_minimal) {
|
||||
show_toolbar = false;
|
||||
}
|
||||
}, mouse_leave_wait);
|
||||
}}
|
||||
on:mouseenter={() => {
|
||||
clearTimeout(mouse_entered_timer);
|
||||
|
||||
mouse_entered_timer = setTimeout(() => {
|
||||
if (default_minimal) {
|
||||
show_toolbar = true;
|
||||
}
|
||||
}, mouse_enter_wait);
|
||||
}}
|
||||
class="block w-full h-full {classes}"
|
||||
>
|
||||
<ShadEditor
|
||||
class="p-1 transition-all duration-1000"
|
||||
bind:content={html_text}
|
||||
bind:new_html
|
||||
{placeholder}
|
||||
{show_toolbar}
|
||||
{show_button_kv}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<style lang="css">
|
||||
/*
|
||||
// :global(.ProseMirror) {
|
||||
// padding: .25em;
|
||||
// }
|
||||
*/
|
||||
:global(.ProseMirror-focused) {
|
||||
outline: none;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user