@prosekit/web 0.8.0-beta.3 → 0.8.0-beta.5

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 (78) hide show
  1. package/dist/get-safe-editor-view.js +0 -2
  2. package/dist/get-safe-editor-view.js.map +1 -1
  3. package/dist/prosekit-web-autocomplete.d.ts +47 -19
  4. package/dist/prosekit-web-autocomplete.d.ts.map +1 -1
  5. package/dist/prosekit-web-autocomplete.js +49 -28
  6. package/dist/prosekit-web-autocomplete.js.map +1 -1
  7. package/dist/prosekit-web-block-handle.d.ts +43 -16
  8. package/dist/prosekit-web-block-handle.d.ts.map +1 -1
  9. package/dist/prosekit-web-block-handle.js +45 -35
  10. package/dist/prosekit-web-block-handle.js.map +1 -1
  11. package/dist/prosekit-web-drop-indicator.d.ts +3 -4
  12. package/dist/prosekit-web-drop-indicator.d.ts.map +1 -1
  13. package/dist/prosekit-web-drop-indicator.js +3 -3
  14. package/dist/prosekit-web-drop-indicator.js.map +1 -1
  15. package/dist/prosekit-web-inline-popover.d.ts +31 -10
  16. package/dist/prosekit-web-inline-popover.d.ts.map +1 -1
  17. package/dist/prosekit-web-inline-popover.js +32 -20
  18. package/dist/prosekit-web-inline-popover.js.map +1 -1
  19. package/dist/prosekit-web-menu.d.ts +121 -5
  20. package/dist/prosekit-web-menu.d.ts.map +1 -1
  21. package/dist/prosekit-web-menu.js +115 -10
  22. package/dist/prosekit-web-menu.js.map +1 -1
  23. package/dist/prosekit-web-popover.d.ts +64 -5
  24. package/dist/prosekit-web-popover.d.ts.map +1 -1
  25. package/dist/prosekit-web-popover.js +60 -7
  26. package/dist/prosekit-web-popover.js.map +1 -1
  27. package/dist/prosekit-web-resizable.d.ts +14 -7
  28. package/dist/prosekit-web-resizable.d.ts.map +1 -1
  29. package/dist/prosekit-web-resizable.js +14 -12
  30. package/dist/prosekit-web-resizable.js.map +1 -1
  31. package/dist/prosekit-web-table-handle.d.ts +73 -36
  32. package/dist/prosekit-web-table-handle.d.ts.map +1 -1
  33. package/dist/prosekit-web-table-handle.js +75 -66
  34. package/dist/prosekit-web-table-handle.js.map +1 -1
  35. package/dist/prosekit-web-tooltip.d.ts +61 -5
  36. package/dist/prosekit-web-tooltip.d.ts.map +1 -1
  37. package/dist/prosekit-web-tooltip.js +58 -7
  38. package/dist/prosekit-web-tooltip.js.map +1 -1
  39. package/dist/prosekit-web.d.ts +0 -3
  40. package/dist/prosekit-web.d.ts.map +1 -1
  41. package/dist/prosekit-web.js +0 -2
  42. package/dist/prosekit-web.js.map +1 -1
  43. package/dist/use-editor-extension.js +0 -2
  44. package/dist/use-editor-extension.js.map +1 -1
  45. package/dist/use-scrolling.js +11 -21
  46. package/dist/use-scrolling.js.map +1 -1
  47. package/package.json +8 -8
  48. package/src/components/autocomplete/autocomplete-empty.ts +3 -4
  49. package/src/components/autocomplete/autocomplete-item.ts +12 -2
  50. package/src/components/autocomplete/autocomplete-popup.ts +11 -1
  51. package/src/components/autocomplete/autocomplete-positioner.ts +17 -1
  52. package/src/components/autocomplete/autocomplete-root.ts +6 -2
  53. package/src/components/block-handle/block-handle-add.ts +4 -2
  54. package/src/components/block-handle/block-handle-draggable.ts +10 -3
  55. package/src/components/block-handle/block-handle-popup.ts +9 -1
  56. package/src/components/block-handle/block-handle-positioner.ts +17 -1
  57. package/src/components/block-handle/block-handle-root.ts +5 -1
  58. package/src/components/drop-indicator/drop-indicator.ts +3 -1
  59. package/src/components/inline-popover/inline-popover-popup.ts +9 -1
  60. package/src/components/inline-popover/inline-popover-positioner.ts +17 -1
  61. package/src/components/inline-popover/inline-popover-root.ts +5 -1
  62. package/src/components/menu/index.ts +140 -43
  63. package/src/components/popover/index.ts +76 -23
  64. package/src/components/resizable/resizable-handle.ts +3 -1
  65. package/src/components/resizable/resizable-root.ts +11 -1
  66. package/src/components/table-handle/table-handle-column-menu-root.ts +3 -1
  67. package/src/components/table-handle/table-handle-column-menu-trigger.ts +4 -2
  68. package/src/components/table-handle/table-handle-column-popup.ts +9 -1
  69. package/src/components/table-handle/table-handle-column-positioner.ts +17 -1
  70. package/src/components/table-handle/table-handle-drag-preview.ts +3 -1
  71. package/src/components/table-handle/table-handle-drop-indicator.ts +3 -1
  72. package/src/components/table-handle/table-handle-root.ts +3 -1
  73. package/src/components/table-handle/table-handle-row-menu-root.ts +3 -1
  74. package/src/components/table-handle/table-handle-row-menu-trigger.ts +4 -2
  75. package/src/components/table-handle/table-handle-row-popup.ts +9 -1
  76. package/src/components/table-handle/table-handle-row-positioner.ts +17 -1
  77. package/src/components/tooltip/index.ts +73 -22
  78. package/src/hooks/use-scrolling.ts +16 -14
@@ -1,12 +1,9 @@
1
1
  import { t as useEditorExtension } from "./use-editor-extension.js";
2
2
  import { computed, createContext, defineCustomElement, defineProps, onMount, registerCustomElement } from "@aria-ui/core";
3
+ import { usePresence } from "@aria-ui/utils";
3
4
  import { OpenChangeEvent, OverlayPopupPropsDeclaration, OverlayPositionerPropsDeclaration, OverlayRootPropsDeclaration, setupOverlayPopup, setupOverlayPositioner, useOverlayStore } from "@aria-ui/elements/overlay";
4
5
  import { containsInlineNode, defineFocusChangeHandler, defineKeymap, defineUpdateHandler, isInCodeBlock, isTextSelection } from "@prosekit/core";
5
- import { usePresence } from "@aria-ui/utils";
6
- //#region src/components/inline-popover/store.ts
7
6
  const InlinePopoverStoreContext = createContext("prosekit-inline-popover-store");
8
- //#endregion
9
- //#region src/components/inline-popover/inline-popover-popup.ts
10
7
  /** @internal */
11
8
  const InlinePopoverPopupPropsDeclaration = OverlayPopupPropsDeclaration;
12
9
  /** @internal */
@@ -20,15 +17,21 @@ function setupInlinePopoverPopup(host, _props) {
20
17
  }
21
18
  const InlinePopoverPopupElementBase = defineCustomElement(setupInlinePopoverPopup, InlinePopoverPopupPropsDeclaration);
22
19
  /**
23
- * @public
20
+ * `<prosekit-inline-popover-popup>` custom element.
21
+ *
22
+ * Properties: {@link InlinePopoverPopupProps}
23
+ *
24
+ * Data attributes:
25
+ *
26
+ * | Attribute | Description |
27
+ * | --- | --- |
28
+ * | `data-state` | `"open"` when the inline popover is visible, `"closed"` otherwise |
24
29
  */
25
30
  var InlinePopoverPopupElement = class extends InlinePopoverPopupElementBase {};
26
31
  /** @internal */
27
32
  function registerInlinePopoverPopupElement() {
28
33
  registerCustomElement("prosekit-inline-popover-popup", InlinePopoverPopupElement);
29
34
  }
30
- //#endregion
31
- //#region src/components/inline-popover/inline-popover-positioner.ts
32
35
  /** @internal */
