@mieweb/ui 0.11.0-dev.34 → 0.11.0-dev.36

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 (156) hide show
  1. package/MIGRATION.md +45 -11
  2. package/dist/{EncounterMdyEditor-73PTTIRY.cjs → EncounterMdyEditor-46WMYRFI.cjs} +6 -6
  3. package/dist/{EncounterMdyEditor-73PTTIRY.cjs.map → EncounterMdyEditor-46WMYRFI.cjs.map} +1 -1
  4. package/dist/{EncounterMdyEditor-3SQY4MK2.js → EncounterMdyEditor-L7RBLE7B.js} +3 -3
  5. package/dist/{EncounterMdyEditor-3SQY4MK2.js.map → EncounterMdyEditor-L7RBLE7B.js.map} +1 -1
  6. package/dist/{chunk-4SUEBKTY.js → chunk-2OTPQPJS.js} +52 -44
  7. package/dist/chunk-2OTPQPJS.js.map +1 -0
  8. package/dist/{chunk-MZR634HI.cjs → chunk-3M2BBOXF.cjs} +9 -9
  9. package/dist/{chunk-MZR634HI.cjs.map → chunk-3M2BBOXF.cjs.map} +1 -1
  10. package/dist/{chunk-6UYMO3PF.cjs → chunk-47AOS5EC.cjs} +10 -2
  11. package/dist/chunk-47AOS5EC.cjs.map +1 -0
  12. package/dist/{chunk-DXNVQQYN.cjs → chunk-6L7CTEX2.cjs} +51 -44
  13. package/dist/chunk-6L7CTEX2.cjs.map +1 -0
  14. package/dist/{chunk-RTADGBBN.js → chunk-AIO2GCTL.js} +3 -3
  15. package/dist/{chunk-RTADGBBN.js.map → chunk-AIO2GCTL.js.map} +1 -1
  16. package/dist/{chunk-EX7Q5545.js → chunk-AKC677ZF.js} +5 -5
  17. package/dist/{chunk-EX7Q5545.js.map → chunk-AKC677ZF.js.map} +1 -1
  18. package/dist/{chunk-XEHD2HA5.cjs → chunk-FRPELUI5.cjs} +3 -3
  19. package/dist/{chunk-XEHD2HA5.cjs.map → chunk-FRPELUI5.cjs.map} +1 -1
  20. package/dist/{chunk-DGHS5IVD.js → chunk-GJSLKD4Q.js} +3 -3
  21. package/dist/{chunk-DGHS5IVD.js.map → chunk-GJSLKD4Q.js.map} +1 -1
  22. package/dist/{chunk-VMEVLBI3.js → chunk-GKMMDKYY.js} +3 -3
  23. package/dist/{chunk-VMEVLBI3.js.map → chunk-GKMMDKYY.js.map} +1 -1
  24. package/dist/{chunk-46RYJYN2.cjs → chunk-GU6TPVXF.cjs} +6 -6
  25. package/dist/{chunk-46RYJYN2.cjs.map → chunk-GU6TPVXF.cjs.map} +1 -1
  26. package/dist/chunk-IALTKN3Y.js +1017 -0
  27. package/dist/chunk-IALTKN3Y.js.map +1 -0
  28. package/dist/{chunk-33Y3KQWL.js → chunk-IGRHPZOJ.js} +3 -3
  29. package/dist/{chunk-33Y3KQWL.js.map → chunk-IGRHPZOJ.js.map} +1 -1
  30. package/dist/{chunk-PLBWZW4F.js → chunk-KAQNYX7B.js} +3 -3
  31. package/dist/{chunk-PLBWZW4F.js.map → chunk-KAQNYX7B.js.map} +1 -1
  32. package/dist/{chunk-SPGP252Q.js → chunk-KB2PLV5Q.js} +4 -4
  33. package/dist/{chunk-SPGP252Q.js.map → chunk-KB2PLV5Q.js.map} +1 -1
  34. package/dist/{chunk-NCPDUJKJ.cjs → chunk-KQXD6BFO.cjs} +4 -4
  35. package/dist/{chunk-NCPDUJKJ.cjs.map → chunk-KQXD6BFO.cjs.map} +1 -1
  36. package/dist/{chunk-4VSK3EE5.cjs → chunk-L77XJPKC.cjs} +3 -3
  37. package/dist/{chunk-4VSK3EE5.cjs.map → chunk-L77XJPKC.cjs.map} +1 -1
  38. package/dist/{chunk-PGJLW2NO.cjs → chunk-LLIG4X6M.cjs} +7 -7
  39. package/dist/{chunk-PGJLW2NO.cjs.map → chunk-LLIG4X6M.cjs.map} +1 -1
  40. package/dist/{chunk-NW6D6AFL.js → chunk-LWLHCUDP.js} +10 -10
  41. package/dist/{chunk-NW6D6AFL.js.map → chunk-LWLHCUDP.js.map} +1 -1
  42. package/dist/{chunk-YR45POH2.js → chunk-MAEANAAJ.js} +3 -3
  43. package/dist/{chunk-YR45POH2.js.map → chunk-MAEANAAJ.js.map} +1 -1
  44. package/dist/{chunk-X5HLVACK.js → chunk-MLCIINXT.js} +4 -4
  45. package/dist/{chunk-X5HLVACK.js.map → chunk-MLCIINXT.js.map} +1 -1
  46. package/dist/{chunk-JEXEFWEM.js → chunk-MNXIN4MS.js} +10 -2
  47. package/dist/chunk-MNXIN4MS.js.map +1 -0
  48. package/dist/{chunk-PHUTJKHL.cjs → chunk-MXIIPFTA.cjs} +3 -3
  49. package/dist/{chunk-PHUTJKHL.cjs.map → chunk-MXIIPFTA.cjs.map} +1 -1
  50. package/dist/{chunk-QO4A6U73.cjs → chunk-NCG7NJAW.cjs} +93 -30
  51. package/dist/chunk-NCG7NJAW.cjs.map +1 -0
  52. package/dist/{chunk-25MPUVTM.js → chunk-NIE3WBJH.js} +94 -31
  53. package/dist/chunk-NIE3WBJH.js.map +1 -0
  54. package/dist/{chunk-4GSFVD5V.js → chunk-NUHHWELE.js} +3 -3
  55. package/dist/{chunk-4GSFVD5V.js.map → chunk-NUHHWELE.js.map} +1 -1
  56. package/dist/{chunk-4M2KE4O5.cjs → chunk-OGFSFUIX.cjs} +7 -7
  57. package/dist/{chunk-4M2KE4O5.cjs.map → chunk-OGFSFUIX.cjs.map} +1 -1
  58. package/dist/{chunk-YSIFPHLX.js → chunk-OJQMC426.js} +2 -2
  59. package/dist/{chunk-YSIFPHLX.js.map → chunk-OJQMC426.js.map} +1 -1
  60. package/dist/{chunk-SVC7NPQ6.cjs → chunk-PDLVSJMZ.cjs} +6 -6
  61. package/dist/{chunk-SVC7NPQ6.cjs.map → chunk-PDLVSJMZ.cjs.map} +1 -1
  62. package/dist/{chunk-KD7YD6US.cjs → chunk-QOQQVNP3.cjs} +2 -2
  63. package/dist/{chunk-KD7YD6US.cjs.map → chunk-QOQQVNP3.cjs.map} +1 -1
  64. package/dist/{chunk-6O6EYKOG.cjs → chunk-R4QWCP2T.cjs} +65 -65
  65. package/dist/{chunk-6O6EYKOG.cjs.map → chunk-R4QWCP2T.cjs.map} +1 -1
  66. package/dist/chunk-RCTIPBLU.cjs +1039 -0
  67. package/dist/chunk-RCTIPBLU.cjs.map +1 -0
  68. package/dist/{chunk-FSWHZY3T.cjs → chunk-RD2I67C4.cjs} +3 -3
  69. package/dist/{chunk-FSWHZY3T.cjs.map → chunk-RD2I67C4.cjs.map} +1 -1
  70. package/dist/{chunk-YGSPIDE4.js → chunk-RM4CBS7Y.js} +3 -3
  71. package/dist/{chunk-YGSPIDE4.js.map → chunk-RM4CBS7Y.js.map} +1 -1
  72. package/dist/{chunk-3O3Q3DX7.cjs → chunk-S3LTUSO5.cjs} +21 -21
  73. package/dist/{chunk-3O3Q3DX7.cjs.map → chunk-S3LTUSO5.cjs.map} +1 -1
  74. package/dist/{chunk-2OXNJJHJ.cjs → chunk-TERHGQ73.cjs} +3 -3
  75. package/dist/{chunk-2OXNJJHJ.cjs.map → chunk-TERHGQ73.cjs.map} +1 -1
  76. package/dist/{chunk-DO7EED3B.cjs → chunk-WZ7WTIVU.cjs} +3 -3
  77. package/dist/{chunk-DO7EED3B.cjs.map → chunk-WZ7WTIVU.cjs.map} +1 -1
  78. package/dist/{chunk-566FIEPE.js → chunk-YFZNSP7F.js} +3 -3
  79. package/dist/{chunk-566FIEPE.js.map → chunk-YFZNSP7F.js.map} +1 -1
  80. package/dist/{chunk-I6Y2KLTZ.js → chunk-ZP4H5HA4.js} +3 -3
  81. package/dist/{chunk-I6Y2KLTZ.js.map → chunk-ZP4H5HA4.js.map} +1 -1
  82. package/dist/components/ActionPlan/index.cjs +1 -1
  83. package/dist/components/ActionPlan/index.js +1 -1
  84. package/dist/components/AlertDialog/index.cjs +7 -7
  85. package/dist/components/AlertDialog/index.js +3 -3
  86. package/dist/components/CustomizableDashboard/index.cjs +1 -1
  87. package/dist/components/CustomizableDashboard/index.js +1 -1
  88. package/dist/components/DateInput/index.cjs +3 -3
  89. package/dist/components/DateInput/index.js +2 -2
  90. package/dist/components/EmailEditor/index.cjs +16 -13
  91. package/dist/components/EmailEditor/index.js +7 -4
  92. package/dist/components/KeyboardShortcutsOverlay/index.cjs +5 -5
  93. package/dist/components/KeyboardShortcutsOverlay/index.js +3 -3
  94. package/dist/components/Markdown/index.cjs +10 -10
  95. package/dist/components/Markdown/index.js +2 -2
  96. package/dist/components/MediaEditor/index.cjs +9 -9
  97. package/dist/components/MediaEditor/index.js +4 -4
  98. package/dist/components/MediaFeed/index.cjs +4 -4
  99. package/dist/components/MediaFeed/index.js +3 -3
  100. package/dist/components/Modal/index.cjs +10 -10
  101. package/dist/components/Modal/index.js +2 -2
  102. package/dist/components/RadialExplorer/index.cjs +3 -3
  103. package/dist/components/RadialExplorer/index.js +2 -2
  104. package/dist/components/RecordHeader/index.cjs +4 -4
  105. package/dist/components/RecordHeader/index.js +2 -2
  106. package/dist/components/RecordLayout/index.cjs +1 -1
  107. package/dist/components/RecordLayout/index.js +1 -1
  108. package/dist/components/Sheet/index.cjs +1 -1
  109. package/dist/components/Sheet/index.js +1 -1
  110. package/dist/components/SuperChat/index.cjs +6 -6
  111. package/dist/components/SuperChat/index.js +5 -5
  112. package/dist/components/SuperChat/plugins/index.cjs +1 -1
  113. package/dist/components/SuperChat/plugins/index.js +1 -1
  114. package/dist/components/TagEditor/index.cjs +4 -4
  115. package/dist/components/TagEditor/index.js +2 -2
  116. package/dist/components/Textarea/index.cjs +7 -4
  117. package/dist/components/Textarea/index.js +4 -1
  118. package/dist/esheet.cjs +122 -123
  119. package/dist/esheet.cjs.map +1 -1
  120. package/dist/esheet.js +25 -26
  121. package/dist/esheet.js.map +1 -1
  122. package/dist/hooks/index.cjs +15 -15
  123. package/dist/hooks/index.js +3 -3
  124. package/dist/index.cjs +456 -425
  125. package/dist/index.cjs.map +1 -1
  126. package/dist/index.d.cts +19 -10
  127. package/dist/index.d.ts +19 -10
  128. package/dist/index.js +80 -42
  129. package/dist/index.js.map +1 -1
  130. package/dist/kerebron.cjs +32 -62
  131. package/dist/kerebron.cjs.map +1 -1
  132. package/dist/kerebron.css +145 -8
  133. package/dist/kerebron.d.cts +299 -1
  134. package/dist/kerebron.d.ts +299 -1
  135. package/dist/kerebron.js +22 -63
  136. package/dist/kerebron.js.map +1 -1
  137. package/dist/{model-EFXX5JZN.cjs → model-5PB6KNYH.cjs} +20 -20
  138. package/dist/{model-EFXX5JZN.cjs.map → model-5PB6KNYH.cjs.map} +1 -1
  139. package/dist/{model-TAARSYDY.js → model-OGWTZEXR.js} +6 -6
  140. package/dist/{model-TAARSYDY.js.map → model-OGWTZEXR.js.map} +1 -1
  141. package/dist/styles.css +1 -1
  142. package/dist/tailwind-preset.cjs +4 -4
  143. package/dist/tailwind-preset.js +1 -1
  144. package/dist/templates.cjs +31 -31
  145. package/dist/templates.js +2 -2
  146. package/dist/utils/index.cjs +5 -5
  147. package/dist/utils/index.d.cts +12 -12
  148. package/dist/utils/index.d.ts +12 -12
  149. package/dist/utils/index.js +1 -1
  150. package/package.json +3 -13
  151. package/dist/chunk-25MPUVTM.js.map +0 -1
  152. package/dist/chunk-4SUEBKTY.js.map +0 -1
  153. package/dist/chunk-6UYMO3PF.cjs.map +0 -1
  154. package/dist/chunk-DXNVQQYN.cjs.map +0 -1
  155. package/dist/chunk-JEXEFWEM.js.map +0 -1
  156. package/dist/chunk-QO4A6U73.cjs.map +0 -1
