@hiai-gg/docsmint 0.3.7 → 0.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/backend/src/lib/logger.ts +45 -15
  2. package/dist/backend/index.js +238 -150
  3. package/dist/frontend/CategoryDialog-DphkZqIB.js +611 -0
  4. package/dist/frontend/ConfirmDialog-BLF3x_hr.js +214 -0
  5. package/dist/frontend/CreateSnapshotDialog-D5vPvFTL.js +216 -0
  6. package/dist/frontend/DatePicker-CLNTdvTk.js +259 -0
  7. package/dist/frontend/DeleteDialog-DxYFJivN.js +174 -0
  8. package/dist/frontend/FolderDialog-CRVZM2Oi.js +250 -0
  9. package/dist/frontend/FolderNode-C2zG7uii.js +298 -0
  10. package/dist/frontend/FolderTreeSelector-CyB8y2Sm.js +103 -0
  11. package/dist/frontend/Icon-CooFj4Ee.js +64 -0
  12. package/dist/frontend/SettingsDialog-DCM4-N6_.js +1016 -0
  13. package/dist/frontend/ShareDialog-DYu3RKQu.js +165 -0
  14. package/dist/frontend/TagCreateDialog-DXQs2bL9.js +260 -0
  15. package/dist/frontend/camera-iKXDOOWT.js +29 -0
  16. package/dist/frontend/check-D-UuvBuh.js +25 -0
  17. package/dist/frontend/chevron-down-CiPtYyFh.js +25 -0
  18. package/dist/frontend/circle-check-tSPE1V6t.js +29 -0
  19. package/dist/frontend/clock-DJHbHZb8.js +29 -0
  20. package/dist/frontend/{bundle-mjs-CP6Owz-8.js → clsx-C7bIvsDS.js} +16 -1
  21. package/dist/frontend/components/category-dialog.js +1 -1
  22. package/dist/frontend/components/create-snapshot-dialog.js +1 -1
  23. package/dist/frontend/components/delete-dialog.js +1 -1
  24. package/dist/frontend/components/editor/document-editor.js +1364 -1353
  25. package/dist/frontend/components/editor/document-title.js +25 -25
  26. package/dist/frontend/components/editor/markdown-toggle.js +45 -45
  27. package/dist/frontend/components/folder-node.js +1 -1
  28. package/dist/frontend/components/folder-tree-selector.js +1 -1
  29. package/dist/frontend/components/save-as-dialog.js +169 -151
  30. package/dist/frontend/components/settings.js +1 -1
  31. package/dist/frontend/components/share-dialog.js +1 -1
  32. package/dist/frontend/components/sidebar.js +1161 -1153
  33. package/dist/frontend/components/tag-create-dialog.js +1 -1
  34. package/dist/frontend/components/version-history.js +188 -187
  35. package/dist/frontend/copy-GppwRMjX.js +32 -0
  36. package/dist/frontend/dashboard.js +1188 -1156
  37. package/dist/frontend/dialog-D6NxYVmy.js +213 -0
  38. package/dist/frontend/doc-tabs.js +2 -2
  39. package/dist/frontend/ellipsis-vertical-P9MHvCps.js +530 -0
  40. package/dist/frontend/extension.js +8 -8
  41. package/dist/frontend/{floating-layer-anchor-C51M4l6v.js → floating-layer-anchor-CPwucTfd.js} +1414 -1412
  42. package/dist/frontend/folder-DeWhnD7O.js +45 -0
  43. package/dist/frontend/folder-refresh.js +1 -1
  44. package/dist/frontend/input-B5Rak-5G.js +23 -0
  45. package/dist/frontend/keyboard.js +1 -1
  46. package/dist/frontend/{keyboard.svelte-D7H8DihC.js → keyboard.svelte-CApmX0vl.js} +53 -53
  47. package/dist/frontend/label-CW9rxoAb.js +30 -0
  48. package/dist/frontend/{loader-circle-Bk-WFz9g.js → loader-circle-BA6aLO71.js} +86 -85
  49. package/dist/frontend/rotate-ccw-B4Q7brmV.js +25 -0
  50. package/dist/frontend/search.js +680 -654
  51. package/dist/frontend/select-value-sF86Geyh.js +1446 -0
  52. package/dist/frontend/shared-document.js +94 -94
  53. package/dist/frontend/subfolders-refresh-store.svelte-B2dKVmgz.js +65 -0
  54. package/dist/frontend/tag-HxRazVN_.js +54 -0
  55. package/dist/frontend/tag-store.svelte-CqrUXo0o.js +29 -0
  56. package/dist/frontend/textarea-i1720bE7.js +23 -0
  57. package/dist/frontend/theme.js +1 -1
  58. package/dist/frontend/theme.svelte-DKfCy12k.js +49 -0
  59. package/dist/frontend/{utils-C0OW2678.js → utils-CffiyuTo.js} +2 -3
  60. package/dist/frontend/{utils-D8kmM3ub.js → utils-hzdMVeCv.js} +2 -3
  61. package/dist/frontend/utils.js +1 -1
  62. package/dist/frontend/x-CzBsnJ2x.js +25 -0
  63. package/dist/frontend-ssr/api/attachments.js +2 -0
  64. package/dist/frontend-ssr/api/categories.js +2 -0
  65. package/dist/frontend-ssr/api/documents.js +2 -0
  66. package/dist/frontend-ssr/api/folders.js +2 -0
  67. package/dist/frontend-ssr/api/settings.js +2 -0
  68. package/dist/frontend-ssr/api/share.js +2 -0
  69. package/dist/frontend-ssr/api/tags.js +2 -0
  70. package/dist/frontend-ssr/assets/CategoryDialog-C2xaZKHq.js +584 -0
  71. package/dist/frontend-ssr/assets/ConfirmDialog-DjMFKc0V.js +420 -0
  72. package/dist/frontend-ssr/assets/CreateSnapshotDialog-BRw1xJW1.js +214 -0
  73. package/dist/frontend-ssr/assets/DatePicker-DnXniwlZ.js +312 -0
  74. package/dist/frontend-ssr/assets/DeleteDialog-BCfZy3Zn.js +154 -0
  75. package/dist/frontend-ssr/assets/FolderDialog-Dq7I2cKZ.js +429 -0
  76. package/dist/frontend-ssr/assets/FolderNode-DRfBfpft.js +171 -0
  77. package/dist/frontend-ssr/assets/FolderTreeSelector-DZNZ2oI6.js +147 -0
  78. package/dist/frontend-ssr/assets/Icon-B0Zqppjo.js +231 -0
  79. package/dist/frontend-ssr/assets/SettingsDialog-CX8Noa8A.js +1107 -0
  80. package/dist/frontend-ssr/assets/ShareDialog-Cge49ZdJ.js +54 -0
  81. package/dist/frontend-ssr/assets/TagCreateDialog-EAChgBF-.js +264 -0
  82. package/dist/frontend-ssr/assets/api-keys-DFqX39MT.js +35 -0
  83. package/dist/frontend-ssr/assets/attachments-CWBxE3Vz.js +85 -0
  84. package/dist/frontend-ssr/assets/auth-client-x26kqY8Z.js +1286 -0
  85. package/dist/frontend-ssr/assets/camera-CdxscTw-.js +84 -0
  86. package/dist/frontend-ssr/assets/categories-AOqgcsn4.js +75 -0
  87. package/dist/frontend-ssr/assets/chevron-down-CSSNGNh_.js +80 -0
  88. package/dist/frontend-ssr/assets/chevron-right-B4p7Sk6X.js +80 -0
  89. package/dist/frontend-ssr/assets/circle-check-CI1v4vYh.js +84 -0
  90. package/dist/frontend-ssr/assets/client-DZMkDkDn.js +129 -0
  91. package/dist/frontend-ssr/assets/clipboard-CXOaoz2W.js +30 -0
  92. package/dist/frontend-ssr/assets/clock-IL-eX2di.js +84 -0
  93. package/dist/frontend-ssr/assets/context-jz1GGEUi.js +45 -0
  94. package/dist/frontend-ssr/assets/copy-CjV57nGQ.js +87 -0
  95. package/dist/frontend-ssr/assets/db-CnxeO66n.js +65 -0
  96. package/dist/frontend-ssr/assets/dialog-BOV1u6zP.js +157 -0
  97. package/dist/frontend-ssr/assets/dndzone-DMvTO_Jz.js +2114 -0
  98. package/dist/frontend-ssr/assets/document-drop-coordinator-CEaYACsC.js +109 -0
  99. package/dist/frontend-ssr/assets/documents-BnOTRdTY.js +108 -0
  100. package/dist/frontend-ssr/assets/editorExtensions-DUzwndMy.js +186 -0
  101. package/dist/frontend-ssr/assets/ellipsis-vertical-C-0hgkZn.js +555 -0
  102. package/dist/frontend-ssr/assets/floating-layer-anchor-uzw9K8qN.js +6114 -0
  103. package/dist/frontend-ssr/assets/folder-DChhG7qN.js +80 -0
  104. package/dist/frontend-ssr/assets/folders-CTfbS24J.js +127 -0
  105. package/dist/frontend-ssr/assets/identity-B3uHoDtf.js +99 -0
  106. package/dist/frontend-ssr/assets/input-DezGsU3y.js +19 -0
  107. package/dist/frontend-ssr/assets/keyboard.svelte-BgF47N3L.js +174 -0
  108. package/dist/frontend-ssr/assets/label-Bj8-TfFN.js +21 -0
  109. package/dist/frontend-ssr/assets/loader-circle-DZsrZ-er.js +80 -0
  110. package/dist/frontend-ssr/assets/markdown-CjqvGi5W.js +20 -0
  111. package/dist/frontend-ssr/assets/messages-DhXqlcJI.js +11125 -0
  112. package/dist/frontend-ssr/assets/resolve-BqHozBXl.js +32 -0
  113. package/dist/frontend-ssr/assets/rotate-ccw-BlgWwaiq.js +80 -0
  114. package/dist/frontend-ssr/assets/select-value-DngdSmLI.js +1526 -0
  115. package/dist/frontend-ssr/assets/settings-E6qSAWM2.js +64 -0
  116. package/dist/frontend-ssr/assets/share-BTBJelxA.js +30 -0
  117. package/dist/frontend-ssr/assets/subfolders-refresh-store.svelte-DAh4gT16.js +77 -0
  118. package/dist/frontend-ssr/assets/tag-GZEuGWk1.js +166 -0
  119. package/dist/frontend-ssr/assets/tag-store.svelte-DPodKj6Z.js +21 -0
  120. package/dist/frontend-ssr/assets/tags-BId2wdYd.js +49 -0
  121. package/dist/frontend-ssr/assets/textarea-Dev-qSEc.js +21 -0
  122. package/dist/frontend-ssr/assets/theme.svelte-Co0-ssaD.js +67 -0
  123. package/dist/frontend-ssr/assets/utils-DtlPPXpJ.js +9 -0
  124. package/dist/frontend-ssr/assets/utils-DvZnctjz.js +23 -0
  125. package/dist/frontend-ssr/collaboration.js +39 -0
  126. package/dist/frontend-ssr/components/category-dialog.js +2 -0
  127. package/dist/frontend-ssr/components/create-snapshot-dialog.js +2 -0
  128. package/dist/frontend-ssr/components/delete-dialog.js +2 -0
  129. package/dist/frontend-ssr/components/editor/document-editor.js +2499 -0
  130. package/dist/frontend-ssr/components/editor/document-title.js +11 -0
  131. package/dist/frontend-ssr/components/editor/docx-serializer.js +186 -0
  132. package/dist/frontend-ssr/components/editor/extensions.js +2 -0
  133. package/dist/frontend-ssr/components/editor/markdown-toggle.js +20 -0
  134. package/dist/frontend-ssr/components/editor/markdown.js +2 -0
  135. package/dist/frontend-ssr/components/folder-node.js +2 -0
  136. package/dist/frontend-ssr/components/folder-tree-selector.js +2 -0
  137. package/dist/frontend-ssr/components/save-as-dialog.js +280 -0
  138. package/dist/frontend-ssr/components/settings.js +2 -0
  139. package/dist/frontend-ssr/components/share-dialog.js +2 -0
  140. package/dist/frontend-ssr/components/sidebar.js +2033 -0
  141. package/dist/frontend-ssr/components/tag-create-dialog.js +2 -0
  142. package/dist/frontend-ssr/components/version-history.js +370 -0
  143. package/dist/frontend-ssr/dashboard.js +2542 -0
  144. package/dist/frontend-ssr/doc-tabs.js +23 -0
  145. package/dist/frontend-ssr/document-drop-coordinator.js +2 -0
  146. package/dist/frontend-ssr/extension.js +13 -0
  147. package/dist/frontend-ssr/folder-refresh.js +2 -0
  148. package/dist/frontend-ssr/i18n.js +10 -0
  149. package/dist/frontend-ssr/keyboard.js +2 -0
  150. package/dist/frontend-ssr/offline/identity.js +2 -0
  151. package/dist/frontend-ssr/search.js +332 -0
  152. package/dist/frontend-ssr/shared-document.js +273 -0
  153. package/dist/frontend-ssr/theme.js +9 -0
  154. package/dist/frontend-ssr/types.js +1 -0
  155. package/dist/frontend-ssr/utils/clipboard.js +2 -0
  156. package/dist/frontend-ssr/utils/dndzone.js +2 -0
  157. package/dist/frontend-ssr/utils.js +2 -0
  158. package/package.json +22 -1
  159. package/packages/cli/src/index.ts +1 -1
  160. package/packages/db/src/schema.ts +3 -0
  161. package/packages/mcp-server/src/index.ts +1 -1
  162. package/dist/frontend/CategoryDialog--rIE7FrH.js +0 -580
  163. package/dist/frontend/ConfirmDialog-Cpzyb55f.js +0 -212
  164. package/dist/frontend/CreateSnapshotDialog-CmkV-n2A.js +0 -216
  165. package/dist/frontend/DatePicker-Byynca7V.js +0 -257
  166. package/dist/frontend/DeleteDialog-ap6nOywZ.js +0 -174
  167. package/dist/frontend/FolderDialog-DmN_trV0.js +0 -247
  168. package/dist/frontend/FolderNode-C4B8a2fd.js +0 -317
  169. package/dist/frontend/FolderTreeSelector-D6ijiZTA.js +0 -100
  170. package/dist/frontend/Icon-DtNo0N1U.js +0 -64
  171. package/dist/frontend/SettingsDialog-2kTaTXAs.js +0 -992
  172. package/dist/frontend/ShareDialog-BBDGNF5n.js +0 -165
  173. package/dist/frontend/TagCreateDialog-DiLZnJo4.js +0 -258
  174. package/dist/frontend/camera-B7dAOd4s.js +0 -28
  175. package/dist/frontend/check-CDwRlG9T.js +0 -24
  176. package/dist/frontend/chevron-down-B7ZrjUmT.js +0 -24
  177. package/dist/frontend/circle-check-CDqeMB2d.js +0 -28
  178. package/dist/frontend/client-Bc5Fzx40.js +0 -2785
  179. package/dist/frontend/clock-Ck5Sn-Zl.js +0 -28
  180. package/dist/frontend/clsx-nmtDPO_P.js +0 -16
  181. package/dist/frontend/copy-CMAA6GP0.js +0 -31
  182. package/dist/frontend/dialog-BDkiG42a.js +0 -213
  183. package/dist/frontend/disclose-version-5I57E3LD.js +0 -3
  184. package/dist/frontend/ellipsis-vertical-BBuPldbW.js +0 -519
  185. package/dist/frontend/folder-TQjKY4yn.js +0 -44
  186. package/dist/frontend/index-client-jobkrWVL.js +0 -86
  187. package/dist/frontend/input-CBI6p4Xl.js +0 -23
  188. package/dist/frontend/label-C-GkhEp4.js +0 -30
  189. package/dist/frontend/rotate-ccw-CleZtJ5D.js +0 -24
  190. package/dist/frontend/select-value-CvrWRkXW.js +0 -1436
  191. package/dist/frontend/subfolders-refresh-store.svelte-BsheoQma.js +0 -65
  192. package/dist/frontend/tag-Dx3SmucJ.js +0 -53
  193. package/dist/frontend/tag-store.svelte-CIaF4sdZ.js +0 -29
  194. package/dist/frontend/textarea-Dfp78XlL.js +0 -23
  195. package/dist/frontend/theme.svelte-CROg1Hi5.js +0 -49
  196. package/dist/frontend/x-DaTdeDXv.js +0 -24