33
36
  const InlinePopoverPositionerPropsDeclaration = /* @__PURE__ */ defineProps({
34
37
  ...OverlayPositionerPropsDeclaration,
@@ -74,36 +77,44 @@ function setupInlinePopoverPositioner(host, props) {
74
77
  }
75
78
  const InlinePopoverPositionerElementBase = defineCustomElement(setupInlinePopoverPositioner, InlinePopoverPositionerPropsDeclaration);
76
79
  /**
77
- * @public
80
+ * `<prosekit-inline-popover-positioner>` custom element.
81
+ *
82
+ * Properties: {@link InlinePopoverPositionerProps}
83
+ *
84
+ * Data attributes:
85
+ *
86
+ * | Attribute | Description |
87
+ * | --- | --- |
88
+ * | `data-state` | `"open"` when the inline popover is visible, `"closed"` otherwise |
89
+ * | `data-side` | The side of the anchor element the positioner is on |
90
+ * | `data-align` | The alignment of the positioner relative to the anchor element |
91
+ *
92
+ * CSS variables:
93
+ *
94
+ * | Variable | Description |
95
+ * | --- | --- |
96
+ * | `--transform-origin` | The coordinates that this element is anchored to. Useful for scale animations. |
78
97
  */
79
98
  var InlinePopoverPositionerElement = class extends InlinePopoverPositionerElementBase {};
80
99
  /** @internal */
81
100
  function registerInlinePopoverPositionerElement() {
82
101
  registerCustomElement("prosekit-inline-popover-positioner", InlinePopoverPositionerElement);
83
102
  }
84
- //#endregion
85
- //#region src/hooks/use-editor-focus-event.ts
86
103
  /**
87
104
  * @internal
88
105
  */
89
106
  function useEditorFocusChangeEvent(host, getEditor, handler) {
90
107
  useEditorExtension(host, getEditor, defineFocusChangeHandler(handler));
91
108
  }
92
- //#endregion
93
- //#region src/hooks/use-editor-update-event.ts
94
109
  /**
95
110
  * @internal
96
111
  */
97
112
  function useEditorUpdateEvent(host, getEditor, handler) {
98
113
  useEditorExtension(host, getEditor, defineUpdateHandler(handler));
99
114
  }
100
- //#endregion
101
- //#region src/hooks/use-keymap.ts
102
115
  function useKeymap(host, getEditor, keymap) {
103
116
  useEditorExtension(host, getEditor, defineKeymap(keymap));
104
117
  }
105
- //#endregion
106
- //#region src/components/inline-popover/virtual-selection-element.ts
107
118
  function getVirtualSelectionElement(view) {
108
119
  if (typeof window === "undefined" || view.isDestroyed) return;
109
120
  const selection = view.state.selection;
@@ -135,8 +146,6 @@ function getInlineDecoration(view) {
135
146
  getClientRects: () => items.map((item) => item.getBoundingClientRect())
136
147
  };
137
148
  }
138
- //#endregion
139
- //#region src/components/inline-popover/inline-popover-root.ts
140
149
  /** @internal */
141
150
  const InlinePopoverRootPropsDeclaration = /* @__PURE__ */ defineProps({
142
151
  ...OverlayRootPropsDeclaration,
@@ -183,14 +192,17 @@ function setupInlinePopoverRoot(host, props) {
183
192
  }
184
193
  const InlinePopoverRootElementBase = defineCustomElement(setupInlinePopoverRoot, InlinePopoverRootPropsDeclaration);
185
194
  /**
186
- * @public
195
+ * `<prosekit-inline-popover-root>` custom element.
196
+ *
197
+ * Properties: {@link InlinePopoverRootProps}
198
+ *
199
+ * Events: {@link InlinePopoverRootEvents}
187
200
  */
188
201
  var InlinePopoverRootElement = class extends InlinePopoverRootElementBase {};
189
202
  /** @internal */
190
203
  function registerInlinePopoverRootElement() {
191
204
  registerCustomElement("prosekit-inline-popover-root", InlinePopoverRootElement);
192
205
  }
193
- //#endregion
194
206
  export { InlinePopoverPopupElement, InlinePopoverPopupPropsDeclaration, InlinePopoverPositionerElement, InlinePopoverPositionerPropsDeclaration, InlinePopoverRootElement, InlinePopoverRootPropsDeclaration, OpenChangeEvent, registerInlinePopoverPopupElement, registerInlinePopoverPositionerElement, registerInlinePopoverRootElement, setupInlinePopoverPopup, setupInlinePopoverPositioner, setupInlinePopoverRoot };
195
207
 
196
208
  //# sourceMappingURL=prosekit-web-inline-popover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prosekit-web-inline-popover.js","names":[],"sources":["../src/components/inline-popover/store.ts","../src/components/inline-popover/inline-popover-popup.ts","../src/components/inline-popover/inline-popover-positioner.ts","../src/hooks/use-editor-focus-event.ts","../src/hooks/use-editor-update-event.ts","../src/hooks/use-keymap.ts","../src/components/inline-popover/virtual-selection-element.ts","../src/components/inline-popover/inline-popover-root.ts"],"sourcesContent":["import { createContext, type Context } from '@aria-ui/core'\nimport type { OverlayStore } from '@aria-ui/elements/overlay'\n\nexport const InlinePopoverStoreContext: Context<OverlayStore> = createContext<OverlayStore>(\n 'prosekit-inline-popover-store',\n)\n","import {\n computed,\n defineCustomElement,\n onMount,\n registerCustomElement,\n type HostElement,\n type HostElementConstructor,\n type PropsDeclaration,\n type State,\n} from '@aria-ui/core'\nimport { OverlayPopupPropsDeclaration, setupOverlayPopup, type OverlayPopupProps } from '@aria-ui/elements/overlay'\nimport { usePresence } from '@aria-ui/utils'\n\nimport { InlinePopoverStoreContext } from './store.ts'\n\n/**\n * @public\n */\nexport interface InlinePopoverPopupProps extends OverlayPopupProps {}\n\n/** @internal */\nexport const InlinePopoverPopupPropsDeclaration: PropsDeclaration<InlinePopoverPopupProps> = OverlayPopupPropsDeclaration\n\n/** @internal */\nexport function setupInlinePopoverPopup(\n host: HostElement,\n _props: State<InlinePopoverPopupProps>,\n): void {\n const getStore = InlinePopoverStoreContext.consume(host)\n setupOverlayPopup(host, getStore)\n const getOpen = computed(() => getStore()?.getIsOpen() ?? false)\n usePresence(host, getOpen)\n\n onMount(host, () => {\n host.role = 'dialog'\n })\n}\n\nconst InlinePopoverPopupElementBase: HostElementConstructor<InlinePopoverPopupProps> = defineCustomElement(\n setupInlinePopoverPopup,\n InlinePopoverPopupPropsDeclaration,\n)\n\n/**\n * @public\n */\nexport class InlinePopoverPopupElement extends InlinePopoverPopupElementBase {}\n\n/** @internal */\nexport function registerInlinePopoverPopupElement(): void {\n registerCustomElement('prosekit-inline-popover-popup', InlinePopoverPopupElement)\n}\n","import {\n defineCustomElement,\n defineProps,\n registerCustomElement,\n type HostElement,\n type HostElementConstructor,\n type PropsDeclaration,\n type State,\n} from '@aria-ui/core'\nimport { OverlayPositionerPropsDeclaration, setupOverlayPositioner, type OverlayPositionerProps } from '@aria-ui/elements/overlay'\n\nimport { InlinePopoverStoreContext } from './store.ts'\n\n/**\n * @public\n */\nexport interface InlinePopoverPositionerProps extends\n Omit<\n OverlayPositionerProps,\n | 'placement'\n | 'offset'\n | 'hide'\n | 'hoist'\n | 'overlap'\n | 'inline'\n | 'overflowPadding'\n >\n{\n /**\n * The initial placement of the floating element\n *\n * @default \"top\"\n */\n placement: OverlayPositionerProps['placement']\n\n /**\n * The distance between the reference and floating element.\n *\n * @default 12\n */\n offset: OverlayPositionerProps['offset']\n\n /**\n * Whether to hide the floating element when the reference element or the\n * floating element is fully clipped.\n *\n * @default true\n */\n hide: OverlayPositionerProps['hide']\n\n /**\n * Whether to use the browser [Popover API](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API)\n * to place the floating element on top of other page content.\n *\n * @default false\n */\n hoist: boolean\n\n /**\n * Whether the floating element can overlap the reference element to keep it\n * in view.\n *\n * @default true\n */\n overlap: OverlayPositionerProps['overlap']\n\n /**\n * Whether to improve positioning for inline reference elements that span over\n * multiple lines.\n *\n * @default true\n */\n inline: OverlayPositionerProps['inline']\n\n /**\n * Describes the virtual padding around the boundary to check for overflow.\n *\n * @default 8\n */\n overflowPadding: OverlayPositionerProps['overflowPadding']\n}\n\n/** @internal */\nexport const InlinePopoverPositionerPropsDeclaration: PropsDeclaration<InlinePopoverPositionerProps> = /* @__PURE__ */ defineProps<\n InlinePopoverPositionerProps\n>({\n ...OverlayPositionerPropsDeclaration,\n placement: { default: 'top', attribute: 'placement', type: 'string' },\n offset: { default: 12, attribute: false, type: 'json' },\n hide: { default: true, attribute: 'hide', type: 'boolean' },\n hoist: { default: false, attribute: 'hoist', type: 'boolean' },\n overlap: { default: true, attribute: 'overlap', type: 'boolean' },\n inline: { default: true, attribute: 'inline', type: 'boolean' },\n overflowPadding: { default: 8, attribute: 'overflow-padding', type: 'number' },\n})\n\n/** @internal */\nexport function setupInlinePopoverPositioner(\n host: HostElement,\n props: State<InlinePopoverPositionerProps>,\n): void {\n setupOverlayPositioner(host, props, InlinePopoverStoreContext.consume(host))\n}\n\nconst InlinePopoverPositionerElementBase: HostElementConstructor<InlinePopoverPositionerProps> = defineCustomElement(\n setupInlinePopoverPositioner,\n InlinePopoverPositionerPropsDeclaration,\n)\n\n/**\n * @public\n */\nexport class InlinePopoverPositionerElement extends InlinePopoverPositionerElementBase {}\n\n/** @internal */\nexport function registerInlinePopoverPositionerElement(): void {\n registerCustomElement('prosekit-inline-popover-positioner', InlinePopoverPositionerElement)\n}\n","import type { HostElement } from '@aria-ui/core'\nimport { defineFocusChangeHandler, type Editor, type FocusChangeHandler } from '@prosekit/core'\n\nimport { useEditorExtension } from './use-editor-extension.ts'\n\n/**\n * @internal\n */\nexport function useEditorFocusChangeEvent(\n host: HostElement,\n getEditor: () => Editor | null,\n handler: FocusChangeHandler,\n): void {\n const extension = defineFocusChangeHandler(handler)\n useEditorExtension(host, getEditor, extension)\n}\n","import type { HostElement } from '@aria-ui/core'\nimport { defineUpdateHandler, type Editor, type UpdateHandler } from '@prosekit/core'\n\nimport { useEditorExtension } from './use-editor-extension.ts'\n\n/**\n * @internal\n */\nexport function useEditorUpdateEvent(\n host: HostElement,\n getEditor: () => Editor | null,\n handler: UpdateHandler,\n): void {\n const extension = defineUpdateHandler(handler)\n useEditorExtension(host, getEditor, extension)\n}\n","import type { HostElement } from '@aria-ui/core'\nimport { defineKeymap, type Editor, type Keymap } from '@prosekit/core'\n\nimport { useEditorExtension } from './use-editor-extension.ts'\n\nexport function useKeymap(\n host: HostElement,\n getEditor: () => Editor | null,\n keymap: Keymap,\n): void {\n const extension = defineKeymap(keymap)\n useEditorExtension(host, getEditor, extension)\n}\n","import type { ReferenceElement } from '@floating-ui/dom'\nimport { containsInlineNode, isInCodeBlock, isTextSelection } from '@prosekit/core'\nimport type { EditorView } from '@prosekit/pm/view'\n\nexport function getVirtualSelectionElement(\n view: EditorView,\n): ReferenceElement | undefined {\n if (typeof window === 'undefined' || view.isDestroyed) {\n return\n }\n\n const selection = view.state.selection\n\n if (\n !selection.empty\n && !isInCodeBlock(selection)\n && isTextSelection(selection)\n && containsInlineNode(view.state.doc, selection.from, selection.to)\n ) {\n return getDomDecoration(view) || getInlineDecoration(view)\n }\n}\n\nfunction getDomDecoration(view: EditorView): ReferenceElement | undefined {\n const range = getDomRange(view)\n if (range) {\n // To get it work properly in Safari, we cannot return the range directly.\n // We have to return a contextElement.\n return {\n contextElement: view.dom,\n getBoundingClientRect: () => range.getBoundingClientRect(),\n getClientRects: () => range.getClientRects(),\n }\n }\n}\n\nfunction getDomRange(view: EditorView): Range | undefined {\n const win = view.dom.ownerDocument.defaultView\n const selection = win?.getSelection()\n if (!selection || selection.isCollapsed) {\n return\n }\n\n const range = typeof selection.rangeCount === 'number'\n && selection.rangeCount > 0\n && selection.getRangeAt(0)\n\n if (!range) {\n return\n }\n\n return range\n}\n\nfunction getInlineDecoration(view: EditorView): ReferenceElement | undefined {\n const match = view.dom.querySelectorAll('.prosekit-virtual-selection')\n\n if (match.length === 0) {\n return\n }\n if (match.length === 1) {\n return match[0]\n }\n\n const items = Array.from(match)\n return {\n contextElement: items[0],\n getBoundingClientRect: () => items[0].getBoundingClientRect(),\n getClientRects: () => items.map((item) => item.getBoundingClientRect()),\n }\n}\n","import {\n defineCustomElement,\n defineProps,\n registerCustomElement,\n type HostElement,\n type HostElementConstructor,\n type PropsDeclaration,\n type State,\n} from '@aria-ui/core'\nimport type { OpenChangeEvent } from '@aria-ui/elements/overlay'\nimport { OverlayRootPropsDeclaration, useOverlayStore, type OverlayRootProps } from '@aria-ui/elements/overlay'\nimport type { Editor } from '@prosekit/core'\nimport type { Selection } from '@prosekit/pm/state'\n\nimport { useEditorFocusChangeEvent } from '../../hooks/use-editor-focus-event.ts'\nimport { useEditorUpdateEvent } from '../../hooks/use-editor-update-event.ts'\nimport { useKeymap } from '../../hooks/use-keymap.ts'\n\nimport { InlinePopoverStoreContext } from './store.ts'\nimport { getVirtualSelectionElement } from './virtual-selection-element.ts'\n\n/**\n * @public\n */\nexport interface InlinePopoverRootProps extends OverlayRootProps {\n /**\n * The ProseKit editor instance.\n *\n * @default null\n * @hidden\n */\n editor: Editor | null\n\n /**\n * Whether the popover is open by default when some inline content is\n * selected.\n *\n * @default true\n */\n defaultOpen: boolean\n\n /**\n * Whether the inline popover should be dismissed when the editor receives an\n * Escape key press.\n *\n * @default true\n */\n dismissOnEscape: boolean\n}\n\n/** @internal */\nexport const InlinePopoverRootPropsDeclaration: PropsDeclaration<InlinePopoverRootProps> = /* @__PURE__ */ defineProps<\n InlinePopoverRootProps\n>({\n ...OverlayRootPropsDeclaration,\n editor: { default: null, attribute: false, type: 'json' },\n defaultOpen: { default: true, attribute: 'default-open', type: 'boolean' },\n dismissOnEscape: { default: true, attribute: 'dismiss-on-escape', type: 'boolean' },\n})\n\n/**\n * @public\n */\nexport interface InlinePopoverRootEvents {\n /**\n * Emitted when the open state of the popover changes.\n */\n openChange: OpenChangeEvent\n}\n\n/** @internal */\nexport function setupInlinePopoverRoot(\n host: HostElement,\n props: State<InlinePopoverRootProps>,\n): void {\n const store = useOverlayStore(host, props)\n InlinePopoverStoreContext.provide(host, store)\n\n let editorFocused = false\n useEditorFocusChangeEvent(host, props.editor.get, (focus) => {\n editorFocused = focus\n })\n\n let prevSelection: Selection | undefined\n useEditorUpdateEvent(host, props.editor.get, (view) => {\n const isPopoverFocused = !editorFocused && host.contains(host.ownerDocument.activeElement)\n if (isPopoverFocused) return\n\n const { selection } = view.state\n if (prevSelection?.eq(selection)) return\n prevSelection = selection\n\n const reference = getVirtualSelectionElement(view)\n store.setAnchorElement(reference)\n\n if (reference && props.defaultOpen.get()) {\n store.requestOpenChange(true)\n } else if (!reference) {\n store.requestOpenChange(false)\n }\n })\n\n useKeymap(host, props.editor.get, {\n Escape: () => {\n if (!props.dismissOnEscape.get() || !store.getIsOpen()) return false\n store.requestOpenChange(false)\n return true\n },\n })\n}\n\nconst InlinePopoverRootElementBase: HostElementConstructor<InlinePopoverRootProps> = defineCustomElement(\n setupInlinePopoverRoot,\n InlinePopoverRootPropsDeclaration,\n)\n\n/**\n * @public\n */\nexport class InlinePopoverRootElement extends InlinePopoverRootElementBase {}\n\n/** @internal */\nexport function registerInlinePopoverRootElement(): void {\n registerCustomElement('prosekit-inline-popover-root', InlinePopoverRootElement)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"prosekit-web-inline-popover.js","names":[],"sources":["../src/components/inline-popover/store.ts","../src/components/inline-popover/inline-popover-popup.ts","../src/components/inline-popover/inline-popover-positioner.ts","../src/hooks/use-editor-focus-event.ts","../src/hooks/use-editor-update-event.ts","../src/hooks/use-keymap.ts","../src/components/inline-popover/virtual-selection-element.ts","../src/components/inline-popover/inline-popover-root.ts"],"sourcesContent":["import { createContext, type Context } from '@aria-ui/core'\nimport type { OverlayStore } from '@aria-ui/elements/overlay'\n\nexport const InlinePopoverStoreContext: Context<OverlayStore> = createContext<OverlayStore>(\n 'prosekit-inline-popover-store',\n)\n","import {\n computed,\n defineCustomElement,\n onMount,\n registerCustomElement,\n type HostElement,\n type HostElementConstructor,\n type PropsDeclaration,\n type State,\n} from '@aria-ui/core'\nimport { OverlayPopupPropsDeclaration, setupOverlayPopup, type OverlayPopupProps } from '@aria-ui/elements/overlay'\nimport { usePresence } from '@aria-ui/utils'\n\nimport { InlinePopoverStoreContext } from './store.ts'\n\n/**\n * @public\n */\nexport interface InlinePopoverPopupProps extends OverlayPopupProps {}\n\n/** @internal */\nexport const InlinePopoverPopupPropsDeclaration: PropsDeclaration<InlinePopoverPopupProps> = OverlayPopupPropsDeclaration\n\n/** @internal */\nexport function setupInlinePopoverPopup(\n host: HostElement,\n _props: State<InlinePopoverPopupProps>,\n): void {\n const getStore = InlinePopoverStoreContext.consume(host)\n setupOverlayPopup(host, getStore)\n const getOpen = computed(() => getStore()?.getIsOpen() ?? false)\n usePresence(host, getOpen)\n\n onMount(host, () => {\n host.role = 'dialog'\n })\n}\n\nconst InlinePopoverPopupElementBase: HostElementConstructor<InlinePopoverPopupProps> = defineCustomElement(\n setupInlinePopoverPopup,\n InlinePopoverPopupPropsDeclaration,\n)\n\n/**\n * `<prosekit-inline-popover-popup>` custom element.\n *\n * Properties: {@link InlinePopoverPopupProps}\n *\n * Data attributes:\n *\n * | Attribute | Description |\n * | --- | --- |\n * | `data-state` | `\"open\"` when the inline popover is visible, `\"closed\"` otherwise |\n */\nexport class InlinePopoverPopupElement extends InlinePopoverPopupElementBase {}\n\n/** @internal */\nexport function registerInlinePopoverPopupElement(): void {\n registerCustomElement('prosekit-inline-popover-popup', InlinePopoverPopupElement)\n}\n","import {\n defineCustomElement,\n defineProps,\n registerCustomElement,\n type HostElement,\n type HostElementConstructor,\n type PropsDeclaration,\n type State,\n} from '@aria-ui/core'\nimport { OverlayPositionerPropsDeclaration, setupOverlayPositioner, type OverlayPositionerProps } from '@aria-ui/elements/overlay'\n\nimport { InlinePopoverStoreContext } from './store.ts'\n\n/**\n * @public\n */\nexport interface InlinePopoverPositionerProps extends\n Omit<\n OverlayPositionerProps,\n | 'placement'\n | 'offset'\n | 'hide'\n | 'hoist'\n | 'overlap'\n | 'inline'\n | 'overflowPadding'\n >\n{\n /**\n * The initial placement of the floating element\n *\n * @default \"top\"\n */\n placement: OverlayPositionerProps['placement']\n\n /**\n * The distance between the reference and floating element.\n *\n * @default 12\n */\n offset: OverlayPositionerProps['offset']\n\n /**\n * Whether to hide the floating element when the reference element or the\n * floating element is fully clipped.\n *\n * @default true\n */\n hide: OverlayPositionerProps['hide']\n\n /**\n * Whether to use the browser [Popover API](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API)\n * to place the floating element on top of other page content.\n *\n * @default false\n */\n hoist: boolean\n\n /**\n * Whether the floating element can overlap the reference element to keep it\n * in view.\n *\n * @default true\n */\n overlap: OverlayPositionerProps['overlap']\n\n /**\n * Whether to improve positioning for inline reference elements that span over\n * multiple lines.\n *\n * @default true\n */\n inline: OverlayPositionerProps['inline']\n\n /**\n * Describes the virtual padding around the boundary to check for overflow.\n *\n * @default 8\n */\n overflowPadding: OverlayPositionerProps['overflowPadding']\n}\n\n/** @internal */\nexport const InlinePopoverPositionerPropsDeclaration: PropsDeclaration<InlinePopoverPositionerProps> = /* @__PURE__ */ defineProps<\n InlinePopoverPositionerProps\n>({\n ...OverlayPositionerPropsDeclaration,\n placement: { default: 'top', attribute: 'placement', type: 'string' },\n offset: { default: 12, attribute: false, type: 'json' },\n hide: { default: true, attribute: 'hide', type: 'boolean' },\n hoist: { default: false, attribute: 'hoist', type: 'boolean' },\n overlap: { default: true, attribute: 'overlap', type: 'boolean' },\n inline: { default: true, attribute: 'inline', type: 'boolean' },\n overflowPadding: { default: 8, attribute: 'overflow-padding', type: 'number' },\n})\n\n/** @internal */\nexport function setupInlinePopoverPositioner(\n host: HostElement,\n props: State<InlinePopoverPositionerProps>,\n): void {\n setupOverlayPositioner(host, props, InlinePopoverStoreContext.consume(host))\n}\n\nconst InlinePopoverPositionerElementBase: HostElementConstructor<InlinePopoverPositionerProps> = defineCustomElement(\n setupInlinePopoverPositioner,\n InlinePopoverPositionerPropsDeclaration,\n)\n\n/**\n * `<prosekit-inline-popover-positioner>` custom element.\n *\n * Properties: {@link InlinePopoverPositionerProps}\n *\n * Data attributes:\n *\n * | Attribute | Description |\n * | --- | --- |\n * | `data-state` | `\"open\"` when the inline popover is visible, `\"closed\"` otherwise |\n * | `data-side` | The side of the anchor element the positioner is on |\n * | `data-align` | The alignment of the positioner relative to the anchor element |\n *\n * CSS variables:\n *\n * | Variable | Description |\n * | --- | --- |\n * | `--transform-origin` | The coordinates that this element is anchored to. Useful for scale animations. |\n */\nexport class InlinePopoverPositionerElement extends InlinePopoverPositionerElementBase {}\n\n/** @internal */\nexport function registerInlinePopoverPositionerElement(): void {\n registerCustomElement('prosekit-inline-popover-positioner', InlinePopoverPositionerElement)\n}\n","import type { HostElement } from '@aria-ui/core'\nimport { defineFocusChangeHandler, type Editor, type FocusChangeHandler } from '@prosekit/core'\n\nimport { useEditorExtension } from './use-editor-extension.ts'\n\n/**\n * @internal\n */\nexport function useEditorFocusChangeEvent(\n host: HostElement,\n getEditor: () => Editor | null,\n handler: FocusChangeHandler,\n): void {\n const extension = defineFocusChangeHandler(handler)\n useEditorExtension(host, getEditor, extension)\n}\n","import type { HostElement } from '@aria-ui/core'\nimport { defineUpdateHandler, type Editor, type UpdateHandler } from '@prosekit/core'\n\nimport { useEditorExtension } from './use-editor-extension.ts'\n\n/**\n * @internal\n */\nexport function useEditorUpdateEvent(\n host: HostElement,\n getEditor: () => Editor | null,\n handler: UpdateHandler,\n): void {\n const extension = defineUpdateHandler(handler)\n useEditorExtension(host, getEditor, extension)\n}\n","import type { HostElement } from '@aria-ui/core'\nimport { defineKeymap, type Editor, type Keymap } from '@prosekit/core'\n\nimport { useEditorExtension } from './use-editor-extension.ts'\n\nexport function useKeymap(\n host: HostElement,\n getEditor: () => Editor | null,\n keymap: Keymap,\n): void {\n const extension = defineKeymap(keymap)\n useEditorExtension(host, getEditor, extension)\n}\n","import type { ReferenceElement } from '@floating-ui/dom'\nimport { containsInlineNode, isInCodeBlock, isTextSelection } from '@prosekit/core'\nimport type { EditorView } from '@prosekit/pm/view'\n\nexport function getVirtualSelectionElement(\n view: EditorView,\n): ReferenceElement | undefined {\n if (typeof window === 'undefined' || view.isDestroyed) {\n return\n }\n\n const selection = view.state.selection\n\n if (\n !selection.empty\n && !isInCodeBlock(selection)\n && isTextSelection(selection)\n && containsInlineNode(view.state.doc, selection.from, selection.to)\n ) {\n return getDomDecoration(view) || getInlineDecoration(view)\n }\n}\n\nfunction getDomDecoration(view: EditorView): ReferenceElement | undefined {\n const range = getDomRange(view)\n if (range) {\n // To get it work properly in Safari, we cannot return the range directly.\n // We have to return a contextElement.\n return {\n contextElement: view.dom,\n getBoundingClientRect: () => range.getBoundingClientRect(),\n getClientRects: () => range.getClientRects(),\n }\n }\n}\n\nfunction getDomRange(view: EditorView): Range | undefined {\n const win = view.dom.ownerDocument.defaultView\n const selection = win?.getSelection()\n if (!selection || selection.isCollapsed) {\n return\n }\n\n const range = typeof selection.rangeCount === 'number'\n && selection.rangeCount > 0\n && selection.getRangeAt(0)\n\n if (!range) {\n return\n }\n\n return range\n}\n\nfunction getInlineDecoration(view: EditorView): ReferenceElement | undefined {\n const match = view.dom.querySelectorAll('.prosekit-virtual-selection')\n\n if (match.length === 0) {\n return\n }\n if (match.length === 1) {\n return match[0]\n }\n\n const items = Array.from(match)\n return {\n contextElement: items[0],\n getBoundingClientRect: () => items[0].getBoundingClientRect(),\n getClientRects: () => items.map((item) => item.getBoundingClientRect()),\n }\n}\n","import {\n defineCustomElement,\n defineProps,\n registerCustomElement,\n type HostElement,\n type HostElementConstructor,\n type PropsDeclaration,\n type State,\n} from '@aria-ui/core'\nimport type { OpenChangeEvent } from '@aria-ui/elements/overlay'\nimport { OverlayRootPropsDeclaration, useOverlayStore, type OverlayRootProps } from '@aria-ui/elements/overlay'\nimport type { Editor } from '@prosekit/core'\nimport type { Selection } from '@prosekit/pm/state'\n\nimport { useEditorFocusChangeEvent } from '../../hooks/use-editor-focus-event.ts'\nimport { useEditorUpdateEvent } from '../../hooks/use-editor-update-event.ts'\nimport { useKeymap } from '../../hooks/use-keymap.ts'\n\nimport { InlinePopoverStoreContext } from './store.ts'\nimport { getVirtualSelectionElement } from './virtual-selection-element.ts'\n\n/**\n * @public\n */\nexport interface InlinePopoverRootProps extends OverlayRootProps {\n /**\n * The ProseKit editor instance.\n *\n * @default null\n * @hidden\n */\n editor: Editor | null\n\n /**\n * Whether the popover is open by default when some inline content is\n * selected.\n *\n * @default true\n */\n defaultOpen: boolean\n\n /**\n * Whether the inline popover should be dismissed when the editor receives an\n * Escape key press.\n *\n * @default true\n */\n dismissOnEscape: boolean\n}\n\n/** @internal */\nexport const InlinePopoverRootPropsDeclaration: PropsDeclaration<InlinePopoverRootProps> = /* @__PURE__ */ defineProps<\n InlinePopoverRootProps\n>({\n ...OverlayRootPropsDeclaration,\n editor: { default: null, attribute: false, type: 'json' },\n defaultOpen: { default: true, attribute: 'default-open', type: 'boolean' },\n dismissOnEscape: { default: true, attribute: 'dismiss-on-escape', type: 'boolean' },\n})\n\n/**\n * @public\n */\nexport interface InlinePopoverRootEvents {\n /**\n * Emitted when the open state of the popover changes.\n */\n openChange: OpenChangeEvent\n}\n\n/** @internal */\nexport function setupInlinePopoverRoot(\n host: HostElement,\n props: State<InlinePopoverRootProps>,\n): void {\n const store = useOverlayStore(host, props)\n InlinePopoverStoreContext.provide(host, store)\n\n let editorFocused = false\n useEditorFocusChangeEvent(host, props.editor.get, (focus) => {\n editorFocused = focus\n })\n\n let prevSelection: Selection | undefined\n useEditorUpdateEvent(host, props.editor.get, (view) => {\n const isPopoverFocused = !editorFocused && host.contains(host.ownerDocument.activeElement)\n if (isPopoverFocused) return\n\n const { selection } = view.state\n if (prevSelection?.eq(selection)) return\n prevSelection = selection\n\n const reference = getVirtualSelectionElement(view)\n store.setAnchorElement(reference)\n\n if (reference && props.defaultOpen.get()) {\n store.requestOpenChange(true)\n } else if (!reference) {\n store.requestOpenChange(false)\n }\n })\n\n useKeymap(host, props.editor.get, {\n Escape: () => {\n if (!props.dismissOnEscape.get() || !store.getIsOpen()) return false\n store.requestOpenChange(false)\n return true\n },\n })\n}\n\nconst InlinePopoverRootElementBase: HostElementConstructor<InlinePopoverRootProps> = defineCustomElement(\n setupInlinePopoverRoot,\n InlinePopoverRootPropsDeclaration,\n)\n\n/**\n * `<prosekit-inline-popover-root>` custom element.\n *\n * Properties: {@link InlinePopoverRootProps}\n *\n * Events: {@link InlinePopoverRootEvents}\n */\nexport class InlinePopoverRootElement extends InlinePopoverRootElementBase {}\n\n/** @internal */\nexport function registerInlinePopoverRootElement(): void {\n registerCustomElement('prosekit-inline-popover-root', InlinePopoverRootElement)\n}\n"],"mappings":";;;;;AAGA,MAAa,4BAAmD,cAC9D,gCACD;;ACgBD,MAAa,qCAAgF;;AAG7F,SAAgB,wBACd,MACA,QACM;CACN,MAAM,WAAW,0BAA0B,QAAQ,KAAK;AACxD,mBAAkB,MAAM,SAAS;AAEjC,aAAY,MADI,eAAe,UAAU,EAAE,WAAW,IAAI,MAAM,CACtC;AAE1B,SAAQ,YAAY;AAClB,OAAK,OAAO;GACZ;;AAGJ,MAAM,gCAAiF,oBACrF,yBACA,mCACD;;;;;;;;;;;;AAaD,IAAa,4BAAb,cAA+C,8BAA8B;;AAG7E,SAAgB,oCAA0C;AACxD,uBAAsB,iCAAiC,0BAA0B;;;ACyBnF,MAAa,0CAA0G,4BAErH;CACA,GAAG;CACH,WAAW;EAAE,SAAS;EAAO,WAAW;EAAa,MAAM;EAAU;CACrE,QAAQ;EAAE,SAAS;EAAI,WAAW;EAAO,MAAM;EAAQ;CACvD,MAAM;EAAE,SAAS;EAAM,WAAW;EAAQ,MAAM;EAAW;CAC3D,OAAO;EAAE,SAAS;EAAO,WAAW;EAAS,MAAM;EAAW;CAC9D,SAAS;EAAE,SAAS;EAAM,WAAW;EAAW,MAAM;EAAW;CACjE,QAAQ;EAAE,SAAS;EAAM,WAAW;EAAU,MAAM;EAAW;CAC/D,iBAAiB;EAAE,SAAS;EAAG,WAAW;EAAoB,MAAM;EAAU;CAC/E,CAAC;;AAGF,SAAgB,6BACd,MACA,OACM;AACN,wBAAuB,MAAM,OAAO,0BAA0B,QAAQ,KAAK,CAAC;;AAG9E,MAAM,qCAA2F,oBAC/F,8BACA,wCACD;;;;;;;;;;;;;;;;;;;;AAqBD,IAAa,iCAAb,cAAoD,mCAAmC;;AAGvF,SAAgB,yCAA+C;AAC7D,uBAAsB,sCAAsC,+BAA+B;;;;;AC5H7F,SAAgB,0BACd,MACA,WACA,SACM;AAEN,oBAAmB,MAAM,WADP,yBAAyB,QAAQ,CACL;;;;;ACNhD,SAAgB,qBACd,MACA,WACA,SACM;AAEN,oBAAmB,MAAM,WADP,oBAAoB,QAAQ,CACA;;ACThD,SAAgB,UACd,MACA,WACA,QACM;AAEN,oBAAmB,MAAM,WADP,aAAa,OAAO,CACQ;;ACPhD,SAAgB,2BACd,MAC8B;AAC9B,KAAI,OAAO,WAAW,eAAe,KAAK,YACxC;CAGF,MAAM,YAAY,KAAK,MAAM;AAE7B,KACE,CAAC,UAAU,SACR,CAAC,cAAc,UAAU,IACzB,gBAAgB,UAAU,IAC1B,mBAAmB,KAAK,MAAM,KAAK,UAAU,MAAM,UAAU,GAAG,CAEnE,QAAO,iBAAiB,KAAK,IAAI,oBAAoB,KAAK;;AAI9D,SAAS,iBAAiB,MAAgD;CACxE,MAAM,QAAQ,YAAY,KAAK;AAC/B,KAAI,MAGF,QAAO;EACL,gBAAgB,KAAK;EACrB,6BAA6B,MAAM,uBAAuB;EAC1D,sBAAsB,MAAM,gBAAgB;EAC7C;;AAIL,SAAS,YAAY,MAAqC;CAExD,MAAM,YADM,KAAK,IAAI,cAAc,aACZ,cAAc;AACrC,KAAI,CAAC,aAAa,UAAU,YAC1B;CAGF,MAAM,QAAQ,OAAO,UAAU,eAAe,YACzC,UAAU,aAAa,KACvB,UAAU,WAAW,EAAE;AAE5B,KAAI,CAAC,MACH;AAGF,QAAO;;AAGT,SAAS,oBAAoB,MAAgD;CAC3E,MAAM,QAAQ,KAAK,IAAI,iBAAiB,8BAA8B;AAEtE,KAAI,MAAM,WAAW,EACnB;AAEF,KAAI,MAAM,WAAW,EACnB,QAAO,MAAM;CAGf,MAAM,QAAQ,MAAM,KAAK,MAAM;AAC/B,QAAO;EACL,gBAAgB,MAAM;EACtB,6BAA6B,MAAM,GAAG,uBAAuB;EAC7D,sBAAsB,MAAM,KAAK,SAAS,KAAK,uBAAuB,CAAC;EACxE;;;AClBH,MAAa,oCAA8F,4BAEzG;CACA,GAAG;CACH,QAAQ;EAAE,SAAS;EAAM,WAAW;EAAO,MAAM;EAAQ;CACzD,aAAa;EAAE,SAAS;EAAM,WAAW;EAAgB,MAAM;EAAW;CAC1E,iBAAiB;EAAE,SAAS;EAAM,WAAW;EAAqB,MAAM;EAAW;CACpF,CAAC;;AAaF,SAAgB,uBACd,MACA,OACM;CACN,MAAM,QAAQ,gBAAgB,MAAM,MAAM;AAC1C,2BAA0B,QAAQ,MAAM,MAAM;CAE9C,IAAI,gBAAgB;AACpB,2BAA0B,MAAM,MAAM,OAAO,MAAM,UAAU;AAC3D,kBAAgB;GAChB;CAEF,IAAI;AACJ,sBAAqB,MAAM,MAAM,OAAO,MAAM,SAAS;AAErD,MADyB,CAAC,iBAAiB,KAAK,SAAS,KAAK,cAAc,cAAc,CACpE;EAEtB,MAAM,EAAE,cAAc,KAAK;AAC3B,MAAI,eAAe,GAAG,UAAU,CAAE;AAClC,kBAAgB;EAEhB,MAAM,YAAY,2BAA2B,KAAK;AAClD,QAAM,iBAAiB,UAAU;AAEjC,MAAI,aAAa,MAAM,YAAY,KAAK,CACtC,OAAM,kBAAkB,KAAK;WACpB,CAAC,UACV,OAAM,kBAAkB,MAAM;GAEhC;AAEF,WAAU,MAAM,MAAM,OAAO,KAAK,EAChC,cAAc;AACZ,MAAI,CAAC,MAAM,gBAAgB,KAAK,IAAI,CAAC,MAAM,WAAW,CAAE,QAAO;AAC/D,QAAM,kBAAkB,MAAM;AAC9B,SAAO;IAEV,CAAC;;AAGJ,MAAM,+BAA+E,oBACnF,wBACA,kCACD;;;;;;;;AASD,IAAa,2BAAb,cAA8C,6BAA6B;;AAG3E,SAAgB,mCAAyC;AACvD,uBAAsB,gCAAgC,yBAAyB"}
@@ -1,6 +1,123 @@
1
- import { MenuItemElement, MenuItemEvents, MenuItemProps, MenuItemPropsDeclaration, MenuPopupElement, MenuPopupProps, MenuPopupPropsDeclaration, MenuPositionerElement, MenuPositionerProps, MenuPositionerPropsDeclaration, MenuRootElement, MenuRootEvents, MenuRootProps, MenuRootPropsDeclaration, MenuSubmenuRootElement, MenuSubmenuRootPropsDeclaration, MenuSubmenuTriggerElement, MenuSubmenuTriggerPropsDeclaration, MenuTriggerElement, MenuTriggerEvents, MenuTriggerProps, MenuTriggerPropsDeclaration, OpenChangeEvent, SelectEvent, setupMenuItem, setupMenuPopup, setupMenuPositioner, setupMenuRoot, setupMenuSubmenuRoot, setupMenuSubmenuTrigger, setupMenuTrigger } from "@aria-ui/elements/menu";
2
-
3
- //#region src/components/menu/index.d.ts
1
+ import { PropsDeclaration } from "@aria-ui/core";
2
+ import * as Base from "@aria-ui/elements/menu";
3
+ import { OpenChangeEvent, SelectEvent, setupMenuItem, setupMenuPopup, setupMenuPositioner, setupMenuRoot, setupMenuSubmenuRoot, setupMenuSubmenuTrigger, setupMenuTrigger } from "@aria-ui/elements/menu";
4
+ /**
5
+ * `<prosekit-menu-item>` custom element.
6
+ *
7
+ * Properties: {@link MenuItemProps}
8
+ *
9
+ * Events: {@link MenuItemEvents}
10
+ *
11
+ * Data attributes:
12
+ *
13
+ * | Attribute | Description |
14
+ * | --- | --- |
15
+ * | `data-highlighted` | Present when the item is the currently highlighted option |
16
+ */
17
+ declare class MenuItemElement extends Base.MenuItemElement {}
18
+ /**
19
+ * `<prosekit-menu-popup>` custom element.
20
+ *
21
+ * Properties: {@link MenuPopupProps}
22
+ *
23
+ * Data attributes:
24
+ *
25
+ * | Attribute | Description |
26
+ * | --- | --- |
27
+ * | `data-state` | `"open"` when the menu is visible, `"closed"` otherwise |
28
+ */
29
+ declare class MenuPopupElement extends Base.MenuPopupElement {}
30
+ /**
31
+ * `<prosekit-menu-positioner>` custom element.
32
+ *
33
+ * Properties: {@link MenuPositionerProps}
34
+ *
35
+ * Data attributes:
36
+ *
37
+ * | Attribute | Description |
38
+ * | --- | --- |
39
+ * | `data-state` | `"open"` when the menu is visible, `"closed"` otherwise |
40
+ *
41
+ * CSS variables:
42
+ *
43
+ * | Variable | Description |
44
+ * | --- | --- |
45
+ * | `--transform-origin` | The coordinates that this element is anchored to. Useful for scale animations. |
46
+ */
47
+ declare class MenuPositionerElement extends Base.MenuPositionerElement {}
48
+ /**
49
+ * `<prosekit-menu-root>` custom element.
50
+ *
51
+ * Properties: {@link MenuRootProps}
52
+ *
53
+ * Events: {@link MenuRootEvents}
54
+ *
55
+ * Data attributes:
56
+ *
57
+ * | Attribute | Description |
58
+ * | --- | --- |
59
+ * | `data-menu-root` | Always present on the element |
60
+ */
61
+ declare class MenuRootElement extends Base.MenuRootElement {}
62
+ /**
63
+ * `<prosekit-menu-submenu-root>` custom element.
64
+ *
65
+ * Properties: {@link MenuSubmenuRootProps}
66
+ *
67
+ * Events: {@link MenuSubmenuRootEvents}
68
+ *
69
+ * Data attributes:
70
+ *
71
+ * | Attribute | Description |
72
+ * | --- | --- |
73
+ * | `data-menu-submenu-root` | Always present on the element |
74
+ */
75
+ declare class MenuSubmenuRootElement extends Base.MenuSubmenuRootElement {}
76
+ /**
77
+ * `<prosekit-menu-submenu-trigger>` custom element.
78
+ *
79
+ * Properties: {@link MenuSubmenuTriggerProps}
80
+ *
81
+ * Data attributes:
82
+ *
83
+ * | Attribute | Description |
84
+ * | --- | --- |
85
+ * | `data-highlighted` | Present when the item is the currently highlighted option |
86
+ */
87
+ declare class MenuSubmenuTriggerElement extends Base.MenuSubmenuTriggerElement {}
88
+ /**
89
+ * `<prosekit-menu-trigger>` custom element.
90
+ *
91
+ * Properties: {@link MenuTriggerProps}
92
+ *
93
+ * Events: {@link MenuTriggerEvents}
94
+ */
95
+ declare class MenuTriggerElement extends Base.MenuTriggerElement {}
96
+ interface MenuItemProps extends Base.MenuItemProps {}
97
+ interface MenuPopupProps extends Base.MenuPopupProps {}
98
+ interface MenuPositionerProps extends Base.MenuPositionerProps {}
99
+ interface MenuRootProps extends Base.MenuRootProps {}
100
+ interface MenuSubmenuRootProps extends Base.MenuSubmenuRootProps {}
101
+ interface MenuSubmenuTriggerProps extends Base.MenuSubmenuTriggerProps {}
102
+ interface MenuTriggerProps extends Base.MenuTriggerProps {}
103
+ interface MenuItemEvents extends Base.MenuItemEvents {}
104
+ interface MenuRootEvents extends Base.MenuRootEvents {}
105
+ interface MenuSubmenuRootEvents extends Base.MenuSubmenuRootEvents {}
106
+ interface MenuTriggerEvents extends Base.MenuTriggerEvents {}
107
+ /** @internal */
108
+ declare const MenuItemPropsDeclaration: PropsDeclaration<MenuItemProps>;
109
+ /** @internal */
110
+ declare const MenuPopupPropsDeclaration: PropsDeclaration<MenuPopupProps>;
111
+ /** @internal */
112
+ declare const MenuPositionerPropsDeclaration: PropsDeclaration<MenuPositionerProps>;
113
+ /** @internal */
114
+ declare const MenuRootPropsDeclaration: PropsDeclaration<MenuRootProps>;
115
+ /** @internal */
116
+ declare const MenuSubmenuRootPropsDeclaration: PropsDeclaration<MenuSubmenuRootProps>;
117
+ /** @internal */
118
+ declare const MenuSubmenuTriggerPropsDeclaration: PropsDeclaration<MenuSubmenuTriggerProps>;
119
+ /** @internal */
120
+ declare const MenuTriggerPropsDeclaration: PropsDeclaration<MenuTriggerProps>;
4
121
  declare function registerMenuRootElement(): void;
5
122
  declare function registerMenuTriggerElement(): void;
6
123
  declare function registerMenuPositionerElement(): void;
@@ -8,6 +125,5 @@ declare function registerMenuPopupElement(): void;
8
125
  declare function registerMenuItemElement(): void;
9
126
  declare function registerMenuSubmenuRootElement(): void;
10
127
  declare function registerMenuSubmenuTriggerElement(): void;
11
- //#endregion
12
- export { MenuItemElement, type MenuItemEvents, type MenuItemProps, MenuItemPropsDeclaration, MenuPopupElement, type MenuPopupProps, MenuPopupPropsDeclaration, MenuPositionerElement, type MenuPositionerProps, MenuPositionerPropsDeclaration, MenuRootElement, type MenuRootEvents, type MenuRootProps, MenuRootPropsDeclaration, MenuSubmenuRootElement, MenuSubmenuRootPropsDeclaration, MenuSubmenuTriggerElement, MenuSubmenuTriggerPropsDeclaration, MenuTriggerElement, type MenuTriggerEvents, type MenuTriggerProps, MenuTriggerPropsDeclaration, OpenChangeEvent, SelectEvent, registerMenuItemElement, registerMenuPopupElement, registerMenuPositionerElement, registerMenuRootElement, registerMenuSubmenuRootElement, registerMenuSubmenuTriggerElement, registerMenuTriggerElement, setupMenuItem, setupMenuPopup, setupMenuPositioner, setupMenuRoot, setupMenuSubmenuRoot, setupMenuSubmenuTrigger, setupMenuTrigger };
128
+ export { MenuItemElement, MenuItemEvents, MenuItemProps, MenuItemPropsDeclaration, MenuPopupElement, MenuPopupProps, MenuPopupPropsDeclaration, MenuPositionerElement, MenuPositionerProps, MenuPositionerPropsDeclaration, MenuRootElement, MenuRootEvents, MenuRootProps, MenuRootPropsDeclaration, MenuSubmenuRootElement, MenuSubmenuRootEvents, MenuSubmenuRootProps, MenuSubmenuRootPropsDeclaration, MenuSubmenuTriggerElement, MenuSubmenuTriggerProps, MenuSubmenuTriggerPropsDeclaration, MenuTriggerElement, MenuTriggerEvents, MenuTriggerProps, MenuTriggerPropsDeclaration, OpenChangeEvent, SelectEvent, registerMenuItemElement, registerMenuPopupElement, registerMenuPositionerElement, registerMenuRootElement, registerMenuSubmenuRootElement, registerMenuSubmenuTriggerElement, registerMenuTriggerElement, setupMenuItem, setupMenuPopup, setupMenuPositioner, setupMenuRoot, setupMenuSubmenuRoot, setupMenuSubmenuTrigger, setupMenuTrigger };
13
129
  //# sourceMappingURL=prosekit-web-menu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prosekit-web-menu.d.ts","names":[],"sources":["../src/components/menu/index.ts"],"mappings":";;;iBAuEgB,uBAAA,CAAA;AAAA,iBAGA,0BAAA,CAAA;AAAA,iBAGA,6BAAA,CAAA;AAAA,iBAGA,wBAAA,CAAA;AAAA,iBAGA,uBAAA,CAAA;AAAA,iBAGA,8BAAA,CAAA;AAAA,iBAGA,iCAAA,CAAA"}
1
+ {"version":3,"file":"prosekit-web-menu.d.ts","names":[],"sources":["../src/components/menu/index.ts"],"mappings":";;;;;AAqHA;;;;;AASA;;;;;AAEA;cAtFa,eAAA,SAAwB,IAAA,CAAK,eAAA;;;AAuF1C;;;;;AACA;;;;cA3Ea,gBAAA,SAAyB,IAAA,CAAK,gBAAA;;;;;AA6E3C;;;;;AACA;;;;;AACA;;;cA5Da,qBAAA,SAA8B,IAAA,CAAK,qBAAA;AA8DhD;;;;;AACA;;;;;AACA;;;AAFA,cA/Ca,eAAA,SAAwB,IAAA,CAAK,eAAA;AAkD1C;;;;;AAGA;;;;;AAEA;;;AALA,cAnCa,sBAAA,SAA+B,IAAA,CAAK,sBAAA;AA0CjD;;;;;AAEA;;;;;AAEA;AAJA,cA7Ba,yBAAA,SAAkC,IAAA,CAAK,yBAAA;;;AAmCpD;;;;;cA1Ba,kBAAA,SAA2B,IAAA,CAAK,kBAAA;AAAA,UAE5B,aAAA,SAAsB,IAAA,CAAK,aAAA;AAAA,UAC3B,cAAA,SAAuB,IAAA,CAAK,cAAA;AAAA,UAC5B,mBAAA,SAA4B,IAAA,CAAK,mBAAA;AAAA,UACjC,aAAA,SAAsB,IAAA,CAAK,aAAA;AAAA,UAC3B,oBAAA,SAA6B,IAAA,CAAK,oBAAA;AAAA,UAClC,uBAAA,SAAgC,IAAA,CAAK,uBAAA;AAAA,UACrC,gBAAA,SAAyB,IAAA,CAAK,gBAAA;AAAA,UAE9B,cAAA,SAAuB,IAAA,CAAK,cAAA;AAAA,UAC5B,cAAA,SAAuB,IAAA,CAAK,cAAA;AAAA,UAC5B,qBAAA,SAA8B,IAAA,CAAK,qBAAA;AAAA,UACnC,iBAAA,SAA0B,IAAA,CAAK,iBAAA;;cAGnC,wBAAA,EAA0B,gBAAA,CAAiB,aAAA;;cAE3C,yBAAA,EAA2B,gBAAA,CAAiB,cAAA;;cAE5C,8BAAA,EAAgC,gBAAA,CAAiB,mBAAA;AAyB9D;AAAA,cAvBa,wBAAA,EAA0B,gBAAA,CAAiB,aAAA;;cAE3C,+BAAA,EAAiC,gBAAA,CAAiB,oBAAA;;cAElD,kCAAA,EAAoC,gBAAA,CAAiB,uBAAA;;cAErD,2BAAA,EAA6B,gBAAA,CAAiB,gBAAA;AAAA,iBAE3C,uBAAA,CAAA;AAAA,iBAGA,0BAAA,CAAA;AAAA,iBAGA,6BAAA,CAAA;AAAA,iBAGA,wBAAA,CAAA;AAAA,iBAGA,uBAAA,CAAA;AAAA,iBAGA,8BAAA,CAAA;AAAA,iBAGA,iCAAA,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { registerCustomElement } from "@aria-ui/core";
2
- import { MenuItemElement, MenuItemElement as MenuItemElement$1, MenuItemPropsDeclaration, MenuPopupElement, MenuPopupElement as MenuPopupElement$1, MenuPopupPropsDeclaration, MenuPositionerElement, MenuPositionerElement as MenuPositionerElement$1, MenuPositionerPropsDeclaration, MenuRootElement, MenuRootElement as MenuRootElement$1, MenuRootPropsDeclaration, MenuSubmenuRootElement, MenuSubmenuRootElement as MenuSubmenuRootElement$1, MenuSubmenuRootPropsDeclaration, MenuSubmenuTriggerElement, MenuSubmenuTriggerElement as MenuSubmenuTriggerElement$1, MenuSubmenuTriggerPropsDeclaration, MenuTriggerElement, MenuTriggerElement as MenuTriggerElement$1, MenuTriggerPropsDeclaration, OpenChangeEvent, SelectEvent, setupMenuItem, setupMenuPopup, setupMenuPositioner, setupMenuRoot, setupMenuSubmenuRoot, setupMenuSubmenuTrigger, setupMenuTrigger } from "@aria-ui/elements/menu";
3
- //#region src/components/menu/index.ts
2
+ import * as Base from "@aria-ui/elements/menu";
3
+ import { OpenChangeEvent, SelectEvent, setupMenuItem, setupMenuPopup, setupMenuPositioner, setupMenuRoot, setupMenuSubmenuRoot, setupMenuSubmenuTrigger, setupMenuTrigger } from "@aria-ui/elements/menu";
4
4
  /**
5
5
 
6
6
  @module
@@ -26,28 +26,133 @@ import { MenuItemElement, MenuItemElement as MenuItemElement$1, MenuItemPropsDec
26
26
  </prosekit-menu-root>
27
27
  ```
28
28
  */
29
+ /**
30
+ * `<prosekit-menu-item>` custom element.
31
+ *
32
+ * Properties: {@link MenuItemProps}
33
+ *
34
+ * Events: {@link MenuItemEvents}
35
+ *
36
+ * Data attributes:
37
+ *
38
+ * | Attribute | Description |
39
+ * | --- | --- |
40
+ * | `data-highlighted` | Present when the item is the currently highlighted option |
41
+ */
42
+ var MenuItemElement = class extends Base.MenuItemElement {};
43
+ /**
44
+ * `<prosekit-menu-popup>` custom element.
45
+ *
46
+ * Properties: {@link MenuPopupProps}
47
+ *
48
+ * Data attributes:
49
+ *
50
+ * | Attribute | Description |
51
+ * | --- | --- |
52
+ * | `data-state` | `"open"` when the menu is visible, `"closed"` otherwise |
53
+ */
54
+ var MenuPopupElement = class extends Base.MenuPopupElement {};
55
+ /**
56
+ * `<prosekit-menu-positioner>` custom element.
57
+ *
58
+ * Properties: {@link MenuPositionerProps}
59
+ *
60
+ * Data attributes:
61
+ *
62
+ * | Attribute | Description |
63
+ * | --- | --- |
64
+ * | `data-state` | `"open"` when the menu is visible, `"closed"` otherwise |
65
+ *
66
+ * CSS variables:
67
+ *
68
+ * | Variable | Description |
69
+ * | --- | --- |
70
+ * | `--transform-origin` | The coordinates that this element is anchored to. Useful for scale animations. |
71
+ */
72
+ var MenuPositionerElement = class extends Base.MenuPositionerElement {};
73
+ /**
74
+ * `<prosekit-menu-root>` custom element.
75
+ *
76
+ * Properties: {@link MenuRootProps}
77
+ *
78
+ * Events: {@link MenuRootEvents}
79
+ *
80
+ * Data attributes:
81
+ *
82
+ * | Attribute | Description |
83
+ * | --- | --- |
84
+ * | `data-menu-root` | Always present on the element |
85
+ */
86
+ var MenuRootElement = class extends Base.MenuRootElement {};
87
+ /**
88
+ * `<prosekit-menu-submenu-root>` custom element.
89
+ *
90
+ * Properties: {@link MenuSubmenuRootProps}
91
+ *
92
+ * Events: {@link MenuSubmenuRootEvents}
93
+ *
94
+ * Data attributes:
95
+ *
96
+ * | Attribute | Description |
97
+ * | --- | --- |
98
+ * | `data-menu-submenu-root` | Always present on the element |
99
+ */
100
+ var MenuSubmenuRootElement = class extends Base.MenuSubmenuRootElement {};
101
+ /**
102
+ * `<prosekit-menu-submenu-trigger>` custom element.
103
+ *
104
+ * Properties: {@link MenuSubmenuTriggerProps}
105
+ *
106
+ * Data attributes:
107
+ *
108
+ * | Attribute | Description |
109
+ * | --- | --- |
110
+ * | `data-highlighted` | Present when the item is the currently highlighted option |
111
+ */
112
+ var MenuSubmenuTriggerElement = class extends Base.MenuSubmenuTriggerElement {};
113
+ /**
114
+ * `<prosekit-menu-trigger>` custom element.
115
+ *
116
+ * Properties: {@link MenuTriggerProps}
117
+ *
118
+ * Events: {@link MenuTriggerEvents}
119
+ */
120
+ var MenuTriggerElement = class extends Base.MenuTriggerElement {};
121
+ /** @internal */
122
+ const MenuItemPropsDeclaration = Base.MenuItemPropsDeclaration;
123
+ /** @internal */
124
+ const MenuPopupPropsDeclaration = Base.MenuPopupPropsDeclaration;
125
+ /** @internal */
126
+ const MenuPositionerPropsDeclaration = Base.MenuPositionerPropsDeclaration;
127
+ /** @internal */
128
+ const MenuRootPropsDeclaration = Base.MenuRootPropsDeclaration;
129
+ /** @internal */
130
+ const MenuSubmenuRootPropsDeclaration = Base.MenuSubmenuRootPropsDeclaration;
131
+ /** @internal */
132
+ const MenuSubmenuTriggerPropsDeclaration = Base.MenuSubmenuTriggerPropsDeclaration;
133
+ /** @internal */
134
+ const MenuTriggerPropsDeclaration = Base.MenuTriggerPropsDeclaration;
29
135
  function registerMenuRootElement() {
30
- registerCustomElement("prosekit-menu-root", MenuRootElement$1);
136
+ registerCustomElement("prosekit-menu-root", MenuRootElement);
31
137
  }
32
138
  function registerMenuTriggerElement() {
33
- registerCustomElement("prosekit-menu-trigger", MenuTriggerElement$1);
139
+ registerCustomElement("prosekit-menu-trigger", MenuTriggerElement);
34
140
  }
35
141
  function registerMenuPositionerElement() {
36
- registerCustomElement("prosekit-menu-positioner", MenuPositionerElement$1);
142
+ registerCustomElement("prosekit-menu-positioner", MenuPositionerElement);
37
143
  }
38
144
  function registerMenuPopupElement() {
39
- registerCustomElement("prosekit-menu-popup", MenuPopupElement$1);
145
+ registerCustomElement("prosekit-menu-popup", MenuPopupElement);
40
146
  }
41
147
  function registerMenuItemElement() {
42
- registerCustomElement("prosekit-menu-item", MenuItemElement$1);
148
+ registerCustomElement("prosekit-menu-item", MenuItemElement);
43
149
  }
44
150
  function registerMenuSubmenuRootElement() {
45
- registerCustomElement("prosekit-menu-submenu-root", MenuSubmenuRootElement$1);
151
+ registerCustomElement("prosekit-menu-submenu-root", MenuSubmenuRootElement);
46
152
  }
47
153
  function registerMenuSubmenuTriggerElement() {
48
- registerCustomElement("prosekit-menu-submenu-trigger", MenuSubmenuTriggerElement$1);
154
+ registerCustomElement("prosekit-menu-submenu-trigger", MenuSubmenuTriggerElement);
49
155
  }
50
- //#endregion
51
156
  export { MenuItemElement, MenuItemPropsDeclaration, MenuPopupElement, MenuPopupPropsDeclaration, MenuPositionerElement, MenuPositionerPropsDeclaration, MenuRootElement, MenuRootPropsDeclaration, MenuSubmenuRootElement, MenuSubmenuRootPropsDeclaration, MenuSubmenuTriggerElement, MenuSubmenuTriggerPropsDeclaration, MenuTriggerElement, MenuTriggerPropsDeclaration, OpenChangeEvent, SelectEvent, registerMenuItemElement, registerMenuPopupElement, registerMenuPositionerElement, registerMenuRootElement, registerMenuSubmenuRootElement, registerMenuSubmenuTriggerElement, registerMenuTriggerElement, setupMenuItem, setupMenuPopup, setupMenuPositioner, setupMenuRoot, setupMenuSubmenuRoot, setupMenuSubmenuTrigger, setupMenuTrigger };
52
157
 
53
158
  //# sourceMappingURL=prosekit-web-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prosekit-web-menu.js","names":["MenuRootElement","MenuTriggerElement","MenuPositionerElement","MenuPopupElement","MenuItemElement","MenuSubmenuRootElement","MenuSubmenuTriggerElement"],"sources":["../src/components/menu/index.ts"],"sourcesContent":["/**\n\n@module\n\n## Anatomy\n\n```html\n<prosekit-menu-root>\n <prosekit-menu-trigger>...</prosekit-menu-trigger>\n <prosekit-menu-positioner>\n <prosekit-menu-popup>\n <prosekit-menu-item>...</prosekit-menu-item>\n <prosekit-menu-submenu-root>\n <prosekit-menu-submenu-trigger>...</prosekit-menu-submenu-trigger>\n <prosekit-menu-positioner>\n <prosekit-menu-popup>\n <prosekit-menu-item>...</prosekit-menu-item>\n </prosekit-menu-popup>\n </prosekit-menu-positioner>\n </prosekit-menu-submenu-root>\n </prosekit-menu-popup>\n </prosekit-menu-positioner>\n</prosekit-menu-root>\n```\n*/\n\nimport { registerCustomElement } from '@aria-ui/core'\nimport {\n MenuItemElement,\n MenuPopupElement,\n MenuPositionerElement,\n MenuRootElement,\n MenuSubmenuRootElement,\n MenuSubmenuTriggerElement,\n MenuTriggerElement,\n} from '@aria-ui/elements/menu'\n\nexport {\n MenuItemElement,\n MenuItemPropsDeclaration,\n MenuPopupElement,\n MenuPopupPropsDeclaration,\n MenuPositionerElement,\n MenuPositionerPropsDeclaration,\n MenuRootElement,\n MenuRootPropsDeclaration,\n MenuSubmenuRootElement,\n MenuSubmenuRootPropsDeclaration,\n MenuSubmenuTriggerElement,\n MenuSubmenuTriggerPropsDeclaration,\n MenuTriggerElement,\n MenuTriggerPropsDeclaration,\n OpenChangeEvent,\n SelectEvent,\n setupMenuItem,\n setupMenuPopup,\n setupMenuPositioner,\n setupMenuRoot,\n setupMenuSubmenuRoot,\n setupMenuSubmenuTrigger,\n setupMenuTrigger,\n type MenuItemEvents,\n type MenuItemProps,\n type MenuPopupProps,\n type MenuPositionerProps,\n type MenuRootEvents,\n type MenuRootProps,\n type MenuTriggerEvents,\n type MenuTriggerProps,\n} from '@aria-ui/elements/menu'\n\nexport function registerMenuRootElement(): void {\n registerCustomElement('prosekit-menu-root', MenuRootElement)\n}\nexport function registerMenuTriggerElement(): void {\n registerCustomElement('prosekit-menu-trigger', MenuTriggerElement)\n}\nexport function registerMenuPositionerElement(): void {\n registerCustomElement('prosekit-menu-positioner', MenuPositionerElement)\n}\nexport function registerMenuPopupElement(): void {\n registerCustomElement('prosekit-menu-popup', MenuPopupElement)\n}\nexport function registerMenuItemElement(): void {\n registerCustomElement('prosekit-menu-item', MenuItemElement)\n}\nexport function registerMenuSubmenuRootElement(): void {\n registerCustomElement('prosekit-menu-submenu-root', MenuSubmenuRootElement)\n}\nexport function registerMenuSubmenuTriggerElement(): void {\n registerCustomElement('prosekit-menu-submenu-trigger', MenuSubmenuTriggerElement)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuEA,SAAgB,0BAAgC;AAC9C,uBAAsB,sBAAsBA,kBAAgB;;AAE9D,SAAgB,6BAAmC;AACjD,uBAAsB,yBAAyBC,qBAAmB;;AAEpE,SAAgB,gCAAsC;AACpD,uBAAsB,4BAA4BC,wBAAsB;;AAE1E,SAAgB,2BAAiC;AAC/C,uBAAsB,uBAAuBC,mBAAiB;;AAEhE,SAAgB,0BAAgC;AAC9C,uBAAsB,sBAAsBC,kBAAgB;;AAE9D,SAAgB,iCAAuC;AACrD,uBAAsB,8BAA8BC,yBAAuB;;AAE7E,SAAgB,oCAA0C;AACxD,uBAAsB,iCAAiCC,4BAA0B"}
1
+ {"version":3,"file":"prosekit-web-menu.js","names":[],"sources":["../src/components/menu/index.ts"],"sourcesContent":["/**\n\n@module\n\n## Anatomy\n\n```html\n<prosekit-menu-root>\n <prosekit-menu-trigger>...</prosekit-menu-trigger>\n <prosekit-menu-positioner>\n <prosekit-menu-popup>\n <prosekit-menu-item>...</prosekit-menu-item>\n <prosekit-menu-submenu-root>\n <prosekit-menu-submenu-trigger>...</prosekit-menu-submenu-trigger>\n <prosekit-menu-positioner>\n <prosekit-menu-popup>\n <prosekit-menu-item>...</prosekit-menu-item>\n </prosekit-menu-popup>\n </prosekit-menu-positioner>\n </prosekit-menu-submenu-root>\n </prosekit-menu-popup>\n </prosekit-menu-positioner>\n</prosekit-menu-root>\n```\n*/\n\nimport { registerCustomElement, type PropsDeclaration } from '@aria-ui/core'\nimport * as Base from '@aria-ui/elements/menu'\n\n/**\n * `<prosekit-menu-item>` custom element.\n *\n * Properties: {@link MenuItemProps}\n *\n * Events: {@link MenuItemEvents}\n *\n * Data attributes:\n *\n * | Attribute | Description |\n * | --- | --- |\n * | `data-highlighted` | Present when the item is the currently highlighted option |\n */\nexport class MenuItemElement extends Base.MenuItemElement {}\n\n/**\n * `<prosekit-menu-popup>` custom element.\n *\n * Properties: {@link MenuPopupProps}\n *\n * Data attributes:\n *\n * | Attribute | Description |\n * | --- | --- |\n * | `data-state` | `\"open\"` when the menu is visible, `\"closed\"` otherwise |\n */\nexport class MenuPopupElement extends Base.MenuPopupElement {}\n\n/**\n * `<prosekit-menu-positioner>` custom element.\n *\n * Properties: {@link MenuPositionerProps}\n *\n * Data attributes:\n *\n * | Attribute | Description |\n * | --- | --- |\n * | `data-state` | `\"open\"` when the menu is visible, `\"closed\"` otherwise |\n *\n * CSS variables:\n *\n * | Variable | Description |\n * | --- | --- |\n * | `--transform-origin` | The coordinates that this element is anchored to. Useful for scale animations. |\n */\nexport class MenuPositionerElement extends Base.MenuPositionerElement {}\n\n/**\n * `<prosekit-menu-root>` custom element.\n *\n * Properties: {@link MenuRootProps}\n *\n * Events: {@link MenuRootEvents}\n *\n * Data attributes:\n *\n * | Attribute | Description |\n * | --- | --- |\n * | `data-menu-root` | Always present on the element |\n */\nexport class MenuRootElement extends Base.MenuRootElement {}\n\n/**\n * `<prosekit-menu-submenu-root>` custom element.\n *\n * Properties: {@link MenuSubmenuRootProps}\n *\n * Events: {@link MenuSubmenuRootEvents}\n *\n * Data attributes:\n *\n * | Attribute | Description |\n * | --- | --- |\n * | `data-menu-submenu-root` | Always present on the element |\n */\nexport class MenuSubmenuRootElement extends Base.MenuSubmenuRootElement {}\n\n/**\n * `<prosekit-menu-submenu-trigger>` custom element.\n *\n * Properties: {@link MenuSubmenuTriggerProps}\n *\n * Data attributes:\n *\n * | Attribute | Description |\n * | --- | --- |\n * | `data-highlighted` | Present when the item is the currently highlighted option |\n */\nexport class MenuSubmenuTriggerElement extends Base.MenuSubmenuTriggerElement {}\n\n/**\n * `<prosekit-menu-trigger>` custom element.\n *\n * Properties: {@link MenuTriggerProps}\n *\n * Events: {@link MenuTriggerEvents}\n */\nexport class MenuTriggerElement extends Base.MenuTriggerElement {}\n\nexport interface MenuItemProps extends Base.MenuItemProps {}\nexport interface MenuPopupProps extends Base.MenuPopupProps {}\nexport interface MenuPositionerProps extends Base.MenuPositionerProps {}\nexport interface MenuRootProps extends Base.MenuRootProps {}\nexport interface MenuSubmenuRootProps extends Base.MenuSubmenuRootProps {}\nexport interface MenuSubmenuTriggerProps extends Base.MenuSubmenuTriggerProps {}\nexport interface MenuTriggerProps extends Base.MenuTriggerProps {}\n\nexport interface MenuItemEvents extends Base.MenuItemEvents {}\nexport interface MenuRootEvents extends Base.MenuRootEvents {}\nexport interface MenuSubmenuRootEvents extends Base.MenuSubmenuRootEvents {}\nexport interface MenuTriggerEvents extends Base.MenuTriggerEvents {}\n\n/** @internal */\nexport const MenuItemPropsDeclaration: PropsDeclaration<MenuItemProps> = Base.MenuItemPropsDeclaration\n/** @internal */\nexport const MenuPopupPropsDeclaration: PropsDeclaration<MenuPopupProps> = Base.MenuPopupPropsDeclaration\n/** @internal */\nexport const MenuPositionerPropsDeclaration: PropsDeclaration<MenuPositionerProps> = Base.MenuPositionerPropsDeclaration\n/** @internal */\nexport const MenuRootPropsDeclaration: PropsDeclaration<MenuRootProps> = Base.MenuRootPropsDeclaration\n/** @internal */\nexport const MenuSubmenuRootPropsDeclaration: PropsDeclaration<MenuSubmenuRootProps> = Base.MenuSubmenuRootPropsDeclaration\n/** @internal */\nexport const MenuSubmenuTriggerPropsDeclaration: PropsDeclaration<MenuSubmenuTriggerProps> = Base.MenuSubmenuTriggerPropsDeclaration\n/** @internal */\nexport const MenuTriggerPropsDeclaration: PropsDeclaration<MenuTriggerProps> = Base.MenuTriggerPropsDeclaration\n\nexport function registerMenuRootElement(): void {\n registerCustomElement('prosekit-menu-root', MenuRootElement)\n}\nexport function registerMenuTriggerElement(): void {\n registerCustomElement('prosekit-menu-trigger', MenuTriggerElement)\n}\nexport function registerMenuPositionerElement(): void {\n registerCustomElement('prosekit-menu-positioner', MenuPositionerElement)\n}\nexport function registerMenuPopupElement(): void {\n registerCustomElement('prosekit-menu-popup', MenuPopupElement)\n}\nexport function registerMenuItemElement(): void {\n registerCustomElement('prosekit-menu-item', MenuItemElement)\n}\nexport function registerMenuSubmenuRootElement(): void {\n registerCustomElement('prosekit-menu-submenu-root', MenuSubmenuRootElement)\n}\nexport function registerMenuSubmenuTriggerElement(): void {\n registerCustomElement('prosekit-menu-submenu-trigger', MenuSubmenuTriggerElement)\n}\n\nexport {\n OpenChangeEvent,\n SelectEvent,\n setupMenuItem,\n setupMenuPopup,\n setupMenuPositioner,\n setupMenuRoot,\n setupMenuSubmenuRoot,\n setupMenuSubmenuTrigger,\n setupMenuTrigger,\n} from '@aria-ui/elements/menu'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,IAAa,kBAAb,cAAqC,KAAK,gBAAgB;;;;;;;;;;;;AAa1D,IAAa,mBAAb,cAAsC,KAAK,iBAAiB;;;;;;;;;;;;;;;;;;AAmB5D,IAAa,wBAAb,cAA2C,KAAK,sBAAsB;;;;;;;;;;;;;;AAetE,IAAa,kBAAb,cAAqC,KAAK,gBAAgB;;;;;;;;;;;;;;AAe1D,IAAa,yBAAb,cAA4C,KAAK,uBAAuB;;;;;;;;;;;;AAaxE,IAAa,4BAAb,cAA+C,KAAK,0BAA0B;;;;;;;;AAS9E,IAAa,qBAAb,cAAwC,KAAK,mBAAmB;;AAgBhE,MAAa,2BAA4D,KAAK;;AAE9E,MAAa,4BAA8D,KAAK;;AAEhF,MAAa,iCAAwE,KAAK;;AAE1F,MAAa,2BAA4D,KAAK;;AAE9E,MAAa,kCAA0E,KAAK;;AAE5F,MAAa,qCAAgF,KAAK;;AAElG,MAAa,8BAAkE,KAAK;AAEpF,SAAgB,0BAAgC;AAC9C,uBAAsB,sBAAsB,gBAAgB;;AAE9D,SAAgB,6BAAmC;AACjD,uBAAsB,yBAAyB,mBAAmB;;AAEpE,SAAgB,gCAAsC;AACpD,uBAAsB,4BAA4B,sBAAsB;;AAE1E,SAAgB,2BAAiC;AAC/C,uBAAsB,uBAAuB,iBAAiB;;AAEhE,SAAgB,0BAAgC;AAC9C,uBAAsB,sBAAsB,gBAAgB;;AAE9D,SAAgB,iCAAuC;AACrD,uBAAsB,8BAA8B,uBAAuB;;AAE7E,SAAgB,oCAA0C;AACxD,uBAAsB,iCAAiC,0BAA0B"}
@@ -1,10 +1,69 @@
1
- import { OpenChangeEvent, PopoverPopupElement, PopoverPopupProps, PopoverPopupPropsDeclaration, PopoverPositionerElement, PopoverPositionerProps, PopoverPositionerPropsDeclaration, PopoverRootElement, PopoverRootEvents, PopoverRootProps, PopoverRootPropsDeclaration, PopoverTriggerElement, PopoverTriggerEvents, PopoverTriggerProps, PopoverTriggerPropsDeclaration, setupPopoverPopup, setupPopoverPositioner, setupPopoverRoot, setupPopoverTrigger } from "@aria-ui/elements/popover";
2
-
3
- //#region src/components/popover/index.d.ts
1
+ import { PropsDeclaration } from "@aria-ui/core";
2
+ import * as Base from "@aria-ui/elements/popover";
3
+ import { OpenChangeEvent, setupPopoverPopup, setupPopoverPositioner, setupPopoverRoot, setupPopoverTrigger } from "@aria-ui/elements/popover";
4
+ /**
5
+ * `<prosekit-popover-popup>` custom element.
6
+ *
7
+ * Properties: {@link PopoverPopupProps}
8
+ *
9
+ * Data attributes:
10
+ *
11
+ * | Attribute | Description |
12
+ * | --- | --- |
13
+ * | `data-state` | `"open"` when the popover is visible, `"closed"` otherwise |
14
+ */
15
+ declare class PopoverPopupElement extends Base.PopoverPopupElement {}
16
+ /**
17
+ * `<prosekit-popover-positioner>` custom element.
18
+ *
19
+ * Properties: {@link PopoverPositionerProps}
20
+ *
21
+ * Data attributes:
22
+ *
23
+ * | Attribute | Description |
24
+ * | --- | --- |
25
+ * | `data-state` | `"open"` when the popover is visible, `"closed"` otherwise |
26
+ *
27
+ * CSS variables:
28
+ *
29
+ * | Variable | Description |
30
+ * | --- | --- |
31
+ * | `--transform-origin` | The coordinates that this element is anchored to. Useful for scale animations. |
32
+ */
33
+ declare class PopoverPositionerElement extends Base.PopoverPositionerElement {}
34
+ /**
35
+ * `<prosekit-popover-root>` custom element.
36
+ *
37
+ * Properties: {@link PopoverRootProps}
38
+ *
39
+ * Events: {@link PopoverRootEvents}
40
+ */
41
+ declare class PopoverRootElement extends Base.PopoverRootElement {}
42
+ /**
43
+ * `<prosekit-popover-trigger>` custom element.
44
+ *
45
+ * Properties: {@link PopoverTriggerProps}
46
+ *
47
+ * Events: {@link PopoverTriggerEvents}
48
+ */
49
+ declare class PopoverTriggerElement extends Base.PopoverTriggerElement {}
50
+ interface PopoverPopupProps extends Base.PopoverPopupProps {}
51
+ interface PopoverPositionerProps extends Base.PopoverPositionerProps {}
52
+ interface PopoverRootProps extends Base.PopoverRootProps {}
53
+ interface PopoverTriggerProps extends Base.PopoverTriggerProps {}
54
+ interface PopoverRootEvents extends Base.PopoverRootEvents {}
55
+ interface PopoverTriggerEvents extends Base.PopoverTriggerEvents {}
56
+ /** @internal */
57
+ declare const PopoverPopupPropsDeclaration: PropsDeclaration<PopoverPopupProps>;
58
+ /** @internal */
59
+ declare const PopoverPositionerPropsDeclaration: PropsDeclaration<PopoverPositionerProps>;
60
+ /** @internal */
61
+ declare const PopoverRootPropsDeclaration: PropsDeclaration<PopoverRootProps>;
62
+ /** @internal */
63
+ declare const PopoverTriggerPropsDeclaration: PropsDeclaration<PopoverTriggerProps>;
4
64
  declare function registerPopoverRootElement(): void;
5
65
  declare function registerPopoverTriggerElement(): void;
6
66
  declare function registerPopoverPopupElement(): void;
7
67
  declare function registerPopoverPositionerElement(): void;
8
- //#endregion
9
- export { OpenChangeEvent, PopoverPopupElement, type PopoverPopupProps, PopoverPopupPropsDeclaration, PopoverPositionerElement, type PopoverPositionerProps, PopoverPositionerPropsDeclaration, PopoverRootElement, type PopoverRootEvents, type PopoverRootProps, PopoverRootPropsDeclaration, PopoverTriggerElement, type PopoverTriggerEvents, type PopoverTriggerProps, PopoverTriggerPropsDeclaration, registerPopoverPopupElement, registerPopoverPositionerElement, registerPopoverRootElement, registerPopoverTriggerElement, setupPopoverPopup, setupPopoverPositioner, setupPopoverRoot, setupPopoverTrigger };
68
+ export { OpenChangeEvent, PopoverPopupElement, PopoverPopupProps, PopoverPopupPropsDeclaration, PopoverPositionerElement, PopoverPositionerProps, PopoverPositionerPropsDeclaration, PopoverRootElement, PopoverRootEvents, PopoverRootProps, PopoverRootPropsDeclaration, PopoverTriggerElement, PopoverTriggerEvents, PopoverTriggerProps, PopoverTriggerPropsDeclaration, registerPopoverPopupElement, registerPopoverPositionerElement, registerPopoverRootElement, registerPopoverTriggerElement, setupPopoverPopup, setupPopoverPositioner, setupPopoverRoot, setupPopoverTrigger };
10
69
  //# sourceMappingURL=prosekit-web-popover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prosekit-web-popover.d.ts","names":[],"sources":["../src/components/popover/index.ts"],"mappings":";;;iBAyCgB,0BAAA,CAAA;AAAA,iBAGA,6BAAA,CAAA;AAAA,iBAGA,2BAAA,CAAA;AAAA,iBAGA,gCAAA,CAAA"}
1
+ {"version":3,"file":"prosekit-web-popover.d.ts","names":[],"sources":["../src/components/popover/index.ts"],"mappings":";;;;;AAmEA;;;;;AAEA;;;;cAvCa,mBAAA,SAA4B,IAAA,CAAK,mBAAA;;;;;AAyC9C;;;;;AACA;;;;;AAEA;;;cAzBa,wBAAA,SAAiC,IAAA,CAAK,wBAAA;AA0BnD;;;;;AAGA;;AAHA,cAjBa,kBAAA,SAA2B,IAAA,CAAK,kBAAA;;AAsB7C;;;;;AAEA;cAfa,qBAAA,SAA8B,IAAA,CAAK,qBAAA;AAAA,UAE/B,iBAAA,SAA0B,IAAA,CAAK,iBAAA;AAAA,UAC/B,sBAAA,SAA+B,IAAA,CAAK,sBAAA;AAAA,UACpC,gBAAA,SAAyB,IAAA,CAAK,gBAAA;AAAA,UAC9B,mBAAA,SAA4B,IAAA,CAAK,mBAAA;AAAA,UAEjC,iBAAA,SAA0B,IAAA,CAAK,iBAAA;AAAA,UAC/B,oBAAA,SAA6B,IAAA,CAAK,oBAAA;AAcnD;AAAA,cAXa,4BAAA,EAA8B,gBAAA,CAAiB,iBAAA;;cAE/C,iCAAA,EAAmC,gBAAA,CAAiB,sBAAA;;cAEpD,2BAAA,EAA6B,gBAAA,CAAiB,gBAAA;;cAE9C,8BAAA,EAAgC,gBAAA,CAAiB,mBAAA;AAAA,iBAE9C,0BAAA,CAAA;AAAA,iBAGA,6BAAA,CAAA;AAAA,iBAGA,2BAAA,CAAA;AAAA,iBAGA,gCAAA,CAAA"}