@@ -1,6 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import React__default from 'react';
3
3
  import { CoreEditor, AssetLoad, EditorKit } from '@kerebron/editor';
4
+ import { MenuElement } from '@kerebron/extension-menu';
5
+ export { MenuElement } from '@kerebron/extension-menu';
4
6
  import { MediaUploadOptions } from '@kerebron/extension-basic-editor/ExtensionMediaUpload';
5
7
 
6
8
  /**
@@ -16,6 +18,12 @@ import { MediaUploadOptions } from '@kerebron/extension-basic-editor/ExtensionMe
16
18
  * peers — plain-mode consumers never load them.
17
19
  */
18
20
 
21
+ /**
22
+ * Reshape the toolbar menu before it renders: receives the stock menu's
23
+ * item groups and returns the groups to render. Append custom
24
+ * {@link MenuElement}s (e.g. a Macros toggle) or drop stock groups.
25
+ */
26
+ type ModifyMenu = (menus: MenuElement[][]) => MenuElement[][];
19
27
  interface CollabConfig {
20
28
  /** Room id — one shared document per room (e.g. a post id). */
21
29
  room: string;
@@ -81,6 +89,12 @@ interface RichEditorProps {
81
89
  collab?: CollabConfig;
82
90
  /** Read-only surface: no typing, and the content dims. */
83
91
  disabled?: boolean;
92
+ /**
93
+ * Lock edits while keeping the surface focusable and selectable, without
94
+ * the dimmed `disabled` styling. Applied from creation, so the document
95
+ * cannot be edited even while the initial load is still in flight.
96
+ */
97
+ readOnly?: boolean;
84
98
  /**
85
99
  * Id for the editor host element — an `aria-labelledby`/`aria-describedby`
86
100
  * anchor. The host is a `div`, not a labelable control, so a
@@ -120,6 +134,28 @@ interface RichEditorProps {
120
134
  mediaUpload?: MediaUploadOptions;
121
135
  /** Additional editor kits, installed once when the editor mounts. */
122
136
  editorKits?: EditorKit[];
137
+ /**
138
+ * Reshape the stock toolbar before it renders: receives the menu's item
139
+ * groups and returns the groups to render — append custom controls (a
140
+ * macros toggle, dictation) or drop stock ones. Read once, when the editor
141
+ * mounts — like {@link collab}, remount via `key` to change it.
142
+ */
143
+ modifyMenu?: ModifyMenu;
144
+ /**
145
+ * MIME type of the `value`/`onChange` contract (`'text/x-markdown'` by
146
+ * default; pass `'text/html'` for an HTML-valued surface). Governs both
147
+ * how `value` is parsed and what `onChange`/`getContent()` emit.
148
+ */
149
+ valueType?: string;
150
+ /**
151
+ * Converge the document to `value` on every render, not only when the
152
+ * prop changes — native controlled-input semantics: when a host's
153
+ * `onChange` does not echo an edit back into `value`, the edit reverts.
154
+ * A rejected edit leaves the prop identity unchanged while the document
155
+ * moved on, which a change-gated reload can never see. Off by default,
156
+ * which tolerates read-once hosts that call `getContent()` on submit.
157
+ */
158
+ strictValue?: boolean;
123
159
  }
124
160
  interface RichEditorHandle {
125
161
  /**
@@ -150,4 +186,266 @@ interface CodeEditorProps {
150
186
  }
151
187
  declare const CodeEditor: React__default.FC<CodeEditorProps>;
152
188
 
153
- export { CodeEditor, type CodeEditorProps, type CollabConfig, RichEditor, type RichEditorHandle, type RichEditorProps };
189
+ interface Macro {
190
+ /** Stable identifier. */
191
+ id: string;
192
+ /** Human-readable name shown in the list. */
193
+ label: string;
194
+ /** Plain text inserted into the editor. `\n` is preserved. */
195
+ content: string;
196
+ /** Optional shortcut identifier shown as a badge (e.g. `.b`). */
197
+ shortcut?: string;
198
+ /** Extra search terms that are not displayed. */
199
+ keywords?: string[];
200
+ }
201
+ interface MacroGroup {
202
+ /** Stable identifier. */
203
+ id: string;
204
+ /** Group heading (e.g. "Default library"). */
205
+ label: string;
206
+ /**
207
+ * `previous` renders the group visually distinct from library macros
208
+ * (history icon, muted header) so prior values are never mistaken for
209
+ * predefined content. Defaults to `library`.
210
+ */
211
+ kind?: 'library' | 'previous';
212
+ /** Macros belonging to the group. */
213
+ macros: Macro[];
214
+ }
215
+ interface MacroLibraryProps {
216
+ /** Grouped macros supplied by the application. */
217
+ groups: MacroGroup[];
218
+ /** Called with the chosen macro. The caller performs the insertion. */
219
+ onSelect: (macro: Macro) => void;
220
+ /** Id for the panel root (e.g. the target of a toggle's aria-controls). */
221
+ id?: string;
222
+ /**
223
+ * Name of the insertion target shown in the header (e.g. the editor's
224
+ * label), rendered as "Insert into <target>".
225
+ */
226
+ targetLabel?: string;
227
+ /** When provided, renders a close button and enables Escape-to-close. */
228
+ onClose?: () => void;
229
+ /** When provided, renders a "Save as macro" action in the footer. */
230
+ onCreateMacro?: () => void;
231
+ /** Autofocus the search input on mount. Defaults to false. */
232
+ autoFocusSearch?: boolean;
233
+ /**
234
+ * Minimal chrome for short, space-constrained lists: hides the header,
235
+ * the search input, and library group headings so the panel is just the
236
+ * macro rows. Previous-value groups keep their heading so prior answers
237
+ * stay visually distinct. Escape-to-close still works when `onClose` is
238
+ * provided. Defaults to false.
239
+ */
240
+ compact?: boolean;
241
+ /** Additional class for the panel root. */
242
+ className?: string;
243
+ /** Overridable labels for i18n. */
244
+ labels?: Partial<typeof DEFAULT_LABELS>;
245
+ }
246
+ declare const DEFAULT_LABELS: {
247
+ insertInto: string;
248
+ macros: string;
249
+ searchPlaceholder: string;
250
+ searchLabel: string;
251
+ close: string;
252
+ createMacro: string;
253
+ empty: string;
254
+ emptyHint: string;
255
+ noResults: string;
256
+ clearSearch: string;
257
+ showMore: string;
258
+ };
259
+
260
+ interface RichTextVariable {
261
+ /** Human-readable label shown in the variable menu. */
262
+ label: string;
263
+ /** The token displayed for the variable (e.g. `{{employee.name}}`). */
264
+ value: string;
265
+ /** Optional text inserted instead of `value` (e.g. an expanded group). */
266
+ insertValue?: string;
267
+ }
268
+ interface RichTextVariableGroup {
269
+ /** Group heading shown in the variable menu. */
270
+ label: string;
271
+ /** Variables belonging to the group. */
272
+ variables: RichTextVariable[];
273
+ }
274
+ interface RichTextEditorBlockMenuLabels {
275
+ /** Accessible label for the gutter `+` button. Defaults to "Block menu". */
276
+ blockMenu?: string;
277
+ /** "Text" (normal paragraph) menu item. */
278
+ text?: string;
279
+ /** "Heading 1" menu item. */
280
+ heading1?: string;
281
+ /** "Heading 2" menu item. */
282
+ heading2?: string;
283
+ /** "Heading 3" menu item. */
284
+ heading3?: string;
285
+ /** "Bullet list" menu item. */
286
+ bulletList?: string;
287
+ /** "Numbered list" menu item. */
288
+ numberedList?: string;
289
+ /** "Quote" menu item. */
290
+ quote?: string;
291
+ /** "Insert macro" submenu parent (shown when `macros` is provided). */
292
+ insertMacro?: string;
293
+ /** "Show macro library" menu item (shown when `macros` is provided). */
294
+ showMacroLibrary?: string;
295
+ /** Toolbar toggle item while the toolbar is hidden. */
296
+ showToolbar?: string;
297
+ /** Toolbar toggle item while the toolbar is visible. */
298
+ hideToolbar?: string;
299
+ }
300
+ interface RichTextEditorProps {
301
+ /** Current HTML value of the editor. */
302
+ value: string;
303
+ /** Called with the updated HTML whenever the content changes. */
304
+ onChange: (value: string) => void;
305
+ /** Placeholder shown when the editor is empty. */
306
+ placeholder?: string;
307
+ /** Additional class for the editor wrapper. */
308
+ className?: string;
309
+ /**
310
+ * Variable groups for the "Insert variable" menu. When omitted the variable
311
+ * menu and the `<< >>` → `{{ }}` convert button are hidden.
312
+ */
313
+ variableGroups?: RichTextVariableGroup[];
314
+ /** Enable the speech-to-text dictation button. Defaults to true. */
315
+ enableDictation?: boolean;
316
+ /** Called when dictation cannot start (replaces native alerts). */
317
+ onDictationError?: (message: string) => void;
318
+ /** Disable editing and toolbar actions. */
319
+ disabled?: boolean;
320
+ /**
321
+ * Sanitises HTML introduced by paste or drop before it reaches the editable
322
+ * DOM. Without it, pasted markup is inserted as the browser provides it.
323
+ */
324
+ sanitizeHtml?: (html: string) => string;
325
+ /**
326
+ * Grouped macros for the optional macro addon. When omitted the editor is
327
+ * unchanged. When provided, a "Macros" toolbar toggle docks a searchable
328
+ * macro panel inside the editor; selecting a macro inserts its content at
329
+ * the retained caret position. Typing a macro shortcut (e.g. `.b`)
330
+ * followed by a space expands it in place, panel open or not.
331
+ */
332
+ macros?: MacroGroup[];
333
+ /** Open the macro panel initially. Defaults to false. */
334
+ defaultMacrosOpen?: boolean;
335
+ /**
336
+ * Focus-driven macro panel: the field rests as a plain input, the panel
337
+ * animates in while focus is anywhere inside the editor frame (editable,
338
+ * toolbar, gutter or the panel itself) and animates away when focus
339
+ * leaves. Overrides `defaultMacrosOpen`; Escape-to-close is disabled since
340
+ * visibility follows focus. Pairs well with `compactMacros`. Defaults to
341
+ * false.
342
+ */
343
+ macrosOnFocus?: boolean;
344
+ /**
345
+ * Dock the macro panel in `MacroLibrary`'s compact mode (no header,
346
+ * search, or library group headings) and shrink the macros-open working
347
+ * space to match — for short lists in dense forms. Defaults to false.
348
+ */
349
+ compactMacros?: boolean;
350
+ /**
351
+ * Called on any explicit macro invocation: a pick from the macro panel or
352
+ * the block gutter flyout, or a typed `.shortcut` expansion. Return `true`
353
+ * to take over the insertion: the editor skips its caret insertion and the
354
+ * host applies the content through its own value update (e.g. appending a
355
+ * coded finding as its own line). For typed shortcuts the editor removes
356
+ * the typed token (and publishes that edit) before consulting the
357
+ * callback, so a host that takes over computes from a token-free value.
358
+ */
359
+ onMacroInsert?: (macro: Macro) => boolean | void;
360
+ /**
361
+ * Overridable labels for the macro addon (i18n). Panel labels are
362
+ * forwarded to the docked `MacroLibrary`; `macros` doubles as the toolbar
363
+ * toggle text, and `showMacros`/`hideMacros` set the toggle's title.
364
+ */
365
+ macroLabels?: MacroLibraryProps['labels'] & {
366
+ /** Toggle title while the panel is closed. Defaults to "Show macros". */
367
+ showMacros?: string;
368
+ /** Toggle title while the panel is open. Defaults to "Hide macros". */
369
+ hideMacros?: string;
370
+ };
371
+ /** Forwarded to the macro panel's "Save as macro" action. */
372
+ onCreateMacro?: () => void;
373
+ /**
374
+ * Controlled toolbar visibility. `'hidden'` removes the toolbar entirely
375
+ * for chromeless surfaces (typed shortcuts keep working; pair with
376
+ * `markdownShortcuts` or `blockMenu` so formatting stays reachable). When
377
+ * omitted the editor manages visibility itself, starting from
378
+ * `defaultToolbar` — existing consumers are unchanged.
379
+ */
380
+ toolbar?: 'visible' | 'hidden';
381
+ /**
382
+ * Initial toolbar visibility when `toolbar` is uncontrolled. Defaults to
383
+ * `'visible'`.
384
+ */
385
+ defaultToolbar?: 'visible' | 'hidden';
386
+ /**
387
+ * Called when the block gutter menu toggles the toolbar ("Show toolbar" /
388
+ * "Hide toolbar"), so hosts can persist the preference or drive the
389
+ * controlled `toolbar` prop.
390
+ */
391
+ onToolbarChange?: (toolbar: 'visible' | 'hidden') => void;
392
+ /**
393
+ * Notion-style block gutter menu. Hovering a text row reveals a `+`
394
+ * button in the start gutter whose menu applies block formats to that
395
+ * row, opens the macro panel (when `macros` is provided) and toggles the
396
+ * toolbar. Also reachable from the keyboard with Ctrl/Cmd+/ on the
397
+ * caret's block. Defaults to false.
398
+ */
399
+ blockMenu?: boolean;
400
+ /** Overridable labels for the block gutter menu (i18n). */
401
+ blockMenuLabels?: RichTextEditorBlockMenuLabels;
402
+ /**
403
+ * Expand markdown-style block shortcuts typed at the start of a line and
404
+ * followed by a space: `#`/`##`/`###` → headings, `-`/`*` → bullet list,
405
+ * `1.` → numbered list, `>` → block quote. Inline rules (`**bold**`) are
406
+ * not interpreted. Defaults to false.
407
+ */
408
+ markdownShortcuts?: boolean;
409
+ /**
410
+ * Textarea-like surface: removes the wrapper border/radius and starts the
411
+ * editable at a single Input-row height that auto-grows with content
412
+ * (matching `Textarea`'s `md` metrics). The host supplies the chrome —
413
+ * `TextAreaRich` is the packaged pairing. Defaults to false.
414
+ */
415
+ chromeless?: boolean;
416
+ /** Id applied to the editable region (deep links, `aria-labelledby`). */
417
+ id?: string;
418
+ /**
419
+ * Prevent editing and formatting while keeping the region focusable and
420
+ * its text selectable — the contenteditable analogue of a native
421
+ * textarea's `readOnly`. The block gutter menu is hidden.
422
+ */
423
+ readOnly?: boolean;
424
+ /** Extra class for the editable region itself (fonts, whitespace). */
425
+ editorClassName?: string;
426
+ /** Inline style for the editable region (e.g. a row-derived min-height). */
427
+ editorStyle?: React.CSSProperties;
428
+ /** Accessible label for the editable region. */
429
+ 'aria-label'?: string;
430
+ /** Id(s) of element(s) labelling the editable region. */
431
+ 'aria-labelledby'?: string;
432
+ /** Ids of elements describing the editable region (errors, helper text). */
433
+ 'aria-describedby'?: string;
434
+ /** Marks the editable region invalid for assistive technology. */
435
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
436
+ /** Marks the editable region required for assistive technology. */
437
+ 'aria-required'?: React.AriaAttributes['aria-required'];
438
+ }
439
+
440
+ interface TextAreaRichProps extends Omit<RichTextEditorProps, 'chromeless' | 'blockMenu' | 'defaultToolbar'> {
441
+ /**
442
+ * Initial toolbar visibility when `toolbar` is uncontrolled. TextAreaRich
443
+ * is chromeless, so this defaults to `'hidden'`; the block gutter menu's
444
+ * "Show toolbar" reveals it on demand.
445
+ */
446
+ defaultToolbar?: 'visible' | 'hidden';
447
+ }
448
+
449
+ declare const TextAreaRichKerebron: React.ForwardRefExoticComponent<TextAreaRichProps & React.RefAttributes<HTMLDivElement>>;
450
+
451
+ export { CodeEditor, type CodeEditorProps, type CollabConfig, type ModifyMenu, RichEditor, type RichEditorHandle, type RichEditorProps, TextAreaRichKerebron as TextAreaRich, type TextAreaRichProps };
package/dist/kerebron.js CHANGED
@@ -1,67 +1,26 @@
1
- export { RichEditor } from './chunk-25MPUVTM.js';
1
+ export { CodeEditor, TextAreaRichKerebron as TextAreaRich } from './chunk-IALTKN3Y.js';
2
+ export { RichEditor } from './chunk-NIE3WBJH.js';
3
+ import './chunk-EWPNM6OO.js';
4
+ import './chunk-5YOT4DVH.js';
5
+ import './chunk-OQWZYKJM.js';
6
+ import './chunk-AMYFRY7K.js';
7
+ import './chunk-OYUIEJPN.js';
8
+ import './chunk-6NZXWKUE.js';
9
+ import './chunk-3IMM2PM4.js';
2
10
  import './chunk-RUGHNFQG.js';
11
+ import './chunk-HTZ27DGZ.js';
12
+ import './chunk-T4ME7QCT.js';
13
+ import './chunk-62ZOA6PX.js';
14
+ import './chunk-WSNMQQ4P.js';
15
+ import './chunk-ERLPVXOV.js';
16
+ import './chunk-BKSPDTX4.js';
17
+ import './chunk-XDU65GLW.js';
18
+ import './chunk-YVKBXNPK.js';
19
+ import './chunk-N5JDL4VE.js';
20
+ import './chunk-WX2XB6FP.js';
21
+ import './chunk-VP3XNLUL.js';
22
+ import './chunk-F4N67NAF.js';
23
+ import './chunk-TQONQSJO.js';
3
24
  import './chunk-PX6F3LHL.js';
4
- import { useRef, useEffect } from 'react';
5
- import { CoreEditor } from '@kerebron/editor';
6
- import { CodeEditorKit } from '@kerebron/editor-kits/CodeEditorKit';
7
- import { createAssetLoad } from '@kerebron/wasm/web';
8
- import { jsx } from 'react/jsx-runtime';
9
-
10
- var CodeEditor = ({
11
- value = "",
12
- onChange,
13
- lang = "typescript"
14
- }) => {
15
- const editorRef = useRef(null);
16
- const editorInstance = useRef(null);
17
- const onChangeRef = useRef(onChange);
18
- onChangeRef.current = onChange;
19
- useEffect(() => {
20
- const root = editorRef.current;
21
- if (!root) return;
22
- const applySelectLabel = () => {
23
- root.querySelectorAll("select.codejar-select").forEach((element) => {
24
- if (!element.getAttribute("aria-label")) {
25
- element.setAttribute("aria-label", "Code editor language");
26
- }
27
- });
28
- };
29
- applySelectLabel();
30
- const observer = new MutationObserver(() => applySelectLabel());
31
- observer.observe(root, { childList: true, subtree: true });
32
- return () => observer.disconnect();
33
- }, []);
34
- useEffect(() => {
35
- if (!editorRef.current) return;
36
- const editor = CoreEditor.create({
37
- element: editorRef.current,
38
- uri: "file:///untitled.ts",
39
- assetLoad: createAssetLoad("/kerebron-wasm"),
40
- editorKits: [new CodeEditorKit(lang)]
41
- });
42
- editorInstance.current = editor;
43
- const onTransaction = async () => {
44
- if (!editorInstance.current) return;
45
- try {
46
- const buffer = await editorInstance.current.saveDocument("text/plain");
47
- onChangeRef.current?.(new globalThis.TextDecoder().decode(buffer));
48
- } catch (err) {
49
- console.error("Failed to read code:", err);
50
- }
51
- };
52
- editor.addEventListener("transaction", onTransaction);
53
- if (value) {
54
- editor.loadDocumentText("text/plain", value).catch((err) => console.error("Failed to load code:", err));
55
- }
56
- return () => {
57
- editor.removeEventListener("transaction", onTransaction);
58
- editor.destroy();
59
- };
60
- }, []);
61
- return /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("div", { ref: editorRef, className: "kb-component" }) }) });
62
- };
63
- CodeEditor.displayName = "CodeEditor";
64
-
65
- export { CodeEditor };
66
25
  //# sourceMappingURL=kerebron.js.map