@@ -0,0 +1,2499 @@
1
+ import { $t as editor_toolbar_link, A as editor_highlight_purple, Bt as editor_enter_url, F as editor_highlight_yellow, Gt as editor_toolbar_highlight, Ht as editor_toolbar_align, I as editor_anonymous, Jt as editor_toolbar_horizontal_rule, Kt as editor_toolbar_redo, M as editor_highlight_green, Mr as doc_content_placeholder, Mt as version_create_snapshot, N as editor_highlight_red, O as editor_highlight_gray, P as editor_highlight_orange, Qt as editor_toolbar_image, Ut as editor_toolbar_emoji, Vt as editor_toolbar_copy, Wt as editor_toolbar_text_formatting, Xt as editor_toolbar_heading, Yt as editor_toolbar_code_block, Zt as editor_toolbar_list, en as editor_toolbar_underline, gn as action_save, hn as action_cancel, j as editor_highlight_blue, k as editor_highlight_pink, nn as editor_toolbar_bold, qt as editor_toolbar_undo, tn as editor_toolbar_italic, zt as editor_content_label } from "../../assets/messages-DhXqlcJI.js";
2
+ import { a as Dialog, n as Dialog_header, o as Button, r as Dialog_footer, t as Dialog_title } from "../../assets/dialog-BOV1u6zP.js";
3
+ import { t as Icon } from "../../assets/Icon-B0Zqppjo.js";
4
+ import { t as Camera } from "../../assets/camera-CdxscTw-.js";
5
+ import { t as Chevron_down } from "../../assets/chevron-down-CSSNGNh_.js";
6
+ import { t as Copy } from "../../assets/copy-CjV57nGQ.js";
7
+ import { t as Input } from "../../assets/input-DezGsU3y.js";
8
+ import { h as unregisterShortcut, u as registerShortcut } from "../../assets/keyboard.svelte-BgF47N3L.js";
9
+ import { t as CreateSnapshotDialog } from "../../assets/CreateSnapshotDialog-BRw1xJW1.js";
10
+ import { a as resolveOfflineIdentity } from "../../assets/identity-B3uHoDtf.js";
11
+ import { r as editorExtensions } from "../../assets/editorExtensions-DUzwndMy.js";
12
+ import { t as markdownToJson } from "../../assets/markdown-CjqvGi5W.js";
13
+ import { n as getOfflineDB } from "../../assets/db-CnxeO66n.js";
14
+ import * as $ from "svelte/internal/server";
15
+ import { onDestroy, onMount, tick } from "svelte";
16
+ import "svelte/reactivity";
17
+ import Collaboration from "@tiptap/extension-collaboration";
18
+ import CollaborationCursor from "@tiptap/extension-collaboration-cursor";
19
+ import { Editor } from "@tiptap/core";
20
+ import { readable } from "svelte/store";
21
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/bold.svelte
22
+ function Bold($$renderer, $$props) {
23
+ const $$sanitized_props = $.sanitize_props($$props);
24
+ /**
25
+ * @license lucide-svelte v1.0.1 - ISC
26
+ *
27
+ * ISC License
28
+ *
29
+ * Copyright (c) 2026 Lucide Icons and Contributors
30
+ *
31
+ * Permission to use, copy, modify, and/or distribute this software for any
32
+ * purpose with or without fee is hereby granted, provided that the above
33
+ * copyright notice and this permission notice appear in all copies.
34
+ *
35
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
36
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
37
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
38
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
39
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
40
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
41
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
42
+ *
43
+ * ---
44
+ *
45
+ * The following Lucide icons are derived from the Feather project:
46
+ *
47
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
48
+ *
49
+ * The MIT License (MIT) (for the icons listed above)
50
+ *
51
+ * Copyright (c) 2013-present Cole Bemis
52
+ *
53
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
54
+ * of this software and associated documentation files (the "Software"), to deal
55
+ * in the Software without restriction, including without limitation the rights
56
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
57
+ * copies of the Software, and to permit persons to whom the Software is
58
+ * furnished to do so, subject to the following conditions:
59
+ *
60
+ * The above copyright notice and this permission notice shall be included in all
61
+ * copies or substantial portions of the Software.
62
+ *
63
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
64
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
65
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
66
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
67
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
68
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
69
+ * SOFTWARE.
70
+ *
71
+ */
72
+ Icon($$renderer, $.spread_props([
73
+ { name: "bold" },
74
+ $$sanitized_props,
75
+ {
76
+ /**
77
+ * @component @name Bold
78
+ * @description Lucide SVG icon component, renders SVG Element with children.
79
+ *
80
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAxMmg5YTQgNCAwIDAgMSAwIDhIN2ExIDEgMCAwIDEtMS0xVjVhMSAxIDAgMCAxIDEtMWg3YTQgNCAwIDAgMSAwIDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bold
81
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
82
+ *
83
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
84
+ * @returns {FunctionalComponent} Svelte component
85
+ *
86
+ */
87
+ iconNode: [["path", { "d": "M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8" }]],
88
+ children: ($$renderer) => {
89
+ $$renderer.push(`<!--[-->`);
90
+ $.slot($$renderer, $$props, "default", {}, null);
91
+ $$renderer.push(`<!--]-->`);
92
+ },
93
+ $$slots: { default: true }
94
+ }
95
+ ]));
96
+ }
97
+ //#endregion
98
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/heading-1.svelte
99
+ function Heading_1($$renderer, $$props) {
100
+ const $$sanitized_props = $.sanitize_props($$props);
101
+ /**
102
+ * @license lucide-svelte v1.0.1 - ISC
103
+ *
104
+ * ISC License
105
+ *
106
+ * Copyright (c) 2026 Lucide Icons and Contributors
107
+ *
108
+ * Permission to use, copy, modify, and/or distribute this software for any
109
+ * purpose with or without fee is hereby granted, provided that the above
110
+ * copyright notice and this permission notice appear in all copies.
111
+ *
112
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
113
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
114
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
115
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
116
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
117
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
118
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
119
+ *
120
+ * ---
121
+ *
122
+ * The following Lucide icons are derived from the Feather project:
123
+ *
124
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
125
+ *
126
+ * The MIT License (MIT) (for the icons listed above)
127
+ *
128
+ * Copyright (c) 2013-present Cole Bemis
129
+ *
130
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
131
+ * of this software and associated documentation files (the "Software"), to deal
132
+ * in the Software without restriction, including without limitation the rights
133
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
134
+ * copies of the Software, and to permit persons to whom the Software is
135
+ * furnished to do so, subject to the following conditions:
136
+ *
137
+ * The above copyright notice and this permission notice shall be included in all
138
+ * copies or substantial portions of the Software.
139
+ *
140
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
141
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
142
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
143
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
144
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
145
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
146
+ * SOFTWARE.
147
+ *
148
+ */
149
+ Icon($$renderer, $.spread_props([
150
+ { name: "heading-1" },
151
+ $$sanitized_props,
152
+ {
153
+ /**
154
+ * @component @name Heading1
155
+ * @description Lucide SVG icon component, renders SVG Element with children.
156
+ *
157
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMmg4IiAvPgogIDxwYXRoIGQ9Ik00IDE4VjYiIC8+CiAgPHBhdGggZD0iTTEyIDE4VjYiIC8+CiAgPHBhdGggZD0ibTE3IDEyIDMtMnY4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/heading-1
158
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
159
+ *
160
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
161
+ * @returns {FunctionalComponent} Svelte component
162
+ *
163
+ */
164
+ iconNode: [
165
+ ["path", { "d": "M4 12h8" }],
166
+ ["path", { "d": "M4 18V6" }],
167
+ ["path", { "d": "M12 18V6" }],
168
+ ["path", { "d": "m17 12 3-2v8" }]
169
+ ],
170
+ children: ($$renderer) => {
171
+ $$renderer.push(`<!--[-->`);
172
+ $.slot($$renderer, $$props, "default", {}, null);
173
+ $$renderer.push(`<!--]-->`);
174
+ },
175
+ $$slots: { default: true }
176
+ }
177
+ ]));
178
+ }
179
+ //#endregion
180
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/highlighter.svelte
181
+ function Highlighter($$renderer, $$props) {
182
+ const $$sanitized_props = $.sanitize_props($$props);
183
+ /**
184
+ * @license lucide-svelte v1.0.1 - ISC
185
+ *
186
+ * ISC License
187
+ *
188
+ * Copyright (c) 2026 Lucide Icons and Contributors
189
+ *
190
+ * Permission to use, copy, modify, and/or distribute this software for any
191
+ * purpose with or without fee is hereby granted, provided that the above
192
+ * copyright notice and this permission notice appear in all copies.
193
+ *
194
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
195
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
196
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
197
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
198
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
199
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
200
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
201
+ *
202
+ * ---
203
+ *
204
+ * The following Lucide icons are derived from the Feather project:
205
+ *
206
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
207
+ *
208
+ * The MIT License (MIT) (for the icons listed above)
209
+ *
210
+ * Copyright (c) 2013-present Cole Bemis
211
+ *
212
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
213
+ * of this software and associated documentation files (the "Software"), to deal
214
+ * in the Software without restriction, including without limitation the rights
215
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
216
+ * copies of the Software, and to permit persons to whom the Software is
217
+ * furnished to do so, subject to the following conditions:
218
+ *
219
+ * The above copyright notice and this permission notice shall be included in all
220
+ * copies or substantial portions of the Software.
221
+ *
222
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
223
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
224
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
225
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
226
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
227
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
228
+ * SOFTWARE.
229
+ *
230
+ */
231
+ Icon($$renderer, $.spread_props([
232
+ { name: "highlighter" },
233
+ $$sanitized_props,
234
+ {
235
+ /**
236
+ * @component @name Highlighter
237
+ * @description Lucide SVG icon component, renders SVG Element with children.
238
+ *
239
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxMS02IDZ2M2g5bDMtMyIgLz4KICA8cGF0aCBkPSJtMjIgMTItNC42IDQuNmEyIDIgMCAwIDEtMi44IDBsLTUuMi01LjJhMiAyIDAgMCAxIDAtMi44TDE0IDQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/highlighter
240
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
241
+ *
242
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
243
+ * @returns {FunctionalComponent} Svelte component
244
+ *
245
+ */
246
+ iconNode: [["path", { "d": "m9 11-6 6v3h9l3-3" }], ["path", { "d": "m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4" }]],
247
+ children: ($$renderer) => {
248
+ $$renderer.push(`<!--[-->`);
249
+ $.slot($$renderer, $$props, "default", {}, null);
250
+ $$renderer.push(`<!--]-->`);
251
+ },
252
+ $$slots: { default: true }
253
+ }
254
+ ]));
255
+ }
256
+ //#endregion
257
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/image.svelte
258
+ function Image($$renderer, $$props) {
259
+ const $$sanitized_props = $.sanitize_props($$props);
260
+ /**
261
+ * @license lucide-svelte v1.0.1 - ISC
262
+ *
263
+ * ISC License
264
+ *
265
+ * Copyright (c) 2026 Lucide Icons and Contributors
266
+ *
267
+ * Permission to use, copy, modify, and/or distribute this software for any
268
+ * purpose with or without fee is hereby granted, provided that the above
269
+ * copyright notice and this permission notice appear in all copies.
270
+ *
271
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
272
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
273
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
274
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
275
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
276
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
277
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
278
+ *
279
+ * ---
280
+ *
281
+ * The following Lucide icons are derived from the Feather project:
282
+ *
283
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
284
+ *
285
+ * The MIT License (MIT) (for the icons listed above)
286
+ *
287
+ * Copyright (c) 2013-present Cole Bemis
288
+ *
289
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
290
+ * of this software and associated documentation files (the "Software"), to deal
291
+ * in the Software without restriction, including without limitation the rights
292
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
293
+ * copies of the Software, and to permit persons to whom the Software is
294
+ * furnished to do so, subject to the following conditions:
295
+ *
296
+ * The above copyright notice and this permission notice shall be included in all
297
+ * copies or substantial portions of the Software.
298
+ *
299
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
300
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
301
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
302
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
303
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
304
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
305
+ * SOFTWARE.
306
+ *
307
+ */
308
+ Icon($$renderer, $.spread_props([
309
+ { name: "image" },
310
+ $$sanitized_props,
311
+ {
312
+ /**
313
+ * @component @name Image
314
+ * @description Lucide SVG icon component, renders SVG Element with children.
315
+ *
316
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iMiIgLz4KICA8cGF0aCBkPSJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/image
317
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
318
+ *
319
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
320
+ * @returns {FunctionalComponent} Svelte component
321
+ *
322
+ */
323
+ iconNode: [
324
+ ["rect", {
325
+ "width": "18",
326
+ "height": "18",
327
+ "x": "3",
328
+ "y": "3",
329
+ "rx": "2",
330
+ "ry": "2"
331
+ }],
332
+ ["circle", {
333
+ "cx": "9",
334
+ "cy": "9",
335
+ "r": "2"
336
+ }],
337
+ ["path", { "d": "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" }]
338
+ ],
339
+ children: ($$renderer) => {
340
+ $$renderer.push(`<!--[-->`);
341
+ $.slot($$renderer, $$props, "default", {}, null);
342
+ $$renderer.push(`<!--]-->`);
343
+ },
344
+ $$slots: { default: true }
345
+ }
346
+ ]));
347
+ }
348
+ //#endregion
349
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/italic.svelte
350
+ function Italic($$renderer, $$props) {
351
+ const $$sanitized_props = $.sanitize_props($$props);
352
+ /**
353
+ * @license lucide-svelte v1.0.1 - ISC
354
+ *
355
+ * ISC License
356
+ *
357
+ * Copyright (c) 2026 Lucide Icons and Contributors
358
+ *
359
+ * Permission to use, copy, modify, and/or distribute this software for any
360
+ * purpose with or without fee is hereby granted, provided that the above
361
+ * copyright notice and this permission notice appear in all copies.
362
+ *
363
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
364
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
365
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
366
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
367
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
368
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
369
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
370
+ *
371
+ * ---
372
+ *
373
+ * The following Lucide icons are derived from the Feather project:
374
+ *
375
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
376
+ *
377
+ * The MIT License (MIT) (for the icons listed above)
378
+ *
379
+ * Copyright (c) 2013-present Cole Bemis
380
+ *
381
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
382
+ * of this software and associated documentation files (the "Software"), to deal
383
+ * in the Software without restriction, including without limitation the rights
384
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
385
+ * copies of the Software, and to permit persons to whom the Software is
386
+ * furnished to do so, subject to the following conditions:
387
+ *
388
+ * The above copyright notice and this permission notice shall be included in all
389
+ * copies or substantial portions of the Software.
390
+ *
391
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
392
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
393
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
394
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
395
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
396
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
397
+ * SOFTWARE.
398
+ *
399
+ */
400
+ Icon($$renderer, $.spread_props([
401
+ { name: "italic" },
402
+ $$sanitized_props,
403
+ {
404
+ /**
405
+ * @component @name Italic
406
+ * @description Lucide SVG icon component, renders SVG Element with children.
407
+ *
408
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMTkiIHgyPSIxMCIgeTE9IjQiIHkyPSI0IiAvPgogIDxsaW5lIHgxPSIxNCIgeDI9IjUiIHkxPSIyMCIgeTI9IjIwIiAvPgogIDxsaW5lIHgxPSIxNSIgeDI9IjkiIHkxPSI0IiB5Mj0iMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/italic
409
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
410
+ *
411
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
412
+ * @returns {FunctionalComponent} Svelte component
413
+ *
414
+ */
415
+ iconNode: [
416
+ ["line", {
417
+ "x1": "19",
418
+ "x2": "10",
419
+ "y1": "4",
420
+ "y2": "4"
421
+ }],
422
+ ["line", {
423
+ "x1": "14",
424
+ "x2": "5",
425
+ "y1": "20",
426
+ "y2": "20"
427
+ }],
428
+ ["line", {
429
+ "x1": "15",
430
+ "x2": "9",
431
+ "y1": "4",
432
+ "y2": "20"
433
+ }]
434
+ ],
435
+ children: ($$renderer) => {
436
+ $$renderer.push(`<!--[-->`);
437
+ $.slot($$renderer, $$props, "default", {}, null);
438
+ $$renderer.push(`<!--]-->`);
439
+ },
440
+ $$slots: { default: true }
441
+ }
442
+ ]));
443
+ }
444
+ //#endregion
445
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/link.svelte
446
+ function Link($$renderer, $$props) {
447
+ const $$sanitized_props = $.sanitize_props($$props);
448
+ /**
449
+ * @license lucide-svelte v1.0.1 - ISC
450
+ *
451
+ * ISC License
452
+ *
453
+ * Copyright (c) 2026 Lucide Icons and Contributors
454
+ *
455
+ * Permission to use, copy, modify, and/or distribute this software for any
456
+ * purpose with or without fee is hereby granted, provided that the above
457
+ * copyright notice and this permission notice appear in all copies.
458
+ *
459
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
460
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
461
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
462
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
463
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
464
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
465
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
466
+ *
467
+ * ---
468
+ *
469
+ * The following Lucide icons are derived from the Feather project:
470
+ *
471
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
472
+ *
473
+ * The MIT License (MIT) (for the icons listed above)
474
+ *
475
+ * Copyright (c) 2013-present Cole Bemis
476
+ *
477
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
478
+ * of this software and associated documentation files (the "Software"), to deal
479
+ * in the Software without restriction, including without limitation the rights
480
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
481
+ * copies of the Software, and to permit persons to whom the Software is
482
+ * furnished to do so, subject to the following conditions:
483
+ *
484
+ * The above copyright notice and this permission notice shall be included in all
485
+ * copies or substantial portions of the Software.
486
+ *
487
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
488
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
489
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
490
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
491
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
492
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
493
+ * SOFTWARE.
494
+ *
495
+ */
496
+ Icon($$renderer, $.spread_props([
497
+ { name: "link" },
498
+ $$sanitized_props,
499
+ {
500
+ /**
501
+ * @component @name Link
502
+ * @description Lucide SVG icon component, renders SVG Element with children.
503
+ *
504
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTNhNSA1IDAgMCAwIDcuNTQuNTRsMy0zYTUgNSAwIDAgMC03LjA3LTcuMDdsLTEuNzIgMS43MSIgLz4KICA8cGF0aCBkPSJNMTQgMTFhNSA1IDAgMCAwLTcuNTQtLjU0bC0zIDNhNSA1IDAgMCAwIDcuMDcgNy4wN2wxLjcxLTEuNzEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/link
505
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
506
+ *
507
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
508
+ * @returns {FunctionalComponent} Svelte component
509
+ *
510
+ */
511
+ iconNode: [["path", { "d": "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" }], ["path", { "d": "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" }]],
512
+ children: ($$renderer) => {
513
+ $$renderer.push(`<!--[-->`);
514
+ $.slot($$renderer, $$props, "default", {}, null);
515
+ $$renderer.push(`<!--]-->`);
516
+ },
517
+ $$slots: { default: true }
518
+ }
519
+ ]));
520
+ }
521
+ //#endregion
522
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/list.svelte
523
+ function List($$renderer, $$props) {
524
+ const $$sanitized_props = $.sanitize_props($$props);
525
+ /**
526
+ * @license lucide-svelte v1.0.1 - ISC
527
+ *
528
+ * ISC License
529
+ *
530
+ * Copyright (c) 2026 Lucide Icons and Contributors
531
+ *
532
+ * Permission to use, copy, modify, and/or distribute this software for any
533
+ * purpose with or without fee is hereby granted, provided that the above
534
+ * copyright notice and this permission notice appear in all copies.
535
+ *
536
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
537
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
538
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
539
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
540
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
541
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
542
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
543
+ *
544
+ * ---
545
+ *
546
+ * The following Lucide icons are derived from the Feather project:
547
+ *
548
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
549
+ *
550
+ * The MIT License (MIT) (for the icons listed above)
551
+ *
552
+ * Copyright (c) 2013-present Cole Bemis
553
+ *
554
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
555
+ * of this software and associated documentation files (the "Software"), to deal
556
+ * in the Software without restriction, including without limitation the rights
557
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
558
+ * copies of the Software, and to permit persons to whom the Software is
559
+ * furnished to do so, subject to the following conditions:
560
+ *
561
+ * The above copyright notice and this permission notice shall be included in all
562
+ * copies or substantial portions of the Software.
563
+ *
564
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
565
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
566
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
567
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
568
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
569
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
570
+ * SOFTWARE.
571
+ *
572
+ */
573
+ Icon($$renderer, $.spread_props([
574
+ { name: "list" },
575
+ $$sanitized_props,
576
+ {
577
+ /**
578
+ * @component @name List
579
+ * @description Lucide SVG icon component, renders SVG Element with children.
580
+ *
581
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA1aC4wMSIgLz4KICA8cGF0aCBkPSJNMyAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTMgMTloLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDVoMTMiIC8+CiAgPHBhdGggZD0iTTggMTJoMTMiIC8+CiAgPHBhdGggZD0iTTggMTloMTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/list
582
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
583
+ *
584
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
585
+ * @returns {FunctionalComponent} Svelte component
586
+ *
587
+ */
588
+ iconNode: [
589
+ ["path", { "d": "M3 5h.01" }],
590
+ ["path", { "d": "M3 12h.01" }],
591
+ ["path", { "d": "M3 19h.01" }],
592
+ ["path", { "d": "M8 5h13" }],
593
+ ["path", { "d": "M8 12h13" }],
594
+ ["path", { "d": "M8 19h13" }]
595
+ ],
596
+ children: ($$renderer) => {
597
+ $$renderer.push(`<!--[-->`);
598
+ $.slot($$renderer, $$props, "default", {}, null);
599
+ $$renderer.push(`<!--]-->`);
600
+ },
601
+ $$slots: { default: true }
602
+ }
603
+ ]));
604
+ }
605
+ //#endregion
606
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/minus.svelte
607
+ function Minus($$renderer, $$props) {
608
+ const $$sanitized_props = $.sanitize_props($$props);
609
+ /**
610
+ * @license lucide-svelte v1.0.1 - ISC
611
+ *
612
+ * ISC License
613
+ *
614
+ * Copyright (c) 2026 Lucide Icons and Contributors
615
+ *
616
+ * Permission to use, copy, modify, and/or distribute this software for any
617
+ * purpose with or without fee is hereby granted, provided that the above
618
+ * copyright notice and this permission notice appear in all copies.
619
+ *
620
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
621
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
622
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
623
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
624
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
625
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
626
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
627
+ *
628
+ * ---
629
+ *
630
+ * The following Lucide icons are derived from the Feather project:
631
+ *
632
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
633
+ *
634
+ * The MIT License (MIT) (for the icons listed above)
635
+ *
636
+ * Copyright (c) 2013-present Cole Bemis
637
+ *
638
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
639
+ * of this software and associated documentation files (the "Software"), to deal
640
+ * in the Software without restriction, including without limitation the rights
641
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
642
+ * copies of the Software, and to permit persons to whom the Software is
643
+ * furnished to do so, subject to the following conditions:
644
+ *
645
+ * The above copyright notice and this permission notice shall be included in all
646
+ * copies or substantial portions of the Software.
647
+ *
648
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
649
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
650
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
651
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
652
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
653
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
654
+ * SOFTWARE.
655
+ *
656
+ */
657
+ Icon($$renderer, $.spread_props([
658
+ { name: "minus" },
659
+ $$sanitized_props,
660
+ {
661
+ /**
662
+ * @component @name Minus
663
+ * @description Lucide SVG icon component, renders SVG Element with children.
664
+ *
665
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/minus
666
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
667
+ *
668
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
669
+ * @returns {FunctionalComponent} Svelte component
670
+ *
671
+ */
672
+ iconNode: [["path", { "d": "M5 12h14" }]],
673
+ children: ($$renderer) => {
674
+ $$renderer.push(`<!--[-->`);
675
+ $.slot($$renderer, $$props, "default", {}, null);
676
+ $$renderer.push(`<!--]-->`);
677
+ },
678
+ $$slots: { default: true }
679
+ }
680
+ ]));
681
+ }
682
+ //#endregion
683
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/quote.svelte
684
+ function Quote($$renderer, $$props) {
685
+ const $$sanitized_props = $.sanitize_props($$props);
686
+ /**
687
+ * @license lucide-svelte v1.0.1 - ISC
688
+ *
689
+ * ISC License
690
+ *
691
+ * Copyright (c) 2026 Lucide Icons and Contributors
692
+ *
693
+ * Permission to use, copy, modify, and/or distribute this software for any
694
+ * purpose with or without fee is hereby granted, provided that the above
695
+ * copyright notice and this permission notice appear in all copies.
696
+ *
697
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
698
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
699
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
700
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
701
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
702
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
703
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
704
+ *
705
+ * ---
706
+ *
707
+ * The following Lucide icons are derived from the Feather project:
708
+ *
709
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
710
+ *
711
+ * The MIT License (MIT) (for the icons listed above)
712
+ *
713
+ * Copyright (c) 2013-present Cole Bemis
714
+ *
715
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
716
+ * of this software and associated documentation files (the "Software"), to deal
717
+ * in the Software without restriction, including without limitation the rights
718
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
719
+ * copies of the Software, and to permit persons to whom the Software is
720
+ * furnished to do so, subject to the following conditions:
721
+ *
722
+ * The above copyright notice and this permission notice shall be included in all
723
+ * copies or substantial portions of the Software.
724
+ *
725
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
726
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
727
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
728
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
729
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
730
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
731
+ * SOFTWARE.
732
+ *
733
+ */
734
+ Icon($$renderer, $.spread_props([
735
+ { name: "quote" },
736
+ $$sanitized_props,
737
+ {
738
+ /**
739
+ * @component @name Quote
740
+ * @description Lucide SVG icon component, renders SVG Element with children.
741
+ *
742
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgM2EyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMiAxIDEgMCAwIDEgMSAxdjFhMiAyIDAgMCAxLTIgMiAxIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMSA2IDYgMCAwIDAgNi02VjVhMiAyIDAgMCAwLTItMnoiIC8+CiAgPHBhdGggZD0iTTUgM2EyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMiAxIDEgMCAwIDEgMSAxdjFhMiAyIDAgMCAxLTIgMiAxIDEgMCAwIDAtMSAxdjJhMSAxIDAgMCAwIDEgMSA2IDYgMCAwIDAgNi02VjVhMiAyIDAgMCAwLTItMnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/quote
743
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
744
+ *
745
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
746
+ * @returns {FunctionalComponent} Svelte component
747
+ *
748
+ */
749
+ iconNode: [["path", { "d": "M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z" }], ["path", { "d": "M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z" }]],
750
+ children: ($$renderer) => {
751
+ $$renderer.push(`<!--[-->`);
752
+ $.slot($$renderer, $$props, "default", {}, null);
753
+ $$renderer.push(`<!--]-->`);
754
+ },
755
+ $$slots: { default: true }
756
+ }
757
+ ]));
758
+ }
759
+ //#endregion
760
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/redo.svelte
761
+ function Redo($$renderer, $$props) {
762
+ const $$sanitized_props = $.sanitize_props($$props);
763
+ /**
764
+ * @license lucide-svelte v1.0.1 - ISC
765
+ *
766
+ * ISC License
767
+ *
768
+ * Copyright (c) 2026 Lucide Icons and Contributors
769
+ *
770
+ * Permission to use, copy, modify, and/or distribute this software for any
771
+ * purpose with or without fee is hereby granted, provided that the above
772
+ * copyright notice and this permission notice appear in all copies.
773
+ *
774
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
775
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
776
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
777
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
778
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
779
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
780
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
781
+ *
782
+ * ---
783
+ *
784
+ * The following Lucide icons are derived from the Feather project:
785
+ *
786
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
787
+ *
788
+ * The MIT License (MIT) (for the icons listed above)
789
+ *
790
+ * Copyright (c) 2013-present Cole Bemis
791
+ *
792
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
793
+ * of this software and associated documentation files (the "Software"), to deal
794
+ * in the Software without restriction, including without limitation the rights
795
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
796
+ * copies of the Software, and to permit persons to whom the Software is
797
+ * furnished to do so, subject to the following conditions:
798
+ *
799
+ * The above copyright notice and this permission notice shall be included in all
800
+ * copies or substantial portions of the Software.
801
+ *
802
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
803
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
804
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
805
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
806
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
807
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
808
+ * SOFTWARE.
809
+ *
810
+ */
811
+ Icon($$renderer, $.spread_props([
812
+ { name: "redo" },
813
+ $$sanitized_props,
814
+ {
815
+ /**
816
+ * @component @name Redo
817
+ * @description Lucide SVG icon component, renders SVG Element with children.
818
+ *
819
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgN3Y2aC02IiAvPgogIDxwYXRoIGQ9Ik0zIDE3YTkgOSAwIDAgMSA5LTkgOSA5IDAgMCAxIDYgMi4zbDMgMi43IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/redo
820
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
821
+ *
822
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
823
+ * @returns {FunctionalComponent} Svelte component
824
+ *
825
+ */
826
+ iconNode: [["path", { "d": "M21 7v6h-6" }], ["path", { "d": "M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7" }]],
827
+ children: ($$renderer) => {
828
+ $$renderer.push(`<!--[-->`);
829
+ $.slot($$renderer, $$props, "default", {}, null);
830
+ $$renderer.push(`<!--]-->`);
831
+ },
832
+ $$slots: { default: true }
833
+ }
834
+ ]));
835
+ }
836
+ //#endregion
837
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/smile.svelte
838
+ function Smile($$renderer, $$props) {
839
+ const $$sanitized_props = $.sanitize_props($$props);
840
+ /**
841
+ * @license lucide-svelte v1.0.1 - ISC
842
+ *
843
+ * ISC License
844
+ *
845
+ * Copyright (c) 2026 Lucide Icons and Contributors
846
+ *
847
+ * Permission to use, copy, modify, and/or distribute this software for any
848
+ * purpose with or without fee is hereby granted, provided that the above
849
+ * copyright notice and this permission notice appear in all copies.
850
+ *
851
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
852
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
853
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
854
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
855
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
856
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
857
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
858
+ *
859
+ * ---
860
+ *
861
+ * The following Lucide icons are derived from the Feather project:
862
+ *
863
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
864
+ *
865
+ * The MIT License (MIT) (for the icons listed above)
866
+ *
867
+ * Copyright (c) 2013-present Cole Bemis
868
+ *
869
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
870
+ * of this software and associated documentation files (the "Software"), to deal
871
+ * in the Software without restriction, including without limitation the rights
872
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
873
+ * copies of the Software, and to permit persons to whom the Software is
874
+ * furnished to do so, subject to the following conditions:
875
+ *
876
+ * The above copyright notice and this permission notice shall be included in all
877
+ * copies or substantial portions of the Software.
878
+ *
879
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
880
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
881
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
882
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
883
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
884
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
885
+ * SOFTWARE.
886
+ *
887
+ */
888
+ Icon($$renderer, $.spread_props([
889
+ { name: "smile" },
890
+ $$sanitized_props,
891
+ {
892
+ /**
893
+ * @component @name Smile
894
+ * @description Lucide SVG icon component, renders SVG Element with children.
895
+ *
896
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNOCAxNHMxLjUgMiA0IDIgNC0yIDQtMiIgLz4KICA8bGluZSB4MT0iOSIgeDI9IjkuMDEiIHkxPSI5IiB5Mj0iOSIgLz4KICA8bGluZSB4MT0iMTUiIHgyPSIxNS4wMSIgeTE9IjkiIHkyPSI5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/smile
897
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
898
+ *
899
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
900
+ * @returns {FunctionalComponent} Svelte component
901
+ *
902
+ */
903
+ iconNode: [
904
+ ["circle", {
905
+ "cx": "12",
906
+ "cy": "12",
907
+ "r": "10"
908
+ }],
909
+ ["path", { "d": "M8 14s1.5 2 4 2 4-2 4-2" }],
910
+ ["line", {
911
+ "x1": "9",
912
+ "x2": "9.01",
913
+ "y1": "9",
914
+ "y2": "9"
915
+ }],
916
+ ["line", {
917
+ "x1": "15",
918
+ "x2": "15.01",
919
+ "y1": "9",
920
+ "y2": "9"
921
+ }]
922
+ ],
923
+ children: ($$renderer) => {
924
+ $$renderer.push(`<!--[-->`);
925
+ $.slot($$renderer, $$props, "default", {}, null);
926
+ $$renderer.push(`<!--]-->`);
927
+ },
928
+ $$slots: { default: true }
929
+ }
930
+ ]));
931
+ }
932
+ //#endregion
933
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/table.svelte
934
+ function Table($$renderer, $$props) {
935
+ const $$sanitized_props = $.sanitize_props($$props);
936
+ /**
937
+ * @license lucide-svelte v1.0.1 - ISC
938
+ *
939
+ * ISC License
940
+ *
941
+ * Copyright (c) 2026 Lucide Icons and Contributors
942
+ *
943
+ * Permission to use, copy, modify, and/or distribute this software for any
944
+ * purpose with or without fee is hereby granted, provided that the above
945
+ * copyright notice and this permission notice appear in all copies.
946
+ *
947
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
948
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
949
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
950
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
951
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
952
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
953
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
954
+ *
955
+ * ---
956
+ *
957
+ * The following Lucide icons are derived from the Feather project:
958
+ *
959
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
960
+ *
961
+ * The MIT License (MIT) (for the icons listed above)
962
+ *
963
+ * Copyright (c) 2013-present Cole Bemis
964
+ *
965
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
966
+ * of this software and associated documentation files (the "Software"), to deal
967
+ * in the Software without restriction, including without limitation the rights
968
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
969
+ * copies of the Software, and to permit persons to whom the Software is
970
+ * furnished to do so, subject to the following conditions:
971
+ *
972
+ * The above copyright notice and this permission notice shall be included in all
973
+ * copies or substantial portions of the Software.
974
+ *
975
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
976
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
977
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
978
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
979
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
980
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
981
+ * SOFTWARE.
982
+ *
983
+ */
984
+ Icon($$renderer, $.spread_props([
985
+ { name: "table" },
986
+ $$sanitized_props,
987
+ {
988
+ /**
989
+ * @component @name Table
990
+ * @description Lucide SVG icon component, renders SVG Element with children.
991
+ *
992
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxOCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDloMTgiIC8+CiAgPHBhdGggZD0iTTMgMTVoMTgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/table
993
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
994
+ *
995
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
996
+ * @returns {FunctionalComponent} Svelte component
997
+ *
998
+ */
999
+ iconNode: [
1000
+ ["path", { "d": "M12 3v18" }],
1001
+ ["rect", {
1002
+ "width": "18",
1003
+ "height": "18",
1004
+ "x": "3",
1005
+ "y": "3",
1006
+ "rx": "2"
1007
+ }],
1008
+ ["path", { "d": "M3 9h18" }],
1009
+ ["path", { "d": "M3 15h18" }]
1010
+ ],
1011
+ children: ($$renderer) => {
1012
+ $$renderer.push(`<!--[-->`);
1013
+ $.slot($$renderer, $$props, "default", {}, null);
1014
+ $$renderer.push(`<!--]-->`);
1015
+ },
1016
+ $$slots: { default: true }
1017
+ }
1018
+ ]));
1019
+ }
1020
+ //#endregion
1021
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/type.svelte
1022
+ function Type($$renderer, $$props) {
1023
+ const $$sanitized_props = $.sanitize_props($$props);
1024
+ /**
1025
+ * @license lucide-svelte v1.0.1 - ISC
1026
+ *
1027
+ * ISC License
1028
+ *
1029
+ * Copyright (c) 2026 Lucide Icons and Contributors
1030
+ *
1031
+ * Permission to use, copy, modify, and/or distribute this software for any
1032
+ * purpose with or without fee is hereby granted, provided that the above
1033
+ * copyright notice and this permission notice appear in all copies.
1034
+ *
1035
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1036
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1037
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1038
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1039
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1040
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1041
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1042
+ *
1043
+ * ---
1044
+ *
1045
+ * The following Lucide icons are derived from the Feather project:
1046
+ *
1047
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
1048
+ *
1049
+ * The MIT License (MIT) (for the icons listed above)
1050
+ *
1051
+ * Copyright (c) 2013-present Cole Bemis
1052
+ *
1053
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
1054
+ * of this software and associated documentation files (the "Software"), to deal
1055
+ * in the Software without restriction, including without limitation the rights
1056
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1057
+ * copies of the Software, and to permit persons to whom the Software is
1058
+ * furnished to do so, subject to the following conditions:
1059
+ *
1060
+ * The above copyright notice and this permission notice shall be included in all
1061
+ * copies or substantial portions of the Software.
1062
+ *
1063
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1064
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1065
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1066
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1067
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1068
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1069
+ * SOFTWARE.
1070
+ *
1071
+ */
1072
+ Icon($$renderer, $.spread_props([
1073
+ { name: "type" },
1074
+ $$sanitized_props,
1075
+ {
1076
+ /**
1077
+ * @component @name Type
1078
+ * @description Lucide SVG icon component, renders SVG Element with children.
1079
+ *
1080
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgNHYxNiIgLz4KICA8cGF0aCBkPSJNNCA3VjVhMSAxIDAgMCAxIDEtMWgxNGExIDEgMCAwIDEgMSAxdjIiIC8+CiAgPHBhdGggZD0iTTkgMjBoNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/type
1081
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
1082
+ *
1083
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
1084
+ * @returns {FunctionalComponent} Svelte component
1085
+ *
1086
+ */
1087
+ iconNode: [
1088
+ ["path", { "d": "M12 4v16" }],
1089
+ ["path", { "d": "M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2" }],
1090
+ ["path", { "d": "M9 20h6" }]
1091
+ ],
1092
+ children: ($$renderer) => {
1093
+ $$renderer.push(`<!--[-->`);
1094
+ $.slot($$renderer, $$props, "default", {}, null);
1095
+ $$renderer.push(`<!--]-->`);
1096
+ },
1097
+ $$slots: { default: true }
1098
+ }
1099
+ ]));
1100
+ }
1101
+ //#endregion
1102
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/underline.svelte
1103
+ function Underline($$renderer, $$props) {
1104
+ const $$sanitized_props = $.sanitize_props($$props);
1105
+ /**
1106
+ * @license lucide-svelte v1.0.1 - ISC
1107
+ *
1108
+ * ISC License
1109
+ *
1110
+ * Copyright (c) 2026 Lucide Icons and Contributors
1111
+ *
1112
+ * Permission to use, copy, modify, and/or distribute this software for any
1113
+ * purpose with or without fee is hereby granted, provided that the above
1114
+ * copyright notice and this permission notice appear in all copies.
1115
+ *
1116
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1117
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1118
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1119
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1120
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1121
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1122
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1123
+ *
1124
+ * ---
1125
+ *
1126
+ * The following Lucide icons are derived from the Feather project:
1127
+ *
1128
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
1129
+ *
1130
+ * The MIT License (MIT) (for the icons listed above)
1131
+ *
1132
+ * Copyright (c) 2013-present Cole Bemis
1133
+ *
1134
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
1135
+ * of this software and associated documentation files (the "Software"), to deal
1136
+ * in the Software without restriction, including without limitation the rights
1137
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1138
+ * copies of the Software, and to permit persons to whom the Software is
1139
+ * furnished to do so, subject to the following conditions:
1140
+ *
1141
+ * The above copyright notice and this permission notice shall be included in all
1142
+ * copies or substantial portions of the Software.
1143
+ *
1144
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1145
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1146
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1147
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1148
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1149
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1150
+ * SOFTWARE.
1151
+ *
1152
+ */
1153
+ Icon($$renderer, $.spread_props([
1154
+ { name: "underline" },
1155
+ $$sanitized_props,
1156
+ {
1157
+ /**
1158
+ * @component @name Underline
1159
+ * @description Lucide SVG icon component, renders SVG Element with children.
1160
+ *
1161
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiA0djZhNiA2IDAgMCAwIDEyIDBWNCIgLz4KICA8bGluZSB4MT0iNCIgeDI9IjIwIiB5MT0iMjAiIHkyPSIyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/underline
1162
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
1163
+ *
1164
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
1165
+ * @returns {FunctionalComponent} Svelte component
1166
+ *
1167
+ */
1168
+ iconNode: [["path", { "d": "M6 4v6a6 6 0 0 0 12 0V4" }], ["line", {
1169
+ "x1": "4",
1170
+ "x2": "20",
1171
+ "y1": "20",
1172
+ "y2": "20"
1173
+ }]],
1174
+ children: ($$renderer) => {
1175
+ $$renderer.push(`<!--[-->`);
1176
+ $.slot($$renderer, $$props, "default", {}, null);
1177
+ $$renderer.push(`<!--]-->`);
1178
+ },
1179
+ $$slots: { default: true }
1180
+ }
1181
+ ]));
1182
+ }
1183
+ //#endregion
1184
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/undo.svelte
1185
+ function Undo($$renderer, $$props) {
1186
+ const $$sanitized_props = $.sanitize_props($$props);
1187
+ /**
1188
+ * @license lucide-svelte v1.0.1 - ISC
1189
+ *
1190
+ * ISC License
1191
+ *
1192
+ * Copyright (c) 2026 Lucide Icons and Contributors
1193
+ *
1194
+ * Permission to use, copy, modify, and/or distribute this software for any
1195
+ * purpose with or without fee is hereby granted, provided that the above
1196
+ * copyright notice and this permission notice appear in all copies.
1197
+ *
1198
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1199
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1200
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1201
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1202
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1203
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1204
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1205
+ *
1206
+ * ---
1207
+ *
1208
+ * The following Lucide icons are derived from the Feather project:
1209
+ *
1210
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
1211
+ *
1212
+ * The MIT License (MIT) (for the icons listed above)
1213
+ *
1214
+ * Copyright (c) 2013-present Cole Bemis
1215
+ *
1216
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
1217
+ * of this software and associated documentation files (the "Software"), to deal
1218
+ * in the Software without restriction, including without limitation the rights
1219
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1220
+ * copies of the Software, and to permit persons to whom the Software is
1221
+ * furnished to do so, subject to the following conditions:
1222
+ *
1223
+ * The above copyright notice and this permission notice shall be included in all
1224
+ * copies or substantial portions of the Software.
1225
+ *
1226
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1227
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1228
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1229
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1230
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1231
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1232
+ * SOFTWARE.
1233
+ *
1234
+ */
1235
+ Icon($$renderer, $.spread_props([
1236
+ { name: "undo" },
1237
+ $$sanitized_props,
1238
+ {
1239
+ /**
1240
+ * @component @name Undo
1241
+ * @description Lucide SVG icon component, renders SVG Element with children.
1242
+ *
1243
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3djZoNiIgLz4KICA8cGF0aCBkPSJNMjEgMTdhOSA5IDAgMCAwLTktOSA5IDkgMCAwIDAtNiAyLjNMMyAxMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/undo
1244
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
1245
+ *
1246
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
1247
+ * @returns {FunctionalComponent} Svelte component
1248
+ *
1249
+ */
1250
+ iconNode: [["path", { "d": "M3 7v6h6" }], ["path", { "d": "M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13" }]],
1251
+ children: ($$renderer) => {
1252
+ $$renderer.push(`<!--[-->`);
1253
+ $.slot($$renderer, $$props, "default", {}, null);
1254
+ $$renderer.push(`<!--]-->`);
1255
+ },
1256
+ $$slots: { default: true }
1257
+ }
1258
+ ]));
1259
+ }
1260
+ //#endregion
1261
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/code-xml.svelte
1262
+ function Code_xml($$renderer, $$props) {
1263
+ const $$sanitized_props = $.sanitize_props($$props);
1264
+ /**
1265
+ * @license lucide-svelte v1.0.1 - ISC
1266
+ *
1267
+ * ISC License
1268
+ *
1269
+ * Copyright (c) 2026 Lucide Icons and Contributors
1270
+ *
1271
+ * Permission to use, copy, modify, and/or distribute this software for any
1272
+ * purpose with or without fee is hereby granted, provided that the above
1273
+ * copyright notice and this permission notice appear in all copies.
1274
+ *
1275
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1276
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1277
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1278
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1279
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1280
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1281
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1282
+ *
1283
+ * ---
1284
+ *
1285
+ * The following Lucide icons are derived from the Feather project:
1286
+ *
1287
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
1288
+ *
1289
+ * The MIT License (MIT) (for the icons listed above)
1290
+ *
1291
+ * Copyright (c) 2013-present Cole Bemis
1292
+ *
1293
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
1294
+ * of this software and associated documentation files (the "Software"), to deal
1295
+ * in the Software without restriction, including without limitation the rights
1296
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1297
+ * copies of the Software, and to permit persons to whom the Software is
1298
+ * furnished to do so, subject to the following conditions:
1299
+ *
1300
+ * The above copyright notice and this permission notice shall be included in all
1301
+ * copies or substantial portions of the Software.
1302
+ *
1303
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1304
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1305
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1306
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1307
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1308
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1309
+ * SOFTWARE.
1310
+ *
1311
+ */
1312
+ Icon($$renderer, $.spread_props([
1313
+ { name: "code-xml" },
1314
+ $$sanitized_props,
1315
+ {
1316
+ /**
1317
+ * @component @name CodeXml
1318
+ * @description Lucide SVG icon component, renders SVG Element with children.
1319
+ *
1320
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTYgNC00LTQtNCIgLz4KICA8cGF0aCBkPSJtNiA4LTQgNCA0IDQiIC8+CiAgPHBhdGggZD0ibTE0LjUgNC01IDE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/code-xml
1321
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
1322
+ *
1323
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
1324
+ * @returns {FunctionalComponent} Svelte component
1325
+ *
1326
+ */
1327
+ iconNode: [
1328
+ ["path", { "d": "m18 16 4-4-4-4" }],
1329
+ ["path", { "d": "m6 8-4 4 4 4" }],
1330
+ ["path", { "d": "m14.5 4-5 16" }]
1331
+ ],
1332
+ children: ($$renderer) => {
1333
+ $$renderer.push(`<!--[-->`);
1334
+ $.slot($$renderer, $$props, "default", {}, null);
1335
+ $$renderer.push(`<!--]-->`);
1336
+ },
1337
+ $$slots: { default: true }
1338
+ }
1339
+ ]));
1340
+ }
1341
+ //#endregion
1342
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/text-align-center.svelte
1343
+ function Text_align_center($$renderer, $$props) {
1344
+ const $$sanitized_props = $.sanitize_props($$props);
1345
+ /**
1346
+ * @license lucide-svelte v1.0.1 - ISC
1347
+ *
1348
+ * ISC License
1349
+ *
1350
+ * Copyright (c) 2026 Lucide Icons and Contributors
1351
+ *
1352
+ * Permission to use, copy, modify, and/or distribute this software for any
1353
+ * purpose with or without fee is hereby granted, provided that the above
1354
+ * copyright notice and this permission notice appear in all copies.
1355
+ *
1356
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1357
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1358
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1359
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1360
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1361
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1362
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1363
+ *
1364
+ * ---
1365
+ *
1366
+ * The following Lucide icons are derived from the Feather project:
1367
+ *
1368
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
1369
+ *
1370
+ * The MIT License (MIT) (for the icons listed above)
1371
+ *
1372
+ * Copyright (c) 2013-present Cole Bemis
1373
+ *
1374
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
1375
+ * of this software and associated documentation files (the "Software"), to deal
1376
+ * in the Software without restriction, including without limitation the rights
1377
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1378
+ * copies of the Software, and to permit persons to whom the Software is
1379
+ * furnished to do so, subject to the following conditions:
1380
+ *
1381
+ * The above copyright notice and this permission notice shall be included in all
1382
+ * copies or substantial portions of the Software.
1383
+ *
1384
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1385
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1386
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1387
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1388
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1389
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1390
+ * SOFTWARE.
1391
+ *
1392
+ */
1393
+ Icon($$renderer, $.spread_props([
1394
+ { name: "text-align-center" },
1395
+ $$sanitized_props,
1396
+ {
1397
+ /**
1398
+ * @component @name TextAlignCenter
1399
+ * @description Lucide SVG icon component, renders SVG Element with children.
1400
+ *
1401
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xNyAxMkg3IiAvPgogIDxwYXRoIGQ9Ik0xOSAxOUg1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/text-align-center
1402
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
1403
+ *
1404
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
1405
+ * @returns {FunctionalComponent} Svelte component
1406
+ *
1407
+ */
1408
+ iconNode: [
1409
+ ["path", { "d": "M21 5H3" }],
1410
+ ["path", { "d": "M17 12H7" }],
1411
+ ["path", { "d": "M19 19H5" }]
1412
+ ],
1413
+ children: ($$renderer) => {
1414
+ $$renderer.push(`<!--[-->`);
1415
+ $.slot($$renderer, $$props, "default", {}, null);
1416
+ $$renderer.push(`<!--]-->`);
1417
+ },
1418
+ $$slots: { default: true }
1419
+ }
1420
+ ]));
1421
+ }
1422
+ //#endregion
1423
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/text-align-end.svelte
1424
+ function Text_align_end($$renderer, $$props) {
1425
+ const $$sanitized_props = $.sanitize_props($$props);
1426
+ /**
1427
+ * @license lucide-svelte v1.0.1 - ISC
1428
+ *
1429
+ * ISC License
1430
+ *
1431
+ * Copyright (c) 2026 Lucide Icons and Contributors
1432
+ *
1433
+ * Permission to use, copy, modify, and/or distribute this software for any
1434
+ * purpose with or without fee is hereby granted, provided that the above
1435
+ * copyright notice and this permission notice appear in all copies.
1436
+ *
1437
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1438
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1439
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1440
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1441
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1442
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1443
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1444
+ *
1445
+ * ---
1446
+ *
1447
+ * The following Lucide icons are derived from the Feather project:
1448
+ *
1449
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
1450
+ *
1451
+ * The MIT License (MIT) (for the icons listed above)
1452
+ *
1453
+ * Copyright (c) 2013-present Cole Bemis
1454
+ *
1455
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
1456
+ * of this software and associated documentation files (the "Software"), to deal
1457
+ * in the Software without restriction, including without limitation the rights
1458
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1459
+ * copies of the Software, and to permit persons to whom the Software is
1460
+ * furnished to do so, subject to the following conditions:
1461
+ *
1462
+ * The above copyright notice and this permission notice shall be included in all
1463
+ * copies or substantial portions of the Software.
1464
+ *
1465
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1466
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1467
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1468
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1469
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1470
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1471
+ * SOFTWARE.
1472
+ *
1473
+ */
1474
+ Icon($$renderer, $.spread_props([
1475
+ { name: "text-align-end" },
1476
+ $$sanitized_props,
1477
+ {
1478
+ /**
1479
+ * @component @name TextAlignEnd
1480
+ * @description Lucide SVG icon component, renders SVG Element with children.
1481
+ *
1482
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgzIiAvPgogIDxwYXRoIGQ9Ik0yMSAxMkg5IiAvPgogIDxwYXRoIGQ9Ik0yMSAxOUg3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/text-align-end
1483
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
1484
+ *
1485
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
1486
+ * @returns {FunctionalComponent} Svelte component
1487
+ *
1488
+ */
1489
+ iconNode: [
1490
+ ["path", { "d": "M21 5H3" }],
1491
+ ["path", { "d": "M21 12H9" }],
1492
+ ["path", { "d": "M21 19H7" }]
1493
+ ],
1494
+ children: ($$renderer) => {
1495
+ $$renderer.push(`<!--[-->`);
1496
+ $.slot($$renderer, $$props, "default", {}, null);
1497
+ $$renderer.push(`<!--]-->`);
1498
+ },
1499
+ $$slots: { default: true }
1500
+ }
1501
+ ]));
1502
+ }
1503
+ //#endregion
1504
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/text-align-justify.svelte
1505
+ function Text_align_justify($$renderer, $$props) {
1506
+ const $$sanitized_props = $.sanitize_props($$props);
1507
+ /**
1508
+ * @license lucide-svelte v1.0.1 - ISC
1509
+ *
1510
+ * ISC License
1511
+ *
1512
+ * Copyright (c) 2026 Lucide Icons and Contributors
1513
+ *
1514
+ * Permission to use, copy, modify, and/or distribute this software for any
1515
+ * purpose with or without fee is hereby granted, provided that the above
1516
+ * copyright notice and this permission notice appear in all copies.
1517
+ *
1518
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1519
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1520
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1521
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1522
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1523
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1524
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1525
+ *
1526
+ * ---
1527
+ *
1528
+ * The following Lucide icons are derived from the Feather project:
1529
+ *
1530
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
1531
+ *
1532
+ * The MIT License (MIT) (for the icons listed above)
1533
+ *
1534
+ * Copyright (c) 2013-present Cole Bemis
1535
+ *
1536
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
1537
+ * of this software and associated documentation files (the "Software"), to deal
1538
+ * in the Software without restriction, including without limitation the rights
1539
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1540
+ * copies of the Software, and to permit persons to whom the Software is
1541
+ * furnished to do so, subject to the following conditions:
1542
+ *
1543
+ * The above copyright notice and this permission notice shall be included in all
1544
+ * copies or substantial portions of the Software.
1545
+ *
1546
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1547
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1548
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1549
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1550
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1551
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1552
+ * SOFTWARE.
1553
+ *
1554
+ */
1555
+ Icon($$renderer, $.spread_props([
1556
+ { name: "text-align-justify" },
1557
+ $$sanitized_props,
1558
+ {
1559
+ /**
1560
+ * @component @name TextAlignJustify
1561
+ * @description Lucide SVG icon component, renders SVG Element with children.
1562
+ *
1563
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA1aDE4IiAvPgogIDxwYXRoIGQ9Ik0zIDEyaDE4IiAvPgogIDxwYXRoIGQ9Ik0zIDE5aDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/text-align-justify
1564
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
1565
+ *
1566
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
1567
+ * @returns {FunctionalComponent} Svelte component
1568
+ *
1569
+ */
1570
+ iconNode: [
1571
+ ["path", { "d": "M3 5h18" }],
1572
+ ["path", { "d": "M3 12h18" }],
1573
+ ["path", { "d": "M3 19h18" }]
1574
+ ],
1575
+ children: ($$renderer) => {
1576
+ $$renderer.push(`<!--[-->`);
1577
+ $.slot($$renderer, $$props, "default", {}, null);
1578
+ $$renderer.push(`<!--]-->`);
1579
+ },
1580
+ $$slots: { default: true }
1581
+ }
1582
+ ]));
1583
+ }
1584
+ //#endregion
1585
+ //#region ../node_modules/.bun/lucide-svelte@1.0.1+ff5f301bb2db9a0d/node_modules/lucide-svelte/dist/icons/text-align-start.svelte
1586
+ function Text_align_start($$renderer, $$props) {
1587
+ const $$sanitized_props = $.sanitize_props($$props);
1588
+ /**
1589
+ * @license lucide-svelte v1.0.1 - ISC
1590
+ *
1591
+ * ISC License
1592
+ *
1593
+ * Copyright (c) 2026 Lucide Icons and Contributors
1594
+ *
1595
+ * Permission to use, copy, modify, and/or distribute this software for any
1596
+ * purpose with or without fee is hereby granted, provided that the above
1597
+ * copyright notice and this permission notice appear in all copies.
1598
+ *
1599
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1600
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1601
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1602
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1603
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1604
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1605
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1606
+ *
1607
+ * ---
1608
+ *
1609
+ * The following Lucide icons are derived from the Feather project:
1610
+ *
1611
+ * airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
1612
+ *
1613
+ * The MIT License (MIT) (for the icons listed above)
1614
+ *
1615
+ * Copyright (c) 2013-present Cole Bemis
1616
+ *
1617
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
1618
+ * of this software and associated documentation files (the "Software"), to deal
1619
+ * in the Software without restriction, including without limitation the rights
1620
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1621
+ * copies of the Software, and to permit persons to whom the Software is
1622
+ * furnished to do so, subject to the following conditions:
1623
+ *
1624
+ * The above copyright notice and this permission notice shall be included in all
1625
+ * copies or substantial portions of the Software.
1626
+ *
1627
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1628
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1629
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1630
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1631
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1632
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1633
+ * SOFTWARE.
1634
+ *
1635
+ */
1636
+ Icon($$renderer, $.spread_props([
1637
+ { name: "text-align-start" },
1638
+ $$sanitized_props,
1639
+ {
1640
+ /**
1641
+ * @component @name TextAlignStart
1642
+ * @description Lucide SVG icon component, renders SVG Element with children.
1643
+ *
1644
+ * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgNUgzIiAvPgogIDxwYXRoIGQ9Ik0xNSAxMkgzIiAvPgogIDxwYXRoIGQ9Ik0xNyAxOUgzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/text-align-start
1645
+ * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation
1646
+ *
1647
+ * @param {Object} props - Lucide icons props and any valid SVG attribute
1648
+ * @returns {FunctionalComponent} Svelte component
1649
+ *
1650
+ */
1651
+ iconNode: [
1652
+ ["path", { "d": "M21 5H3" }],
1653
+ ["path", { "d": "M15 12H3" }],
1654
+ ["path", { "d": "M17 19H3" }]
1655
+ ],
1656
+ children: ($$renderer) => {
1657
+ $$renderer.push(`<!--[-->`);
1658
+ $.slot($$renderer, $$props, "default", {}, null);
1659
+ $$renderer.push(`<!--]-->`);
1660
+ },
1661
+ $$slots: { default: true }
1662
+ }
1663
+ ]));
1664
+ }
1665
+ //#endregion
1666
+ //#region ../node_modules/.bun/svelte-tiptap@3.0.1+431d21c4dd544be7/node_modules/svelte-tiptap/dist/Editor.js
1667
+ var Editor$1 = class extends Editor {
1668
+ contentElement = null;
1669
+ };
1670
+ //#endregion
1671
+ //#region ../node_modules/.bun/svelte-tiptap@3.0.1+431d21c4dd544be7/node_modules/svelte-tiptap/dist/createEditor.js
1672
+ var createEditor = (options) => {
1673
+ const editor = new Editor$1(options);
1674
+ return readable(editor, (set) => {
1675
+ editor.on("transaction", () => {
1676
+ set(editor);
1677
+ });
1678
+ return () => {
1679
+ editor.destroy();
1680
+ };
1681
+ });
1682
+ };
1683
+ //#endregion
1684
+ //#region ../node_modules/.bun/svelte-tiptap@3.0.1+431d21c4dd544be7/node_modules/svelte-tiptap/dist/EditorContent.svelte
1685
+ function EditorContent($$renderer, $$props) {
1686
+ $$renderer.component(($$renderer) => {
1687
+ const { editor, children, class: className } = $$props;
1688
+ const init = async () => {
1689
+ await tick();
1690
+ };
1691
+ onMount(init);
1692
+ onDestroy(() => {
1693
+ if (!editor) return;
1694
+ editor.contentElement = null;
1695
+ if (!editor.options.element?.firstChild) return;
1696
+ const newElement = document.createElement("div");
1697
+ newElement.append(...Array.from(editor.options.element?.childNodes || []));
1698
+ editor.setOptions({ element: newElement });
1699
+ });
1700
+ $$renderer.push(`<div${$.attr_class($.clsx(className))}></div> `);
1701
+ if (children) {
1702
+ $$renderer.push("<!--[0-->");
1703
+ children($$renderer);
1704
+ $$renderer.push(`<!---->`);
1705
+ } else $$renderer.push("<!--[-1-->");
1706
+ $$renderer.push(`<!--]-->`);
1707
+ });
1708
+ }
1709
+ //#endregion
1710
+ //#region src/lib/components/editor/LinkDialog.svelte
1711
+ function LinkDialog($$renderer, $$props) {
1712
+ $$renderer.component(($$renderer) => {
1713
+ let { open = false, editor = null } = $$props;
1714
+ let url = "";
1715
+ let inputEl = null;
1716
+ function close() {
1717
+ open = false;
1718
+ }
1719
+ function handleCancel() {
1720
+ close();
1721
+ }
1722
+ function handleApply() {
1723
+ if (!editor) {
1724
+ close();
1725
+ return;
1726
+ }
1727
+ const trimmed = url.trim();
1728
+ if (trimmed === "") editor.chain().focus().extendMarkRange("link").unsetLink().run();
1729
+ else {
1730
+ const normalized = /^(https?:\/\/|mailto:|tel:|\/|#)/i.test(trimmed) ? trimmed : `https://${trimmed}`;
1731
+ const { from, to } = editor.state.selection;
1732
+ if (from === to) editor.chain().focus().insertContent({
1733
+ type: "text",
1734
+ text: normalized,
1735
+ marks: [{
1736
+ type: "link",
1737
+ attrs: { href: normalized }
1738
+ }]
1739
+ }).run();
1740
+ else editor.chain().focus().extendMarkRange("link").setLink({ href: normalized }).run();
1741
+ }
1742
+ close();
1743
+ }
1744
+ let $$settled = true;
1745
+ let $$inner_renderer;
1746
+ function $$render_inner($$renderer) {
1747
+ Dialog($$renderer, {
1748
+ get open() {
1749
+ return open;
1750
+ },
1751
+ set open($$value) {
1752
+ open = $$value;
1753
+ $$settled = false;
1754
+ },
1755
+ children: ($$renderer) => {
1756
+ Dialog_header($$renderer, {
1757
+ children: ($$renderer) => {
1758
+ Dialog_title($$renderer, {
1759
+ children: ($$renderer) => {
1760
+ $$renderer.push(`<!---->${$.escape(editor_toolbar_link())}`);
1761
+ },
1762
+ $$slots: { default: true }
1763
+ });
1764
+ },
1765
+ $$slots: { default: true }
1766
+ });
1767
+ $$renderer.push(`<!----> <div class="link-dialog-body svelte-1cfbs6u"><label for="link-url" class="link-dialog-label svelte-1cfbs6u">${$.escape(editor_enter_url())}</label> `);
1768
+ Input($$renderer, {
1769
+ id: "link-url",
1770
+ type: "url",
1771
+ placeholder: "https://example.com",
1772
+ onkeydown: (e) => {
1773
+ if (e.key === "Enter") {
1774
+ e.preventDefault();
1775
+ handleApply();
1776
+ }
1777
+ },
1778
+ get ref() {
1779
+ return inputEl;
1780
+ },
1781
+ set ref($$value) {
1782
+ inputEl = $$value;
1783
+ $$settled = false;
1784
+ },
1785
+ get value() {
1786
+ return url;
1787
+ },
1788
+ set value($$value) {
1789
+ url = $$value;
1790
+ $$settled = false;
1791
+ }
1792
+ });
1793
+ $$renderer.push(`<!----></div> `);
1794
+ Dialog_footer($$renderer, {
1795
+ children: ($$renderer) => {
1796
+ Button($$renderer, {
1797
+ variant: "outline",
1798
+ type: "button",
1799
+ onclick: handleCancel,
1800
+ children: ($$renderer) => {
1801
+ $$renderer.push(`<!---->${$.escape(action_cancel())}`);
1802
+ },
1803
+ $$slots: { default: true }
1804
+ });
1805
+ $$renderer.push(`<!----> `);
1806
+ Button($$renderer, {
1807
+ type: "button",
1808
+ onclick: handleApply,
1809
+ children: ($$renderer) => {
1810
+ $$renderer.push(`<!---->${$.escape(action_save())}`);
1811
+ },
1812
+ $$slots: { default: true }
1813
+ });
1814
+ $$renderer.push(`<!---->`);
1815
+ },
1816
+ $$slots: { default: true }
1817
+ });
1818
+ $$renderer.push(`<!---->`);
1819
+ },
1820
+ $$slots: { default: true }
1821
+ });
1822
+ }
1823
+ do {
1824
+ $$settled = true;
1825
+ $$inner_renderer = $$renderer.copy();
1826
+ $$render_inner($$inner_renderer);
1827
+ } while (!$$settled);
1828
+ $$renderer.subsume($$inner_renderer);
1829
+ $.bind_props($$props, { open });
1830
+ });
1831
+ }
1832
+ //#endregion
1833
+ //#region src/lib/components/editor/EditorToolbar.svelte
1834
+ function EditorToolbar($$renderer, $$props) {
1835
+ $$renderer.component(($$renderer) => {
1836
+ const { editor = null, documentId = "", toolbarExtensions = null, editorActions = [], editorActionContext, minimal = false } = $$props;
1837
+ function createExtensionCommands() {
1838
+ return {
1839
+ focus: () => editor?.commands.focus(),
1840
+ insertContent: (content) => editor?.commands.insertContent(content),
1841
+ setContent: (content) => editor?.commands.setContent(content),
1842
+ getJSON: () => editor?.getJSON(),
1843
+ getText: () => editor?.getText(),
1844
+ getHTML: () => editor?.getHTML()
1845
+ };
1846
+ }
1847
+ function actionIsDisabled(action) {
1848
+ if (typeof action.disabled === "boolean") return action.disabled;
1849
+ if (!action.disabled) return false;
1850
+ try {
1851
+ return action.disabled(createEditorActionContext());
1852
+ } catch {
1853
+ return true;
1854
+ }
1855
+ }
1856
+ function createEditorActionContext() {
1857
+ return {
1858
+ documentId: editorActionContext?.documentId ?? documentId,
1859
+ content: editorActionContext?.content ?? "",
1860
+ contentJson: editorActionContext?.contentJson,
1861
+ selection: editor?.state.selection.toJSON(),
1862
+ commands: createExtensionCommands()
1863
+ };
1864
+ }
1865
+ const HIGHLIGHT_COLORS = [
1866
+ {
1867
+ name: editor_highlight_yellow(),
1868
+ value: "#fde68a"
1869
+ },
1870
+ {
1871
+ name: editor_highlight_orange(),
1872
+ value: "#fed7aa"
1873
+ },
1874
+ {
1875
+ name: editor_highlight_red(),
1876
+ value: "#fecaca"
1877
+ },
1878
+ {
1879
+ name: editor_highlight_green(),
1880
+ value: "#bbf7d0"
1881
+ },
1882
+ {
1883
+ name: editor_highlight_blue(),
1884
+ value: "#bfdbfe"
1885
+ },
1886
+ {
1887
+ name: editor_highlight_purple(),
1888
+ value: "#e9d5ff"
1889
+ },
1890
+ {
1891
+ name: editor_highlight_pink(),
1892
+ value: "#fbcfe8"
1893
+ },
1894
+ {
1895
+ name: editor_highlight_gray(),
1896
+ value: "#e5e7eb"
1897
+ }
1898
+ ];
1899
+ let linkDialogOpen = false;
1900
+ let highlightPickerOpen = false;
1901
+ let emojiPickerOpen = false;
1902
+ let tablePickerOpen = false;
1903
+ let headingDropdownOpen = false;
1904
+ let listDropdownOpen = false;
1905
+ let alignDropdownOpen = false;
1906
+ let copyConfirmation = false;
1907
+ let snapshotDialogOpen = false;
1908
+ let editorRevision = 0;
1909
+ const readEditorRevision = $.derived(() => editorRevision);
1910
+ const activeStates = $.derived(() => {
1911
+ readEditorRevision();
1912
+ if (!editor) return {};
1913
+ return {
1914
+ bold: editor.isActive("bold"),
1915
+ italic: editor.isActive("italic"),
1916
+ underline: editor.isActive("underline"),
1917
+ heading1: editor.isActive("heading", { level: 1 }),
1918
+ heading2: editor.isActive("heading", { level: 2 }),
1919
+ heading3: editor.isActive("heading", { level: 3 }),
1920
+ bulletList: editor.isActive("bulletList"),
1921
+ orderedList: editor.isActive("orderedList"),
1922
+ taskList: editor.isActive("taskList"),
1923
+ blockquote: editor.isActive("blockquote"),
1924
+ codeBlock: editor.isActive("codeBlock"),
1925
+ link: editor.isActive("link"),
1926
+ highlight: editor.isActive("highlight"),
1927
+ alignLeft: editor.isActive({ textAlign: "left" }),
1928
+ alignCenter: editor.isActive({ textAlign: "center" }),
1929
+ alignRight: editor.isActive({ textAlign: "right" }),
1930
+ alignJustify: editor.isActive({ textAlign: "justify" })
1931
+ };
1932
+ });
1933
+ $.derived(() => {
1934
+ readEditorRevision();
1935
+ if (!editor?.isActive("table")) return {
1936
+ insideTable: false,
1937
+ canMerge: false,
1938
+ canSplit: false
1939
+ };
1940
+ return {
1941
+ insideTable: true,
1942
+ canMerge: editor.can().mergeCells(),
1943
+ canSplit: editor.can().splitCell()
1944
+ };
1945
+ });
1946
+ const activeHeadingLevel = $.derived(() => {
1947
+ readEditorRevision();
1948
+ if (!editor) return null;
1949
+ if (editor.isActive("heading", { level: 1 })) return 1;
1950
+ if (editor.isActive("heading", { level: 2 })) return 2;
1951
+ if (editor.isActive("heading", { level: 3 })) return 3;
1952
+ return null;
1953
+ });
1954
+ const activeAlignment = $.derived(() => {
1955
+ readEditorRevision();
1956
+ if (!editor) return "left";
1957
+ if (editor.isActive({ textAlign: "center" })) return "center";
1958
+ if (editor.isActive({ textAlign: "right" })) return "right";
1959
+ if (editor.isActive({ textAlign: "justify" })) return "justify";
1960
+ return "left";
1961
+ });
1962
+ const activeHighlightColor = $.derived(() => {
1963
+ if (!editor) return null;
1964
+ readEditorRevision();
1965
+ if (!editor.isActive("highlight")) return null;
1966
+ const color = editor.getAttributes("highlight").color ?? "";
1967
+ return HIGHLIGHT_COLORS.find((c) => c.value === color)?.value ?? null;
1968
+ });
1969
+ function isDisabled() {
1970
+ if (!editor) return true;
1971
+ return !editor.isEditable;
1972
+ }
1973
+ let imageUploading = false;
1974
+ let isScrolled = false;
1975
+ function undoRedoSnippet($$renderer) {
1976
+ $$renderer.push(`<button class="toolbar-btn svelte-vm4iq2"${$.attr("disabled", isDisabled(), true)}${$.attr("title", editor_toolbar_undo())}${$.attr("aria-label", editor_toolbar_undo())} type="button">`);
1977
+ Undo($$renderer, { size: 16 });
1978
+ $$renderer.push(`<!----></button> <button class="toolbar-btn svelte-vm4iq2"${$.attr("disabled", isDisabled(), true)}${$.attr("title", editor_toolbar_redo())}${$.attr("aria-label", editor_toolbar_redo())} type="button">`);
1979
+ Redo($$renderer, { size: 16 });
1980
+ $$renderer.push(`<!----></button> <div class="toolbar-divider svelte-vm4iq2" aria-hidden="true"></div>`);
1981
+ }
1982
+ function basicFormatSnippet($$renderer) {
1983
+ $$renderer.push(`<button${$.attr_class("toolbar-btn svelte-vm4iq2", void 0, { "active": activeStates().bold ?? false })}${$.attr("disabled", isDisabled(), true)}${$.attr("title", editor_toolbar_bold())}${$.attr("aria-label", editor_toolbar_bold())}${$.attr("aria-pressed", activeStates().bold ?? false)} type="button">`);
1984
+ Bold($$renderer, { size: 16 });
1985
+ $$renderer.push(`<!----></button> <button${$.attr_class("toolbar-btn svelte-vm4iq2", void 0, { "active": activeStates().italic ?? false })}${$.attr("disabled", isDisabled(), true)}${$.attr("title", editor_toolbar_italic())}${$.attr("aria-label", editor_toolbar_italic())}${$.attr("aria-pressed", activeStates().italic ?? false)} type="button">`);
1986
+ Italic($$renderer, { size: 16 });
1987
+ $$renderer.push(`<!----></button> <button${$.attr_class("toolbar-btn svelte-vm4iq2", void 0, { "active": activeStates().underline ?? false })}${$.attr("disabled", isDisabled(), true)}${$.attr("title", editor_toolbar_underline())}${$.attr("aria-label", editor_toolbar_underline())}${$.attr("aria-pressed", activeStates().underline ?? false)} type="button">`);
1988
+ Underline($$renderer, { size: 16 });
1989
+ $$renderer.push(`<!----></button> <div class="toolbar-divider svelte-vm4iq2" aria-hidden="true"></div>`);
1990
+ }
1991
+ function headingDropdown($$renderer) {
1992
+ $$renderer.push(`<div class="dropdown svelte-vm4iq2"><button${$.attr_class("toolbar-btn dropdown-trigger svelte-vm4iq2", void 0, { "active": activeHeadingLevel() !== null })}${$.attr("disabled", isDisabled(), true)}${$.attr("title", editor_toolbar_heading())}${$.attr("aria-label", editor_toolbar_heading())} aria-haspopup="true"${$.attr("aria-expanded", headingDropdownOpen)} type="button">`);
1993
+ if (activeHeadingLevel() !== null) {
1994
+ $$renderer.push("<!--[0-->");
1995
+ Heading_1($$renderer, { size: 16 });
1996
+ } else {
1997
+ $$renderer.push("<!--[-1-->");
1998
+ Type($$renderer, { size: 16 });
1999
+ }
2000
+ $$renderer.push(`<!--]--> `);
2001
+ Chevron_down($$renderer, {
2002
+ size: 14,
2003
+ class: "dropdown-chevron"
2004
+ });
2005
+ $$renderer.push(`<!----></button> `);
2006
+ $$renderer.push("<!--[-1-->");
2007
+ $$renderer.push(`<!--]--></div> <div class="toolbar-divider svelte-vm4iq2" aria-hidden="true"></div>`);
2008
+ }
2009
+ function listDropdown($$renderer) {
2010
+ $$renderer.push(`<div class="dropdown svelte-vm4iq2"><button${$.attr_class("toolbar-btn dropdown-trigger svelte-vm4iq2", void 0, { "active": (activeStates().bulletList ?? false) || (activeStates().orderedList ?? false) })}${$.attr("disabled", isDisabled(), true)}${$.attr("title", editor_toolbar_list())}${$.attr("aria-label", editor_toolbar_list())} aria-haspopup="true"${$.attr("aria-expanded", listDropdownOpen)} type="button">`);
2011
+ List($$renderer, { size: 16 });
2012
+ $$renderer.push(`<!----> `);
2013
+ Chevron_down($$renderer, {
2014
+ size: 14,
2015
+ class: "dropdown-chevron"
2016
+ });
2017
+ $$renderer.push(`<!----></button> `);
2018
+ $$renderer.push("<!--[-1-->");
2019
+ $$renderer.push(`<!--]--></div> <div class="toolbar-divider svelte-vm4iq2" aria-hidden="true"></div>`);
2020
+ }
2021
+ function alignDropdown($$renderer) {
2022
+ $$renderer.push(`<div class="dropdown svelte-vm4iq2"><button${$.attr_class("toolbar-btn dropdown-trigger svelte-vm4iq2", void 0, { "active": activeAlignment() !== "left" })}${$.attr("disabled", isDisabled(), true)}${$.attr("title", editor_toolbar_align())}${$.attr("aria-label", editor_toolbar_align())} aria-haspopup="true"${$.attr("aria-expanded", alignDropdownOpen)} type="button">`);
2023
+ if (activeAlignment() === "center") {
2024
+ $$renderer.push("<!--[0-->");
2025
+ Text_align_center($$renderer, { size: 16 });
2026
+ } else if (activeAlignment() === "right") {
2027
+ $$renderer.push("<!--[1-->");
2028
+ Text_align_end($$renderer, { size: 16 });
2029
+ } else if (activeAlignment() === "justify") {
2030
+ $$renderer.push("<!--[2-->");
2031
+ Text_align_justify($$renderer, { size: 16 });
2032
+ } else {
2033
+ $$renderer.push("<!--[-1-->");
2034
+ Text_align_start($$renderer, { size: 16 });
2035
+ }
2036
+ $$renderer.push(`<!--]--> `);
2037
+ Chevron_down($$renderer, {
2038
+ size: 14,
2039
+ class: "dropdown-chevron"
2040
+ });
2041
+ $$renderer.push(`<!----></button> `);
2042
+ $$renderer.push("<!--[-1-->");
2043
+ $$renderer.push(`<!--]--></div> <div class="toolbar-divider svelte-vm4iq2" aria-hidden="true"></div>`);
2044
+ }
2045
+ function blockFormatSnippet($$renderer) {
2046
+ $$renderer.push(`<button${$.attr_class("toolbar-btn svelte-vm4iq2", void 0, { "active": activeStates().codeBlock ?? false })}${$.attr("disabled", isDisabled(), true)}${$.attr("title", editor_toolbar_code_block())}${$.attr("aria-label", editor_toolbar_code_block())}${$.attr("aria-pressed", activeStates().codeBlock ?? false)} type="button">`);
2047
+ Code_xml($$renderer, { size: 16 });
2048
+ $$renderer.push(`<!----></button> <button${$.attr_class("toolbar-btn svelte-vm4iq2", void 0, { "active": activeStates().blockquote ?? false })}${$.attr("disabled", isDisabled(), true)} title="Quote" aria-label="Quote"${$.attr("aria-pressed", activeStates().blockquote ?? false)} type="button">`);
2049
+ Quote($$renderer, { size: 16 });
2050
+ $$renderer.push(`<!----></button> <button class="toolbar-btn svelte-vm4iq2"${$.attr("disabled", isDisabled(), true)}${$.attr("title", editor_toolbar_horizontal_rule())}${$.attr("aria-label", editor_toolbar_horizontal_rule())} type="button">`);
2051
+ Minus($$renderer, { size: 16 });
2052
+ $$renderer.push(`<!----></button> <div class="toolbar-divider svelte-vm4iq2" aria-hidden="true"></div>`);
2053
+ }
2054
+ function linkBtn($$renderer) {
2055
+ $$renderer.push(`<button${$.attr_class("toolbar-btn svelte-vm4iq2", void 0, { "active": activeStates().link ?? false })}${$.attr("disabled", isDisabled(), true)}${$.attr("title", editor_toolbar_link())}${$.attr("aria-label", editor_toolbar_link())}${$.attr("aria-pressed", activeStates().link ?? false)} type="button">`);
2056
+ Link($$renderer, { size: 16 });
2057
+ $$renderer.push(`<!----></button>`);
2058
+ }
2059
+ function highlightPicker($$renderer) {
2060
+ $$renderer.push(`<div class="highlight-picker svelte-vm4iq2"><button${$.attr_class("toolbar-btn highlight-btn svelte-vm4iq2", void 0, { "active": activeStates().highlight ?? false })}${$.attr("disabled", isDisabled(), true)}${$.attr("title", editor_toolbar_highlight())}${$.attr("aria-label", editor_toolbar_highlight())}${$.attr("aria-pressed", activeStates().highlight ?? false)} aria-haspopup="true"${$.attr("aria-expanded", highlightPickerOpen)} type="button">`);
2061
+ Highlighter($$renderer, { size: 16 });
2062
+ $$renderer.push(`<!----> <span${$.attr_class("highlight-dot svelte-vm4iq2", void 0, { "visible": activeHighlightColor() !== null })} aria-hidden="true"${$.attr_style("", { "background-color": activeHighlightColor() ?? "transparent" })}></span></button> `);
2063
+ $$renderer.push("<!--[-1-->");
2064
+ $$renderer.push(`<!--]--></div>`);
2065
+ }
2066
+ function emojiPicker($$renderer) {
2067
+ $$renderer.push(`<div class="emoji-picker svelte-vm4iq2"><button class="toolbar-btn svelte-vm4iq2"${$.attr("disabled", isDisabled(), true)}${$.attr("title", editor_toolbar_emoji())}${$.attr("aria-label", editor_toolbar_emoji())} aria-haspopup="true"${$.attr("aria-expanded", emojiPickerOpen)} type="button">`);
2068
+ Smile($$renderer, { size: 16 });
2069
+ $$renderer.push(`<!----></button> `);
2070
+ $$renderer.push("<!--[-1-->");
2071
+ $$renderer.push(`<!--]--></div>`);
2072
+ }
2073
+ function tablePicker($$renderer) {
2074
+ $$renderer.push(`<div class="table-picker svelte-vm4iq2"><button class="toolbar-btn svelte-vm4iq2"${$.attr("disabled", isDisabled(), true)} title="Insert table" aria-label="Insert table" aria-haspopup="true"${$.attr("aria-expanded", tablePickerOpen)} type="button">`);
2075
+ Table($$renderer, { size: 16 });
2076
+ $$renderer.push(`<!----></button> `);
2077
+ $$renderer.push("<!--[-1-->");
2078
+ $$renderer.push(`<!--]--></div>`);
2079
+ }
2080
+ function imageBtn($$renderer) {
2081
+ $$renderer.push(`<button${$.attr_class("toolbar-btn image-btn svelte-vm4iq2", void 0, { "uploading": imageUploading })}${$.attr("disabled", isDisabled() || imageUploading, true)}${$.attr("title", editor_toolbar_image())}${$.attr("aria-label", editor_toolbar_image())} type="button">`);
2082
+ $$renderer.push("<!--[-1-->");
2083
+ Image($$renderer, { size: 16 });
2084
+ $$renderer.push(`<!--]--></button>`);
2085
+ }
2086
+ function copyContentSnippet($$renderer) {
2087
+ $$renderer.push(`<button${$.attr_class("toolbar-btn copy-btn svelte-vm4iq2", void 0, { "copied": copyConfirmation })}${$.attr("disabled", isDisabled(), true)}${$.attr("title", editor_toolbar_copy())}${$.attr("aria-label", editor_toolbar_copy())} type="button">`);
2088
+ $$renderer.push("<!--[-1-->");
2089
+ Copy($$renderer, { size: 16 });
2090
+ $$renderer.push(`<!--]--></button>`);
2091
+ }
2092
+ function actionsSnippet($$renderer) {
2093
+ $$renderer.push(`<button class="toolbar-btn snapshot-btn svelte-vm4iq2"${$.attr("disabled", isDisabled() || !documentId, true)}${$.attr("title", version_create_snapshot())}${$.attr("aria-label", version_create_snapshot())} type="button">`);
2094
+ Camera($$renderer, { size: 16 });
2095
+ $$renderer.push(`<!----></button> `);
2096
+ copyContentSnippet($$renderer);
2097
+ $$renderer.push(`<!---->`);
2098
+ }
2099
+ let $$settled = true;
2100
+ let $$inner_renderer;
2101
+ function $$render_inner($$renderer) {
2102
+ if (editor) {
2103
+ $$renderer.push("<!--[0-->");
2104
+ $$renderer.push("<!--[-1-->");
2105
+ $$renderer.push(`<div${$.attr_class("toolbar svelte-vm4iq2", void 0, {
2106
+ "floating-bar": isScrolled,
2107
+ "cursor-grab": isScrolled,
2108
+ "cursor-grabbing": isScrolled
2109
+ })}${$.attr_style("")} role="toolbar" tabindex="0"${$.attr("aria-label", editor_toolbar_text_formatting())}>`);
2110
+ if (minimal) {
2111
+ $$renderer.push("<!--[0-->");
2112
+ $$renderer.push(`<div class="floating-toolbar-row flex items-center gap-1.5 w-full svelte-vm4iq2">`);
2113
+ $$renderer.push("<!--[-1-->");
2114
+ $$renderer.push(`<!--]--> `);
2115
+ basicFormatSnippet($$renderer);
2116
+ $$renderer.push(`<!----> `);
2117
+ listDropdown($$renderer);
2118
+ $$renderer.push(`<!----> `);
2119
+ highlightPicker($$renderer);
2120
+ $$renderer.push(`<!----> `);
2121
+ copyContentSnippet($$renderer);
2122
+ $$renderer.push(`<!----> `);
2123
+ $$renderer.push("<!--[-1-->");
2124
+ $$renderer.push(`<!--]--></div>`);
2125
+ } else {
2126
+ $$renderer.push("<!--[-1-->");
2127
+ undoRedoSnippet($$renderer);
2128
+ $$renderer.push(`<!----> `);
2129
+ basicFormatSnippet($$renderer);
2130
+ $$renderer.push(`<!----> `);
2131
+ headingDropdown($$renderer);
2132
+ $$renderer.push(`<!----> `);
2133
+ listDropdown($$renderer);
2134
+ $$renderer.push(`<!----> `);
2135
+ alignDropdown($$renderer);
2136
+ $$renderer.push(`<!----> `);
2137
+ blockFormatSnippet($$renderer);
2138
+ $$renderer.push(`<!----> `);
2139
+ linkBtn($$renderer);
2140
+ $$renderer.push(`<!----> `);
2141
+ highlightPicker($$renderer);
2142
+ $$renderer.push(`<!----> `);
2143
+ emojiPicker($$renderer);
2144
+ $$renderer.push(`<!----> `);
2145
+ tablePicker($$renderer);
2146
+ $$renderer.push(`<!----> `);
2147
+ imageBtn($$renderer);
2148
+ $$renderer.push(`<!----> `);
2149
+ if (toolbarExtensions || editorActions.length > 0) {
2150
+ $$renderer.push("<!--[0-->");
2151
+ $$renderer.push(`<div class="toolbar-divider svelte-vm4iq2" aria-hidden="true"></div> `);
2152
+ if (toolbarExtensions) {
2153
+ $$renderer.push("<!--[0-->");
2154
+ toolbarExtensions($$renderer, { editor });
2155
+ $$renderer.push(`<!---->`);
2156
+ } else $$renderer.push("<!--[-1-->");
2157
+ $$renderer.push(`<!--]--> <!--[-->`);
2158
+ const each_array_5 = $.ensure_array_like(editorActions);
2159
+ for (let $$index_5 = 0, $$length = each_array_5.length; $$index_5 < $$length; $$index_5++) {
2160
+ let action = each_array_5[$$index_5];
2161
+ $$renderer.push(`<button type="button" class="toolbar-btn svelte-vm4iq2"${$.attr("disabled", actionIsDisabled(action), true)}${$.attr("title", action.label)}${$.attr("aria-label", action.label)}>`);
2162
+ if (action.icon) {
2163
+ $$renderer.push("<!--[0-->");
2164
+ const Icon = action.icon;
2165
+ if (Icon) {
2166
+ $$renderer.push("<!--[-->");
2167
+ Icon($$renderer, { size: 16 });
2168
+ $$renderer.push("<!--]-->");
2169
+ } else {
2170
+ $$renderer.push("<!--[!-->");
2171
+ $$renderer.push("<!--]-->");
2172
+ }
2173
+ } else {
2174
+ $$renderer.push("<!--[-1-->");
2175
+ $$renderer.push(`<span class="px-1 text-xs">${$.escape(action.label)}</span>`);
2176
+ }
2177
+ $$renderer.push(`<!--]--></button>`);
2178
+ }
2179
+ $$renderer.push(`<!--]-->`);
2180
+ } else $$renderer.push("<!--[-1-->");
2181
+ $$renderer.push(`<!--]--> <div class="toolbar-divider svelte-vm4iq2" aria-hidden="true"></div> `);
2182
+ actionsSnippet($$renderer);
2183
+ $$renderer.push(`<!---->`);
2184
+ }
2185
+ $$renderer.push(`<!--]--></div>`);
2186
+ $$renderer.push(`<!--]--> `);
2187
+ $$renderer.push("<!--[-1-->");
2188
+ $$renderer.push(`<!--]--> <input type="file" accept="image/*" class="visually-hidden-file-input svelte-vm4iq2"/> `);
2189
+ LinkDialog($$renderer, {
2190
+ editor,
2191
+ get open() {
2192
+ return linkDialogOpen;
2193
+ },
2194
+ set open($$value) {
2195
+ linkDialogOpen = $$value;
2196
+ $$settled = false;
2197
+ }
2198
+ });
2199
+ $$renderer.push(`<!----> `);
2200
+ if (documentId) {
2201
+ $$renderer.push("<!--[0-->");
2202
+ CreateSnapshotDialog($$renderer, {
2203
+ documentId,
2204
+ get open() {
2205
+ return snapshotDialogOpen;
2206
+ },
2207
+ set open($$value) {
2208
+ snapshotDialogOpen = $$value;
2209
+ $$settled = false;
2210
+ }
2211
+ });
2212
+ } else $$renderer.push("<!--[-1-->");
2213
+ $$renderer.push(`<!--]-->`);
2214
+ } else $$renderer.push("<!--[-1-->");
2215
+ $$renderer.push(`<!--]-->`);
2216
+ }
2217
+ do {
2218
+ $$settled = true;
2219
+ $$inner_renderer = $$renderer.copy();
2220
+ $$render_inner($$inner_renderer);
2221
+ } while (!$$settled);
2222
+ $$renderer.subsume($$inner_renderer);
2223
+ });
2224
+ }
2225
+ //#endregion
2226
+ //#region src/lib/components/editor/editor-content-sanitizer.ts
2227
+ var ATTACHMENT_RAW_URL = /^\/api\/attachments\/[0-9a-f-]+\/raw$/i;
2228
+ function isAttachmentImage(node) {
2229
+ return node.type === "image" && typeof node.attrs?.src === "string" && ATTACHMENT_RAW_URL.test(node.attrs.src);
2230
+ }
2231
+ function sanitizeNode(node) {
2232
+ if (!node.content) return [node];
2233
+ const children = node.content.flatMap((child) => sanitizeNode(child));
2234
+ if (node.type === "paragraph") {
2235
+ const normalized = [];
2236
+ let inline = [];
2237
+ const flushInline = () => {
2238
+ if (inline.length === 0) return;
2239
+ normalized.push({
2240
+ ...node,
2241
+ content: inline
2242
+ });
2243
+ inline = [];
2244
+ };
2245
+ for (const child of children) if (child.type === "image") {
2246
+ flushInline();
2247
+ normalized.push(child);
2248
+ } else inline.push(child);
2249
+ flushInline();
2250
+ return normalized.length > 0 ? normalized : [{
2251
+ ...node,
2252
+ content: []
2253
+ }];
2254
+ }
2255
+ return [{
2256
+ ...node,
2257
+ content: children
2258
+ }];
2259
+ }
2260
+ function sanitizeEditorContent(value) {
2261
+ return sanitizeNode(value)[0] ?? {
2262
+ type: "doc",
2263
+ content: [{ type: "paragraph" }]
2264
+ };
2265
+ }
2266
+ async function removeUnavailableAttachmentImages(value, fetchImpl = fetch) {
2267
+ const root = sanitizeEditorContent(value);
2268
+ const urls = /* @__PURE__ */ new Set();
2269
+ const collect = (node) => {
2270
+ if (isAttachmentImage(node)) urls.add(node.attrs?.src);
2271
+ for (const child of node.content ?? []) collect(child);
2272
+ };
2273
+ collect(root);
2274
+ const unavailable = /* @__PURE__ */ new Set();
2275
+ await Promise.all(Array.from(urls, async (url) => {
2276
+ try {
2277
+ if (!(await fetchImpl(url, { credentials: "include" })).ok) unavailable.add(url);
2278
+ } catch {
2279
+ unavailable.add(url);
2280
+ }
2281
+ }));
2282
+ let removed = 0;
2283
+ const remove = (node) => {
2284
+ if (isAttachmentImage(node) && unavailable.has(node.attrs?.src)) {
2285
+ removed += 1;
2286
+ return null;
2287
+ }
2288
+ if (!node.content) return node;
2289
+ return {
2290
+ ...node,
2291
+ content: node.content.map(remove).filter((child) => child !== null)
2292
+ };
2293
+ };
2294
+ return {
2295
+ content: remove(root) ?? {
2296
+ type: "doc",
2297
+ content: []
2298
+ },
2299
+ removed
2300
+ };
2301
+ }
2302
+ //#endregion
2303
+ //#region src/lib/components/editor/large-markdown.ts
2304
+ var LARGE_MARKDOWN_THRESHOLD = 25e4;
2305
+ function shouldDeferMarkdownParsing(markdown) {
2306
+ return markdown.length > LARGE_MARKDOWN_THRESHOLD;
2307
+ }
2308
+ //#endregion
2309
+ //#region src/lib/components/editor/parsed-content-cache.ts
2310
+ var CACHE_PREFIX = "parsed-editor-content";
2311
+ function parsedContentCacheKey(documentId, updatedAt) {
2312
+ return `${CACHE_PREFIX}:${documentId}:${updatedAt}`;
2313
+ }
2314
+ async function getCachedParsedContent(documentId, updatedAt) {
2315
+ try {
2316
+ return (await getOfflineDB(await resolveOfflineIdentity()).metadata.get(parsedContentCacheKey(documentId, updatedAt)))?.value ?? null;
2317
+ } catch {
2318
+ return null;
2319
+ }
2320
+ }
2321
+ async function cacheParsedContent(documentId, updatedAt, content) {
2322
+ try {
2323
+ const db = getOfflineDB(await resolveOfflineIdentity());
2324
+ const currentKey = parsedContentCacheKey(documentId, updatedAt);
2325
+ const staleKeys = await db.metadata.filter((row) => row.key.startsWith(`${CACHE_PREFIX}:${documentId}:`) && row.key !== currentKey).primaryKeys();
2326
+ await db.transaction("rw", db.metadata, async () => {
2327
+ if (staleKeys.length > 0) await db.metadata.bulkDelete(staleKeys);
2328
+ await db.metadata.put({
2329
+ key: currentKey,
2330
+ value: content
2331
+ });
2332
+ });
2333
+ } catch {}
2334
+ }
2335
+ //#endregion
2336
+ //#region src/lib/components/editor/HiAiEditor.svelte
2337
+ function HiAiEditor($$renderer, $$props) {
2338
+ $$renderer.component(($$renderer) => {
2339
+ const { content = "", contentJson, placeholder = doc_content_placeholder(), onUpdate = (_output) => {}, editable = true, collaboration = null, documentId = "", documentUpdatedAt = "", toolbarExtensions = null, editorActions = [], editorActionContext, minimalToolbar = false } = $$props;
2340
+ let editorStore = null;
2341
+ let editor = null;
2342
+ let ready = false;
2343
+ let deferredContentLoading = false;
2344
+ /**
2345
+ * Resolve the initial editor content. Prefer the persisted ProseMirror JSON
2346
+ * when it is present. When it is missing but the markdown source is
2347
+ * non-empty, parse the markdown into JSON in the browser so the wysiwyg
2348
+ * view shows formatted content rather than the raw markdown source. An
2349
+ * older version of the project did this server-side via
2350
+ * `backend/src/lib/markdown-to-doc.ts`, but the markdown→JSON helper here
2351
+ * uses the same TipTap extension set as the editor itself, so the result
2352
+ * round-trips through `setContent` without node-mismatch errors. If the
2353
+ * parsed JSON does not match the editor schema on some edge case, the
2354
+ * `try/catch` falls back to rendering the raw markdown string — better
2355
+ * than showing nothing.
2356
+ */
2357
+ function resolveInitialContent() {
2358
+ if (contentJson) return sanitizeEditorContent(contentJson);
2359
+ if (content && content.trim().length > 0) {
2360
+ if (shouldDeferMarkdownParsing(content)) return {
2361
+ type: "doc",
2362
+ content: [{ type: "paragraph" }]
2363
+ };
2364
+ try {
2365
+ return sanitizeEditorContent(markdownToJson(content));
2366
+ } catch (err) {
2367
+ console.warn("HiAiEditor: markdownToJson failed, falling back to raw markdown", err);
2368
+ return content;
2369
+ }
2370
+ }
2371
+ return content;
2372
+ }
2373
+ onMount(() => {
2374
+ deferredContentLoading = !contentJson && shouldDeferMarkdownParsing(content);
2375
+ const extensions = [...editorExtensions];
2376
+ if (collaboration?.doc) extensions.push(Collaboration.configure({ document: collaboration.doc }), CollaborationCursor.configure({
2377
+ provider: collaboration.provider,
2378
+ user: {
2379
+ name: editor_anonymous(),
2380
+ color: `#${Math.floor(Math.random() * 16777215).toString(16).padStart(6, "0")}`
2381
+ }
2382
+ }));
2383
+ editorStore = createEditor({
2384
+ extensions,
2385
+ content: collaboration?.doc ? void 0 : resolveInitialContent(),
2386
+ editable,
2387
+ editorProps: { attributes: {
2388
+ "aria-label": editor_content_label(),
2389
+ "aria-multiline": "true",
2390
+ role: "textbox",
2391
+ class: "tiptap-editor"
2392
+ } },
2393
+ onUpdate: ({ editor: ed }) => {
2394
+ if (!collaboration) {
2395
+ const getMarkdown = ed.getMarkdown;
2396
+ let markdown;
2397
+ try {
2398
+ markdown = getMarkdown ? getMarkdown.call(ed) : ed.getText();
2399
+ } catch (err) {
2400
+ console.warn("HiAiEditor: getMarkdown failed, using plain text", err);
2401
+ markdown = ed.getText();
2402
+ }
2403
+ const json = ed.getJSON();
2404
+ onUpdate({
2405
+ markdown,
2406
+ json
2407
+ });
2408
+ }
2409
+ }
2410
+ });
2411
+ const unsubscribe = editorStore.subscribe((ed) => {
2412
+ editor = ed;
2413
+ if (ed && !ready) ready = true;
2414
+ });
2415
+ if (!collaboration?.doc && contentJson) removeUnavailableAttachmentImages(contentJson).then(({ content: clean }) => {
2416
+ if (editor && clean && JSON.stringify(editor.getJSON()) !== JSON.stringify(clean)) editor.commands.setContent(clean, { emitUpdate: false });
2417
+ });
2418
+ if (!collaboration?.doc && !contentJson && shouldDeferMarkdownParsing(content)) {
2419
+ const parse = async () => {
2420
+ if (!editor) {
2421
+ deferredContentLoading = false;
2422
+ return;
2423
+ }
2424
+ try {
2425
+ const cached = documentId && documentUpdatedAt ? await getCachedParsedContent(documentId, documentUpdatedAt) : null;
2426
+ if (!editor) return;
2427
+ const parsed = cached ?? sanitizeEditorContent(markdownToJson(content));
2428
+ editor.commands.setContent(parsed, { emitUpdate: false });
2429
+ if (!cached && documentId && documentUpdatedAt) cacheParsedContent(documentId, documentUpdatedAt, parsed);
2430
+ } catch (err) {
2431
+ console.warn("HiAiEditor: deferred markdown parsing failed", err);
2432
+ } finally {
2433
+ deferredContentLoading = false;
2434
+ }
2435
+ };
2436
+ if ("requestIdleCallback" in window) window.requestIdleCallback(() => void parse(), { timeout: 250 });
2437
+ else setTimeout(() => void parse(), 0);
2438
+ }
2439
+ registerShortcut({
2440
+ id: "editor-toggle-markdown",
2441
+ keys: "mod+shift+7",
2442
+ description: "Toggle markdown view",
2443
+ scope: "editor",
2444
+ handler: () => {
2445
+ window.dispatchEvent(new CustomEvent("hiai:toggle-markdown"));
2446
+ }
2447
+ });
2448
+ registerShortcut({
2449
+ id: "editor-export",
2450
+ keys: "mod+shift+e",
2451
+ description: "Export document",
2452
+ scope: "editor",
2453
+ handler: () => {
2454
+ window.dispatchEvent(new CustomEvent("hiai:export-document"));
2455
+ }
2456
+ });
2457
+ return () => {
2458
+ unregisterShortcut("editor-toggle-markdown");
2459
+ unregisterShortcut("editor-export");
2460
+ unsubscribe();
2461
+ };
2462
+ });
2463
+ onDestroy(() => {
2464
+ editor?.destroy?.();
2465
+ });
2466
+ $$renderer.push(`<div class="editor-wrapper svelte-9hjz5q" role="presentation">`);
2467
+ if (ready && editor) {
2468
+ $$renderer.push("<!--[0-->");
2469
+ EditorToolbar($$renderer, {
2470
+ editor,
2471
+ documentId,
2472
+ toolbarExtensions,
2473
+ editorActions,
2474
+ editorActionContext,
2475
+ minimal: minimalToolbar
2476
+ });
2477
+ $$renderer.push(`<!----> <div${$.attr_class("editor-content svelte-9hjz5q", void 0, { "deferred-loading": deferredContentLoading })}${$.attr("aria-busy", deferredContentLoading)}>`);
2478
+ if (deferredContentLoading) {
2479
+ $$renderer.push("<!--[0-->");
2480
+ $$renderer.push(`<div class="large-document-loader svelte-9hjz5q" role="status" aria-live="polite"><div class="large-document-loader-heading svelte-9hjz5q"><span class="large-document-spinner svelte-9hjz5q" aria-hidden="true"></span> <span class="svelte-9hjz5q">Preparing large document…</span></div> <div class="large-document-loader-lines svelte-9hjz5q" aria-hidden="true"><span style="width: 72%" class="svelte-9hjz5q"></span> <span style="width: 94%" class="svelte-9hjz5q"></span> <span style="width: 83%" class="svelte-9hjz5q"></span> <span style="width: 61%" class="svelte-9hjz5q"></span></div></div>`);
2481
+ } else $$renderer.push("<!--[-1-->");
2482
+ $$renderer.push(`<!--]--> `);
2483
+ EditorContent($$renderer, { editor });
2484
+ $$renderer.push(`<!----></div>`);
2485
+ } else {
2486
+ $$renderer.push("<!--[-1-->");
2487
+ $$renderer.push(`<div class="editor-skeleton svelte-9hjz5q"><div class="skeleton-toolbar svelte-9hjz5q"><!--[-->`);
2488
+ const each_array = $.ensure_array_like(Array(10));
2489
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
2490
+ each_array[$$index];
2491
+ $$renderer.push(`<div class="skeleton-icon svelte-9hjz5q"></div>`);
2492
+ }
2493
+ $$renderer.push(`<!--]--></div> <div class="skeleton-body svelte-9hjz5q"><div class="skeleton-bar svelte-9hjz5q" style="width: 60%"></div> <div class="skeleton-bar svelte-9hjz5q" style="width: 90%"></div> <div class="skeleton-bar svelte-9hjz5q" style="width: 75%"></div> <div class="skeleton-bar svelte-9hjz5q" style="width: 85%"></div> <div class="skeleton-bar svelte-9hjz5q" style="width: 40%"></div></div></div>`);
2494
+ }
2495
+ $$renderer.push(`<!--]--></div>`);
2496
+ });
2497
+ }
2498
+ //#endregion
2499
+ export { HiAiEditor as DocsmintDocumentEditorHost };