@modern-admin/web 0.4.0 → 0.4.1

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 (162) hide show
  1. package/dist/standalone/assets/{action-component-host-CuzX-99S.js → action-component-host-BrEZDHZt.js} +2 -2
  2. package/dist/standalone/assets/action-component-host-BrEZDHZt.js.br +0 -0
  3. package/dist/standalone/assets/action-component-host-BrEZDHZt.js.gz +0 -0
  4. package/dist/standalone/assets/{action-component-host-CuzX-99S.js.map → action-component-host-BrEZDHZt.js.map} +1 -1
  5. package/dist/standalone/assets/{action-page-BUTCUZ7e.js → action-page-Bx7kzeK7.js} +2 -2
  6. package/dist/standalone/assets/action-page-Bx7kzeK7.js.br +0 -0
  7. package/dist/standalone/assets/action-page-Bx7kzeK7.js.gz +0 -0
  8. package/dist/standalone/assets/{action-page-BUTCUZ7e.js.map → action-page-Bx7kzeK7.js.map} +1 -1
  9. package/dist/standalone/assets/{ai-assistant-widget-B3Xy7bCi.js → ai-assistant-widget-BbIXVrSu.js} +2 -2
  10. package/dist/standalone/assets/ai-assistant-widget-BbIXVrSu.js.br +0 -0
  11. package/dist/standalone/assets/ai-assistant-widget-BbIXVrSu.js.gz +0 -0
  12. package/dist/standalone/assets/{ai-assistant-widget-B3Xy7bCi.js.map → ai-assistant-widget-BbIXVrSu.js.map} +1 -1
  13. package/dist/standalone/assets/{audit-log-page-GHzf7mLS.js → audit-log-page-BoZh23oQ.js} +2 -2
  14. package/dist/standalone/assets/audit-log-page-BoZh23oQ.js.br +0 -0
  15. package/dist/standalone/assets/audit-log-page-BoZh23oQ.js.gz +0 -0
  16. package/dist/standalone/assets/{audit-log-page-GHzf7mLS.js.map → audit-log-page-BoZh23oQ.js.map} +1 -1
  17. package/dist/standalone/assets/{calendar-DxUwrP2r.js → calendar-nvD_z7KQ.js} +2 -2
  18. package/dist/standalone/assets/calendar-nvD_z7KQ.js.br +0 -0
  19. package/dist/standalone/assets/calendar-nvD_z7KQ.js.gz +0 -0
  20. package/dist/standalone/assets/{calendar-DxUwrP2r.js.map → calendar-nvD_z7KQ.js.map} +1 -1
  21. package/dist/standalone/assets/{chart-widget-DnK78Joj.js → chart-widget-YeCL7jdB.js} +2 -2
  22. package/dist/standalone/assets/chart-widget-YeCL7jdB.js.br +0 -0
  23. package/dist/standalone/assets/chart-widget-YeCL7jdB.js.gz +0 -0
  24. package/dist/standalone/assets/{chart-widget-DnK78Joj.js.map → chart-widget-YeCL7jdB.js.map} +1 -1
  25. package/dist/standalone/assets/{command-Df4Effbo.js → command-Sb0xL-se.js} +2 -2
  26. package/dist/standalone/assets/command-Sb0xL-se.js.br +0 -0
  27. package/dist/standalone/assets/command-Sb0xL-se.js.gz +0 -0
  28. package/dist/standalone/assets/{command-Df4Effbo.js.map → command-Sb0xL-se.js.map} +1 -1
  29. package/dist/standalone/assets/date-picker-C4HcgidQ.js +2 -0
  30. package/dist/standalone/assets/date-picker-C4HcgidQ.js.br +0 -0
  31. package/dist/standalone/assets/date-picker-C4HcgidQ.js.gz +0 -0
  32. package/dist/standalone/assets/date-picker-C4HcgidQ.js.map +1 -0
  33. package/dist/standalone/assets/{edit-page-C_QYbzrq.js → edit-page-CW7-FAPC.js} +2 -2
  34. package/dist/standalone/assets/edit-page-CW7-FAPC.js.br +0 -0
  35. package/dist/standalone/assets/edit-page-CW7-FAPC.js.gz +0 -0
  36. package/dist/standalone/assets/{edit-page-C_QYbzrq.js.map → edit-page-CW7-FAPC.js.map} +1 -1
  37. package/dist/standalone/assets/{empty-BQFNUnfh.js → empty-Cposcczv.js} +2 -2
  38. package/dist/standalone/assets/empty-Cposcczv.js.br +0 -0
  39. package/dist/standalone/assets/empty-Cposcczv.js.gz +0 -0
  40. package/dist/standalone/assets/{empty-BQFNUnfh.js.map → empty-Cposcczv.js.map} +1 -1
  41. package/dist/standalone/assets/{global-search-dialog-DMgCfJpF.js → global-search-dialog-DLv_nIvM.js} +2 -2
  42. package/dist/standalone/assets/global-search-dialog-DLv_nIvM.js.br +0 -0
  43. package/dist/standalone/assets/global-search-dialog-DLv_nIvM.js.gz +0 -0
  44. package/dist/standalone/assets/{global-search-dialog-DMgCfJpF.js.map → global-search-dialog-DLv_nIvM.js.map} +1 -1
  45. package/dist/standalone/assets/{heavy-fields-Do2qd-Wi.js → heavy-fields-BiCEgD2L.js} +2 -2
  46. package/dist/standalone/assets/heavy-fields-BiCEgD2L.js.br +0 -0
  47. package/dist/standalone/assets/heavy-fields-BiCEgD2L.js.gz +0 -0
  48. package/dist/standalone/assets/{heavy-fields-Do2qd-Wi.js.map → heavy-fields-BiCEgD2L.js.map} +1 -1
  49. package/dist/standalone/assets/{home-page-eGVeZnKR.js → home-page-BSz1wGk0.js} +3 -3
  50. package/dist/standalone/assets/home-page-BSz1wGk0.js.br +0 -0
  51. package/dist/standalone/assets/home-page-BSz1wGk0.js.gz +0 -0
  52. package/dist/standalone/assets/{home-page-eGVeZnKR.js.map → home-page-BSz1wGk0.js.map} +1 -1
  53. package/dist/standalone/assets/{icon-registry-BroqBCns.js → icon-registry-BQU4fIc4.js} +2 -2
  54. package/dist/standalone/assets/icon-registry-BQU4fIc4.js.br +0 -0
  55. package/dist/standalone/assets/{icon-registry-BroqBCns.js.gz → icon-registry-BQU4fIc4.js.gz} +0 -0
  56. package/dist/standalone/assets/{icon-registry-BroqBCns.js.map → icon-registry-BQU4fIc4.js.map} +1 -1
  57. package/dist/standalone/assets/{index-C3MuojaM.js → index-BL8keDxQ.js} +3 -3
  58. package/dist/standalone/assets/index-BL8keDxQ.js.br +0 -0
  59. package/dist/standalone/assets/index-BL8keDxQ.js.gz +0 -0
  60. package/dist/standalone/assets/{index-C3MuojaM.js.map → index-BL8keDxQ.js.map} +1 -1
  61. package/dist/standalone/assets/{json-editor-BQLKoybQ.js → json-editor-CAIgxYb3.js} +2 -2
  62. package/dist/standalone/assets/json-editor-CAIgxYb3.js.br +0 -0
  63. package/dist/standalone/assets/json-editor-CAIgxYb3.js.gz +0 -0
  64. package/dist/standalone/assets/{json-editor-BQLKoybQ.js.map → json-editor-CAIgxYb3.js.map} +1 -1
  65. package/dist/standalone/assets/{property-renderer--LvNtRJE.js → property-renderer-B8Md-EqW.js} +4 -4
  66. package/dist/standalone/assets/property-renderer-B8Md-EqW.js.br +0 -0
  67. package/dist/standalone/assets/property-renderer-B8Md-EqW.js.gz +0 -0
  68. package/dist/standalone/assets/property-renderer-B8Md-EqW.js.map +1 -0
  69. package/dist/standalone/assets/{reference-UuQ6Jts1.js → reference-WPaf6IdD.js} +2 -2
  70. package/dist/standalone/assets/reference-WPaf6IdD.js.br +0 -0
  71. package/dist/standalone/assets/reference-WPaf6IdD.js.gz +0 -0
  72. package/dist/standalone/assets/{reference-UuQ6Jts1.js.map → reference-WPaf6IdD.js.map} +1 -1
  73. package/dist/standalone/assets/{revisions-button-DHcQjj4r.js → revisions-button-0WtL6bsZ.js} +2 -2
  74. package/dist/standalone/assets/revisions-button-0WtL6bsZ.js.br +0 -0
  75. package/dist/standalone/assets/revisions-button-0WtL6bsZ.js.gz +0 -0
  76. package/dist/standalone/assets/{revisions-button-DHcQjj4r.js.map → revisions-button-0WtL6bsZ.js.map} +1 -1
  77. package/dist/standalone/assets/{select-B30EsRTA.js → select-CR4acjX0.js} +2 -2
  78. package/dist/standalone/assets/select-CR4acjX0.js.br +0 -0
  79. package/dist/standalone/assets/select-CR4acjX0.js.gz +0 -0
  80. package/dist/standalone/assets/{select-B30EsRTA.js.map → select-CR4acjX0.js.map} +1 -1
  81. package/dist/standalone/assets/{settings-page-3r5atVKG.js → settings-page-DtguXLAP.js} +2 -2
  82. package/dist/standalone/assets/settings-page-DtguXLAP.js.br +0 -0
  83. package/dist/standalone/assets/settings-page-DtguXLAP.js.gz +0 -0
  84. package/dist/standalone/assets/{settings-page-3r5atVKG.js.map → settings-page-DtguXLAP.js.map} +1 -1
  85. package/dist/standalone/assets/{show-page-CmRDBZRg.js → show-page-Dnox2NwO.js} +2 -2
  86. package/dist/standalone/assets/show-page-Dnox2NwO.js.br +0 -0
  87. package/dist/standalone/assets/show-page-Dnox2NwO.js.gz +0 -0
  88. package/dist/standalone/assets/{show-page-CmRDBZRg.js.map → show-page-Dnox2NwO.js.map} +1 -1
  89. package/dist/standalone/assets/{tabs-BXeUKAN4.js → tabs-DUS8e6dR.js} +2 -2
  90. package/dist/standalone/assets/tabs-DUS8e6dR.js.br +0 -0
  91. package/dist/standalone/assets/tabs-DUS8e6dR.js.gz +0 -0
  92. package/dist/standalone/assets/{tabs-BXeUKAN4.js.map → tabs-DUS8e6dR.js.map} +1 -1
  93. package/dist/standalone/assets/{value-format-BikdS7In.js → value-format-Cgau0meh.js} +2 -2
  94. package/dist/standalone/assets/value-format-Cgau0meh.js.br +0 -0
  95. package/dist/standalone/assets/value-format-Cgau0meh.js.gz +0 -0
  96. package/dist/standalone/assets/{value-format-BikdS7In.js.map → value-format-Cgau0meh.js.map} +1 -1
  97. package/dist/standalone/assets/{wizard-create-page-ChrGqxlO.js → wizard-create-page-v2-Aw8Oj.js} +2 -2
  98. package/dist/standalone/assets/wizard-create-page-v2-Aw8Oj.js.br +0 -0
  99. package/dist/standalone/assets/wizard-create-page-v2-Aw8Oj.js.gz +0 -0
  100. package/dist/standalone/assets/{wizard-create-page-ChrGqxlO.js.map → wizard-create-page-v2-Aw8Oj.js.map} +1 -1
  101. package/dist/standalone/assets/{zod-CF8JsamI.js → zod-BrelKLfy.js} +2 -2
  102. package/dist/standalone/assets/zod-BrelKLfy.js.br +0 -0
  103. package/dist/standalone/assets/zod-BrelKLfy.js.gz +0 -0
  104. package/dist/standalone/assets/{zod-CF8JsamI.js.map → zod-BrelKLfy.js.map} +1 -1
  105. package/dist/standalone/index.html +4 -4
  106. package/dist/standalone/index.html.br +0 -0
  107. package/dist/standalone/index.html.gz +0 -0
  108. package/package.json +4 -4
  109. package/dist/standalone/assets/action-component-host-CuzX-99S.js.br +0 -0
  110. package/dist/standalone/assets/action-component-host-CuzX-99S.js.gz +0 -0
  111. package/dist/standalone/assets/action-page-BUTCUZ7e.js.br +0 -0
  112. package/dist/standalone/assets/action-page-BUTCUZ7e.js.gz +0 -0
  113. package/dist/standalone/assets/ai-assistant-widget-B3Xy7bCi.js.br +0 -0
  114. package/dist/standalone/assets/ai-assistant-widget-B3Xy7bCi.js.gz +0 -0
  115. package/dist/standalone/assets/audit-log-page-GHzf7mLS.js.br +0 -0
  116. package/dist/standalone/assets/audit-log-page-GHzf7mLS.js.gz +0 -0
  117. package/dist/standalone/assets/calendar-DxUwrP2r.js.br +0 -0
  118. package/dist/standalone/assets/calendar-DxUwrP2r.js.gz +0 -0
  119. package/dist/standalone/assets/chart-widget-DnK78Joj.js.br +0 -0
  120. package/dist/standalone/assets/chart-widget-DnK78Joj.js.gz +0 -0
  121. package/dist/standalone/assets/command-Df4Effbo.js.br +0 -0
  122. package/dist/standalone/assets/command-Df4Effbo.js.gz +0 -0
  123. package/dist/standalone/assets/date-picker-BM6tYOT1.js +0 -2
  124. package/dist/standalone/assets/date-picker-BM6tYOT1.js.br +0 -0
  125. package/dist/standalone/assets/date-picker-BM6tYOT1.js.gz +0 -0
  126. package/dist/standalone/assets/date-picker-BM6tYOT1.js.map +0 -1
  127. package/dist/standalone/assets/edit-page-C_QYbzrq.js.br +0 -0
  128. package/dist/standalone/assets/edit-page-C_QYbzrq.js.gz +0 -0
  129. package/dist/standalone/assets/empty-BQFNUnfh.js.br +0 -0
  130. package/dist/standalone/assets/empty-BQFNUnfh.js.gz +0 -0
  131. package/dist/standalone/assets/global-search-dialog-DMgCfJpF.js.br +0 -0
  132. package/dist/standalone/assets/global-search-dialog-DMgCfJpF.js.gz +0 -0
  133. package/dist/standalone/assets/heavy-fields-Do2qd-Wi.js.br +0 -0
  134. package/dist/standalone/assets/heavy-fields-Do2qd-Wi.js.gz +0 -0
  135. package/dist/standalone/assets/home-page-eGVeZnKR.js.br +0 -0
  136. package/dist/standalone/assets/home-page-eGVeZnKR.js.gz +0 -0
  137. package/dist/standalone/assets/icon-registry-BroqBCns.js.br +0 -0
  138. package/dist/standalone/assets/index-C3MuojaM.js.br +0 -0
  139. package/dist/standalone/assets/index-C3MuojaM.js.gz +0 -0
  140. package/dist/standalone/assets/json-editor-BQLKoybQ.js.br +0 -0
  141. package/dist/standalone/assets/json-editor-BQLKoybQ.js.gz +0 -0
  142. package/dist/standalone/assets/property-renderer--LvNtRJE.js.br +0 -0
  143. package/dist/standalone/assets/property-renderer--LvNtRJE.js.gz +0 -0
  144. package/dist/standalone/assets/property-renderer--LvNtRJE.js.map +0 -1
  145. package/dist/standalone/assets/reference-UuQ6Jts1.js.br +0 -0
  146. package/dist/standalone/assets/reference-UuQ6Jts1.js.gz +0 -0
  147. package/dist/standalone/assets/revisions-button-DHcQjj4r.js.br +0 -0
  148. package/dist/standalone/assets/revisions-button-DHcQjj4r.js.gz +0 -0
  149. package/dist/standalone/assets/select-B30EsRTA.js.br +0 -0
  150. package/dist/standalone/assets/select-B30EsRTA.js.gz +0 -0
  151. package/dist/standalone/assets/settings-page-3r5atVKG.js.br +0 -0
  152. package/dist/standalone/assets/settings-page-3r5atVKG.js.gz +0 -0
  153. package/dist/standalone/assets/show-page-CmRDBZRg.js.br +0 -0
  154. package/dist/standalone/assets/show-page-CmRDBZRg.js.gz +0 -0
  155. package/dist/standalone/assets/tabs-BXeUKAN4.js.br +0 -0
  156. package/dist/standalone/assets/tabs-BXeUKAN4.js.gz +0 -0
  157. package/dist/standalone/assets/value-format-BikdS7In.js.br +0 -0
  158. package/dist/standalone/assets/value-format-BikdS7In.js.gz +0 -0
  159. package/dist/standalone/assets/wizard-create-page-ChrGqxlO.js.br +0 -0
  160. package/dist/standalone/assets/wizard-create-page-ChrGqxlO.js.gz +0 -0
  161. package/dist/standalone/assets/zod-CF8JsamI.js.br +0 -0
  162. package/dist/standalone/assets/zod-CF8JsamI.js.gz +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"empty-BQFNUnfh.js","names":["Switch","Fragment"],"sources":["../../../../../node_modules/.bun/@radix-ui+react-switch@1.3.3+ae2b4604ef263bc9/node_modules/@radix-ui/react-switch/dist/index.mjs","../../../../ui/src/components/switch.tsx","../../../../ui/src/components/info-tooltip.tsx","../../../../ui/src/components/empty.tsx"],"sourcesContent":["\"use client\";\n\n// src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProviderImpl, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nfunction SwitchProvider(props) {\n const {\n __scopeSwitch,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = \"on\",\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME\n });\n const [control, setControl] = React.useState(null);\n const [bubbleInput, setBubbleInput] = React.useState(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = control ? !!form || !!control.closest(\"form\") : (\n // We set this to true by default so that events bubble to forms without JS (SSR)\n true\n );\n const context = {\n checked,\n setChecked,\n disabled,\n control,\n setControl,\n name,\n form,\n value,\n hasConsumerStoppedPropagationRef,\n required,\n defaultChecked,\n isFormControl,\n bubbleInput,\n setBubbleInput\n };\n return /* @__PURE__ */ jsx(SwitchProviderImpl, { scope: __scopeSwitch, ...context, children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children });\n}\nvar TRIGGER_NAME = \"SwitchTrigger\";\nvar SwitchTrigger = React.forwardRef(\n ({ __scopeSwitch, onClick, ...switchProps }, forwardedRef) => {\n const {\n control,\n form,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n isFormControl,\n bubbleInput\n } = useSwitchContext(TRIGGER_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const associatedForm = form ? control?.ownerDocument.getElementById(form) : control?.form;\n if (associatedForm instanceof HTMLFormElement) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n associatedForm.addEventListener(\"reset\", reset);\n return () => associatedForm.removeEventListener(\"reset\", reset);\n }\n }, [control, form, setChecked]);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(onClick, (event) => {\n setChecked((prevChecked) => !prevChecked);\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }\n);\nSwitchTrigger.displayName = TRIGGER_NAME;\nvar Switch = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n return /* @__PURE__ */ jsx(\n SwitchProvider,\n {\n __scopeSwitch,\n checked,\n defaultChecked,\n disabled,\n required,\n onCheckedChange,\n name,\n form,\n value,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n SwitchTrigger,\n {\n ...switchProps,\n ref: forwardedRef,\n __scopeSwitch\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n SwitchBubbleInput,\n {\n __scopeSwitch\n }\n )\n ] })\n }\n );\n }\n);\nSwitch.displayName = SWITCH_NAME;\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }\n);\nSwitchThumb.displayName = THUMB_NAME;\nvar BUBBLE_INPUT_NAME = \"SwitchBubbleInput\";\nvar SwitchBubbleInput = React.forwardRef(\n ({ __scopeSwitch, ...props }, forwardedRef) => {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput\n } = useSwitchContext(BUBBLE_INPUT_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n const bubbles = !hasConsumerStoppedPropagationRef.current;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);\n const defaultCheckedRef = React.useRef(checked);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n required,\n disabled,\n name,\n value,\n form,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: \"translateX(-100%)\"\n }\n }\n );\n }\n);\nSwitchBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\nexport {\n Switch as Root,\n Switch,\n SwitchThumb,\n SwitchThumb as Thumb,\n createSwitchScope,\n SwitchBubbleInput as unstable_BubbleInput,\n SwitchProvider as unstable_Provider,\n SwitchBubbleInput as unstable_SwitchBubbleInput,\n SwitchProvider as unstable_SwitchProvider,\n SwitchTrigger as unstable_SwitchTrigger,\n SwitchTrigger as unstable_Trigger\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react'\nimport * as SwitchPrimitive from '@radix-ui/react-switch'\nimport { cn } from '../lib/utils.js'\n\nexport const Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitive.Root\n ref={ref}\n className={cn(\n 'peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n className={cn(\n 'pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0',\n )}\n />\n </SwitchPrimitive.Root>\n))\nSwitch.displayName = SwitchPrimitive.Root.displayName\n","import * as React from 'react'\nimport { Info } from 'lucide-react'\nimport { cn } from '../lib/utils.js'\nimport { Tooltip, TooltipContent, TooltipTrigger } from './tooltip.js'\n\nexport interface InfoTooltipProps {\n content: React.ReactNode\n ariaLabel?: string\n className?: string\n iconClassName?: string\n side?: React.ComponentProps<typeof TooltipContent>['side']\n}\n\nexport function InfoTooltip({\n content,\n ariaLabel,\n className,\n iconClassName,\n side = 'top',\n}: InfoTooltipProps): React.ReactElement {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n aria-label={ariaLabel}\n className={cn(\n 'inline-flex size-4 shrink-0 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n className,\n )}\n >\n <Info className={cn('size-3.5', iconClassName)} />\n </button>\n </TooltipTrigger>\n <TooltipContent side={side} className=\"max-w-80 whitespace-pre-wrap text-left leading-relaxed\">\n {content}\n </TooltipContent>\n </Tooltip>\n )\n}\n","// shadcn-style Empty — placeholder for empty states.\n// Compose: <Empty><EmptyHeader><EmptyMedia/><EmptyTitle/><EmptyDescription/></EmptyHeader><EmptyContent>…</EmptyContent></Empty>\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils.js'\n\nexport const Empty = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"empty\"\n className={cn(\n 'flex w-full flex-col items-center justify-center gap-6 rounded-lg border border-dashed border-border bg-card/40 p-8 text-center',\n className,\n )}\n {...props}\n />\n ),\n)\nEmpty.displayName = 'Empty'\n\nexport const EmptyHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"empty-header\"\n className={cn('flex flex-col items-center gap-3 text-center', className)}\n {...props}\n />\n ),\n)\nEmptyHeader.displayName = 'EmptyHeader'\n\nconst emptyMediaVariants = cva(\n 'flex shrink-0 items-center justify-center [&>svg]:size-6',\n {\n variants: {\n variant: {\n default: 'text-muted-foreground',\n icon: 'flex size-12 items-center justify-center rounded-full bg-muted text-muted-foreground [&>svg]:size-6',\n },\n },\n defaultVariants: { variant: 'icon' },\n },\n)\n\nexport interface EmptyMediaProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof emptyMediaVariants> {}\n\nexport const EmptyMedia = React.forwardRef<HTMLDivElement, EmptyMediaProps>(\n ({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"empty-media\"\n className={cn(emptyMediaVariants({ variant }), className)}\n {...props}\n />\n ),\n)\nEmptyMedia.displayName = 'EmptyMedia'\n\nexport const EmptyTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n data-slot=\"empty-title\"\n className={cn('text-base font-semibold tracking-tight', className)}\n {...props}\n />\n))\nEmptyTitle.displayName = 'EmptyTitle'\n\nexport const EmptyDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n data-slot=\"empty-description\"\n className={cn('max-w-sm text-sm text-muted-foreground', className)}\n {...props}\n />\n))\nEmptyDescription.displayName = 'EmptyDescription'\n\nexport const EmptyContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"empty-content\"\n className={cn('flex flex-wrap items-center justify-center gap-2', className)}\n {...props}\n />\n ),\n)\nEmptyContent.displayName = 'EmptyContent'\n"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"empty-Cposcczv.js","names":["Switch","Fragment"],"sources":["../../../../../node_modules/.bun/@radix-ui+react-switch@1.3.3+ae2b4604ef263bc9/node_modules/@radix-ui/react-switch/dist/index.mjs","../../../../ui/src/components/switch.tsx","../../../../ui/src/components/info-tooltip.tsx","../../../../ui/src/components/empty.tsx"],"sourcesContent":["\"use client\";\n\n// src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProviderImpl, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nfunction SwitchProvider(props) {\n const {\n __scopeSwitch,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = \"on\",\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME\n });\n const [control, setControl] = React.useState(null);\n const [bubbleInput, setBubbleInput] = React.useState(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = control ? !!form || !!control.closest(\"form\") : (\n // We set this to true by default so that events bubble to forms without JS (SSR)\n true\n );\n const context = {\n checked,\n setChecked,\n disabled,\n control,\n setControl,\n name,\n form,\n value,\n hasConsumerStoppedPropagationRef,\n required,\n defaultChecked,\n isFormControl,\n bubbleInput,\n setBubbleInput\n };\n return /* @__PURE__ */ jsx(SwitchProviderImpl, { scope: __scopeSwitch, ...context, children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children });\n}\nvar TRIGGER_NAME = \"SwitchTrigger\";\nvar SwitchTrigger = React.forwardRef(\n ({ __scopeSwitch, onClick, ...switchProps }, forwardedRef) => {\n const {\n control,\n form,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n isFormControl,\n bubbleInput\n } = useSwitchContext(TRIGGER_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const associatedForm = form ? control?.ownerDocument.getElementById(form) : control?.form;\n if (associatedForm instanceof HTMLFormElement) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n associatedForm.addEventListener(\"reset\", reset);\n return () => associatedForm.removeEventListener(\"reset\", reset);\n }\n }, [control, form, setChecked]);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(onClick, (event) => {\n setChecked((prevChecked) => !prevChecked);\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }\n);\nSwitchTrigger.displayName = TRIGGER_NAME;\nvar Switch = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n return /* @__PURE__ */ jsx(\n SwitchProvider,\n {\n __scopeSwitch,\n checked,\n defaultChecked,\n disabled,\n required,\n onCheckedChange,\n name,\n form,\n value,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n SwitchTrigger,\n {\n ...switchProps,\n ref: forwardedRef,\n __scopeSwitch\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n SwitchBubbleInput,\n {\n __scopeSwitch\n }\n )\n ] })\n }\n );\n }\n);\nSwitch.displayName = SWITCH_NAME;\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }\n);\nSwitchThumb.displayName = THUMB_NAME;\nvar BUBBLE_INPUT_NAME = \"SwitchBubbleInput\";\nvar SwitchBubbleInput = React.forwardRef(\n ({ __scopeSwitch, ...props }, forwardedRef) => {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput\n } = useSwitchContext(BUBBLE_INPUT_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n const bubbles = !hasConsumerStoppedPropagationRef.current;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);\n const defaultCheckedRef = React.useRef(checked);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n required,\n disabled,\n name,\n value,\n form,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: \"translateX(-100%)\"\n }\n }\n );\n }\n);\nSwitchBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\nexport {\n Switch as Root,\n Switch,\n SwitchThumb,\n SwitchThumb as Thumb,\n createSwitchScope,\n SwitchBubbleInput as unstable_BubbleInput,\n SwitchProvider as unstable_Provider,\n SwitchBubbleInput as unstable_SwitchBubbleInput,\n SwitchProvider as unstable_SwitchProvider,\n SwitchTrigger as unstable_SwitchTrigger,\n SwitchTrigger as unstable_Trigger\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react'\nimport * as SwitchPrimitive from '@radix-ui/react-switch'\nimport { cn } from '../lib/utils.js'\n\nexport const Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitive.Root\n ref={ref}\n className={cn(\n 'peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n className={cn(\n 'pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0',\n )}\n />\n </SwitchPrimitive.Root>\n))\nSwitch.displayName = SwitchPrimitive.Root.displayName\n","import * as React from 'react'\nimport { Info } from 'lucide-react'\nimport { cn } from '../lib/utils.js'\nimport { Tooltip, TooltipContent, TooltipTrigger } from './tooltip.js'\n\nexport interface InfoTooltipProps {\n content: React.ReactNode\n ariaLabel?: string\n className?: string\n iconClassName?: string\n side?: React.ComponentProps<typeof TooltipContent>['side']\n}\n\nexport function InfoTooltip({\n content,\n ariaLabel,\n className,\n iconClassName,\n side = 'top',\n}: InfoTooltipProps): React.ReactElement {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n aria-label={ariaLabel}\n className={cn(\n 'inline-flex size-4 shrink-0 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n className,\n )}\n >\n <Info className={cn('size-3.5', iconClassName)} />\n </button>\n </TooltipTrigger>\n <TooltipContent side={side} className=\"max-w-80 whitespace-pre-wrap text-left leading-relaxed\">\n {content}\n </TooltipContent>\n </Tooltip>\n )\n}\n","// shadcn-style Empty — placeholder for empty states.\n// Compose: <Empty><EmptyHeader><EmptyMedia/><EmptyTitle/><EmptyDescription/></EmptyHeader><EmptyContent>…</EmptyContent></Empty>\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils.js'\n\nexport const Empty = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"empty\"\n className={cn(\n 'flex w-full flex-col items-center justify-center gap-6 rounded-lg border border-dashed border-border bg-card/40 p-8 text-center',\n className,\n )}\n {...props}\n />\n ),\n)\nEmpty.displayName = 'Empty'\n\nexport const EmptyHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"empty-header\"\n className={cn('flex flex-col items-center gap-3 text-center', className)}\n {...props}\n />\n ),\n)\nEmptyHeader.displayName = 'EmptyHeader'\n\nconst emptyMediaVariants = cva(\n 'flex shrink-0 items-center justify-center [&>svg]:size-6',\n {\n variants: {\n variant: {\n default: 'text-muted-foreground',\n icon: 'flex size-12 items-center justify-center rounded-full bg-muted text-muted-foreground [&>svg]:size-6',\n },\n },\n defaultVariants: { variant: 'icon' },\n },\n)\n\nexport interface EmptyMediaProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof emptyMediaVariants> {}\n\nexport const EmptyMedia = React.forwardRef<HTMLDivElement, EmptyMediaProps>(\n ({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"empty-media\"\n className={cn(emptyMediaVariants({ variant }), className)}\n {...props}\n />\n ),\n)\nEmptyMedia.displayName = 'EmptyMedia'\n\nexport const EmptyTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n data-slot=\"empty-title\"\n className={cn('text-base font-semibold tracking-tight', className)}\n {...props}\n />\n))\nEmptyTitle.displayName = 'EmptyTitle'\n\nexport const EmptyDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n data-slot=\"empty-description\"\n className={cn('max-w-sm text-sm text-muted-foreground', className)}\n {...props}\n />\n))\nEmptyDescription.displayName = 'EmptyDescription'\n\nexport const EmptyContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"empty-content\"\n className={cn('flex flex-wrap items-center justify-center gap-2', className)}\n {...props}\n />\n ),\n)\nEmptyContent.displayName = 'EmptyContent'\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{a as e,n as t}from"./createLucideIcon-CUopU_LC.js";import{S as n}from"./with-selector-NDLhu4dT.js";import{n as r,t as i}from"./clock-OCmX6DtA.js";import{t as a}from"./triangle-alert-CyaaNWN8.js";import{t as o}from"./x-C3kLunD6.js";import{I as s,et as c,i as l}from"./router-wFvtgo77.js";import{a as u,c as d,i as f,n as p,o as m,r as h,s as g}from"./command-Df4Effbo.js";import{F as _,R as v,ot as y}from"./index-C3MuojaM.js";var b=e(t(),1),x=n(),S=300,C=`modern-admin:global-search:recent:v1`,w=6,T=()=>{if(typeof window>`u`)return[];try{let e=window.localStorage.getItem(C);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`string`).slice(0,w):[]}catch{return[]}},E=e=>{if(!(typeof window>`u`))try{window.localStorage.setItem(C,JSON.stringify(e.slice(0,w)))}catch{}},D=(e,t)=>{if(!t)return e;let n=e.toLowerCase(),r=t.toLowerCase(),i=[],a=0,o=0;for(;a<e.length;){let t=n.indexOf(r,a);if(t===-1){i.push(e.slice(a));break}t>a&&i.push(e.slice(a,t)),i.push((0,x.jsx)(`mark`,{className:`rounded-sm bg-primary/20 px-0.5 text-foreground`,children:e.slice(t,t+r.length)},o++)),a=t+r.length}return i};function O({open:e,onOpenChange:t}){let{t:n}=c(),C=l(),[O,k]=b.useState(``),[A,j]=b.useState(``),[M,N]=b.useState(()=>T());b.useEffect(()=>{e&&(k(``),j(``),N(T()))},[e]),b.useEffect(()=>{let e=window.setTimeout(()=>j(O.trim()),S);return()=>window.clearTimeout(e)},[O]);let{data:P,isFetching:F,isError:I}=s(A,e),L=b.useCallback(e=>{e&&N(t=>{let n=[e,...t.filter(t=>t!==e)].slice(0,w);return E(n),n})},[]),R=P?.groups??[],z=A.length>0,B=z&&!F&&!I&&R.length===0,V=b.useCallback((e,n)=>{L(A),t(!1),C({name:`show`,resourceId:e,recordId:n})},[A,C,t,L]),H=b.useCallback(e=>{L(A),t(!1),C({name:`list`,resourceId:e})},[A,C,t,L]),U=b.useCallback(e=>{k(e),j(e)},[]),W=b.useCallback(()=>{N([]),E([])},[]);return(0,x.jsxs)(p,{open:e,onOpenChange:t,children:[(0,x.jsx)(v,{className:`sr-only`,children:n(`globalSearch:title`)}),(0,x.jsx)(_,{className:`sr-only`,children:n(`globalSearch:description`)}),(0,x.jsx)(u,{placeholder:n(`globalSearch:placeholder`),value:O,onValueChange:k}),(0,x.jsxs)(g,{children:[!z&&M.length===0&&(0,x.jsx)(`div`,{className:`py-6 text-center text-sm text-muted-foreground`,children:n(`globalSearch:hint`)}),!z&&M.length>0&&(0,x.jsx)(f,{heading:(0,x.jsxs)(`span`,{className:`flex items-center justify-between gap-2`,children:[(0,x.jsx)(`span`,{children:n(`globalSearch:recent`)}),(0,x.jsxs)(`button`,{type:`button`,className:`text-xs text-muted-foreground hover:text-foreground`,onClick:W,children:[(0,x.jsx)(o,{className:`mr-1 inline size-3`,"aria-hidden":`true`}),n(`globalSearch:clearRecent`)]})]}),children:M.map(e=>(0,x.jsxs)(m,{value:`recent:${e}`,onSelect:()=>U(e),children:[(0,x.jsx)(i,{className:`mr-2 size-4 text-muted-foreground`,"aria-hidden":`true`}),(0,x.jsx)(`span`,{className:`flex-1 truncate`,children:e})]},`recent:${e}`))}),z&&I&&(0,x.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-sm text-destructive`,role:`alert`,children:[(0,x.jsx)(a,{className:`size-4`,"aria-hidden":`true`}),(0,x.jsx)(`span`,{children:n(`globalSearch:error`)})]}),B&&(0,x.jsx)(h,{children:n(`globalSearch:noResults`)}),z&&!I&&F&&R.length===0&&(0,x.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-sm text-muted-foreground`,role:`status`,"aria-live":`polite`,children:[(0,x.jsx)(y,{className:`size-4 animate-spin`,"aria-hidden":`true`}),(0,x.jsx)(`span`,{children:n(`common:loading`)})]}),R.map((e,t)=>(0,x.jsxs)(b.Fragment,{children:[t>0&&(0,x.jsx)(d,{}),(0,x.jsxs)(f,{heading:e.resourceName,children:[e.records.map(e=>(0,x.jsxs)(m,{value:`${e.resourceId}:${e.recordId} ${e.title} ${e.snippet??``}`,onSelect:()=>V(e.resourceId,e.recordId),className:`flex-col items-start gap-0.5`,children:[(0,x.jsxs)(`div`,{className:`flex w-full items-baseline gap-2`,children:[(0,x.jsx)(`span`,{className:`flex-1 truncate font-medium`,children:D(e.title,A)}),e.matchedField&&(0,x.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:n(`globalSearch:matchedIn`).replace(`{field}`,e.matchedField)})]}),e.snippet&&(0,x.jsx)(`div`,{className:`line-clamp-1 text-xs text-muted-foreground`,children:D(e.snippet,A)})]},`${e.resourceId}:${e.recordId}`)),(0,x.jsxs)(m,{value:`${e.resourceId}:show-all`,forceMount:!0,onSelect:()=>H(e.resourceId),className:`text-xs text-muted-foreground`,children:[(0,x.jsx)(r,{className:`mr-2 size-3.5`,"aria-hidden":`true`}),n(`globalSearch:showAllIn`).replace(`{resource}`,e.resourceName)]},`${e.resourceId}:show-all`)]})]},e.resourceId))]})]})}export{O as GlobalSearchDialog};
2
- //# sourceMappingURL=global-search-dialog-DMgCfJpF.js.map
1
+ import{a as e,n as t}from"./createLucideIcon-CUopU_LC.js";import{S as n}from"./with-selector-NDLhu4dT.js";import{n as r,t as i}from"./clock-OCmX6DtA.js";import{t as a}from"./triangle-alert-CyaaNWN8.js";import{t as o}from"./x-C3kLunD6.js";import{I as s,et as c,i as l}from"./router-wFvtgo77.js";import{a as u,c as d,i as f,n as p,o as m,r as h,s as g}from"./command-Sb0xL-se.js";import{F as _,R as v,ot as y}from"./index-BL8keDxQ.js";var b=e(t(),1),x=n(),S=300,C=`modern-admin:global-search:recent:v1`,w=6,T=()=>{if(typeof window>`u`)return[];try{let e=window.localStorage.getItem(C);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`string`).slice(0,w):[]}catch{return[]}},E=e=>{if(!(typeof window>`u`))try{window.localStorage.setItem(C,JSON.stringify(e.slice(0,w)))}catch{}},D=(e,t)=>{if(!t)return e;let n=e.toLowerCase(),r=t.toLowerCase(),i=[],a=0,o=0;for(;a<e.length;){let t=n.indexOf(r,a);if(t===-1){i.push(e.slice(a));break}t>a&&i.push(e.slice(a,t)),i.push((0,x.jsx)(`mark`,{className:`rounded-sm bg-primary/20 px-0.5 text-foreground`,children:e.slice(t,t+r.length)},o++)),a=t+r.length}return i};function O({open:e,onOpenChange:t}){let{t:n}=c(),C=l(),[O,k]=b.useState(``),[A,j]=b.useState(``),[M,N]=b.useState(()=>T());b.useEffect(()=>{e&&(k(``),j(``),N(T()))},[e]),b.useEffect(()=>{let e=window.setTimeout(()=>j(O.trim()),S);return()=>window.clearTimeout(e)},[O]);let{data:P,isFetching:F,isError:I}=s(A,e),L=b.useCallback(e=>{e&&N(t=>{let n=[e,...t.filter(t=>t!==e)].slice(0,w);return E(n),n})},[]),R=P?.groups??[],z=A.length>0,B=z&&!F&&!I&&R.length===0,V=b.useCallback((e,n)=>{L(A),t(!1),C({name:`show`,resourceId:e,recordId:n})},[A,C,t,L]),H=b.useCallback(e=>{L(A),t(!1),C({name:`list`,resourceId:e})},[A,C,t,L]),U=b.useCallback(e=>{k(e),j(e)},[]),W=b.useCallback(()=>{N([]),E([])},[]);return(0,x.jsxs)(p,{open:e,onOpenChange:t,children:[(0,x.jsx)(v,{className:`sr-only`,children:n(`globalSearch:title`)}),(0,x.jsx)(_,{className:`sr-only`,children:n(`globalSearch:description`)}),(0,x.jsx)(u,{placeholder:n(`globalSearch:placeholder`),value:O,onValueChange:k}),(0,x.jsxs)(g,{children:[!z&&M.length===0&&(0,x.jsx)(`div`,{className:`py-6 text-center text-sm text-muted-foreground`,children:n(`globalSearch:hint`)}),!z&&M.length>0&&(0,x.jsx)(f,{heading:(0,x.jsxs)(`span`,{className:`flex items-center justify-between gap-2`,children:[(0,x.jsx)(`span`,{children:n(`globalSearch:recent`)}),(0,x.jsxs)(`button`,{type:`button`,className:`text-xs text-muted-foreground hover:text-foreground`,onClick:W,children:[(0,x.jsx)(o,{className:`mr-1 inline size-3`,"aria-hidden":`true`}),n(`globalSearch:clearRecent`)]})]}),children:M.map(e=>(0,x.jsxs)(m,{value:`recent:${e}`,onSelect:()=>U(e),children:[(0,x.jsx)(i,{className:`mr-2 size-4 text-muted-foreground`,"aria-hidden":`true`}),(0,x.jsx)(`span`,{className:`flex-1 truncate`,children:e})]},`recent:${e}`))}),z&&I&&(0,x.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-sm text-destructive`,role:`alert`,children:[(0,x.jsx)(a,{className:`size-4`,"aria-hidden":`true`}),(0,x.jsx)(`span`,{children:n(`globalSearch:error`)})]}),B&&(0,x.jsx)(h,{children:n(`globalSearch:noResults`)}),z&&!I&&F&&R.length===0&&(0,x.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-sm text-muted-foreground`,role:`status`,"aria-live":`polite`,children:[(0,x.jsx)(y,{className:`size-4 animate-spin`,"aria-hidden":`true`}),(0,x.jsx)(`span`,{children:n(`common:loading`)})]}),R.map((e,t)=>(0,x.jsxs)(b.Fragment,{children:[t>0&&(0,x.jsx)(d,{}),(0,x.jsxs)(f,{heading:e.resourceName,children:[e.records.map(e=>(0,x.jsxs)(m,{value:`${e.resourceId}:${e.recordId} ${e.title} ${e.snippet??``}`,onSelect:()=>V(e.resourceId,e.recordId),className:`flex-col items-start gap-0.5`,children:[(0,x.jsxs)(`div`,{className:`flex w-full items-baseline gap-2`,children:[(0,x.jsx)(`span`,{className:`flex-1 truncate font-medium`,children:D(e.title,A)}),e.matchedField&&(0,x.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:n(`globalSearch:matchedIn`).replace(`{field}`,e.matchedField)})]}),e.snippet&&(0,x.jsx)(`div`,{className:`line-clamp-1 text-xs text-muted-foreground`,children:D(e.snippet,A)})]},`${e.resourceId}:${e.recordId}`)),(0,x.jsxs)(m,{value:`${e.resourceId}:show-all`,forceMount:!0,onSelect:()=>H(e.resourceId),className:`text-xs text-muted-foreground`,children:[(0,x.jsx)(r,{className:`mr-2 size-3.5`,"aria-hidden":`true`}),n(`globalSearch:showAllIn`).replace(`{resource}`,e.resourceName)]},`${e.resourceId}:show-all`)]})]},e.resourceId))]})]})}export{O as GlobalSearchDialog};
2
+ //# sourceMappingURL=global-search-dialog-DLv_nIvM.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"global-search-dialog-DMgCfJpF.js","names":[],"sources":["../../../../react/src/components/global-search-dialog.tsx"],"sourcesContent":["// Cross-resource command palette. Backed by `useGlobalSearch`, which fans\n// the query out to every registered resource's `search` action server-side.\n// Results are grouped by resource; selecting an entry navigates to the\n// record's show page and closes the palette.\n//\n// Designed as a controlled component — the parent (typically the header)\n// holds the `open` state so it can pair the trigger button with the\n// `mod+k` hotkey.\n\nimport * as React from 'react'\nimport {\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n DialogDescription,\n DialogTitle,\n} from '@modern-admin/ui'\nimport { AlertTriangle, ArrowRight, Clock, Loader2, X } from 'lucide-react'\nimport { useGlobalSearch } from '../hooks.js'\nimport { useI18n } from '../i18n.js'\nimport { useNavigate } from '../router.js'\n\nconst DEBOUNCE_MS = 300\nconst RECENT_STORAGE_KEY = 'modern-admin:global-search:recent:v1'\nconst RECENT_MAX = 6\n\nexport interface GlobalSearchDialogProps {\n open: boolean\n\n onOpenChange(open: boolean): void\n}\n\nconst readRecent = (): string[] => {\n if (typeof window === 'undefined') return []\n try {\n const raw = window.localStorage.getItem(RECENT_STORAGE_KEY)\n if (!raw) return []\n const parsed = JSON.parse(raw) as unknown\n if (!Array.isArray(parsed)) return []\n return parsed.filter((v): v is string => typeof v === 'string').slice(0, RECENT_MAX)\n } catch {\n return []\n }\n}\n\nconst writeRecent = (entries: string[]): void => {\n if (typeof window === 'undefined') return\n try {\n window.localStorage.setItem(RECENT_STORAGE_KEY, JSON.stringify(entries.slice(0, RECENT_MAX)))\n } catch {\n /* quota exceeded — recent list is best-effort */\n }\n}\n\n/**\n * Highlight every case-insensitive occurrence of `needle` in `text` with\n * `<mark>`. Returns an array of React nodes ready to render inside any\n * inline container. Empty `needle` falls back to the raw string.\n */\nconst highlightMatch = (text: string, needle: string): React.ReactNode => {\n if (!needle) return text\n const lower = text.toLowerCase()\n const target = needle.toLowerCase()\n const nodes: React.ReactNode[] = []\n let cursor = 0\n let key = 0\n while (cursor < text.length) {\n const idx = lower.indexOf(target, cursor)\n if (idx === -1) {\n nodes.push(text.slice(cursor))\n break\n }\n if (idx > cursor) nodes.push(text.slice(cursor, idx))\n nodes.push(\n <mark\n key={key++}\n className=\"rounded-sm bg-primary/20 px-0.5 text-foreground\"\n >\n {text.slice(idx, idx + target.length)}\n </mark>,\n )\n cursor = idx + target.length\n }\n return nodes\n}\n\nexport function GlobalSearchDialog({\n open,\n onOpenChange,\n}: GlobalSearchDialogProps): React.ReactElement {\n const { t } = useI18n()\n const navigate = useNavigate()\n const [query, setQuery] = React.useState('')\n const [debounced, setDebounced] = React.useState('')\n const [recent, setRecent] = React.useState<string[]>(() => readRecent())\n\n // Reset query each time the dialog opens so it starts empty, and rehydrate\n // the recent list (other tabs may have appended entries while we were idle).\n React.useEffect(() => {\n if (open) {\n setQuery('')\n setDebounced('')\n setRecent(readRecent())\n }\n }, [open])\n\n React.useEffect(() => {\n const timer = window.setTimeout(() => setDebounced(query.trim()), DEBOUNCE_MS)\n return () => window.clearTimeout(timer)\n }, [query])\n\n const { data, isFetching, isError } = useGlobalSearch(debounced, open)\n\n // Capture the most recent successful query so it's available for the\n // \"recent\" list. We only persist on user-driven navigation (not every\n // keystroke) to keep the list signal-to-noise high.\n const persistRecent = React.useCallback((value: string): void => {\n if (!value) return\n setRecent((prev) => {\n const next = [value, ...prev.filter((q) => q !== value)].slice(0, RECENT_MAX)\n writeRecent(next)\n return next\n })\n }, [])\n\n const groups = data?.groups ?? []\n const hasQuery = debounced.length > 0\n const showEmpty = hasQuery && !isFetching && !isError && groups.length === 0\n\n const handleSelect = React.useCallback(\n (resourceId: string, recordId: string): void => {\n persistRecent(debounced)\n onOpenChange(false)\n navigate({ name: 'show', resourceId, recordId })\n },\n [debounced, navigate, onOpenChange, persistRecent],\n )\n\n const handleShowAll = React.useCallback(\n (resourceId: string): void => {\n persistRecent(debounced)\n onOpenChange(false)\n navigate({ name: 'list', resourceId })\n },\n [debounced, navigate, onOpenChange, persistRecent],\n )\n\n const handlePickRecent = React.useCallback((value: string): void => {\n setQuery(value)\n setDebounced(value)\n }, [])\n\n const handleClearRecent = React.useCallback((): void => {\n setRecent([])\n writeRecent([])\n }, [])\n\n return (\n <CommandDialog open={open} onOpenChange={onOpenChange}>\n {/* Visually-hidden title + description keep Radix Dialog accessibility\n warnings quiet and provide a label for screen readers. */}\n <DialogTitle className=\"sr-only\">{t('globalSearch:title')}</DialogTitle>\n <DialogDescription className=\"sr-only\">\n {t('globalSearch:description')}\n </DialogDescription>\n <CommandInput\n placeholder={t('globalSearch:placeholder')}\n value={query}\n onValueChange={setQuery}\n />\n {/* cmdk dedupes by item value — prefix each value with `resourceId:recordId`\n so identical record ids across resources keep distinct entries.\n shouldFilter is left on (default) so cmdk re-orders by relevance against\n the typed query — server already narrowed the set down. */}\n <CommandList>\n {!hasQuery && recent.length === 0 && (\n <div className=\"py-6 text-center text-sm text-muted-foreground\">\n {t('globalSearch:hint')}\n </div>\n )}\n {!hasQuery && recent.length > 0 && (\n <CommandGroup\n heading={\n <span className=\"flex items-center justify-between gap-2\">\n <span>{t('globalSearch:recent')}</span>\n <button\n type=\"button\"\n className=\"text-xs text-muted-foreground hover:text-foreground\"\n onClick={handleClearRecent}\n >\n <X className=\"mr-1 inline size-3\" aria-hidden=\"true\" />\n {t('globalSearch:clearRecent')}\n </button>\n </span>\n }\n >\n {recent.map((entry) => (\n <CommandItem\n key={`recent:${entry}`}\n value={`recent:${entry}`}\n onSelect={() => handlePickRecent(entry)}\n >\n <Clock className=\"mr-2 size-4 text-muted-foreground\" aria-hidden=\"true\" />\n <span className=\"flex-1 truncate\">{entry}</span>\n </CommandItem>\n ))}\n </CommandGroup>\n )}\n {hasQuery && isError && (\n <div\n className=\"flex items-center justify-center gap-2 py-6 text-sm text-destructive\"\n role=\"alert\"\n >\n <AlertTriangle className=\"size-4\" aria-hidden=\"true\" />\n <span>{t('globalSearch:error')}</span>\n </div>\n )}\n {showEmpty && <CommandEmpty>{t('globalSearch:noResults')}</CommandEmpty>}\n {hasQuery && !isError && isFetching && groups.length === 0 && (\n <div\n className=\"flex items-center justify-center gap-2 py-6 text-sm text-muted-foreground\"\n role=\"status\"\n aria-live=\"polite\"\n >\n <Loader2 className=\"size-4 animate-spin\" aria-hidden=\"true\"/>\n <span>{t('common:loading')}</span>\n </div>\n )}\n {groups.map((group, idx) => (\n <React.Fragment key={group.resourceId}>\n {idx > 0 && <CommandSeparator/>}\n <CommandGroup heading={group.resourceName}>\n {group.records.map((hit) => (\n <CommandItem\n key={`${hit.resourceId}:${hit.recordId}`}\n value={`${hit.resourceId}:${hit.recordId} ${hit.title} ${hit.snippet ?? ''}`}\n onSelect={() => handleSelect(hit.resourceId, hit.recordId)}\n className=\"flex-col items-start gap-0.5\"\n >\n <div className=\"flex w-full items-baseline gap-2\">\n <span className=\"flex-1 truncate font-medium\">\n {highlightMatch(hit.title, debounced)}\n </span>\n {hit.matchedField && (\n <span className=\"shrink-0 text-xs text-muted-foreground\">\n {t('globalSearch:matchedIn').replace('{field}', hit.matchedField)}\n </span>\n )}\n </div>\n {hit.snippet && (\n <div className=\"line-clamp-1 text-xs text-muted-foreground\">\n {highlightMatch(hit.snippet, debounced)}\n </div>\n )}\n </CommandItem>\n ))}\n {/* `forceMount` keeps this row visible regardless of the current\n query — cmdk's default fuzzy filter would otherwise drop it\n because the value `${id}:show-all` rarely contains the typed\n needle. */}\n <CommandItem\n key={`${group.resourceId}:show-all`}\n value={`${group.resourceId}:show-all`}\n forceMount\n onSelect={() => handleShowAll(group.resourceId)}\n className=\"text-xs text-muted-foreground\"\n >\n <ArrowRight className=\"mr-2 size-3.5\" aria-hidden=\"true\" />\n {t('globalSearch:showAllIn').replace('{resource}', group.resourceName)}\n </CommandItem>\n </CommandGroup>\n </React.Fragment>\n ))}\n </CommandList>\n </CommandDialog>\n )\n}\n"],"mappings":"scA0BM,EAAc,IACd,EAAqB,uCACrB,EAAa,EAQb,MAA6B,CACjC,GAAI,OAAO,OAAW,IAAa,MAAO,CAAC,EAC3C,GAAI,CACF,IAAM,EAAM,OAAO,aAAa,QAAQ,CAAkB,EAC1D,GAAI,CAAC,EAAK,MAAO,CAAC,EAClB,IAAM,EAAS,KAAK,MAAM,CAAG,EAE7B,OADK,MAAM,QAAQ,CAAM,EAClB,EAAO,OAAQ,GAAmB,OAAO,GAAM,QAAQ,CAAC,CAAC,MAAM,EAAG,CAAU,EADhD,CAAC,CAEtC,MAAQ,CACN,MAAO,CAAC,CACV,CACF,EAEM,EAAe,GAA4B,CAC3C,YAAO,OAAW,KACtB,GAAI,CACF,OAAO,aAAa,QAAQ,EAAoB,KAAK,UAAU,EAAQ,MAAM,EAAG,CAAU,CAAC,CAAC,CAC9F,MAAQ,CAER,CACF,EAOM,GAAkB,EAAc,IAAoC,CACxE,GAAI,CAAC,EAAQ,OAAO,EACpB,IAAM,EAAQ,EAAK,YAAY,EACzB,EAAS,EAAO,YAAY,EAC5B,EAA2B,CAAC,EAC9B,EAAS,EACT,EAAM,EACV,KAAO,EAAS,EAAK,QAAQ,CAC3B,IAAM,EAAM,EAAM,QAAQ,EAAQ,CAAM,EACxC,GAAI,IAAQ,GAAI,CACd,EAAM,KAAK,EAAK,MAAM,CAAM,CAAC,EAC7B,KACF,CACI,EAAM,GAAQ,EAAM,KAAK,EAAK,MAAM,EAAQ,CAAG,CAAC,EACpD,EAAM,MACJ,EAAA,EAAA,IAAA,CAAC,OAAD,CAEE,UAAU,2DAET,EAAK,MAAM,EAAK,EAAM,EAAO,MAAM,CAChC,EAJC,GAID,CACR,EACA,EAAS,EAAM,EAAO,MACxB,CACA,OAAO,CACT,EAEA,SAAgB,EAAmB,CACjC,OACA,gBAC8C,CAC9C,GAAM,CAAE,KAAM,EAAQ,EAChB,EAAW,EAAY,EACvB,CAAC,EAAO,GAAA,EAAkB,SAAS,EAAE,EACrC,CAAC,EAAW,GAAA,EAAsB,SAAS,EAAE,EAC7C,CAAC,EAAQ,GAAA,EAAmB,aAAyB,EAAW,CAAC,EAIvE,EAAM,cAAgB,CAChB,IACF,EAAS,EAAE,EACX,EAAa,EAAE,EACf,EAAU,EAAW,CAAC,EAE1B,EAAG,CAAC,CAAI,CAAC,EAET,EAAM,cAAgB,CACpB,IAAM,EAAQ,OAAO,eAAiB,EAAa,EAAM,KAAK,CAAC,EAAG,CAAW,EAC7E,UAAa,OAAO,aAAa,CAAK,CACxC,EAAG,CAAC,CAAK,CAAC,EAEV,GAAM,CAAE,OAAM,aAAY,WAAY,EAAgB,EAAW,CAAI,EAK/D,EAAA,EAAsB,YAAa,GAAwB,CAC1D,GACL,EAAW,GAAS,CAClB,IAAM,EAAO,CAAC,EAAO,GAAG,EAAK,OAAQ,GAAM,IAAM,CAAK,CAAC,CAAC,CAAC,MAAM,EAAG,CAAU,EAE5E,OADA,EAAY,CAAI,EACT,CACT,CAAC,CACH,EAAG,CAAC,CAAC,EAEC,EAAS,GAAM,QAAU,CAAC,EAC1B,EAAW,EAAU,OAAS,EAC9B,EAAY,GAAY,CAAC,GAAc,CAAC,GAAW,EAAO,SAAW,EAErE,EAAA,EAAqB,aACxB,EAAoB,IAA2B,CAC9C,EAAc,CAAS,EACvB,EAAa,EAAK,EAClB,EAAS,CAAE,KAAM,OAAQ,aAAY,UAAS,CAAC,CACjD,EACA,CAAC,EAAW,EAAU,EAAc,CAAa,CACnD,EAEM,EAAA,EAAsB,YACzB,GAA6B,CAC5B,EAAc,CAAS,EACvB,EAAa,EAAK,EAClB,EAAS,CAAE,KAAM,OAAQ,YAAW,CAAC,CACvC,EACA,CAAC,EAAW,EAAU,EAAc,CAAa,CACnD,EAEM,EAAA,EAAyB,YAAa,GAAwB,CAClE,EAAS,CAAK,EACd,EAAa,CAAK,CACpB,EAAG,CAAC,CAAC,EAEC,EAAA,EAA0B,gBAAwB,CACtD,EAAU,CAAC,CAAC,EACZ,EAAY,CAAC,CAAC,CAChB,EAAG,CAAC,CAAC,EAEL,OACE,EAAA,EAAA,KAAA,CAAC,EAAD,CAAqB,OAAoB,wBAAzC,EAGE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAa,UAAU,mBAAW,EAAE,oBAAoB,CAAe,CAAA,GACvE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAmB,UAAU,mBAC1B,EAAE,0BAA0B,CACZ,CAAA,GACnB,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,YAAa,EAAE,0BAA0B,EACzC,MAAO,EACP,cAAe,CAChB,CAAA,GAKD,EAAA,EAAA,KAAA,CAAC,EAAD,CAAA,SAAA,CACG,CAAC,GAAY,EAAO,SAAW,IAC9B,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,0DACZ,EAAE,mBAAmB,CACnB,CAAA,EAEN,CAAC,GAAY,EAAO,OAAS,IAC5B,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,SACE,EAAA,EAAA,KAAA,CAAC,OAAD,CAAM,UAAU,mDAAhB,EACE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAA,SAAO,EAAE,qBAAqB,CAAQ,CAAA,GACtC,EAAA,EAAA,KAAA,CAAC,SAAD,CACE,KAAK,SACL,UAAU,sDACV,QAAS,WAHX,EAKE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAG,UAAU,qBAAqB,cAAY,MAAQ,CAAA,EACrD,EAAE,0BAA0B,CACvB,GACJ,aAGP,EAAO,IAAK,IACX,EAAA,EAAA,KAAA,CAAC,EAAD,CAEE,MAAO,UAAU,IACjB,aAAgB,EAAiB,CAAK,WAHxC,EAKE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAO,UAAU,oCAAoC,cAAY,MAAQ,CAAA,GACzE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,2BAAmB,CAAY,CAAA,CACpC,GANN,UAAU,GAMJ,CACd,CACW,CAAA,EAEf,GAAY,IACX,EAAA,EAAA,KAAA,CAAC,MAAD,CACE,UAAU,uEACV,KAAK,iBAFP,EAIE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAe,UAAU,SAAS,cAAY,MAAQ,CAAA,GACtD,EAAA,EAAA,IAAA,CAAC,OAAD,CAAA,SAAO,EAAE,oBAAoB,CAAQ,CAAA,CAClC,IAEN,IAAa,EAAA,EAAA,IAAA,CAAC,EAAD,CAAA,SAAe,EAAE,wBAAwB,CAAgB,CAAA,EACtE,GAAY,CAAC,GAAW,GAAc,EAAO,SAAW,IACvD,EAAA,EAAA,KAAA,CAAC,MAAD,CACE,UAAU,4EACV,KAAK,SACL,YAAU,kBAHZ,EAKE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAS,UAAU,sBAAsB,cAAY,MAAO,CAAA,GAC5D,EAAA,EAAA,IAAA,CAAC,OAAD,CAAA,SAAO,EAAE,gBAAgB,CAAQ,CAAA,CAC9B,IAEN,EAAO,KAAK,EAAO,KAClB,EAAA,EAAA,KAAA,CAAA,EAAO,SAAP,CAAA,SAAA,CACG,EAAM,IAAK,EAAA,EAAA,IAAA,CAAC,EAAD,CAAkB,CAAA,GAC9B,EAAA,EAAA,KAAA,CAAC,EAAD,CAAc,QAAS,EAAM,sBAA7B,CACG,EAAM,QAAQ,IAAK,IAClB,EAAA,EAAA,KAAA,CAAC,EAAD,CAEE,MAAO,GAAG,EAAI,WAAW,GAAG,EAAI,SAAS,GAAG,EAAI,MAAM,GAAG,EAAI,SAAW,KACxE,aAAgB,EAAa,EAAI,WAAY,EAAI,QAAQ,EACzD,UAAU,wCAJZ,EAME,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,4CAAf,EACE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,uCACb,EAAe,EAAI,MAAO,CAAS,CAChC,CAAA,EACL,EAAI,eACH,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,kDACb,EAAE,wBAAwB,CAAC,CAAC,QAAQ,UAAW,EAAI,YAAY,CAC5D,CAAA,CAEL,IACJ,EAAI,UACH,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,sDACZ,EAAe,EAAI,QAAS,CAAS,CACnC,CAAA,CAEI,GApBN,GAAG,EAAI,WAAW,GAAG,EAAI,UAoBnB,CACd,GAKD,EAAA,EAAA,KAAA,CAAC,EAAD,CAEE,MAAO,GAAG,EAAM,WAAW,WAC3B,WAAA,GACA,aAAgB,EAAc,EAAM,UAAU,EAC9C,UAAU,yCALZ,EAOE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAY,UAAU,gBAAgB,cAAY,MAAQ,CAAA,EACzD,EAAE,wBAAwB,CAAC,CAAC,QAAQ,aAAc,EAAM,YAAY,CAC1D,GARN,GAAG,EAAM,WAAW,UAQd,CACD,GACA,CAAA,EA1CK,EAAM,UA0CX,CACjB,CACU,CAAA,CAAA,CACA,GAEnB"}
1
+ {"version":3,"file":"global-search-dialog-DLv_nIvM.js","names":[],"sources":["../../../../react/src/components/global-search-dialog.tsx"],"sourcesContent":["// Cross-resource command palette. Backed by `useGlobalSearch`, which fans\n// the query out to every registered resource's `search` action server-side.\n// Results are grouped by resource; selecting an entry navigates to the\n// record's show page and closes the palette.\n//\n// Designed as a controlled component — the parent (typically the header)\n// holds the `open` state so it can pair the trigger button with the\n// `mod+k` hotkey.\n\nimport * as React from 'react'\nimport {\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n DialogDescription,\n DialogTitle,\n} from '@modern-admin/ui'\nimport { AlertTriangle, ArrowRight, Clock, Loader2, X } from 'lucide-react'\nimport { useGlobalSearch } from '../hooks.js'\nimport { useI18n } from '../i18n.js'\nimport { useNavigate } from '../router.js'\n\nconst DEBOUNCE_MS = 300\nconst RECENT_STORAGE_KEY = 'modern-admin:global-search:recent:v1'\nconst RECENT_MAX = 6\n\nexport interface GlobalSearchDialogProps {\n open: boolean\n\n onOpenChange(open: boolean): void\n}\n\nconst readRecent = (): string[] => {\n if (typeof window === 'undefined') return []\n try {\n const raw = window.localStorage.getItem(RECENT_STORAGE_KEY)\n if (!raw) return []\n const parsed = JSON.parse(raw) as unknown\n if (!Array.isArray(parsed)) return []\n return parsed.filter((v): v is string => typeof v === 'string').slice(0, RECENT_MAX)\n } catch {\n return []\n }\n}\n\nconst writeRecent = (entries: string[]): void => {\n if (typeof window === 'undefined') return\n try {\n window.localStorage.setItem(RECENT_STORAGE_KEY, JSON.stringify(entries.slice(0, RECENT_MAX)))\n } catch {\n /* quota exceeded — recent list is best-effort */\n }\n}\n\n/**\n * Highlight every case-insensitive occurrence of `needle` in `text` with\n * `<mark>`. Returns an array of React nodes ready to render inside any\n * inline container. Empty `needle` falls back to the raw string.\n */\nconst highlightMatch = (text: string, needle: string): React.ReactNode => {\n if (!needle) return text\n const lower = text.toLowerCase()\n const target = needle.toLowerCase()\n const nodes: React.ReactNode[] = []\n let cursor = 0\n let key = 0\n while (cursor < text.length) {\n const idx = lower.indexOf(target, cursor)\n if (idx === -1) {\n nodes.push(text.slice(cursor))\n break\n }\n if (idx > cursor) nodes.push(text.slice(cursor, idx))\n nodes.push(\n <mark\n key={key++}\n className=\"rounded-sm bg-primary/20 px-0.5 text-foreground\"\n >\n {text.slice(idx, idx + target.length)}\n </mark>,\n )\n cursor = idx + target.length\n }\n return nodes\n}\n\nexport function GlobalSearchDialog({\n open,\n onOpenChange,\n}: GlobalSearchDialogProps): React.ReactElement {\n const { t } = useI18n()\n const navigate = useNavigate()\n const [query, setQuery] = React.useState('')\n const [debounced, setDebounced] = React.useState('')\n const [recent, setRecent] = React.useState<string[]>(() => readRecent())\n\n // Reset query each time the dialog opens so it starts empty, and rehydrate\n // the recent list (other tabs may have appended entries while we were idle).\n React.useEffect(() => {\n if (open) {\n setQuery('')\n setDebounced('')\n setRecent(readRecent())\n }\n }, [open])\n\n React.useEffect(() => {\n const timer = window.setTimeout(() => setDebounced(query.trim()), DEBOUNCE_MS)\n return () => window.clearTimeout(timer)\n }, [query])\n\n const { data, isFetching, isError } = useGlobalSearch(debounced, open)\n\n // Capture the most recent successful query so it's available for the\n // \"recent\" list. We only persist on user-driven navigation (not every\n // keystroke) to keep the list signal-to-noise high.\n const persistRecent = React.useCallback((value: string): void => {\n if (!value) return\n setRecent((prev) => {\n const next = [value, ...prev.filter((q) => q !== value)].slice(0, RECENT_MAX)\n writeRecent(next)\n return next\n })\n }, [])\n\n const groups = data?.groups ?? []\n const hasQuery = debounced.length > 0\n const showEmpty = hasQuery && !isFetching && !isError && groups.length === 0\n\n const handleSelect = React.useCallback(\n (resourceId: string, recordId: string): void => {\n persistRecent(debounced)\n onOpenChange(false)\n navigate({ name: 'show', resourceId, recordId })\n },\n [debounced, navigate, onOpenChange, persistRecent],\n )\n\n const handleShowAll = React.useCallback(\n (resourceId: string): void => {\n persistRecent(debounced)\n onOpenChange(false)\n navigate({ name: 'list', resourceId })\n },\n [debounced, navigate, onOpenChange, persistRecent],\n )\n\n const handlePickRecent = React.useCallback((value: string): void => {\n setQuery(value)\n setDebounced(value)\n }, [])\n\n const handleClearRecent = React.useCallback((): void => {\n setRecent([])\n writeRecent([])\n }, [])\n\n return (\n <CommandDialog open={open} onOpenChange={onOpenChange}>\n {/* Visually-hidden title + description keep Radix Dialog accessibility\n warnings quiet and provide a label for screen readers. */}\n <DialogTitle className=\"sr-only\">{t('globalSearch:title')}</DialogTitle>\n <DialogDescription className=\"sr-only\">\n {t('globalSearch:description')}\n </DialogDescription>\n <CommandInput\n placeholder={t('globalSearch:placeholder')}\n value={query}\n onValueChange={setQuery}\n />\n {/* cmdk dedupes by item value — prefix each value with `resourceId:recordId`\n so identical record ids across resources keep distinct entries.\n shouldFilter is left on (default) so cmdk re-orders by relevance against\n the typed query — server already narrowed the set down. */}\n <CommandList>\n {!hasQuery && recent.length === 0 && (\n <div className=\"py-6 text-center text-sm text-muted-foreground\">\n {t('globalSearch:hint')}\n </div>\n )}\n {!hasQuery && recent.length > 0 && (\n <CommandGroup\n heading={\n <span className=\"flex items-center justify-between gap-2\">\n <span>{t('globalSearch:recent')}</span>\n <button\n type=\"button\"\n className=\"text-xs text-muted-foreground hover:text-foreground\"\n onClick={handleClearRecent}\n >\n <X className=\"mr-1 inline size-3\" aria-hidden=\"true\" />\n {t('globalSearch:clearRecent')}\n </button>\n </span>\n }\n >\n {recent.map((entry) => (\n <CommandItem\n key={`recent:${entry}`}\n value={`recent:${entry}`}\n onSelect={() => handlePickRecent(entry)}\n >\n <Clock className=\"mr-2 size-4 text-muted-foreground\" aria-hidden=\"true\" />\n <span className=\"flex-1 truncate\">{entry}</span>\n </CommandItem>\n ))}\n </CommandGroup>\n )}\n {hasQuery && isError && (\n <div\n className=\"flex items-center justify-center gap-2 py-6 text-sm text-destructive\"\n role=\"alert\"\n >\n <AlertTriangle className=\"size-4\" aria-hidden=\"true\" />\n <span>{t('globalSearch:error')}</span>\n </div>\n )}\n {showEmpty && <CommandEmpty>{t('globalSearch:noResults')}</CommandEmpty>}\n {hasQuery && !isError && isFetching && groups.length === 0 && (\n <div\n className=\"flex items-center justify-center gap-2 py-6 text-sm text-muted-foreground\"\n role=\"status\"\n aria-live=\"polite\"\n >\n <Loader2 className=\"size-4 animate-spin\" aria-hidden=\"true\"/>\n <span>{t('common:loading')}</span>\n </div>\n )}\n {groups.map((group, idx) => (\n <React.Fragment key={group.resourceId}>\n {idx > 0 && <CommandSeparator/>}\n <CommandGroup heading={group.resourceName}>\n {group.records.map((hit) => (\n <CommandItem\n key={`${hit.resourceId}:${hit.recordId}`}\n value={`${hit.resourceId}:${hit.recordId} ${hit.title} ${hit.snippet ?? ''}`}\n onSelect={() => handleSelect(hit.resourceId, hit.recordId)}\n className=\"flex-col items-start gap-0.5\"\n >\n <div className=\"flex w-full items-baseline gap-2\">\n <span className=\"flex-1 truncate font-medium\">\n {highlightMatch(hit.title, debounced)}\n </span>\n {hit.matchedField && (\n <span className=\"shrink-0 text-xs text-muted-foreground\">\n {t('globalSearch:matchedIn').replace('{field}', hit.matchedField)}\n </span>\n )}\n </div>\n {hit.snippet && (\n <div className=\"line-clamp-1 text-xs text-muted-foreground\">\n {highlightMatch(hit.snippet, debounced)}\n </div>\n )}\n </CommandItem>\n ))}\n {/* `forceMount` keeps this row visible regardless of the current\n query — cmdk's default fuzzy filter would otherwise drop it\n because the value `${id}:show-all` rarely contains the typed\n needle. */}\n <CommandItem\n key={`${group.resourceId}:show-all`}\n value={`${group.resourceId}:show-all`}\n forceMount\n onSelect={() => handleShowAll(group.resourceId)}\n className=\"text-xs text-muted-foreground\"\n >\n <ArrowRight className=\"mr-2 size-3.5\" aria-hidden=\"true\" />\n {t('globalSearch:showAllIn').replace('{resource}', group.resourceName)}\n </CommandItem>\n </CommandGroup>\n </React.Fragment>\n ))}\n </CommandList>\n </CommandDialog>\n )\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{a as e,i as t,n,r}from"./createLucideIcon-CUopU_LC.js";import{C as i,S as a,n as o,s,t as c}from"./with-selector-NDLhu4dT.js";import{a as l,c as u,d,f,h as p,i as m,l as h,m as g,n as _,o as v,p as y,r as b,s as ee,t as te,u as x}from"./undo-2-DlSB-5DM.js";import{n as ne,r as re,t as ie}from"./minimize-2-Bx2cH_WS.js";import{s as ae}from"./dist-Dpg8xy_r.js";import{t as oe}from"./textarea-CX_0QVSz.js";import{W as se,b as ce,ft as le,x as ue,y as de}from"./index-C3MuojaM.js";function S(e){this.content=e}S.prototype={constructor:S,find:function(e){for(var t=0;t<this.content.length;t+=2)if(this.content[t]===e)return t;return-1},get:function(e){var t=this.find(e);return t==-1?void 0:this.content[t+1]},update:function(e,t,n){var r=n&&n!=e?this.remove(n):this,i=r.find(e),a=r.content.slice();return i==-1?a.push(n||e,t):(a[i+1]=t,n&&(a[i]=n)),new S(a)},remove:function(e){var t=this.find(e);if(t==-1)return this;var n=this.content.slice();return n.splice(t,2),new S(n)},addToStart:function(e,t){return new S([e,t].concat(this.remove(e).content))},addToEnd:function(e,t){var n=this.remove(e).content.slice();return n.push(e,t),new S(n)},addBefore:function(e,t,n){var r=this.remove(t),i=r.content.slice(),a=r.find(e);return i.splice(a==-1?i.length:a,0,t,n),new S(i)},forEach:function(e){for(var t=0;t<this.content.length;t+=2)e(this.content[t],this.content[t+1])},prepend:function(e){return e=S.from(e),e.size?new S(e.content.concat(this.subtract(e).content)):this},append:function(e){return e=S.from(e),e.size?new S(this.subtract(e).content.concat(e.content)):this},subtract:function(e){var t=this;e=S.from(e);for(var n=0;n<e.content.length;n+=2)t=t.remove(e.content[n]);return t},toObject:function(){var e={};return this.forEach(function(t,n){e[t]=n}),e},get size(){return this.content.length>>1}},S.from=function(e){if(e instanceof S)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new S(t)};function fe(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a){n+=i.nodeSize;continue}if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){let e=i.text,t=a.text,r=0;for(;e[r]==t[r];r++)n++;return r&&r<e.length&&r<t.length&&he(e.charCodeAt(r-1))&&me(e.charCodeAt(r))&&n--,n}if(i.content.size||a.content.size){let e=fe(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}function pe(e,t,n,r){for(let i=e.childCount,a=t.childCount;;){if(i==0||a==0)return i==a?null:{a:n,b:r};let o=e.child(--i),s=t.child(--a),c=o.nodeSize;if(o==s){n-=c,r-=c;continue}if(!o.sameMarkup(s))return{a:n,b:r};if(o.isText&&o.text!=s.text){let e=o.text,t=s.text,i=e.length,a=t.length;for(;i>0&&a>0&&e[i-1]==t[a-1];)i--,a--,n--,r--;return i&&a&&i<e.length&&he(e.charCodeAt(i-1))&&me(e.charCodeAt(i))&&(n++,r++),{a:n,b:r}}if(o.content.size||s.content.size){let e=pe(o.content,s.content,n-1,r-1);if(e)return e}n-=c,r-=c}}function me(e){return e>=56320&&e<57344}function he(e){return e>=55296&&e<56320}var C=class e{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let t=0;t<e.length;t++)this.size+=e[t].nodeSize}nodesBetween(e,t,n,r=0,i){for(let a=0,o=0;o<t;a++){let s=this.content[a],c=o+s.nodeSize;if(c>e&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);a<t.content.length;a++)i.push(t.content[a]);return new e(i,this.size+t.size)}cut(t,n=this.size){if(t==0&&n==this.size)return this;let r=[],i=0;if(n>t)for(let e=0,a=0;a<n;e++){let o=this.content[e],s=a+o.nodeSize;s>t&&((a<t||s>n)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw RangeError(`Index `+e+` out of range for `+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,n=0;t<this.content.length;t++){let r=this.content[t];e(r,n,t),n+=r.nodeSize}}findDiffStart(e,t=0){return fe(this,e,t)}findDiffEnd(e,t=this.size,n=e.size){return pe(this,e,t,n)}findIndex(e){if(e==0)return ge(0,e);if(e==this.size)return ge(this.content.length,e);if(e>this.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?ge(t+1,i):ge(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return e.fromArray(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;e<t.length;e++){let i=t[e];r+=i.nodeSize,e&&i.isText&&t[e-1].sameMarkup(i)?(n||=t.slice(0,e),n[n.length-1]=i.withText(n[n.length-1].text+i.text)):n&&n.push(i)}return new e(n||t,r)}static from(t){if(!t)return e.empty;if(t instanceof e)return t;if(Array.isArray(t))return this.fromArray(t);if(t.attrs)return new e([t],t.nodeSize);throw RangeError(`Can not convert `+t+` to a Fragment`+(t.nodesBetween?` (looks like multiple versions of prosemirror-model were loaded)`:``))}};C.empty=new C([],0);var w={index:0,offset:0};function ge(e,t){return w.index=e,w.offset=t,w}function _e(e,t){if(e===t)return!0;if(!(e&&typeof e==`object`)||!(t&&typeof t==`object`))return!1;let n=Array.isArray(e);if(Array.isArray(t)!=n)return!1;if(n){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!_e(e[n],t[n]))return!1}else{for(let n in e)if(!(n in t)||!_e(e[n],t[n]))return!1;for(let n in t)if(!(n in e))return!1}return!0}var T=class e{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(this.eq(i))return e;if(this.type.excludes(i.type))t||=e.slice(0,r);else if(i.type.excludes(this.type))return e;else!n&&i.type.rank>this.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&_e(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Mark.fromJSON`);let n=e.marks[t.type];if(!n)throw RangeError(`There is no mark type ${t.type} in this schema`);let r=n.create(t.attrs);return n.checkAttrs(r.attrs),r}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}static setFrom(t){if(!t||Array.isArray(t)&&t.length==0)return e.none;if(t instanceof e)return[t];let n=t.slice();return n.sort((e,t)=>e.type.rank-t.type.rank),n}};T.none=[];var ve=class extends Error{},E=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=be(this.content,t+this.openStart,n,this.openStart+1,this.openEnd+1);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(ye(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(C.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};E.empty=new E(C.empty,0,0);function ye(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy(ye(a.content,t-i-1,n-i-1)))}function be(e,t,n,r,i,a){let{index:o,offset:s}=e.findIndex(t),c=e.maybeChild(o);if(s==t||c.isText)return a&&r<=0&&i<=0&&!a.canReplace(o,o,n)?null:e.cut(0,t).append(n).append(e.cut(t));let l=be(c.content,t-s-1,n,o==0?r-1:0,o==e.childCount-1?i-1:0,c);return l&&e.replaceChild(o,c.copy(l))}function xe(e,t,n){if(n.openStart>e.depth)throw new ve(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new ve(`Inconsistent open depths`);return Se(e,t,n,0)}function Se(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r<e.depth-n.openStart){let o=Se(e,t,n,r+1);return a.copy(a.content.replaceChild(i,o))}else if(!n.content.size)return De(a,ke(e,t,r));else if(!n.openStart&&!n.openEnd&&e.depth==r&&t.depth==r){let r=e.parent,i=r.content;return De(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}else{let{start:i,end:o}=Ae(n,e);return De(a,Oe(e,i,o,t,r))}}function Ce(e,t){if(!t.type.compatibleContent(e.type))throw new ve(`Cannot join `+t.type.name+` onto `+e.type.name)}function we(e,t,n){let r=e.node(n);return Ce(r,t.node(n)),r}function Te(e,t){let n=t.length-1;n>=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function Ee(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(Te(e.nodeAfter,r),a++));for(let e=a;e<o;e++)Te(i.child(e),r);t&&t.depth==n&&t.textOffset&&Te(t.nodeBefore,r)}function De(e,t){if(!e.type.validContent(t))throw new ve(`Invalid content for node `+e.type.name);return e.copy(t)}function Oe(e,t,n,r,i){let a=e.depth>i&&we(e,t,i+1),o=r.depth>i&&we(n,r,i+1),s=[];return Ee(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(Ce(a,o),Te(De(a,Oe(e,t,n,r,i+1)),s)):(a&&Te(De(a,ke(e,t,i+1)),s),Ee(t,n,i,s),o&&Te(De(o,ke(n,r,i+1)),s)),Ee(r,null,i,s),new C(s)}function ke(e,t,n){let r=[];return Ee(null,e,n,r),e.depth>n&&Te(De(we(e,t,n+1),ke(e,t,n+1)),r),Ee(t,null,n,r),new C(r)}function Ae(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(C.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var je=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t<e;t++)r+=n.child(t).nodeSize;return r}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return T.none;if(this.textOffset)return e.child(t).marks;let n=e.maybeChild(t-1),r=e.maybeChild(t);if(!n){let e=n;n=r,r=e}let i=n.marks;for(var a=0;a<i.length;a++)i[a].type.spec.inclusive===!1&&(!r||!i[a].isInSet(r.marks))&&(i=i[a--].removeFromSet(i));return i}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let n=t.marks,r=e.parent.maybeChild(e.index());for(var i=0;i<n.length;i++)n[i].type.spec.inclusive===!1&&(!r||!n[i].isInSet(r.marks))&&(n=n[i--].removeFromSet(n));return n}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let n=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);n>=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new Fe(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e=``;for(let t=1;t<=this.depth;t++)e+=(e?`/`:``)+this.node(t).type.name+`_`+this.index(t-1);return e+`:`+this.parentOffset}static resolve(t,n){if(!(n>=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=Pe.get(t);if(r)for(let e=0;e<r.elts.length;e++){let t=r.elts[e];if(t.pos==n)return t}else Pe.set(t,r=new Me);let i=r.elts[r.i]=e.resolve(t,n);return r.i=(r.i+1)%Ne,i}},Me=class{constructor(){this.elts=[],this.i=0}},Ne=12,Pe=new WeakMap,Fe=class{constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}},Ie=Object.create(null),Le=class e{constructor(e,t,n,r=T.none){this.type=e,this.attrs=t,this.marks=r,this.content=n||C.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,n,r=0){this.content.nodesBetween(e,t,n,r,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,``)}textBetween(e,t,n,r){return this.content.textBetween(e,t,n,r)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,n){return this.type==e&&_e(this.attrs,t||e.defaultAttrs||Ie)&&T.sameSet(this.marks,n||T.none)}copy(t=null){return t==this.content?this:new e(this.type,this.attrs,t,this.marks)}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.content,t)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,n=!1){if(e==t)return E.empty;let r=this.resolve(e),i=this.resolve(t),a=n?0:r.sharedDepth(t),o=r.start(a);return new E(r.node(a).content.cut(r.pos-o,i.pos-o),r.depth-a,i.depth-a)}replace(e,t,n){return xe(this.resolve(e),this.resolve(t),n)}nodeAt(e){for(let t=this;;){let{index:n,offset:r}=t.content.findIndex(e);if(t=t.maybeChild(n),!t)return null;if(r==e||t.isText)return t;e-=r+1}}childAfter(e){let{index:t,offset:n}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:n}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:n}=this.content.findIndex(e);if(n<e)return{node:this.content.child(t),index:t,offset:n};let r=this.content.child(t-1);return{node:r,index:t-1,offset:n-r.nodeSize}}resolve(e){return je.resolveCached(this,e)}resolveNoCache(e){return je.resolve(this,e)}rangeHasMark(e,t,n){let r=!1;return t>e&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),ze(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=C.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;e<i;e++)if(!this.type.allowsMarks(n.child(e).marks))return!1;return!0}canReplaceWith(e,t,n,r){if(r&&!this.type.allowsMarks(r))return!1;let i=this.contentMatchAt(e).matchType(n),a=i&&i.matchFragment(this.content,t);return a?a.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=T.none;for(let t=0;t<this.marks.length;t++){let n=this.marks[t];n.type.checkAttrs(n.attrs),e=n.addToSet(e)}if(!T.sameSet(e,this.marks))throw RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(e=>e.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=C.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};Le.prototype.text=void 0;var Re=class e extends Le{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw RangeError(`Empty text nodes are not allowed`);this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):ze(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new e(this.type,this.attrs,t,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function ze(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var Be=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new Ve(t,n);if(r.next==null)return e.empty;let i=He(r);r.next&&r.err(`Unexpected trailing text`);let a=Qe(Ye(i));return $e(a,r),a}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,n=e.childCount){let r=this;for(let i=t;r&&i<n;i++)r=r.matchType(e.child(i).type);return r}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let n=0;n<e.next.length;n++)if(this.next[t].type==e.next[n].type)return!0;return!1}fillBefore(e,t=!1,n=0){let r=[this];function i(a,o){let s=a.matchFragment(e,n);if(s&&(!t||s.validEnd))return C.from(o.map(e=>e.createAndFill()));for(let e=0;e<a.next.length;e++){let{type:t,next:n}=a.next[e];if(!(t.isText||t.hasRequiredAttrs())&&r.indexOf(n)==-1){r.push(n);let e=i(n,o.concat(t));if(e)return e}}return null}return i(this,[])}findWrapping(e){for(let t=0;t<this.wrapCache.length;t+=2)if(this.wrapCache[t]==e)return this.wrapCache[t+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),n=[{match:this,type:null,via:null}];for(;n.length;){let r=n.shift(),i=r.match;if(i.matchType(e)){let e=[];for(let t=r;t.type;t=t.via)e.push(t.type);return e.reverse()}for(let e=0;e<i.next.length;e++){let{type:a,next:o}=i.next[e];!a.isLeaf&&!a.hasRequiredAttrs()&&!(a.name in t)&&(!r.type||o.validEnd)&&(n.push({match:a.contentMatch,type:a,via:r}),t[a.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r<n.next.length;r++)e.indexOf(n.next[r].next)==-1&&t(n.next[r].next)}return t(this),e.map((t,n)=>{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n<t.next.length;n++)r+=(n?`, `:``)+t.next[n].type.name+`->`+e.indexOf(t.next[n].next);return r}).join(`
1
+ import{a as e,i as t,n,r}from"./createLucideIcon-CUopU_LC.js";import{C as i,S as a,n as o,s,t as c}from"./with-selector-NDLhu4dT.js";import{a as l,c as u,d,f,h as p,i as m,l as h,m as g,n as _,o as v,p as y,r as b,s as ee,t as te,u as x}from"./undo-2-DlSB-5DM.js";import{n as ne,r as re,t as ie}from"./minimize-2-Bx2cH_WS.js";import{s as ae}from"./dist-Dpg8xy_r.js";import{t as oe}from"./textarea-CX_0QVSz.js";import{W as se,b as ce,ft as le,x as ue,y as de}from"./index-BL8keDxQ.js";function S(e){this.content=e}S.prototype={constructor:S,find:function(e){for(var t=0;t<this.content.length;t+=2)if(this.content[t]===e)return t;return-1},get:function(e){var t=this.find(e);return t==-1?void 0:this.content[t+1]},update:function(e,t,n){var r=n&&n!=e?this.remove(n):this,i=r.find(e),a=r.content.slice();return i==-1?a.push(n||e,t):(a[i+1]=t,n&&(a[i]=n)),new S(a)},remove:function(e){var t=this.find(e);if(t==-1)return this;var n=this.content.slice();return n.splice(t,2),new S(n)},addToStart:function(e,t){return new S([e,t].concat(this.remove(e).content))},addToEnd:function(e,t){var n=this.remove(e).content.slice();return n.push(e,t),new S(n)},addBefore:function(e,t,n){var r=this.remove(t),i=r.content.slice(),a=r.find(e);return i.splice(a==-1?i.length:a,0,t,n),new S(i)},forEach:function(e){for(var t=0;t<this.content.length;t+=2)e(this.content[t],this.content[t+1])},prepend:function(e){return e=S.from(e),e.size?new S(e.content.concat(this.subtract(e).content)):this},append:function(e){return e=S.from(e),e.size?new S(this.subtract(e).content.concat(e.content)):this},subtract:function(e){var t=this;e=S.from(e);for(var n=0;n<e.content.length;n+=2)t=t.remove(e.content[n]);return t},toObject:function(){var e={};return this.forEach(function(t,n){e[t]=n}),e},get size(){return this.content.length>>1}},S.from=function(e){if(e instanceof S)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new S(t)};function fe(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a){n+=i.nodeSize;continue}if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){let e=i.text,t=a.text,r=0;for(;e[r]==t[r];r++)n++;return r&&r<e.length&&r<t.length&&he(e.charCodeAt(r-1))&&me(e.charCodeAt(r))&&n--,n}if(i.content.size||a.content.size){let e=fe(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}function pe(e,t,n,r){for(let i=e.childCount,a=t.childCount;;){if(i==0||a==0)return i==a?null:{a:n,b:r};let o=e.child(--i),s=t.child(--a),c=o.nodeSize;if(o==s){n-=c,r-=c;continue}if(!o.sameMarkup(s))return{a:n,b:r};if(o.isText&&o.text!=s.text){let e=o.text,t=s.text,i=e.length,a=t.length;for(;i>0&&a>0&&e[i-1]==t[a-1];)i--,a--,n--,r--;return i&&a&&i<e.length&&he(e.charCodeAt(i-1))&&me(e.charCodeAt(i))&&(n++,r++),{a:n,b:r}}if(o.content.size||s.content.size){let e=pe(o.content,s.content,n-1,r-1);if(e)return e}n-=c,r-=c}}function me(e){return e>=56320&&e<57344}function he(e){return e>=55296&&e<56320}var C=class e{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let t=0;t<e.length;t++)this.size+=e[t].nodeSize}nodesBetween(e,t,n,r=0,i){for(let a=0,o=0;o<t;a++){let s=this.content[a],c=o+s.nodeSize;if(c>e&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);a<t.content.length;a++)i.push(t.content[a]);return new e(i,this.size+t.size)}cut(t,n=this.size){if(t==0&&n==this.size)return this;let r=[],i=0;if(n>t)for(let e=0,a=0;a<n;e++){let o=this.content[e],s=a+o.nodeSize;s>t&&((a<t||s>n)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw RangeError(`Index `+e+` out of range for `+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,n=0;t<this.content.length;t++){let r=this.content[t];e(r,n,t),n+=r.nodeSize}}findDiffStart(e,t=0){return fe(this,e,t)}findDiffEnd(e,t=this.size,n=e.size){return pe(this,e,t,n)}findIndex(e){if(e==0)return ge(0,e);if(e==this.size)return ge(this.content.length,e);if(e>this.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?ge(t+1,i):ge(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return e.fromArray(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;e<t.length;e++){let i=t[e];r+=i.nodeSize,e&&i.isText&&t[e-1].sameMarkup(i)?(n||=t.slice(0,e),n[n.length-1]=i.withText(n[n.length-1].text+i.text)):n&&n.push(i)}return new e(n||t,r)}static from(t){if(!t)return e.empty;if(t instanceof e)return t;if(Array.isArray(t))return this.fromArray(t);if(t.attrs)return new e([t],t.nodeSize);throw RangeError(`Can not convert `+t+` to a Fragment`+(t.nodesBetween?` (looks like multiple versions of prosemirror-model were loaded)`:``))}};C.empty=new C([],0);var w={index:0,offset:0};function ge(e,t){return w.index=e,w.offset=t,w}function _e(e,t){if(e===t)return!0;if(!(e&&typeof e==`object`)||!(t&&typeof t==`object`))return!1;let n=Array.isArray(e);if(Array.isArray(t)!=n)return!1;if(n){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!_e(e[n],t[n]))return!1}else{for(let n in e)if(!(n in t)||!_e(e[n],t[n]))return!1;for(let n in t)if(!(n in e))return!1}return!0}var T=class e{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(this.eq(i))return e;if(this.type.excludes(i.type))t||=e.slice(0,r);else if(i.type.excludes(this.type))return e;else!n&&i.type.rank>this.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&_e(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Mark.fromJSON`);let n=e.marks[t.type];if(!n)throw RangeError(`There is no mark type ${t.type} in this schema`);let r=n.create(t.attrs);return n.checkAttrs(r.attrs),r}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}static setFrom(t){if(!t||Array.isArray(t)&&t.length==0)return e.none;if(t instanceof e)return[t];let n=t.slice();return n.sort((e,t)=>e.type.rank-t.type.rank),n}};T.none=[];var ve=class extends Error{},E=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=be(this.content,t+this.openStart,n,this.openStart+1,this.openEnd+1);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(ye(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(C.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};E.empty=new E(C.empty,0,0);function ye(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy(ye(a.content,t-i-1,n-i-1)))}function be(e,t,n,r,i,a){let{index:o,offset:s}=e.findIndex(t),c=e.maybeChild(o);if(s==t||c.isText)return a&&r<=0&&i<=0&&!a.canReplace(o,o,n)?null:e.cut(0,t).append(n).append(e.cut(t));let l=be(c.content,t-s-1,n,o==0?r-1:0,o==e.childCount-1?i-1:0,c);return l&&e.replaceChild(o,c.copy(l))}function xe(e,t,n){if(n.openStart>e.depth)throw new ve(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new ve(`Inconsistent open depths`);return Se(e,t,n,0)}function Se(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r<e.depth-n.openStart){let o=Se(e,t,n,r+1);return a.copy(a.content.replaceChild(i,o))}else if(!n.content.size)return De(a,ke(e,t,r));else if(!n.openStart&&!n.openEnd&&e.depth==r&&t.depth==r){let r=e.parent,i=r.content;return De(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}else{let{start:i,end:o}=Ae(n,e);return De(a,Oe(e,i,o,t,r))}}function Ce(e,t){if(!t.type.compatibleContent(e.type))throw new ve(`Cannot join `+t.type.name+` onto `+e.type.name)}function we(e,t,n){let r=e.node(n);return Ce(r,t.node(n)),r}function Te(e,t){let n=t.length-1;n>=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function Ee(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(Te(e.nodeAfter,r),a++));for(let e=a;e<o;e++)Te(i.child(e),r);t&&t.depth==n&&t.textOffset&&Te(t.nodeBefore,r)}function De(e,t){if(!e.type.validContent(t))throw new ve(`Invalid content for node `+e.type.name);return e.copy(t)}function Oe(e,t,n,r,i){let a=e.depth>i&&we(e,t,i+1),o=r.depth>i&&we(n,r,i+1),s=[];return Ee(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(Ce(a,o),Te(De(a,Oe(e,t,n,r,i+1)),s)):(a&&Te(De(a,ke(e,t,i+1)),s),Ee(t,n,i,s),o&&Te(De(o,ke(n,r,i+1)),s)),Ee(r,null,i,s),new C(s)}function ke(e,t,n){let r=[];return Ee(null,e,n,r),e.depth>n&&Te(De(we(e,t,n+1),ke(e,t,n+1)),r),Ee(t,null,n,r),new C(r)}function Ae(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(C.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var je=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t<e;t++)r+=n.child(t).nodeSize;return r}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return T.none;if(this.textOffset)return e.child(t).marks;let n=e.maybeChild(t-1),r=e.maybeChild(t);if(!n){let e=n;n=r,r=e}let i=n.marks;for(var a=0;a<i.length;a++)i[a].type.spec.inclusive===!1&&(!r||!i[a].isInSet(r.marks))&&(i=i[a--].removeFromSet(i));return i}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let n=t.marks,r=e.parent.maybeChild(e.index());for(var i=0;i<n.length;i++)n[i].type.spec.inclusive===!1&&(!r||!n[i].isInSet(r.marks))&&(n=n[i--].removeFromSet(n));return n}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let n=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);n>=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new Fe(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e=``;for(let t=1;t<=this.depth;t++)e+=(e?`/`:``)+this.node(t).type.name+`_`+this.index(t-1);return e+`:`+this.parentOffset}static resolve(t,n){if(!(n>=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=Pe.get(t);if(r)for(let e=0;e<r.elts.length;e++){let t=r.elts[e];if(t.pos==n)return t}else Pe.set(t,r=new Me);let i=r.elts[r.i]=e.resolve(t,n);return r.i=(r.i+1)%Ne,i}},Me=class{constructor(){this.elts=[],this.i=0}},Ne=12,Pe=new WeakMap,Fe=class{constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}},Ie=Object.create(null),Le=class e{constructor(e,t,n,r=T.none){this.type=e,this.attrs=t,this.marks=r,this.content=n||C.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,n,r=0){this.content.nodesBetween(e,t,n,r,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,``)}textBetween(e,t,n,r){return this.content.textBetween(e,t,n,r)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,n){return this.type==e&&_e(this.attrs,t||e.defaultAttrs||Ie)&&T.sameSet(this.marks,n||T.none)}copy(t=null){return t==this.content?this:new e(this.type,this.attrs,t,this.marks)}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.content,t)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,n=!1){if(e==t)return E.empty;let r=this.resolve(e),i=this.resolve(t),a=n?0:r.sharedDepth(t),o=r.start(a);return new E(r.node(a).content.cut(r.pos-o,i.pos-o),r.depth-a,i.depth-a)}replace(e,t,n){return xe(this.resolve(e),this.resolve(t),n)}nodeAt(e){for(let t=this;;){let{index:n,offset:r}=t.content.findIndex(e);if(t=t.maybeChild(n),!t)return null;if(r==e||t.isText)return t;e-=r+1}}childAfter(e){let{index:t,offset:n}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:n}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:n}=this.content.findIndex(e);if(n<e)return{node:this.content.child(t),index:t,offset:n};let r=this.content.child(t-1);return{node:r,index:t-1,offset:n-r.nodeSize}}resolve(e){return je.resolveCached(this,e)}resolveNoCache(e){return je.resolve(this,e)}rangeHasMark(e,t,n){let r=!1;return t>e&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),ze(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=C.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;e<i;e++)if(!this.type.allowsMarks(n.child(e).marks))return!1;return!0}canReplaceWith(e,t,n,r){if(r&&!this.type.allowsMarks(r))return!1;let i=this.contentMatchAt(e).matchType(n),a=i&&i.matchFragment(this.content,t);return a?a.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=T.none;for(let t=0;t<this.marks.length;t++){let n=this.marks[t];n.type.checkAttrs(n.attrs),e=n.addToSet(e)}if(!T.sameSet(e,this.marks))throw RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(e=>e.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=C.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};Le.prototype.text=void 0;var Re=class e extends Le{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw RangeError(`Empty text nodes are not allowed`);this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):ze(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new e(this.type,this.attrs,t,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function ze(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var Be=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new Ve(t,n);if(r.next==null)return e.empty;let i=He(r);r.next&&r.err(`Unexpected trailing text`);let a=Qe(Ye(i));return $e(a,r),a}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,n=e.childCount){let r=this;for(let i=t;r&&i<n;i++)r=r.matchType(e.child(i).type);return r}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let n=0;n<e.next.length;n++)if(this.next[t].type==e.next[n].type)return!0;return!1}fillBefore(e,t=!1,n=0){let r=[this];function i(a,o){let s=a.matchFragment(e,n);if(s&&(!t||s.validEnd))return C.from(o.map(e=>e.createAndFill()));for(let e=0;e<a.next.length;e++){let{type:t,next:n}=a.next[e];if(!(t.isText||t.hasRequiredAttrs())&&r.indexOf(n)==-1){r.push(n);let e=i(n,o.concat(t));if(e)return e}}return null}return i(this,[])}findWrapping(e){for(let t=0;t<this.wrapCache.length;t+=2)if(this.wrapCache[t]==e)return this.wrapCache[t+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),n=[{match:this,type:null,via:null}];for(;n.length;){let r=n.shift(),i=r.match;if(i.matchType(e)){let e=[];for(let t=r;t.type;t=t.via)e.push(t.type);return e.reverse()}for(let e=0;e<i.next.length;e++){let{type:a,next:o}=i.next[e];!a.isLeaf&&!a.hasRequiredAttrs()&&!(a.name in t)&&(!r.type||o.validEnd)&&(n.push({match:a.contentMatch,type:a,via:r}),t[a.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r<n.next.length;r++)e.indexOf(n.next[r].next)==-1&&t(n.next[r].next)}return t(this),e.map((t,n)=>{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n<t.next.length;n++)r+=(n?`, `:``)+t.next[n].type.name+`->`+e.indexOf(t.next[n].next);return r}).join(`
2
2
  `)}};Be.empty=new Be(!0);var Ve=class{constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==``&&this.tokens.pop(),this.tokens[0]==``&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw SyntaxError(e+` (in content expression '`+this.string+`')`)}};function He(e){let t=[];do t.push(Ue(e));while(e.eat(`|`));return t.length==1?t[0]:{type:`choice`,exprs:t}}function Ue(e){let t=[];do t.push(We(e));while(e.next&&e.next!=`)`&&e.next!=`|`);return t.length==1?t[0]:{type:`seq`,exprs:t}}function We(e){let t=Je(e);for(;;)if(e.eat(`+`))t={type:`plus`,expr:t};else if(e.eat(`*`))t={type:`star`,expr:t};else if(e.eat(`?`))t={type:`opt`,expr:t};else if(e.eat(`{`))t=Ke(e,t);else break;return t}function Ge(e){/\D/.test(e.next)&&e.err(`Expected number, got '`+e.next+`'`);let t=Number(e.next);return e.pos++,t}function Ke(e,t){let n=Ge(e),r=n;return e.eat(`,`)&&(r=e.next==`}`?-1:Ge(e)),e.eat(`}`)||e.err(`Unclosed braced range`),{type:`range`,min:n,max:r,expr:t}}function qe(e,t){let n=e.nodeTypes,r=n[t];if(r)return[r];let i=[];for(let e in n){let r=n[e];r.isInGroup(t)&&i.push(r)}return i.length==0&&e.err(`No node type or group '`+t+`' found`),i}function Je(e){if(e.eat(`(`)){let t=He(e);return e.eat(`)`)||e.err(`Missing closing paren`),t}else if(/\W/.test(e.next))e.err(`Unexpected token '`+e.next+`'`);else{let t=qe(e,e.next).map(t=>(e.inline==null?e.inline=t.isInline:e.inline!=t.isInline&&e.err(`Mixing inline and block content`),{type:`name`,value:t}));return e.pos++,t.length==1?t[0]:{type:`choice`,exprs:t}}}function Ye(e){let t=[[]];return i(a(e,0),n()),t;function n(){return t.push([])-1}function r(e,n,r){let i={term:r,to:n};return t[e].push(i),i}function i(e,t){e.forEach(e=>e.to=t)}function a(e,t){if(e.type==`choice`)return e.exprs.reduce((e,n)=>e.concat(a(n,t)),[]);if(e.type==`seq`)for(let r=0;;r++){let o=a(e.exprs[r],t);if(r==e.exprs.length-1)return o;i(o,t=n())}else if(e.type==`star`){let o=n();return r(t,o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`plus`){let o=n();return i(a(e.expr,t),o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`opt`)return[r(t)].concat(a(e.expr,t));else if(e.type==`range`){let o=t;for(let t=0;t<e.min;t++){let t=n();i(a(e.expr,o),t),o=t}if(e.max==-1)i(a(e.expr,o),o);else for(let t=e.min;t<e.max;t++){let t=n();r(o,t),i(a(e.expr,o),t),o=t}return[r(o)]}else if(e.type==`name`)return[r(t,void 0,e.value)];else throw Error(`Unknown expr type`)}}function Xe(e,t){return t-e}function Ze(e,t){let n=[];return r(t),n.sort(Xe);function r(t){let i=e[t];if(i.length==1&&!i[0].term)return r(i[0].to);n.push(t);for(let e=0;e<i.length;e++){let{term:t,to:a}=i[e];!t&&n.indexOf(a)==-1&&r(a)}}}function Qe(e){let t=Object.create(null);return n(Ze(e,0));function n(r){let i=[];r.forEach(t=>{e[t].forEach(({term:t,to:n})=>{if(!t)return;let r;for(let e=0;e<i.length;e++)i[e][0]==t&&(r=i[e][1]);Ze(e,n).forEach(e=>{r||i.push([t,r=[]]),r.indexOf(e)==-1&&r.push(e)})})});let a=t[r.join(`,`)]=new Be(r.indexOf(e.length-1)>-1);for(let e=0;e<i.length;e++){let r=i[e][1].sort(Xe);a.next.push({type:i[e][0],next:t[r.join(`,`)]||n(r)})}return a}}function $e(e,t){for(let n=0,r=[e];n<r.length;n++){let e=r[n],i=!e.validEnd,a=[];for(let t=0;t<e.next.length;t++){let{type:n,next:o}=e.next[t];a.push(n.name),i&&!(n.isText||n.hasRequiredAttrs())&&(i=!1),r.indexOf(o)==-1&&r.push(o)}i&&t.err(`Only non-generatable nodes (`+a.join(`, `)+`) in a required position (see https://prosemirror.net/docs/guide/#generatable)`)}}function et(e){let t=Object.create(null);for(let n in e){let r=e[n];if(!r.hasDefault)return null;t[n]=r.default}return t}function tt(e,t){let n=Object.create(null);for(let r in e){let i=t&&t[r];if(i===void 0){let t=e[r];if(t.hasDefault)i=t.default;else throw RangeError(`No value supplied for attribute `+r)}n[r]=i}return n}function nt(e,t,n,r){for(let i in t)if(!(i in e))throw RangeError(`Unsupported attribute ${i} for ${n} of type ${r}`);for(let n in e)e[n].validate&&e[n].validate(t[n])}function rt(e,t){let n=Object.create(null);if(t)for(let r in t)n[r]=new ot(e,r,t[r]);return n}var it=class e{constructor(e,t,n){this.name=e,this.schema=t,this.spec=n,this.markSet=null,this.groups=n.group?n.group.split(` `):[],this.attrs=rt(e,n.attrs),this.defaultAttrs=et(this.attrs),this.contentMatch=null,this.inlineContent=null,this.isBlock=!(n.inline||e==`text`),this.isText=e==`text`}get isInline(){return!this.isBlock}get isTextblock(){return this.isBlock&&this.inlineContent}get isLeaf(){return this.contentMatch==Be.empty}get isAtom(){return this.isLeaf||!!this.spec.atom}isInGroup(e){return this.groups.indexOf(e)>-1}get whitespace(){return this.spec.whitespace||(this.spec.code?`pre`:`normal`)}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:tt(this.attrs,e)}create(e=null,t,n){if(this.isText)throw Error(`NodeType.create can't construct text nodes`);return new Le(this,this.computeAttrs(e),C.from(t),T.setFrom(n))}createChecked(e=null,t,n){return t=C.from(t),this.checkContent(t),new Le(this,this.computeAttrs(e),t,T.setFrom(n))}createAndFill(e=null,t,n){if(e=this.computeAttrs(e),t=C.from(t),t.size){let e=this.contentMatch.fillBefore(t);if(!e)return null;t=e.append(t)}let r=this.contentMatch.matchFragment(t),i=r&&r.fillBefore(C.empty,!0);return i?new Le(this,e,t.append(i),T.setFrom(n)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let t=0;t<e.childCount;t++)if(!this.allowsMarks(e.child(t).marks))return!1;return!0}checkContent(e){if(!this.validContent(e))throw RangeError(`Invalid content for node ${this.name}: ${e.toString().slice(0,50)}`)}checkAttrs(e){nt(this.attrs,e,`node`,this.name)}allowsMarkType(e){return this.markSet==null||this.markSet.indexOf(e)>-1}allowsMarks(e){if(this.markSet==null)return!0;for(let t=0;t<e.length;t++)if(!this.allowsMarkType(e[t].type))return!1;return!0}allowedMarks(e){if(this.markSet==null)return e;let t;for(let n=0;n<e.length;n++)this.allowsMarkType(e[n].type)?t&&t.push(e[n]):t||=e.slice(0,n);return t?t.length?t:T.none:e}static compile(t,n){let r=Object.create(null);t.forEach((t,i)=>r[t]=new e(t,n,i));let i=n.spec.topNode||`doc`;if(!r[i])throw RangeError(`Schema is missing its top node type ('`+i+`')`);if(!r.text)throw RangeError(`Every schema needs a 'text' type`);for(let e in r.text.attrs)throw RangeError(`The text node type should not have attributes`);return r}};function at(e,t,n){let r=n.split(`|`);return n=>{let i=n===null?`null`:typeof n;if(r.indexOf(i)<0)throw RangeError(`Expected value of type ${r} for attribute ${t} on type ${e}, got ${i}`)}}var ot=class{constructor(e,t,n){this.hasDefault=Object.prototype.hasOwnProperty.call(n,`default`),this.default=n.default,this.validate=typeof n.validate==`string`?at(e,t,n.validate):n.validate}get isRequired(){return!this.hasDefault}},st=class e{constructor(e,t,n,r){this.name=e,this.rank=t,this.schema=n,this.spec=r,this.attrs=rt(e,r.attrs),this.excluded=null;let i=et(this.attrs);this.instance=i?new T(this,i):null}create(e=null){return!e&&this.instance?this.instance:new T(this,tt(this.attrs,e))}static compile(t,n){let r=Object.create(null),i=0;return t.forEach((t,a)=>r[t]=new e(t,i++,n,a)),r}removeFromSet(e){for(var t=0;t<e.length;t++)e[t].type==this&&(e=e.slice(0,t).concat(e.slice(t+1)),t--);return e}isInSet(e){for(let t=0;t<e.length;t++)if(e[t].type==this)return e[t]}checkAttrs(e){nt(this.attrs,e,`mark`,this.name)}excludes(e){return this.excluded.indexOf(e)>-1}},ct=class{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let t=this.spec={};for(let n in e)t[n]=e[n];t.nodes=S.from(e.nodes),t.marks=S.from(e.marks||{}),this.nodes=it.compile(this.spec.nodes,this),this.marks=st.compile(this.spec.marks,this);let n=Object.create(null);for(let e in this.nodes){if(e in this.marks)throw RangeError(e+` can not be both a node and a mark`);let t=this.nodes[e],r=t.spec.content||``,i=t.spec.marks;if(t.contentMatch=n[r]||(n[r]=Be.parse(r,this.nodes)),t.inlineContent=t.contentMatch.inlineContent,t.spec.linebreakReplacement){if(this.linebreakReplacement)throw RangeError(`Multiple linebreak nodes defined`);if(!t.isInline||!t.isLeaf)throw RangeError(`Linebreak replacement nodes must be inline leaf nodes`);this.linebreakReplacement=t}t.markSet=i==`_`?null:i?lt(this,i.split(` `)):i==``||!t.inlineContent?[]:null}for(let e in this.marks){let t=this.marks[e],n=t.spec.excludes;t.excluded=n==null?[t]:n==``?[]:lt(this,n.split(` `))}this.nodeFromJSON=e=>Le.fromJSON(this,e),this.markFromJSON=e=>T.fromJSON(this,e),this.topNodeType=this.nodes[this.spec.topNode||`doc`],this.cached.wrappings=Object.create(null)}node(e,t=null,n,r){if(typeof e==`string`)e=this.nodeType(e);else if(!(e instanceof it))throw RangeError(`Invalid node type: `+e);else if(e.schema!=this)throw RangeError(`Node type from different schema used (`+e.name+`)`);return e.createChecked(t,n,r)}text(e,t){let n=this.nodes.text;return new Re(n,n.defaultAttrs,e,T.setFrom(t))}mark(e,t){return typeof e==`string`&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw RangeError(`Unknown node type: `+e);return t}};function lt(e,t){let n=[];for(let r=0;r<t.length;r++){let i=t[r],a=e.marks[i],o=a;if(a)n.push(a);else for(let t in e.marks){let r=e.marks[t];(i==`_`||r.spec.group&&r.spec.group.split(` `).indexOf(i)>-1)&&n.push(o=r)}if(!o)throw SyntaxError(`Unknown mark type: '`+t[r]+`'`)}return n}function ut(e){return e.tag!=null}function dt(e){return e.style!=null}var ft=class e{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let n=this.matchedStyles=[];t.forEach(e=>{if(ut(e))this.tags.push(e);else if(dt(e)){let t=/[^=]*/.exec(e.style)[0];n.indexOf(t)<0&&n.push(t),this.styles.push(e)}}),this.normalizeLists=!this.tags.some(t=>{if(!/^(ul|ol)\b/.test(t.tag)||!t.node)return!1;let n=e.nodes[t.node];return n.contentMatch.matchType(n)})}parse(e,t={}){let n=new xt(this,t,!1);return n.addAll(e,T.none,t.from,t.to),n.finish()}parseSlice(e,t={}){let n=new xt(this,t,!0);return n.addAll(e,T.none,t.from,t.to),E.maxOpen(n.finish())}matchTag(e,t,n){for(let r=n?this.tags.indexOf(n)+1:0;r<this.tags.length;r++){let n=this.tags[r];if(Ct(e,n.tag)&&(n.namespace===void 0||e.namespaceURI==n.namespace)&&(!n.context||t.matchesContext(n.context))){if(n.getAttrs){let t=n.getAttrs(e);if(t===!1)continue;n.attrs=t||void 0}return n}}}matchStyle(e,t,n,r){for(let i=r?this.styles.indexOf(r)+1:0;i<this.styles.length;i++){let r=this.styles[i],a=r.style;if(!(a.indexOf(e)!=0||r.context&&!n.matchesContext(r.context)||a.length>e.length&&(a.charCodeAt(e.length)!=61||a.slice(e.length+1)!=t))){if(r.getAttrs){let e=r.getAttrs(t);if(e===!1)continue;r.attrs=e||void 0}return r}}}static schemaRules(e){let t=[];function n(e){let n=e.priority==null?50:e.priority,r=0;for(;r<t.length;r++){let e=t[r];if((e.priority==null?50:e.priority)<n)break}t.splice(r,0,e)}for(let t in e.marks){let r=e.marks[t].spec.parseDOM;r&&r.forEach(e=>{n(e=wt(e)),e.mark||e.ignore||e.clearMark||(e.mark=t)})}for(let t in e.nodes){let r=e.nodes[t].spec.parseDOM;r&&r.forEach(e=>{n(e=wt(e)),e.node||e.ignore||e.mark||(e.node=t)})}return t}static fromSchema(t){return t.cached.domParser||(t.cached.domParser=new e(t,e.schemaRules(t)))}},pt={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},mt={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},ht={ol:!0,ul:!0},gt=1,_t=2,vt=4;function yt(e,t,n){return t==null?e&&e.whitespace==`pre`?3:n&-5:(t?gt:0)|(t===`full`?_t:0)}var bt=class{constructor(e,t,n,r,i,a){this.type=e,this.attrs=t,this.marks=n,this.solid=r,this.options=a,this.content=[],this.activeMarks=T.none,this.match=i||(a&vt?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(C.from(e));if(t)this.match=this.type.contentMatch.matchFragment(t);else{let t=this.type.contentMatch,n;return(n=t.findWrapping(e.type))?(this.match=t,n):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&gt)){let e=this.content[this.content.length-1],t;if(e&&e.isText&&(t=/[ \t\r\n\u000c]+$/.exec(e.text))){let n=e;e.text.length==t[0].length?this.content.pop():this.content[this.content.length-1]=n.withText(n.text.slice(0,n.text.length-t[0].length))}}let t=C.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(C.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!pt.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}},xt=class{constructor(e,t,n){this.parser=e,this.options=t,this.isOpen=n,this.open=0,this.localPreserveWS=!1;let r=t.topNode,i,a=yt(null,t.preserveWhitespace,0)|(n?vt:0);i=r?new bt(r.type,r.attrs,T.none,!0,t.topMatch||r.type.contentMatch,a):n?new bt(null,null,T.none,!0,null,a):new bt(e.schema.topNodeType,null,T.none,!0,null,a),this.nodes=[i],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){e.nodeType==3?this.addTextNode(e,t):e.nodeType==1&&this.addElement(e,t)}addTextNode(e,t){let n=e.nodeValue,r=this.top,i=r.options&_t?`full`:this.localPreserveWS||(r.options&gt)>0,{schema:a}=this.parser;if(i===`full`||r.inlineContext(e)||/[^ \t\r\n\u000c]/.test(n)){if(!i){if(n=n.replace(/[ \t\r\n\u000c]+/g,` `),/^[ \t\r\n\u000c]/.test(n)&&this.open==this.nodes.length-1){let t=r.content[r.content.length-1],i=e.previousSibling;(!t||i&&i.nodeName==`BR`||t.isText&&/[ \t\r\n\u000c]$/.test(t.text))&&(n=n.slice(1))}}else if(i===`full`)n=n.replace(/\r\n?/g,`
3
3
  `);else if(a.linebreakReplacement&&/[\r\n]/.test(n)&&this.top.findWrapping(a.linebreakReplacement.create())){let e=n.split(/\r?\n|\r/);for(let n=0;n<e.length;n++)n&&this.insertNode(a.linebreakReplacement.create(),t,!0),e[n]&&this.insertNode(a.text(e[n]),t,!/\S/.test(e[n]));n=``}else n=n.replace(/\r?\n|\r/g,` `);n&&this.insertNode(a.text(n),t,!/\S/.test(n)),this.findInText(e)}else this.findInside(e)}addElement(e,t,n){let r=this.localPreserveWS,i=this.top;(e.tagName==`PRE`||/pre/.test(e.style&&e.style.whiteSpace))&&(this.localPreserveWS=!0);let a=e.nodeName.toLowerCase(),o;ht.hasOwnProperty(a)&&this.parser.normalizeLists&&St(e);let s=this.options.ruleFromNode&&this.options.ruleFromNode(e)||(o=this.parser.matchTag(e,this,n));out:if(s?s.ignore:mt.hasOwnProperty(a))this.findInside(e),this.ignoreFallback(e,t);else if(!s||s.skip||s.closeParent){s&&s.closeParent?this.open=Math.max(0,this.open-1):s&&s.skip.nodeType&&(e=s.skip);let n,r=this.needsBlock;if(pt.hasOwnProperty(a))i.content.length&&i.content[0].isInline&&this.open&&(this.open--,i=this.top),n=!0,i.type||(this.needsBlock=!0);else if(!e.firstChild){this.leafFallback(e,t);break out}let o=s&&s.skip?t:this.readStyles(e,t);o&&this.addAll(e,o),n&&this.sync(i),this.needsBlock=r}else{let n=this.readStyles(e,t);n&&this.addElementByRule(e,s,n,s.consuming===!1?o:void 0)}this.localPreserveWS=r}leafFallback(e,t){e.nodeName==`BR`&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(e.ownerDocument.createTextNode(`
4
4
  `),t)}ignoreFallback(e,t){e.nodeName==`BR`&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text(`-`),t,!0)}readStyles(e,t){let n=e.style;if(n&&n.length)for(let e=0;e<this.parser.matchedStyles.length;e++){let r=this.parser.matchedStyles[e],i=n.getPropertyValue(r);if(i)for(let e;;){let n=this.parser.matchStyle(r,i,this,e);if(!n)break;if(n.ignore)return null;if(t=n.clearMark?t.filter(e=>!n.clearMark(e)):t.concat(this.parser.schema.marks[n.mark].create(n.attrs)),n.consuming===!1)e=n;else break}}return t}addElementByRule(e,t,n,r){let i,a;if(t.node)if(a=this.parser.schema.nodes[t.node],a.isLeaf)this.insertNode(a.create(t.attrs),n,e.nodeName==`BR`)||this.leafFallback(e,n);else{let e=this.enter(a,t.attrs||null,n,t.preserveWhitespace);e&&(i=!0,n=e)}else{let e=this.parser.schema.marks[t.mark];n=n.concat(e.create(t.attrs))}let o=this.top;if(a&&a.isLeaf)this.findInside(e);else if(r)this.addElement(e,n,r);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(e=>this.insertNode(e,n,!1));else{let r=e;typeof t.contentElement==`string`?r=e.querySelector(t.contentElement):typeof t.contentElement==`function`?r=t.contentElement(e):t.contentElement&&(r=t.contentElement),this.findAround(e,r,!0),this.addAll(r,n),this.findAround(e,r,!1)}i&&this.sync(o)&&this.open--}addAll(e,t,n,r){let i=n||0;for(let a=n?e.childNodes[n]:e.firstChild,o=r==null?null:e.childNodes[r];a!=o;a=a.nextSibling,++i)this.findAtPoint(e,i),this.addDOM(a,t);this.findAtPoint(e,i)}findPlace(e,t,n){let r,i;for(let t=this.open,a=0;t>=0;t--){let o=this.nodes[t],s=o.findWrapping(e);if(s&&(!r||r.length>s.length+a)&&(r=s,i=o,!s.length))break;if(o.solid){if(n)break;a+=2}}if(!r)return null;this.sync(i);for(let e=0;e<r.length;e++)t=this.enterInner(r[e],null,t,!1);return t}insertNode(e,t,n){if(e.isInline&&this.needsBlock&&!this.top.type){let e=this.textblockFromContext();e&&(t=this.enterInner(e,null,t))}let r=this.findPlace(e,t,n);if(r){this.closeExtra();let t=this.top;t.match&&=t.match.matchType(e.type);let n=T.none;for(let i of r.concat(e.marks))(t.type?t.type.allowsMarkType(i.type):Tt(i.type,e.type))&&(n=i.addToSet(n));return t.content.push(e.mark(n)),!0}return!1}enter(e,t,n,r){let i=this.findPlace(e.create(t),n,!1);return i&&=this.enterInner(e,t,n,!0,r),i}enterInner(e,t,n,r=!1,i){this.closeExtra();let a=this.top;a.match=a.match&&a.match.matchType(e);let o=yt(e,i,a.options);a.options&vt&&a.content.length==0&&(o|=vt);let s=T.none;return n=n.filter(t=>(a.type?a.type.allowsMarkType(t.type):Tt(t.type,e))?(s=t.addToSet(s),!1):!0),this.nodes.push(new bt(e,t,s,r,null,o)),this.open++,n}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--)if(this.nodes[t]==e)return this.open=t,!0;else this.localPreserveWS&&(this.nodes[t].options|=gt);return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let n=this.nodes[t].content;for(let t=n.length-1;t>=0;t--)e+=n[t].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let n=0;n<this.find.length;n++)this.find[n].node==e&&this.find[n].offset==t&&(this.find[n].pos=this.currentPos)}findInside(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].pos==null&&e.nodeType==1&&e.contains(this.find[t].node)&&(this.find[t].pos=this.currentPos)}findAround(e,t,n){if(e!=t&&this.find)for(let r=0;r<this.find.length;r++)this.find[r].pos==null&&e.nodeType==1&&e.contains(this.find[r].node)&&t.compareDocumentPosition(this.find[r].node)&(n?2:4)&&(this.find[r].pos=this.currentPos)}findInText(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].node==e&&(this.find[t].pos=this.currentPos-(e.nodeValue.length-this.find[t].offset))}matchesContext(e){if(e.indexOf(`|`)>-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let t=e.split(`/`),n=this.options.context,r=!this.isOpen&&(!n||n.parent.type==this.nodes[0].type),i=-(n?n.depth+1:0)+ +!r,a=(e,o)=>{for(;e>=0;e--){let s=t[e];if(s==``){if(e==t.length-1||e==0)continue;for(;o>=i;o--)if(a(e-1,o))return!0;return!1}else{let e=o>0||o==0&&r?this.nodes[o].type:n&&o>=i?n.node(o-i).type:null;if(!e||e.name!=s&&!e.isInGroup(s))return!1;o--}}return!0};return a(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let n=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(n&&n.isTextblock&&n.defaultAttrs)return n}for(let e in this.parser.schema.nodes){let t=this.parser.schema.nodes[e];if(t.isTextblock&&t.defaultAttrs)return t}}};function St(e){for(let t=e.firstChild,n=null;t;t=t.nextSibling){let e=t.nodeType==1?t.nodeName.toLowerCase():null;e&&ht.hasOwnProperty(e)&&n?(n.appendChild(t),t=n):e==`li`?n=t:e&&(n=null)}}function Ct(e,t){return(e.matches||e.msMatchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector).call(e,t)}function wt(e){let t={};for(let n in e)t[n]=e[n];return t}function Tt(e,t){let n=t.schema.nodes;for(let r in n){let i=n[r];if(!i.allowsMarkType(e))continue;let a=[],o=e=>{a.push(e);for(let n=0;n<e.edgeCount;n++){let{type:r,next:i}=e.edge(n);if(r==t||a.indexOf(i)<0&&o(i))return!0}};if(o(i.contentMatch))return!0}}var Et=class e{constructor(e,t){this.nodes=e,this.marks=t}serializeFragment(e,t={},n){n||=Ot(t).createDocumentFragment();let r=n,i=[];return e.forEach(e=>{if(i.length||e.marks.length){let n=0,a=0;for(;n<i.length&&a<e.marks.length;){let t=e.marks[a];if(!this.marks[t.type.name]){a++;continue}if(!t.eq(i[n][0])||t.type.spec.spanning===!1)break;n++,a++}for(;n<i.length;)r=i.pop()[1];for(;a<e.marks.length;){let n=e.marks[a++],o=this.serializeMark(n,e.isInline,t);o&&(i.push([n,r]),r.appendChild(o.dom),r=o.contentDOM||o.dom)}}r.appendChild(this.serializeNodeInner(e,t))}),n}serializeNodeInner(e,t){if(e.isText)return Ot(t).createTextNode(e.text);let{dom:n,contentDOM:r}=Mt(Ot(t),this.nodes[e.type.name](e),null,e.attrs);if(r){if(e.isLeaf)throw RangeError(`Content hole not allowed in a leaf node spec`);this.serializeFragment(e.content,t,r)}return n}serializeNode(e,t={}){let n=this.serializeNodeInner(e,t);for(let r=e.marks.length-1;r>=0;r--){let i=this.serializeMark(e.marks[r],e.isInline,t);i&&((i.contentDOM||i.dom).appendChild(n),n=i.dom)}return n}serializeMark(e,t,n={}){let r=this.marks[e.type.name];return r&&Mt(Ot(n),r(e,t),null,e.attrs)}static renderSpec(e,t,n=null,r){return typeof t==`string`?{dom:e.createTextNode(t)}:Mt(e,t,n,r)}static fromSchema(t){return t.cached.domSerializer||(t.cached.domSerializer=new e(this.nodesFromSchema(t),this.marksFromSchema(t)))}static nodesFromSchema(e){let t=Dt(e.nodes);return t.text||=e=>e.text,t}static marksFromSchema(e){return Dt(e.marks)}};function Dt(e){let t={};for(let n in e){let r=e[n].spec.toDOM;r&&(t[n]=r)}return t}function Ot(e){return e.document||window.document}var kt=new WeakMap;function At(e){let t=kt.get(e);return t===void 0&&kt.set(e,t=jt(e)),t}function jt(e){let t=null;function n(e){if(e&&typeof e==`object`)if(Array.isArray(e))if(typeof e[0]==`string`)t||=[],t.push(e);else for(let t=0;t<e.length;t++)n(e[t]);else for(let t in e)n(e[t])}return n(e),t}function Mt(e,t,n,r){if(t.nodeType==1)return{dom:t};if(t.dom&&t.dom.nodeType==1)return t;let i=t[0],a;if(typeof i!=`string`)throw RangeError(`Invalid array passed to renderSpec`);if(r&&(a=At(r))&&a.indexOf(t)>-1)throw RangeError(`Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.`);let o=i.indexOf(` `);o>0&&(n=i.slice(0,o),i=i.slice(o+1));let s,c=n?e.createElementNS(n,i):e.createElement(i),l=t[1],u=1;if(l&&typeof l==`object`&&l.nodeType==null&&!Array.isArray(l)){u=2;for(let e in l)if(l[e]!=null){let t=e.indexOf(` `);t>0?c.setAttributeNS(e.slice(0,t),e.slice(t+1),l[e]):e==`style`&&c.style?c.style.cssText=l[e]:c.setAttribute(e,l[e])}}for(let i=u;i<t.length;i++){let a=t[i];if(a===0){if(i<t.length-1||i>u)throw RangeError(`Content hole must be the only child of its parent node`);return{dom:c,contentDOM:c}}else if(typeof a==`string`)c.appendChild(e.createTextNode(a));else{let{dom:t,contentDOM:i}=Mt(e,a,n,r);if(c.appendChild(t),i){if(s)throw RangeError(`Multiple content holes`);s=i}}}return{dom:c,contentDOM:s}}var Nt=65535,Pt=2**16;function Ft(e,t){return e+t*Pt}function It(e){return e&Nt}function Lt(e){return(e-(e&Nt))/Pt}var Rt=1,zt=2,Bt=4,Vt=8,Ht=class{constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}get deleted(){return(this.delInfo&Vt)>0}get deletedBefore(){return(this.delInfo&5)>0}get deletedAfter(){return(this.delInfo&6)>0}get deletedAcross(){return(this.delInfo&Bt)>0}},Ut=class e{constructor(t,n=!1){if(this.ranges=t,this.inverted=n,!t.length&&e.empty)return e.empty}recover(e){let t=0,n=It(e);if(!this.inverted)for(let e=0;e<n;e++)t+=this.ranges[e*3+2]-this.ranges[e*3+1];return this.ranges[n*3]+t+Lt(e)}mapResult(e,t=1){return this._map(e,t,!1)}map(e,t=1){return this._map(e,t,!0)}_map(e,t,n){let r=0,i=this.inverted?2:1,a=this.inverted?1:2;for(let o=0;o<this.ranges.length;o+=3){let s=this.ranges[o]-(this.inverted?r:0);if(s>e)break;let c=this.ranges[o+i],l=this.ranges[o+a],u=s+c;if(e<=u){let i=c?e==s?-1:e==u?1:t:t,a=s+r+(i<0?0:l);if(n)return a;let d=e==(t<0?s:u)?null:Ft(o/3,e-s),f=e==s?zt:e==u?Rt:Bt;return(t<0?e!=s:e!=u)&&(f|=Vt),new Ht(a,f,d)}r+=l-c}return n?e+r:new Ht(e+r,0,null)}touches(e,t){let n=0,r=It(t),i=this.inverted?2:1,a=this.inverted?1:2;for(let t=0;t<this.ranges.length;t+=3){let o=this.ranges[t]-(this.inverted?n:0);if(o>e)break;let s=this.ranges[t+i];if(e<=o+s&&t==r*3)return!0;n+=this.ranges[t+a]-s}return!1}forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let r=0,i=0;r<this.ranges.length;r+=3){let a=this.ranges[r],o=a-(this.inverted?i:0),s=a+(this.inverted?0:i),c=this.ranges[r+t],l=this.ranges[r+n];e(o,o+c,s,s+l),i+=l-c}}invert(){return new e(this.ranges,!this.inverted)}toString(){return(this.inverted?`-`:``)+JSON.stringify(this.ranges)}static offset(t){return t==0?e.empty:new e(t<0?[0,-t,0]:[0,0,t])}};Ut.empty=new Ut([]);var Wt=class e{constructor(e,t,n=0,r=e?e.length:0){this.mirror=t,this.from=n,this.to=r,this._maps=e||[],this.ownData=!(e||t)}get maps(){return this._maps}slice(t=0,n=this.maps.length){return new e(this._maps,this.mirror,t,n)}appendMap(e,t){this.ownData||=(this._maps=this._maps.slice(),this.mirror=this.mirror&&this.mirror.slice(),!0),this.to=this._maps.push(e),t!=null&&this.setMirror(this._maps.length-1,t)}appendMapping(e){for(let t=0,n=this._maps.length;t<e._maps.length;t++){let r=e.getMirror(t);this.appendMap(e._maps[t],r!=null&&r<t?n+r:void 0)}}getMirror(e){if(this.mirror){for(let t=0;t<this.mirror.length;t++)if(this.mirror[t]==e)return this.mirror[t+(t%2?-1:1)]}}setMirror(e,t){this.mirror||=[],this.mirror.push(e,t)}appendMappingInverted(e){for(let t=e.maps.length-1,n=this._maps.length+e._maps.length;t>=0;t--){let r=e.getMirror(t);this.appendMap(e._maps[t].invert(),r!=null&&r>t?n-r-1:void 0)}}invert(){let t=new e;return t.appendMappingInverted(this),t}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from;n<this.to;n++)e=this._maps[n].map(e,t);return e}mapResult(e,t=1){return this._map(e,t,!1)}_map(e,t,n){let r=0;for(let n=this.from;n<this.to;n++){let i=this._maps[n].mapResult(e,t);if(i.recover!=null){let t=this.getMirror(n);if(t!=null&&t>n&&t<this.to){n=t,e=this._maps[t].recover(i.recover);continue}}r|=i.delInfo,e=i.pos}return n?e:new Ht(e,r,null)}},Gt=Object.create(null),D=class{getMap(){return Ut.empty}merge(e){return null}static fromJSON(e,t){if(!t||!t.stepType)throw RangeError(`Invalid input for Step.fromJSON`);let n=Gt[t.stepType];if(!n)throw RangeError(`No step type ${t.stepType} defined`);return n.fromJSON(e,t)}static jsonID(e,t){if(e in Gt)throw RangeError(`Duplicate use of step JSON ID `+e);return Gt[e]=t,t.prototype.jsonID=e,t}},Kt=class e{constructor(e,t){this.doc=e,this.failed=t}static ok(t){return new e(t,null)}static fail(t){return new e(null,t)}static fromReplace(t,n,r,i){try{return e.ok(t.replace(n,r,i))}catch(t){if(t instanceof ve)return e.fail(t.message);throw t}}};function qt(e,t,n){let r=[];for(let i=0;i<e.childCount;i++){let a=e.child(i);a.content.size&&(a=a.copy(qt(a.content,t,a))),a.isInline&&(a=t(a,n,i)),r.push(a)}return C.fromArray(r)}var Jt=class e extends D{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=e.resolve(this.from),r=n.node(n.sharedDepth(this.to)),i=new E(qt(t.content,(e,t)=>!e.isAtom||!t.type.allowsMarkType(this.mark.type)?e:e.mark(this.mark.addToSet(e.marks)),r),t.openStart,t.openEnd);return Kt.fromReplace(e,this.from,this.to,i)}invert(){return new Yt(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`addMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for AddMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};D.jsonID(`addMark`,Jt);var Yt=class e extends D{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=new E(qt(t.content,e=>e.mark(this.mark.removeFromSet(e.marks)),e),t.openStart,t.openEnd);return Kt.fromReplace(e,this.from,this.to,n)}invert(){return new Jt(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`removeMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for RemoveMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};D.jsonID(`removeMark`,Yt);var Xt=class e extends D{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return Kt.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return Kt.fromReplace(e,this.pos,this.pos+1,new E(C.from(n),0,+!t.isLeaf))}invert(t){let n=t.nodeAt(this.pos);if(n){let t=this.mark.addToSet(n.marks);if(t.length==n.marks.length){for(let r=0;r<n.marks.length;r++)if(!n.marks[r].isInSet(t))return new e(this.pos,n.marks[r]);return new e(this.pos,this.mark)}}return new Zt(this.pos,this.mark)}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.mark)}toJSON(){return{stepType:`addNodeMark`,pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for AddNodeMarkStep.fromJSON`);return new e(n.pos,t.markFromJSON(n.mark))}};D.jsonID(`addNodeMark`,Xt);var Zt=class e extends D{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return Kt.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.removeFromSet(t.marks));return Kt.fromReplace(e,this.pos,this.pos+1,new E(C.from(n),0,+!t.isLeaf))}invert(e){let t=e.nodeAt(this.pos);return!t||!this.mark.isInSet(t.marks)?this:new Xt(this.pos,this.mark)}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.mark)}toJSON(){return{stepType:`removeNodeMark`,pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for RemoveNodeMarkStep.fromJSON`);return new e(n.pos,t.markFromJSON(n.mark))}};D.jsonID(`removeNodeMark`,Zt);var Qt=class e extends D{constructor(e,t,n,r=!1){super(),this.from=e,this.to=t,this.slice=n,this.structure=r}apply(e){return this.structure&&en(e,this.from,this.to)?Kt.fail(`Structure replace would overwrite content`):Kt.fromReplace(e,this.from,this.to,this.slice)}getMap(){return new Ut([this.from,this.to-this.from,this.slice.size])}invert(t){return new e(this.from,this.from+this.slice.size,t.slice(this.from,this.to))}map(t){let n=t.mapResult(this.to,-1),r=this.from==this.to&&e.MAP_BIAS<0?n:t.mapResult(this.from,1);return r.deletedAcross&&n.deletedAcross?null:new e(r.pos,Math.max(r.pos,n.pos),this.slice,this.structure)}merge(t){if(!(t instanceof e)||t.structure||this.structure)return null;if(this.from+this.slice.size==t.from&&!this.slice.openEnd&&!t.slice.openStart){let n=this.slice.size+t.slice.size==0?E.empty:new E(this.slice.content.append(t.slice.content),this.slice.openStart,t.slice.openEnd);return new e(this.from,this.to+(t.to-t.from),n,this.structure)}else if(t.to==this.from&&!this.slice.openStart&&!t.slice.openEnd){let n=this.slice.size+t.slice.size==0?E.empty:new E(t.slice.content.append(this.slice.content),t.slice.openStart,this.slice.openEnd);return new e(t.from,this.to,n,this.structure)}else return null}toJSON(){let e={stepType:`replace`,from:this.from,to:this.to};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for ReplaceStep.fromJSON`);return new e(n.from,n.to,E.fromJSON(t,n.slice),!!n.structure)}};Qt.MAP_BIAS=1,D.jsonID(`replace`,Qt);var $t=class e extends D{constructor(e,t,n,r,i,a,o=!1){super(),this.from=e,this.to=t,this.gapFrom=n,this.gapTo=r,this.slice=i,this.insert=a,this.structure=o}apply(e){if(this.structure&&(en(e,this.from,this.gapFrom)||en(e,this.gapTo,this.to)))return Kt.fail(`Structure gap-replace would overwrite content`);let t=e.slice(this.gapFrom,this.gapTo);if(t.openStart||t.openEnd)return Kt.fail(`Gap is not a flat range`);let n=this.slice.insertAt(this.insert,t.content);return n?Kt.fromReplace(e,this.from,this.to,n):Kt.fail(`Content does not fit in gap`)}getMap(){return new Ut([this.from,this.gapFrom-this.from,this.insert,this.gapTo,this.to-this.gapTo,this.slice.size-this.insert])}invert(t){let n=this.gapTo-this.gapFrom;return new e(this.from,this.from+this.slice.size+n,this.from+this.insert,this.from+this.insert+n,t.slice(this.from,this.to).removeBetween(this.gapFrom-this.from,this.gapTo-this.from),this.gapFrom-this.from,this.structure)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1),i=this.from==this.gapFrom?n.pos:t.map(this.gapFrom,-1),a=this.to==this.gapTo?r.pos:t.map(this.gapTo,1);return n.deletedAcross&&r.deletedAcross||i<n.pos||a>r.pos?null:new e(n.pos,r.pos,i,a,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:`replaceAround`,from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`||typeof n.gapFrom!=`number`||typeof n.gapTo!=`number`||typeof n.insert!=`number`)throw RangeError(`Invalid input for ReplaceAroundStep.fromJSON`);return new e(n.from,n.to,n.gapFrom,n.gapTo,E.fromJSON(t,n.slice),n.insert,!!n.structure)}};D.jsonID(`replaceAround`,$t);function en(e,t,n){let r=e.resolve(t),i=n-t,a=r.depth;for(;i>0&&a>0&&r.indexAfter(a)==r.node(a).childCount;)a--,i--;if(i>0){let e=r.node(a).maybeChild(r.indexAfter(a));for(;i>0;){if(!e||e.isLeaf)return!0;e=e.firstChild,i--}}return!1}function tn(e,t,n,r){let i=[],a=[],o,s;e.doc.nodesBetween(t,n,(e,c,l)=>{if(!e.isInline)return;let u=e.marks;if(!r.isInSet(u)&&l.type.allowsMarkType(r.type)){let l=Math.max(c,t),d=Math.min(c+e.nodeSize,n),f=r.addToSet(u);for(let e=0;e<u.length;e++)u[e].isInSet(f)||(o&&o.to==l&&o.mark.eq(u[e])?o.to=d:i.push(o=new Yt(l,d,u[e])));s&&s.to==l?s.to=d:a.push(s=new Jt(l,d,r))}}),i.forEach(t=>e.step(t)),a.forEach(t=>e.step(t))}function nn(e,t,n,r){let i=[],a=0;e.doc.nodesBetween(t,n,(e,o)=>{if(!e.isInline)return;a++;let s=null;if(r instanceof st){let t=e.marks,n;for(;n=r.isInSet(t);)(s||=[]).push(n),t=n.removeFromSet(t)}else r?r.isInSet(e.marks)&&(s=[r]):s=e.marks;if(s&&s.length){let r=Math.min(o+e.nodeSize,n);for(let e=0;e<s.length;e++){let n=s[e],c;for(let e=0;e<i.length;e++){let t=i[e];t.step==a-1&&n.eq(i[e].style)&&(c=t)}c?(c.to=r,c.step=a):i.push({style:n,from:Math.max(o,t),to:r,step:a})}}}),i.forEach(t=>e.step(new Yt(t.from,t.to,t.style)))}function rn(e,t,n,r=n.contentMatch,i=!0){let a=e.doc.nodeAt(t),o=[],s=t+1;for(let t=0;t<a.childCount;t++){let c=a.child(t),l=s+c.nodeSize,u=r.matchType(c.type);if(!u)o.push(new Qt(s,l,E.empty));else{r=u;for(let t=0;t<c.marks.length;t++)n.allowsMarkType(c.marks[t].type)||e.step(new Yt(s,l,c.marks[t]));if(i&&c.isText&&n.whitespace!=`pre`){let e,t=/\r?\n|\r/g,r;for(;e=t.exec(c.text);)r||=new E(C.from(n.schema.text(` `,n.allowedMarks(c.marks))),0,0),o.push(new Qt(s+e.index,s+e.index+e[0].length,r))}}s=l}if(!r.validEnd){let t=r.fillBefore(C.empty,!0);e.replace(s,s,new E(t,0,0))}for(let t=o.length-1;t>=0;t--)e.step(o[t])}function an(e,t,n){return(t==0||e.canReplace(t,e.childCount))&&(n==e.childCount||e.canReplace(0,n))}function on(e){let t=e.parent.content.cutByIndex(e.startIndex,e.endIndex);for(let n=e.depth,r=0,i=0;;--n){let a=e.$from.node(n),o=e.$from.index(n)+r,s=e.$to.indexAfter(n)-i;if(n<e.depth&&a.canReplace(o,s,t))return n;if(n==0||a.type.spec.isolating||!an(a,o,s))break;o&&(r=1),s<a.childCount&&(i=1)}return null}function sn(e,t,n){let{$from:r,$to:i,depth:a}=t,o=r.before(a+1),s=i.after(a+1),c=o,l=s,u=C.empty,d=0;for(let e=a,t=!1;e>n;e--)t||r.index(e)>0?(t=!0,u=C.from(r.node(e).copy(u)),d++):c--;let f=C.empty,p=0;for(let e=a,t=!1;e>n;e--)t||i.after(e+1)<i.end(e)?(t=!0,f=C.from(i.node(e).copy(f)),p++):l++;e.step(new $t(c,l,o,s,new E(u.append(f),d,p),u.size-d,!0))}function cn(e,t,n=null,r=e){let i=un(e,t),a=i&&dn(r,t);return a?i.map(ln).concat({type:t,attrs:n}).concat(a.map(ln)):null}function ln(e){return{type:e,attrs:null}}function un(e,t){let{parent:n,startIndex:r,endIndex:i}=e,a=n.contentMatchAt(r).findWrapping(t);if(!a)return null;let o=a.length?a[0]:t;return n.canReplaceWith(r,i,o)?a:null}function dn(e,t){let{parent:n,startIndex:r,endIndex:i}=e,a=n.child(r),o=t.contentMatch.findWrapping(a.type);if(!o)return null;let s=(o.length?o[o.length-1]:t).contentMatch;for(let e=r;s&&e<i;e++)s=s.matchType(n.child(e).type);return!s||!s.validEnd?null:o}function fn(e,t,n){let r=C.empty;for(let e=n.length-1;e>=0;e--){if(r.size){let t=n[e].type.contentMatch.matchFragment(r);if(!t||!t.validEnd)throw RangeError(`Wrapper type given to Transform.wrap does not form valid content of its parent wrapper`)}r=C.from(n[e].type.create(n[e].attrs,r))}let i=t.start,a=t.end;e.step(new $t(i,a,i,a,new E(r,0,0),n.length,!0))}function pn(e,t,n,r,i){if(!r.isTextblock)throw RangeError(`Type given to setBlockType should be a textblock`);let a=e.steps.length;e.doc.nodesBetween(t,n,(t,n)=>{let o=typeof i==`function`?i(t):i;if(t.isTextblock&&!t.hasMarkup(r,o)&&gn(e.doc,e.mapping.slice(a).map(n),r)){let i=null;if(r.schema.linebreakReplacement){let e=r.whitespace==`pre`,t=!!r.contentMatch.matchType(r.schema.linebreakReplacement);e&&!t?i=!1:!e&&t&&(i=!0)}i===!1&&hn(e,t,n,a),rn(e,e.mapping.slice(a).map(n,1),r,void 0,i===null);let s=e.mapping.slice(a),c=s.map(n,1),l=s.map(n+t.nodeSize,1);return e.step(new $t(c,l,c+1,l-1,new E(C.from(r.create(o,null,t.marks)),0,0),1,!0)),i===!0&&mn(e,t,n,a),!1}})}function mn(e,t,n,r){t.forEach((i,a)=>{if(i.isText){let o,s=/\r?\n|\r/g;for(;o=s.exec(i.text);){let i=e.mapping.slice(r).map(n+1+a+o.index);e.replaceWith(i,i+1,t.type.schema.linebreakReplacement.create())}}})}function hn(e,t,n,r){t.forEach((i,a)=>{if(i.type==i.type.schema.linebreakReplacement){let i=e.mapping.slice(r).map(n+1+a);e.replaceWith(i,i+1,t.type.schema.text(`
@@ -178,4 +178,4 @@ ${t.innerHTML}
178
178
  `);return}},parse:{}}}}}),dT=V.create({name:`heading`}).extend({addStorage(){return{markdown:{serialize:Iw.nodes.heading,parse:{}}}}}),fT=V.create({name:`horizontalRule`}).extend({addStorage(){return{markdown:{serialize:Iw.nodes.horizontal_rule,parse:{}}}}}),pT=V.create({name:`image`}).extend({addStorage(){return{markdown:{serialize:Iw.nodes.image,parse:{}}}}}),mT=V.create({name:`listItem`}).extend({addStorage(){return{markdown:{serialize:Iw.nodes.list_item,parse:{}}}}}),hT=V.create({name:`orderedList`});function gT(e,t,n){let r=0;for(;n-r>0&&t.child(n-r-1).type.name===e.type.name;r++);return r}var _T=hT.extend({addStorage(){return{markdown:{serialize(e,t,n,r){let i=t.attrs.start||1,a=String(i+t.childCount-1).length,o=e.repeat(` `,a+2),s=gT(t,n,r)%2?`) `:`. `;e.renderList(t,o,t=>{let n=String(i+t);return e.repeat(` `,a-n.length)+n+s})},parse:{}}}}}),vT=V.create({name:`paragraph`}).extend({addStorage(){return{markdown:{serialize:Iw.nodes.paragraph,parse:{}}}}});function yT(e){var t;return(e==null||(t=e.content)==null?void 0:t.content)??[]}var bT=V.create({name:`table`}).extend({addStorage(){return{markdown:{serialize(e,t,n){if(!ST(t)){iT.storage.markdown.serialize.call(this,e,t,n);return}e.inTable=!0,t.forEach((t,n,r)=>{if(e.write(`| `),t.forEach((t,n,r)=>{r&&e.write(` | `);let i=t.firstChild;i.textContent.trim()&&e.renderInline(i)}),e.write(` |`),e.ensureNewLine(),!r){let n=Array.from({length:t.childCount}).map(()=>`---`).join(` | `);e.write(`| ${n} |`),e.ensureNewLine()}}),e.closeBlock(t),e.inTable=!1},parse:{}}}}});function xT(e){return e.attrs.colspan>1||e.attrs.rowspan>1}function ST(e){let t=yT(e),n=t[0],r=t.slice(1);return!(yT(n).some(e=>e.type.name!==`tableHeader`||xT(e)||e.childCount>1)||r.some(e=>yT(e).some(e=>e.type.name===`tableHeader`||xT(e)||e.childCount>1)))}var CT=[sT,cT,lT,uT,dT,fT,iT,pT,mT,_T,vT,bT,V.create({name:`taskItem`}).extend({addStorage(){return{markdown:{serialize(e,t){let n=t.attrs.checked?`[x]`:`[ ]`;e.write(`${n} `),e.renderContent(t)},parse:{updateDOM(e){[...e.querySelectorAll(`.task-list-item`)].forEach(e=>{let t=e.querySelector(`input`);e.setAttribute(`data-type`,`taskItem`),t&&(e.setAttribute(`data-checked`,t.checked),t.remove())})}}}}}}),V.create({name:`taskList`}).extend({addStorage(){return{markdown:{serialize:cT.storage.markdown.serialize,parse:{setup(e){e.use(Bw.default)},updateDOM(e){[...e.querySelectorAll(`.contains-task-list`)].forEach(e=>{e.setAttribute(`data-type`,`taskList`)})}}}}}}),V.create({name:`text`}).extend({addStorage(){return{markdown:{serialize(e,t){e.text(tT(t.text))},parse:{}}}}}),Gd.create({name:`bold`}).extend({addStorage(){return{markdown:{serialize:Iw.marks.strong,parse:{}}}}}),Gd.create({name:`code`}).extend({addStorage(){return{markdown:{serialize:Iw.marks.code,parse:{}}}}}),Qw,Gd.create({name:`italic`}).extend({addStorage(){return{markdown:{serialize:Iw.marks.em,parse:{}}}}}),Gd.create({name:`link`}).extend({addStorage(){return{markdown:{serialize:Iw.marks.link,parse:{}}}}}),Gd.create({name:`strike`}).extend({addStorage(){return{markdown:{serialize:{open:`~~`,close:`~~`,expelEnclosingWhitespace:!0},parse:{}}}}})];function wT(e){let t=e.storage?.markdown,n=CT.find(t=>t.name===e.name)?.storage.markdown;return t||n?{...n,...t}:null}var TT=class{constructor(e){Uw(this,`editor`,null),this.editor=e}serialize(e){let t=new Zw(this.nodes,this.marks,{hardBreakNodeName:uT.name});return t.renderContent(e),t.out}get nodes(){return{...Object.fromEntries(Object.keys(this.editor.schema.nodes).map(e=>[e,this.serializeNode(iT)])),...Object.fromEntries(this.editor.extensionManager.extensions.filter(e=>e.type===`node`&&this.serializeNode(e)).map(e=>[e.name,this.serializeNode(e)])??[])}}get marks(){return{...Object.fromEntries(Object.keys(this.editor.schema.marks).map(e=>[e,this.serializeMark(Qw)])),...Object.fromEntries(this.editor.extensionManager.extensions.filter(e=>e.type===`mark`&&this.serializeMark(e)).map(e=>[e.name,this.serializeMark(e)])??[])}}serializeNode(e){var t;return(t=wT(e))==null||(t=t.serialize)==null?void 0:t.bind({editor:this.editor,options:e.options})}serializeMark(e){let t=wT(e)?.serialize;return t?{...t,open:typeof t.open==`function`?t.open.bind({editor:this.editor,options:e.options}):t.open,close:typeof t.close==`function`?t.close.bind({editor:this.editor,options:e.options}):t.close}:null}},ET=class{constructor(e,t){Uw(this,`editor`,null),Uw(this,`md`,null);let{html:n,linkify:r,breaks:i}=t;this.editor=e,this.md=this.withPatchedRenderer(ww({html:n,linkify:r,breaks:i}))}parse(e){let{inline:t}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(typeof e==`string`){this.editor.extensionManager.extensions.forEach(e=>{var t;return(t=wT(e))==null||(t=t.parse)==null||(t=t.setup)==null?void 0:t.call({editor:this.editor,options:e.options},this.md)});let n=eT(this.md.render(e));return this.editor.extensionManager.extensions.forEach(e=>{var t;return(t=wT(e))==null||(t=t.parse)==null||(t=t.updateDOM)==null?void 0:t.call({editor:this.editor,options:e.options},n)}),this.normalizeDOM(n,{inline:t,content:e}),n.innerHTML}return e}normalizeDOM(e,t){let{inline:n,content:r}=t;return this.normalizeBlocks(e),e.querySelectorAll(`*`).forEach(e=>{e.nextSibling?.nodeType===Node.TEXT_NODE&&!e.closest(`pre`)&&(e.nextSibling.textContent=e.nextSibling.textContent.replace(/^\n/,``))}),n&&this.normalizeInline(e,r),e}normalizeBlocks(e){let t=Object.values(this.editor.schema.nodes).filter(e=>e.isBlock).map(e=>e.spec.parseDOM?.map(e=>e.tag)).flat().filter(Boolean).join(`,`);t&&[...e.querySelectorAll(t)].forEach(e=>{e.parentElement.matches(`p`)&&nT(e)})}normalizeInline(e,t){var n;if((n=e.firstElementChild)!=null&&n.matches(`p`)){let n=e.firstElementChild,{nextElementSibling:r}=n,i=t.match(/^\s+/)?.[0]??``,a=r?``:t.match(/\s+$/)?.[0]??``;if(t.match(/^\n\n/)){n.innerHTML=`${n.innerHTML}${a}`;return}rT(n),e.innerHTML=`${i}${e.innerHTML}${a}`}}withPatchedRenderer(e){let t=e=>function(){let t=e(...arguments);return t===`
179
179
  `?t:t[t.length-1]===`
180
180
  `?t.slice(0,-1):t};return e.renderer.rules.hardbreak=t(e.renderer.rules.hardbreak),e.renderer.rules.softbreak=t(e.renderer.rules.softbreak),e.renderer.rules.fence=t(e.renderer.rules.fence),e.renderer.rules.code_block=t(e.renderer.rules.code_block),e.renderer.renderToken=t(e.renderer.renderToken.bind(e.renderer)),e}},DT=B.create({name:`markdownClipboard`,addOptions(){return{transformPastedText:!1,transformCopiedText:!1}},addProseMirrorPlugins(){return[new j({key:new M(`markdownClipboard`),props:{clipboardTextParser:(e,t,n)=>{if(n||!this.options.transformPastedText)return null;let r=this.editor.storage.markdown.parser.parse(e,{inline:!0});return ft.fromSchema(this.editor.schema).parseSlice(eT(r),{preserveWhitespace:!0,context:t})},clipboardTextSerializer:e=>this.options.transformCopiedText?this.editor.storage.markdown.serializer.serialize(e.content):null}})]}}),OT=B.create({name:`markdown`,priority:50,addOptions(){return{html:!0,tightLists:!0,tightListClass:`tight`,bulletListMarker:`-`,linkify:!1,breaks:!1,transformPastedText:!1,transformCopiedText:!1}},addCommands(){let e=$d.Commands.config.addCommands();return{setContent:(t,n)=>r=>e.setContent(r.editor.storage.markdown.parser.parse(t),n)(r),insertContentAt:(t,n,r)=>i=>e.insertContentAt(t,i.editor.storage.markdown.parser.parse(n,{inline:!0}),r)(i)}},onBeforeCreate(){this.editor.storage.markdown={options:{...this.options},parser:new ET(this.editor,this.options),serializer:new TT(this.editor),getMarkdown:()=>this.editor.storage.markdown.serializer.serialize(this.editor.state.doc)},this.editor.options.initialContent=this.editor.options.content,this.editor.options.content=this.editor.storage.markdown.parser.parse(this.editor.options.content)},onCreate(){this.editor.options.content=this.editor.options.initialContent,delete this.editor.options.initialContent},addStorage(){return{}},addExtensions(){return[Ww.configure({tight:this.options.tightLists,tightClass:this.options.tightListClass}),DT.configure({transformPastedText:this.options.transformPastedText,transformCopiedText:this.options.transformCopiedText})]}});function kT(e){return e!==`source`}function AT(e){return e}function jT(e,t){return e===`split`&&!t?`wysiwyg`:e}function MT(e,t){return t===`markdown`?e.storage.markdown?.getMarkdown?.()??``:e.getHTML()}function NT(e,t,n,r){return n||r!==void 0&&t===r?!1:e!==t}var PT={1:f,2:d,3:x},FT=`prose prose-sm max-w-none min-h-[160px] p-3 text-foreground focus:outline-none prose-headings:scroll-mt-20 prose-headings:text-foreground prose-p:text-foreground prose-strong:text-foreground prose-li:text-foreground prose-code:text-foreground prose-pre:text-foreground prose-pre:bg-muted prose-blockquote:text-muted-foreground prose-blockquote:border-border prose-a:text-foreground dark:prose-invert`;function IT({active:e,disabled:t,onClick:n,title:r,children:i}){return(0,U.jsxs)(de,{children:[(0,U.jsx)(ue,{asChild:!0,children:(0,U.jsx)(ae,{type:`button`,variant:e?`secondary`:`ghost`,size:`icon`,className:`size-8`,"aria-pressed":e,"aria-label":r,disabled:t,onMouseDown:e=>{e.preventDefault()},onClick:n,children:i})}),(0,U.jsx)(ce,{children:r})]})}function LT({value:e,onChange:t,format:n=`html`,placeholder:r,disabled:i,defaultMode:a=`wysiwyg`,className:o,onBlur:c,ariaLabelledBy:d,labels:f}){let x={bold:f?.bold??`Bold`,italic:f?.italic??`Italic`,strikethrough:f?.strikethrough??`Strikethrough`,inlineCode:f?.inlineCode??`Inline code`,heading:f?.heading??`Heading {level}`,bulletList:f?.bulletList??`Bullet list`,numberedList:f?.numberedList??`Numbered list`,blockquote:f?.blockquote??`Blockquote`,horizontalRule:f?.horizontalRule??`Horizontal rule`,insertLink:f?.insertLink??`Insert link`,undo:f?.undo??`Undo`,redo:f?.redo??`Redo`,source:f?.source??`Source ({format})`,splitView:f?.splitView??`Split view`,visualEditor:f?.visualEditor??`Visual editor`,fullscreen:f?.fullscreen??`Fullscreen`,exitFullscreen:f?.exitFullscreen??`Exit fullscreen`,urlPrompt:f?.urlPrompt??`URL`},[ae,ce]=H.useState(a),[ue,de]=H.useState(!1),S=jT(ae,ue),[fe,pe]=H.useState(n);H.useEffect(()=>{pe(n)},[n]);let me=H.useRef(fe);H.useEffect(()=>{me.current=fe},[fe]);let he=H.useRef(!1),C=H.useRef(e),w=Mp({extensions:H.useMemo(()=>[vb.configure({heading:{levels:[1,2,3]}}),OT.configure({html:!0,transformPastedText:!0})],[]),content:e,editable:!i,editorProps:{attributes:{class:s(FT),"aria-labelledby":d??``}},onUpdate:({editor:e})=>{let n=MT(e,me.current);C.current=n,t(n)},onBlur:()=>c?.(),immediatelyRender:!1},[i,d]);H.useEffect(()=>{if(!w||!kT(S)){he.current=!1;return}NT(MT(w,fe),e,he.current,C.current)&&(w.commands.setContent(e,{emitUpdate:!1}),C.current=e),he.current=!1},[w,e,fe,S]);let ge=H.useCallback(e=>{if(e!==fe&&(he.current=!0,pe(e),w)){let n=MT(w,e);C.current=n,t(n)}},[fe,w,t]),_e=H.useCallback(t=>{t!==`source`&&w&&(w.commands.setContent(e,{emitUpdate:!1}),C.current=e),ce(t)},[w,e]),T=H.useCallback(()=>{de(e=>!e)},[]);H.useEffect(()=>{if(!ue||typeof window>`u`)return;let e=e=>{e.key===`Escape`&&(e.stopPropagation(),de(!1))},t=document.body.style.overflow;return document.body.style.overflow=`hidden`,window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e),document.body.style.overflow=t}},[ue]);let ve=H.useCallback(()=>{if(!w)return;let e=w.getAttributes(`link`)?.href??``,t=typeof window<`u`?window.prompt(x.urlPrompt,e):null;if(t==null)return;if(t===``){w.chain().focus().extendMarkRange(`link`).unsetMark(`link`).run();return}let n=w.chain().focus().extendMarkRange(`link`);typeof n.setLink==`function`&&n.setLink({href:t}).run()},[w,x.urlPrompt]);return w?(0,U.jsxs)(`div`,{className:s(`rounded-md border border-input bg-background shadow-sm`,i&&`opacity-50`,ue&&`fixed inset-0 z-50 flex flex-col rounded-none border-0 shadow-none`,o),children:[(0,U.jsxs)(`div`,{className:s(`flex flex-wrap items-center gap-0.5 border-b border-border p-1`,ue&&`shrink-0 bg-background`),children:[(0,U.jsx)(IT,{title:x.bold,active:w.isActive(`bold`),disabled:S===`source`||i,onClick:()=>w.chain().focus().toggleBold().run(),children:(0,U.jsx)(p,{className:`size-4`})}),(0,U.jsx)(IT,{title:x.italic,active:w.isActive(`italic`),disabled:S===`source`||i,onClick:()=>w.chain().focus().toggleItalic().run(),children:(0,U.jsx)(h,{className:`size-4`})}),(0,U.jsx)(IT,{title:x.strikethrough,active:w.isActive(`strike`),disabled:S===`source`||i,onClick:()=>w.chain().focus().toggleStrike().run(),children:(0,U.jsx)(_,{className:`size-4`})}),(0,U.jsx)(IT,{title:x.inlineCode,active:w.isActive(`code`),disabled:S===`source`||i,onClick:()=>w.chain().focus().toggleCode().run(),children:(0,U.jsx)(re,{className:`size-4`})}),(0,U.jsx)(se,{orientation:`vertical`,className:`mx-0.5 h-6`}),[1,2,3].map(e=>{let t=PT[e];return(0,U.jsx)(IT,{title:x.heading.replace(`{level}`,String(e)),active:w.isActive(`heading`,{level:e}),disabled:S===`source`||i,onClick:()=>w.chain().focus().toggleHeading({level:e}).run(),children:(0,U.jsx)(t,{className:`size-4`})},e)}),(0,U.jsx)(se,{orientation:`vertical`,className:`mx-0.5 h-6`}),(0,U.jsx)(IT,{title:x.bulletList,active:w.isActive(`bulletList`),disabled:S===`source`||i,onClick:()=>w.chain().focus().toggleBulletList().run(),children:(0,U.jsx)(v,{className:`size-4`})}),(0,U.jsx)(IT,{title:x.numberedList,active:w.isActive(`orderedList`),disabled:S===`source`||i,onClick:()=>w.chain().focus().toggleOrderedList().run(),children:(0,U.jsx)(ee,{className:`size-4`})}),(0,U.jsx)(IT,{title:x.blockquote,active:w.isActive(`blockquote`),disabled:S===`source`||i,onClick:()=>w.chain().focus().toggleBlockquote().run(),children:(0,U.jsx)(m,{className:`size-4`})}),(0,U.jsx)(IT,{title:x.horizontalRule,disabled:S===`source`||i,onClick:()=>w.chain().focus().setHorizontalRule().run(),children:(0,U.jsx)(l,{className:`size-4`})}),(0,U.jsx)(IT,{title:x.insertLink,active:w.isActive(`link`),disabled:S===`source`||i,onClick:ve,children:(0,U.jsx)(u,{className:`size-4`})}),(0,U.jsx)(se,{orientation:`vertical`,className:`mx-0.5 h-6`}),(0,U.jsx)(IT,{title:x.undo,disabled:S===`source`||!w.can().undo()||i,onClick:()=>w.chain().focus().undo().run(),children:(0,U.jsx)(te,{className:`size-4`})}),(0,U.jsx)(IT,{title:x.redo,disabled:S===`source`||!w.can().redo()||i,onClick:()=>w.chain().focus().redo().run(),children:(0,U.jsx)(b,{className:`size-4`})}),(0,U.jsx)(`div`,{className:`ml-auto`}),(0,U.jsx)(`div`,{className:`flex h-8 items-center overflow-hidden rounded-md border border-input`,children:[`html`,`markdown`].map(e=>(0,U.jsx)(`button`,{type:`button`,"aria-pressed":fe===e,disabled:i,onMouseDown:e=>e.preventDefault(),onClick:()=>ge(e),className:s(`h-full cursor-pointer px-2 text-xs font-medium uppercase transition-colors`,fe===e?`bg-secondary text-secondary-foreground`:`bg-transparent text-muted-foreground hover:bg-accent hover:text-accent-foreground`,i&&`pointer-events-none opacity-50`),children:e===`html`?`HTML`:`MD`},e))}),(0,U.jsx)(se,{orientation:`vertical`,className:`mx-0.5 h-6`}),(0,U.jsx)(IT,{title:x.source.replace(`{format}`,fe),active:S===`source`,disabled:i,onClick:()=>_e(`source`),children:(0,U.jsx)(g,{className:`size-4`})}),AT(ue)&&(0,U.jsx)(IT,{title:x.splitView,active:S===`split`,disabled:i,onClick:()=>_e(`split`),children:(0,U.jsx)(y,{className:`size-4`})}),(0,U.jsx)(IT,{title:x.visualEditor,active:S===`wysiwyg`,disabled:i,onClick:()=>_e(`wysiwyg`),children:(0,U.jsx)(le,{className:`size-4`})}),(0,U.jsx)(IT,{title:ue?x.exitFullscreen:x.fullscreen,active:ue,onClick:T,children:ue?(0,U.jsx)(ie,{className:`size-4`}):(0,U.jsx)(ne,{className:`size-4`})})]}),S===`source`?(0,U.jsx)(oe,{value:e,onChange:e=>t(e.target.value),onBlur:()=>c?.(),placeholder:r,disabled:i,spellCheck:!1,className:s(`w-full rounded-none border-0 font-mono text-xs shadow-none focus-visible:ring-0`,ue?`min-h-0 flex-1 resize-none`:`min-h-[160px] resize-y`)}):S===`split`?(0,U.jsxs)(`div`,{className:s(`flex w-full`,ue?`min-h-0 flex-1`:`min-h-[160px]`),children:[(0,U.jsx)(oe,{value:e,onChange:e=>t(e.target.value),onBlur:()=>c?.(),placeholder:r,disabled:i,spellCheck:!1,className:s(`w-1/2 rounded-none border-0 font-mono text-xs shadow-none focus-visible:ring-0`,ue?`min-h-0 resize-none`:`min-h-[160px] resize-none`)}),(0,U.jsx)(`div`,{"aria-hidden":!0,className:`w-px shrink-0 self-stretch bg-border`}),(0,U.jsx)(Tp,{editor:w,className:s(`w-1/2 overflow-auto`,i&&`pointer-events-none`,ue&&`min-h-0 [&_.ProseMirror]:min-h-full`)})]}):(0,U.jsx)(Tp,{editor:w,className:s(i&&`pointer-events-none`,ue&&`min-h-0 flex-1 overflow-auto [&_.ProseMirror]:min-h-full`)})]}):(0,U.jsx)(`div`,{className:s(`rounded-md border border-input bg-background text-sm text-muted-foreground`,o),children:(0,U.jsx)(`div`,{className:`p-3`,children:r??``})})}export{LT as RichtextEditor};
181
- //# sourceMappingURL=heavy-fields-Do2qd-Wi.js.map
181
+ //# sourceMappingURL=heavy-fields-BiCEgD2L.js.map