67
26
  //# sourceMappingURL=kerebron.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/RichEditor/CodeEditor.tsx"],"names":[],"mappings":";;;;;;;;;AAeA,IAAM,aAAwC,CAAC;AAAA,EAC7C,KAAA,GAAQ,EAAA;AAAA,EACR,QAAA;AAAA,EACA,IAAA,GAAO;AACT,CAAA,KAAM;AACJ,EAAA,MAAM,SAAA,GAAY,OAAuB,IAAI,CAAA;AAC7C,EAAA,MAAM,cAAA,GAAiB,OAA0B,IAAI,CAAA;AACrD,EAAA,MAAM,WAAA,GAAc,OAAO,QAAQ,CAAA;AACnC,EAAA,WAAA,CAAY,OAAA,GAAU,QAAA;AAEtB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,OAAO,SAAA,CAAU,OAAA;AACvB,IAAA,IAAI,CAAC,IAAA,EAAM;AAEX,IAAA,MAAM,mBAAmB,MAAM;AAC7B,MAAA,IAAA,CAAK,gBAAA,CAAiB,uBAAuB,CAAA,CAAE,OAAA,CAAQ,CAAC,OAAA,KAAY;AAClE,QAAA,IAAI,CAAC,OAAA,CAAQ,YAAA,CAAa,YAAY,CAAA,EAAG;AACvC,UAAA,OAAA,CAAQ,YAAA,CAAa,cAAc,sBAAsB,CAAA;AAAA,QAC3D;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAEA,IAAA,gBAAA,EAAiB;AACjB,IAAA,MAAM,QAAA,GAAW,IAAI,gBAAA,CAAiB,MAAM,kBAAkB,CAAA;AAC9D,IAAA,QAAA,CAAS,QAAQ,IAAA,EAAM,EAAE,WAAW,IAAA,EAAM,OAAA,EAAS,MAAM,CAAA;AACzD,IAAA,OAAO,MAAM,SAAS,UAAA,EAAW;AAAA,EACnC,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,UAAU,OAAA,EAAS;AAGxB,IAAA,MAAM,MAAA,GAAS,WAAW,MAAA,CAAO;AAAA,MAC/B,SAAS,SAAA,CAAU,OAAA;AAAA,MACnB,GAAA,EAAK,qBAAA;AAAA,MACL,SAAA,EAAW,gBAAgB,gBAAgB,CAAA;AAAA,MAC3C,UAAA,EAAY,CAAC,IAAI,aAAA,CAAc,IAAI,CAAC;AAAA,KACrC,CAAA;AAED,IAAA,cAAA,CAAe,OAAA,GAAU,MAAA;AAGzB,IAAA,MAAM,gBAAgB,YAAY;AAChC,MAAA,IAAI,CAAC,eAAe,OAAA,EAAS;AAE7B,MAAA,IAAI;AACF,QAAA,MAAM,MAAA,GAAS,MAAM,cAAA,CAAe,OAAA,CAAQ,aAAa,YAAY,CAAA;AACrE,QAAA,WAAA,CAAY,UAAU,IAAI,UAAA,CAAW,aAAY,CAAE,MAAA,CAAO,MAAM,CAAC,CAAA;AAAA,MACnE,SAAS,GAAA,EAAK;AACZ,QAAA,OAAA,CAAQ,KAAA,CAAM,wBAAwB,GAAG,CAAA;AAAA,MAC3C;AAAA,IACF,CAAA;AAEA,IAAA,MAAA,CAAO,gBAAA,CAAiB,eAAe,aAAa,CAAA;AAGpD,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,MAAA,CACG,gBAAA,CAAiB,YAAA,EAAc,KAAK,CAAA,CACpC,KAAA,CAAM,CAAC,GAAA,KAAQ,OAAA,CAAQ,KAAA,CAAM,sBAAA,EAAwB,GAAG,CAAC,CAAA;AAAA,IAC9D;AAGA,IAAA,OAAO,MAAM;AACX,MAAA,MAAA,CAAO,mBAAA,CAAoB,eAAe,aAAa,CAAA;AACvD,MAAA,MAAA,CAAO,OAAA,EAAQ;AAAA,IACjB,CAAA;AAAA,EAGF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,SAAA,EAAW,SAAA,EAAU,cAAA,EAAe,CAAA,EAChD,CAAA,EACF,CAAA;AAEJ;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA","file":"kerebron.js","sourcesContent":["import React, { useEffect, useRef } from 'react';\n\nimport { CoreEditor } from '@kerebron/editor';\nimport { CodeEditorKit } from '@kerebron/editor-kits/CodeEditorKit';\nimport { createAssetLoad } from '@kerebron/wasm/web';\n\nexport interface CodeEditorProps {\n /** Initial source code to load into the editor. */\n value?: string;\n /** Called with the editor's contents whenever they change. */\n onChange?: (value: string) => void;\n /** Language/grammar to use for syntax highlighting. Defaults to `typescript`. */\n lang?: string;\n}\n\nconst CodeEditor: React.FC<CodeEditorProps> = ({\n value = '',\n onChange,\n lang = 'typescript',\n}) => {\n const editorRef = useRef<HTMLDivElement>(null);\n const editorInstance = useRef<CoreEditor | null>(null);\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n\n useEffect(() => {\n const root = editorRef.current;\n if (!root) return;\n\n const applySelectLabel = () => {\n root.querySelectorAll('select.codejar-select').forEach((element) => {\n if (!element.getAttribute('aria-label')) {\n element.setAttribute('aria-label', 'Code editor language');\n }\n });\n };\n\n applySelectLabel();\n const observer = new MutationObserver(() => applySelectLabel());\n observer.observe(root, { childList: true, subtree: true });\n return () => observer.disconnect();\n }, []);\n\n useEffect(() => {\n if (!editorRef.current) return;\n\n // Initialize the editor\n const editor = CoreEditor.create({\n element: editorRef.current,\n uri: 'file:///untitled.ts',\n assetLoad: createAssetLoad('/kerebron-wasm'),\n editorKits: [new CodeEditorKit(lang)],\n });\n\n editorInstance.current = editor;\n\n // Surface edits to callers.\n const onTransaction = async () => {\n if (!editorInstance.current) return;\n\n try {\n const buffer = await editorInstance.current.saveDocument('text/plain');\n onChangeRef.current?.(new globalThis.TextDecoder().decode(buffer));\n } catch (err) {\n console.error('Failed to read code:', err);\n }\n };\n\n editor.addEventListener('transaction', onTransaction);\n\n // Seed initial content on mount.\n if (value) {\n editor\n .loadDocumentText('text/plain', value)\n .catch((err) => console.error('Failed to load code:', err));\n }\n\n // Cleanup on unmount\n return () => {\n editor.removeEventListener('transaction', onTransaction);\n editor.destroy();\n };\n // Initial `value`/`lang` are intentionally only applied on mount.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <div>\n <div>\n <div ref={editorRef} className=\"kb-component\" />\n </div>\n </div>\n );\n};\n\nCodeEditor.displayName = 'CodeEditor';\n\nexport { CodeEditor };\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"kerebron.js"}
