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:
Scott Idem
2025-11-17 21:24:57 -05:00
parent 5c67421d7e
commit 4f262149cd
53 changed files with 190 additions and 4076 deletions

View 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>

View 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>

View File

@@ -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 youd probably expect from a text editor. But wait until you see the lists:
// </p>
// <ul>
// <li>
// Thats a bullet list with one …
// </li>
// <li>
// … or two list items.
// </li>
// </ul>
// <p>
// Isnt that great? And all of that is editable. But wait, theres more. Lets try a code block:
// </p>
// <pre><code class="language-css">body {
// display: none;
// }</code></pre>
// <p>
// I know, I know, this is impressive. Its only the tip of the iceberg though. Give it a try and click a little bit around. Dont forget to check the other examples too.
// </p>
// <blockquote>
// Wow, thats 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>