@@ -1,16 +1,16 @@
1
1
  'use strict';
2
2
 
3
- var chunk46RYJYN2_cjs = require('./chunk-46RYJYN2.cjs');
4
- require('./chunk-NCPDUJKJ.cjs');
3
+ var chunkGU6TPVXF_cjs = require('./chunk-GU6TPVXF.cjs');
4
+ require('./chunk-KQXD6BFO.cjs');
5
5
  require('./chunk-GLG6UE2H.cjs');
6
- require('./chunk-FSLI5IKP.cjs');
7
6
  require('./chunk-MJWFNV3L.cjs');
8
7
  require('./chunk-GF2BE4FB.cjs');
9
8
  require('./chunk-CPDNX3LS.cjs');
9
+ require('./chunk-7E46YDOT.cjs');
10
+ require('./chunk-FSLI5IKP.cjs');
10
11
  require('./chunk-L7L5S2HO.cjs');
11
12
  require('./chunk-YW2AKBLS.cjs');
12
13
  require('./chunk-Z3WMDVMR.cjs');
13
- require('./chunk-7E46YDOT.cjs');
14
14
  require('./chunk-EACNRR3C.cjs');
15
15
  require('./chunk-FSARTLUE.cjs');
16
16
  require('./chunk-HGJHWI7W.cjs');
@@ -21,59 +21,59 @@ require('./chunk-EUAMEVVI.cjs');
21
21
 
22
22
  Object.defineProperty(exports, "createEncounterSnapshot", {
23
23
  enumerable: true,
24
- get: function () { return chunk46RYJYN2_cjs.createEncounterSnapshot; }
24
+ get: function () { return chunkGU6TPVXF_cjs.createEncounterSnapshot; }
25
25
  });
26
26
  Object.defineProperty(exports, "getEncounterConcerns", {
27
27
  enumerable: true,
28
- get: function () { return chunk46RYJYN2_cjs.getEncounterConcerns; }
28
+ get: function () { return chunkGU6TPVXF_cjs.getEncounterConcerns; }
29
29
  });
30
30
  Object.defineProperty(exports, "parseEncounterAssessment", {
31
31
  enumerable: true,
32
- get: function () { return chunk46RYJYN2_cjs.parseEncounterAssessment; }
32
+ get: function () { return chunkGU6TPVXF_cjs.parseEncounterAssessment; }
33
33
  });
34
34
  Object.defineProperty(exports, "parseEncounterConditions", {
35
35
  enumerable: true,
36
- get: function () { return chunk46RYJYN2_cjs.parseEncounterConditions; }
36
+ get: function () { return chunkGU6TPVXF_cjs.parseEncounterConditions; }
37
37
  });
38
38
  Object.defineProperty(exports, "parseEncounterPlan", {
39
39
  enumerable: true,
40
- get: function () { return chunk46RYJYN2_cjs.parseEncounterPlan; }
40
+ get: function () { return chunkGU6TPVXF_cjs.parseEncounterPlan; }
41
41
  });
42
42
  Object.defineProperty(exports, "parseEncounterVitals", {
43
43
  enumerable: true,
44
- get: function () { return chunk46RYJYN2_cjs.parseEncounterVitals; }
44
+ get: function () { return chunkGU6TPVXF_cjs.parseEncounterVitals; }
45
45
  });
46
46
  Object.defineProperty(exports, "validAssessmentItem", {
47
47
  enumerable: true,
48
- get: function () { return chunk46RYJYN2_cjs.validAssessmentItem; }
48
+ get: function () { return chunkGU6TPVXF_cjs.validAssessmentItem; }
49
49
  });
50
50
  Object.defineProperty(exports, "validateEncounterAllergyValue", {
51
51
  enumerable: true,
52
- get: function () { return chunk46RYJYN2_cjs.validateEncounterAllergyValue; }
52
+ get: function () { return chunkGU6TPVXF_cjs.validateEncounterAllergyValue; }
53
53
  });
54
54
  Object.defineProperty(exports, "validateEncounterAssessment", {
55
55
  enumerable: true,
56
- get: function () { return chunk46RYJYN2_cjs.validateEncounterAssessment; }
56
+ get: function () { return chunkGU6TPVXF_cjs.validateEncounterAssessment; }
57
57
  });
58
58
  Object.defineProperty(exports, "validateEncounterConditions", {
59
59
  enumerable: true,
60
- get: function () { return chunk46RYJYN2_cjs.validateEncounterConditions; }
60
+ get: function () { return chunkGU6TPVXF_cjs.validateEncounterConditions; }
61
61
  });
62
62
  Object.defineProperty(exports, "validateEncounterMedicationValue", {
63
63
  enumerable: true,
64
- get: function () { return chunk46RYJYN2_cjs.validateEncounterMedicationValue; }
64
+ get: function () { return chunkGU6TPVXF_cjs.validateEncounterMedicationValue; }
65
65
  });
66
66
  Object.defineProperty(exports, "validateEncounterPlan", {
67
67
  enumerable: true,
68
- get: function () { return chunk46RYJYN2_cjs.validateEncounterPlan; }
68
+ get: function () { return chunkGU6TPVXF_cjs.validateEncounterPlan; }
69
69
  });
70
70
  Object.defineProperty(exports, "validateEncounterResponses", {
71
71
  enumerable: true,
72
- get: function () { return chunk46RYJYN2_cjs.validateEncounterResponses; }
72
+ get: function () { return chunkGU6TPVXF_cjs.validateEncounterResponses; }
73
73
  });
74
74
  Object.defineProperty(exports, "validateEncounterVitals", {
75
75
  enumerable: true,
76
- get: function () { return chunk46RYJYN2_cjs.validateEncounterVitals; }
76
+ get: function () { return chunkGU6TPVXF_cjs.validateEncounterVitals; }
77
77
  });
78
- //# sourceMappingURL=model-EFXX5JZN.cjs.map
79
- //# sourceMappingURL=model-EFXX5JZN.cjs.map
78
+ //# sourceMappingURL=model-5PB6KNYH.cjs.map
79
+ //# sourceMappingURL=model-5PB6KNYH.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"model-EFXX5JZN.cjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"model-5PB6KNYH.cjs"}
@@ -1,18 +1,18 @@
1
- export { createEncounterSnapshot, getEncounterConcerns, parseEncounterAssessment, parseEncounterConditions, parseEncounterPlan, parseEncounterVitals, validAssessmentItem, validateEncounterAllergyValue, validateEncounterAssessment, validateEncounterConditions, validateEncounterMedicationValue, validateEncounterPlan, validateEncounterResponses, validateEncounterVitals } from './chunk-X5HLVACK.js';
2
- import './chunk-SPGP252Q.js';
1
+ export { createEncounterSnapshot, getEncounterConcerns, parseEncounterAssessment, parseEncounterConditions, parseEncounterPlan, parseEncounterVitals, validAssessmentItem, validateEncounterAllergyValue, validateEncounterAssessment, validateEncounterConditions, validateEncounterMedicationValue, validateEncounterPlan, validateEncounterResponses, validateEncounterVitals } from './chunk-MLCIINXT.js';
2
+ import './chunk-KB2PLV5Q.js';
3
3
  import './chunk-YFWDS6MX.js';
4
- import './chunk-5YOT4DVH.js';
5
4
  import './chunk-QYSUYB3S.js';
6
5
  import './chunk-YUMOM3KE.js';
7
6
  import './chunk-HNXLLDPN.js';
7
+ import './chunk-522WJIVI.js';
8
+ import './chunk-5YOT4DVH.js';
8
9
  import './chunk-BKSPDTX4.js';
9
10
  import './chunk-XDU65GLW.js';
10
11
  import './chunk-YVKBXNPK.js';
11
- import './chunk-522WJIVI.js';
12
12
  import './chunk-N5JDL4VE.js';
13
13
  import './chunk-WX2XB6FP.js';
14
14
  import './chunk-VP3XNLUL.js';
15
15
  import './chunk-TQONQSJO.js';
16
16
  import './chunk-PX6F3LHL.js';
17
- //# sourceMappingURL=model-TAARSYDY.js.map
18
- //# sourceMappingURL=model-TAARSYDY.js.map
17
+ //# sourceMappingURL=model-OGWTZEXR.js.map
18
+ //# sourceMappingURL=model-OGWTZEXR.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"model-TAARSYDY.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"model-OGWTZEXR.js"}