@prosekit/preact 0.7.0-beta.2 → 0.7.0-beta.4

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 (94) hide show
  1. package/dist/editor-context.js +0 -2
  2. package/dist/editor-context.js.map +1 -1
  3. package/dist/prosekit-preact-autocomplete.d.ts +22 -73
  4. package/dist/prosekit-preact-autocomplete.d.ts.map +1 -1
  5. package/dist/prosekit-preact-autocomplete.js +7 -52
  6. package/dist/prosekit-preact-autocomplete.js.map +1 -1
  7. package/dist/prosekit-preact-block-handle.d.ts +22 -73
  8. package/dist/prosekit-preact-block-handle.d.ts.map +1 -1
  9. package/dist/prosekit-preact-block-handle.js +7 -52
  10. package/dist/prosekit-preact-block-handle.js.map +1 -1
  11. package/dist/prosekit-preact-drop-indicator.d.ts +4 -15
  12. package/dist/prosekit-preact-drop-indicator.d.ts.map +1 -1
  13. package/dist/prosekit-preact-drop-indicator.js +1 -10
  14. package/dist/prosekit-preact-drop-indicator.js.map +1 -1
  15. package/dist/prosekit-preact-inline-popover.d.ts +15 -46
  16. package/dist/prosekit-preact-inline-popover.d.ts.map +1 -1
  17. package/dist/prosekit-preact-inline-popover.js +5 -32
  18. package/dist/prosekit-preact-inline-popover.js.map +1 -1
  19. package/dist/prosekit-preact-menu.d.ts +61 -101
  20. package/dist/prosekit-preact-menu.d.ts.map +1 -1
  21. package/dist/prosekit-preact-menu.js +39 -74
  22. package/dist/prosekit-preact-menu.js.map +1 -1
  23. package/dist/prosekit-preact-popover.d.ts +18 -59
  24. package/dist/prosekit-preact-popover.d.ts.map +1 -1
  25. package/dist/prosekit-preact-popover.js +6 -42
  26. package/dist/prosekit-preact-popover.js.map +1 -1
  27. package/dist/prosekit-preact-resizable.d.ts +10 -31
  28. package/dist/prosekit-preact-resizable.d.ts.map +1 -1
  29. package/dist/prosekit-preact-resizable.js +4 -22
  30. package/dist/prosekit-preact-resizable.js.map +1 -1
  31. package/dist/prosekit-preact-table-handle.d.ts +44 -155
  32. package/dist/prosekit-preact-table-handle.d.ts.map +1 -1
  33. package/dist/prosekit-preact-table-handle.js +11 -110
  34. package/dist/prosekit-preact-table-handle.js.map +1 -1
  35. package/dist/prosekit-preact-tooltip.d.ts +18 -59
  36. package/dist/prosekit-preact-tooltip.d.ts.map +1 -1
  37. package/dist/prosekit-preact-tooltip.js +6 -42
  38. package/dist/prosekit-preact-tooltip.js.map +1 -1
  39. package/dist/prosekit-preact.d.ts +0 -21
  40. package/dist/prosekit-preact.d.ts.map +1 -1
  41. package/dist/prosekit-preact.js +0 -26
  42. package/dist/prosekit-preact.js.map +1 -1
  43. package/package.json +5 -5
  44. package/src/components/autocomplete/autocomplete-empty.gen.ts +5 -15
  45. package/src/components/autocomplete/autocomplete-item.gen.ts +5 -17
  46. package/src/components/autocomplete/autocomplete-popup.gen.ts +5 -17
  47. package/src/components/autocomplete/autocomplete-positioner.gen.ts +5 -15
  48. package/src/components/autocomplete/autocomplete-root.gen.ts +5 -17
  49. package/src/components/autocomplete/index.gen.ts +4 -8
  50. package/src/components/block-handle/block-handle-add.gen.ts +5 -15
  51. package/src/components/block-handle/block-handle-draggable.gen.ts +5 -15
  52. package/src/components/block-handle/block-handle-popup.gen.ts +5 -15
  53. package/src/components/block-handle/block-handle-positioner.gen.ts +5 -15
  54. package/src/components/block-handle/block-handle-root.gen.ts +5 -17
  55. package/src/components/block-handle/index.gen.ts +2 -6
  56. package/src/components/drop-indicator/drop-indicator.gen.ts +5 -15
  57. package/src/components/drop-indicator/index.gen.ts +1 -3
  58. package/src/components/inline-popover/index.gen.ts +2 -6
  59. package/src/components/inline-popover/inline-popover-popup.gen.ts +5 -15
  60. package/src/components/inline-popover/inline-popover-positioner.gen.ts +5 -15
  61. package/src/components/inline-popover/inline-popover-root.gen.ts +6 -18
  62. package/src/components/menu/index.gen.ts +4 -8
  63. package/src/components/menu/menu-item.gen.ts +5 -17
  64. package/src/components/menu/menu-popup.gen.ts +5 -15
  65. package/src/components/menu/menu-positioner.gen.ts +5 -15
  66. package/src/components/menu/menu-root.gen.ts +5 -17
  67. package/src/components/menu/menu-submenu-root.gen.ts +50 -18
  68. package/src/components/menu/menu-submenu-trigger.gen.ts +28 -19
  69. package/src/components/menu/menu-trigger.gen.ts +5 -17
  70. package/src/components/popover/index.gen.ts +3 -7
  71. package/src/components/popover/popover-popup.gen.ts +5 -15
  72. package/src/components/popover/popover-positioner.gen.ts +5 -15
  73. package/src/components/popover/popover-root.gen.ts +5 -17
  74. package/src/components/popover/popover-trigger.gen.ts +5 -17
  75. package/src/components/resizable/index.gen.ts +2 -6
  76. package/src/components/resizable/resizable-handle.gen.ts +5 -15
  77. package/src/components/resizable/resizable-root.gen.ts +5 -17
  78. package/src/components/table-handle/index.gen.ts +1 -3
  79. package/src/components/table-handle/table-handle-column-menu-root.gen.ts +5 -15
  80. package/src/components/table-handle/table-handle-column-menu-trigger.gen.ts +5 -15
  81. package/src/components/table-handle/table-handle-column-popup.gen.ts +5 -15
  82. package/src/components/table-handle/table-handle-column-positioner.gen.ts +5 -15
  83. package/src/components/table-handle/table-handle-drag-preview.gen.ts +5 -15
  84. package/src/components/table-handle/table-handle-drop-indicator.gen.ts +5 -15
  85. package/src/components/table-handle/table-handle-root.gen.ts +5 -15
  86. package/src/components/table-handle/table-handle-row-menu-root.gen.ts +5 -15
  87. package/src/components/table-handle/table-handle-row-menu-trigger.gen.ts +5 -15
  88. package/src/components/table-handle/table-handle-row-popup.gen.ts +5 -15
  89. package/src/components/table-handle/table-handle-row-positioner.gen.ts +5 -15
  90. package/src/components/tooltip/index.gen.ts +2 -6
  91. package/src/components/tooltip/tooltip-popup.gen.ts +5 -15
  92. package/src/components/tooltip/tooltip-positioner.gen.ts +5 -15
  93. package/src/components/tooltip/tooltip-root.gen.ts +5 -17
  94. package/src/components/tooltip/tooltip-trigger.gen.ts +5 -15
@@ -1 +1 @@
1
- {"version":3,"file":"prosekit-preact-tooltip.js","names":[],"sources":["../src/components/tooltip/tooltip-popup.gen.ts","../src/components/tooltip/tooltip-positioner.gen.ts","../src/components/tooltip/tooltip-root.gen.ts","../src/components/tooltip/tooltip-trigger.gen.ts"],"sourcesContent":["/**\n * This file is auto-generated by the \"@aria-ui/cli\" tool. Do not edit this file directly.\n */\n\nimport { registerTooltipPopupElement, type TooltipPopupElement } from '@prosekit/web/tooltip';\nimport { createElement, type HTMLAttributes, type Ref } from 'preact';\nimport { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';\nimport { useCallback, useRef } from 'preact/hooks';\n\n/**\n * Props for the {@link TooltipPopup} Preact component.\n *\n * @public\n */\nexport interface TooltipPopupProps extends HTMLAttributes<TooltipPopupElement> {}\n\nfunction TooltipPopupComponent(props: TooltipPopupProps, forwardedRef: Ref<TooltipPopupElement>) {\n registerTooltipPopupElement();\n\n const elementRef = useRef<TooltipPopupElement>(null);\n\n const { ...restProps } = props;\n\n const mergedRef = useCallback(\n (element: TooltipPopupElement | null) => {\n elementRef.current = element;\n if (typeof forwardedRef === 'function') {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n [forwardedRef],\n );\n\n return createElement('prosekit-tooltip-popup', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });\n}\n\n/**\n * A Preact component that renders an `prosekit-tooltip-popup` custom element.\n *\n * @public\n */\nexport const TooltipPopup: ForwardRefExoticComponent<TooltipPopupProps & RefAttributes<TooltipPopupElement>> = /* @__PURE__ */ forwardRef(TooltipPopupComponent);\n","/**\n * This file is auto-generated by the \"@aria-ui/cli\" tool. Do not edit this file directly.\n */\n\nimport { registerTooltipPositionerElement, type TooltipPositionerElement, type TooltipPositionerProps as TooltipPositionerElementProps } from '@prosekit/web/tooltip';\nimport { createElement, type HTMLAttributes, type Ref } from 'preact';\nimport { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';\nimport { useCallback, useRef, useLayoutEffect } from 'preact/hooks';\n\n/**\n * Props for the {@link TooltipPositioner} Preact component.\n *\n * @public\n */\nexport interface TooltipPositionerProps extends HTMLAttributes<TooltipPositionerElement> {\n /**\n * The strategy to use for positioning\n *\n * @default \"absolute\"\n */\n strategy?: TooltipPositionerElementProps['strategy'];\n /**\n * The initial placement of the floating element\n *\n * @default \"top\"\n */\n placement?: TooltipPositionerElementProps['placement'];\n /**\n * Options to activate auto-update listeners\n *\n * @see https://floating-ui.com/docs/autoUpdate\n *\n * @default true\n */\n autoUpdate?: TooltipPositionerElementProps['autoUpdate'];\n /**\n * Whether to use the browser Popover API to place the floating element on\n * top of other page content.\n *\n * @default true\n */\n hoist?: TooltipPositionerElementProps['hoist'];\n /**\n * The distance between the reference and floating element.\n *\n * @default 6\n */\n offset?: TooltipPositionerElementProps['offset'];\n /**\n * Whether to flip the `placement` in order to keep it in view when the\n * preferred placement(s) will overflow the clipping boundary. You can also\n * provide an array of placements to try sequentially if the preferred\n * `placement` does not fit.\n *\n * @default true\n */\n flip?: TooltipPositionerElementProps['flip'];\n /**\n * Whether the floating element should shift to keep it in view.\n *\n * @default true\n */\n shift?: TooltipPositionerElementProps['shift'];\n /**\n * Whether the floating element can overlap the reference element to keep it\n * in view.\n *\n * @default false\n */\n overlap?: TooltipPositionerElementProps['overlap'];\n /**\n * Whether to constrain the floating element's width and height to not exceed\n * the viewport.\n *\n * @default false\n */\n fitViewport?: TooltipPositionerElementProps['fitViewport'];\n /**\n * Whether to constrain the floating element's width so that it matches the\n * reference element.\n *\n * @default false\n */\n sameWidth?: TooltipPositionerElementProps['sameWidth'];\n /**\n * Whether to constrain the floating element's height so that it matches the\n * reference element.\n *\n * @default false\n */\n sameHeight?: TooltipPositionerElementProps['sameHeight'];\n /**\n * Whether to improve positioning for inline reference elements that span over\n * multiple lines.\n *\n * @default false\n */\n inline?: TooltipPositionerElementProps['inline'];\n /**\n * Whether to hide the floating element when the reference element or the\n * floating element is fully clipped.\n *\n * @default false\n */\n hide?: TooltipPositionerElementProps['hide'];\n /**\n * Describes the clipping element(s) or area that overflow will be checked relative to.\n * Please see https://floating-ui.com/docs/detectoverflow#boundary for more information.\n *\n * @default 'clippingAncestors'\n */\n boundary?: TooltipPositionerElementProps['boundary'];\n /**\n * Describes the root boundary that the element will be checked for overflow relative to.\n * Please see https://floating-ui.com/docs/detectoverflow#rootboundary for more information.\n *\n * @default 'viewport'\n */\n rootBoundary?: TooltipPositionerElementProps['rootBoundary'];\n /**\n * Describes the virtual padding around the boundary to check for overflow.\n * Please see https://floating-ui.com/docs/detectoverflow#padding for more information.\n *\n * @default 4\n */\n overflowPadding?: TooltipPositionerElementProps['overflowPadding'];\n /**\n * The element that will be used to check for overflow. Please see\n * https://floating-ui.com/docs/detectoverflow#elementcontext for more\n * information.\n *\n * @default 'floating'\n */\n elementContext?: TooltipPositionerElementProps['elementContext'];\n /**\n * Whether to check the alternate elementContext's boundary. Please see\n * https://floating-ui.com/docs/detectoverflow#altboundary for more\n * information.\n *\n * @default false\n */\n altBoundary?: TooltipPositionerElementProps['altBoundary'];\n}\n\nfunction TooltipPositionerComponent(props: TooltipPositionerProps, forwardedRef: Ref<TooltipPositionerElement>) {\n registerTooltipPositionerElement();\n\n const elementRef = useRef<TooltipPositionerElement>(null);\n\n const { altBoundary: p0, autoUpdate: p1, boundary: p2, elementContext: p3, fitViewport: p4, flip: p5, hide: p6, hoist: p7, inline: p8, offset: p9, overflowPadding: p10, overlap: p11, placement: p12, rootBoundary: p13, sameHeight: p14, sameWidth: p15, shift: p16, strategy: p17, ...restProps } = props;\n\n useLayoutEffect(() => {\n const element = elementRef.current as Record<string, unknown> | null;\n if (!element) return;\n Object.assign(element, { altBoundary: p0, autoUpdate: p1, boundary: p2, elementContext: p3, fitViewport: p4, flip: p5, hide: p6, hoist: p7, inline: p8, offset: p9, overflowPadding: p10, overlap: p11, placement: p12, rootBoundary: p13, sameHeight: p14, sameWidth: p15, shift: p16, strategy: p17 });\n });\n\n const mergedRef = useCallback(\n (element: TooltipPositionerElement | null) => {\n elementRef.current = element;\n if (typeof forwardedRef === 'function') {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n [forwardedRef],\n );\n\n return createElement('prosekit-tooltip-positioner', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });\n}\n\n/**\n * A Preact component that renders an `prosekit-tooltip-positioner` custom element.\n *\n * @public\n */\nexport const TooltipPositioner: ForwardRefExoticComponent<TooltipPositionerProps & RefAttributes<TooltipPositionerElement>> = /* @__PURE__ */ forwardRef(TooltipPositionerComponent);\n","/**\n * This file is auto-generated by the \"@aria-ui/cli\" tool. Do not edit this file directly.\n */\n\nimport { registerTooltipRootElement, type TooltipRootElement, type TooltipRootProps as TooltipRootElementProps, type TooltipRootEvents } from '@prosekit/web/tooltip';\nimport { createElement, type HTMLAttributes, type Ref } from 'preact';\nimport { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';\nimport { useCallback, useRef, useLayoutEffect } from 'preact/hooks';\n\n/**\n * Props for the {@link TooltipRoot} Preact component.\n *\n * @public\n */\nexport interface TooltipRootProps extends HTMLAttributes<TooltipRootElement> {\n /**\n * Whether the overlay is initially open.\n * @default false\n */\n defaultOpen?: TooltipRootElementProps['defaultOpen'];\n /**\n * Whether the overlay is currently open.\n * @default null\n */\n open?: TooltipRootElementProps['open'];\n /**\n * Whether the component should ignore user interaction.\n * @default false\n */\n disabled?: TooltipRootElementProps['disabled'];\n /** Emitted when the tooltip is opened or closed. */\n onOpenChange?: (event: TooltipRootEvents['openChange']) => void;\n}\n\nfunction TooltipRootComponent(props: TooltipRootProps, forwardedRef: Ref<TooltipRootElement>) {\n registerTooltipRootElement();\n\n const elementRef = useRef<TooltipRootElement>(null);\n const handlersRef = useRef<Array<((event: Event) => void) | undefined>>([]);\n\n const { defaultOpen: p0, disabled: p1, open: p2, onOpenChange: e0, ...restProps } = props;\n\n useLayoutEffect(() => {\n const element = elementRef.current as Record<string, unknown> | null;\n if (!element) return;\n Object.assign(element, { defaultOpen: p0, disabled: p1, open: p2 });\n handlersRef.current = [e0] as Array<((event: Event) => void) | undefined>;\n });\n\n useLayoutEffect(() => {\n const element = elementRef.current;\n if (!element) return;\n const ac = new AbortController();\n for (const [index, eventName] of ['openChange'].entries()) {\n element.addEventListener(\n eventName,\n (event: Event) => {\n handlersRef.current[index]?.(event);\n },\n { signal: ac.signal },\n );\n }\n return () => ac.abort();\n }, []);\n\n const mergedRef = useCallback(\n (element: TooltipRootElement | null) => {\n elementRef.current = element;\n if (typeof forwardedRef === 'function') {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n [forwardedRef],\n );\n\n return createElement('prosekit-tooltip-root', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });\n}\n\n/**\n * A Preact component that renders an `prosekit-tooltip-root` custom element.\n *\n * @public\n */\nexport const TooltipRoot: ForwardRefExoticComponent<TooltipRootProps & RefAttributes<TooltipRootElement>> = /* @__PURE__ */ forwardRef(TooltipRootComponent);\n\nexport type { TooltipRootEvents };\n","/**\n * This file is auto-generated by the \"@aria-ui/cli\" tool. Do not edit this file directly.\n */\n\nimport { registerTooltipTriggerElement, type TooltipTriggerElement, type TooltipTriggerProps as TooltipTriggerElementProps } from '@prosekit/web/tooltip';\nimport { createElement, type HTMLAttributes, type Ref } from 'preact';\nimport { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';\nimport { useCallback, useRef, useLayoutEffect } from 'preact/hooks';\n\n/**\n * Props for the {@link TooltipTrigger} Preact component.\n *\n * @public\n */\nexport interface TooltipTriggerProps extends HTMLAttributes<TooltipTriggerElement> {\n /**\n * Whether the component should ignore user interaction.\n * @default false\n */\n disabled?: TooltipTriggerElementProps['disabled'];\n /**\n * The delay in milliseconds before opening the tooltip on hover.\n * @default 600\n */\n openDelay?: TooltipTriggerElementProps['openDelay'];\n /**\n * The delay in milliseconds before closing the tooltip when hover/focus ends.\n * @default 0\n */\n closeDelay?: TooltipTriggerElementProps['closeDelay'];\n}\n\nfunction TooltipTriggerComponent(props: TooltipTriggerProps, forwardedRef: Ref<TooltipTriggerElement>) {\n registerTooltipTriggerElement();\n\n const elementRef = useRef<TooltipTriggerElement>(null);\n\n const { closeDelay: p0, disabled: p1, openDelay: p2, ...restProps } = props;\n\n useLayoutEffect(() => {\n const element = elementRef.current as Record<string, unknown> | null;\n if (!element) return;\n Object.assign(element, { closeDelay: p0, disabled: p1, openDelay: p2 });\n });\n\n const mergedRef = useCallback(\n (element: TooltipTriggerElement | null) => {\n elementRef.current = element;\n if (typeof forwardedRef === 'function') {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n [forwardedRef],\n );\n\n return createElement('prosekit-tooltip-trigger', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });\n}\n\n/**\n * A Preact component that renders an `prosekit-tooltip-trigger` custom element.\n *\n * @public\n */\nexport const TooltipTrigger: ForwardRefExoticComponent<TooltipTriggerProps & RefAttributes<TooltipTriggerElement>> = /* @__PURE__ */ forwardRef(TooltipTriggerComponent);\n"],"mappings":"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"}
1
+ {"version":3,"file":"prosekit-preact-tooltip.js","names":[],"sources":["../src/components/tooltip/tooltip-popup.gen.ts","../src/components/tooltip/tooltip-positioner.gen.ts","../src/components/tooltip/tooltip-root.gen.ts","../src/components/tooltip/tooltip-trigger.gen.ts"],"sourcesContent":["// This file is auto-generated by \"@aria-ui/cli\". Do not edit this file directly.\n\nimport { registerTooltipPopupElement, type TooltipPopupElement } from '@prosekit/web/tooltip';\nimport { createElement, type HTMLAttributes, type Ref } from 'preact';\nimport { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';\nimport { useCallback, useRef } from 'preact/hooks';\n\n/** Props for the {@link TooltipPopup} Preact component. */\nexport interface TooltipPopupProps {}\n\nfunction TooltipPopupComponent(props: TooltipPopupProps, forwardedRef: Ref<TooltipPopupElement>) {\n registerTooltipPopupElement();\n\n const elementRef = useRef<TooltipPopupElement>(null);\n\n const { ...restProps } = props;\n\n const mergedRef = useCallback(\n (element: TooltipPopupElement | null) => {\n elementRef.current = element;\n if (typeof forwardedRef === 'function') {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n [forwardedRef],\n );\n\n return createElement('prosekit-tooltip-popup', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });\n}\n\n/** A Preact component that renders an `prosekit-tooltip-popup` custom element. */\nexport const TooltipPopup: ForwardRefExoticComponent<TooltipPopupProps & HTMLAttributes<TooltipPopupElement> & RefAttributes<TooltipPopupElement>> = /* @__PURE__ */ forwardRef(TooltipPopupComponent);\n","// This file is auto-generated by \"@aria-ui/cli\". Do not edit this file directly.\n\nimport { registerTooltipPositionerElement, type TooltipPositionerElement, type TooltipPositionerProps as TooltipPositionerElementProps } from '@prosekit/web/tooltip';\nimport { createElement, type HTMLAttributes, type Ref } from 'preact';\nimport { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';\nimport { useCallback, useRef, useLayoutEffect } from 'preact/hooks';\n\n/** Props for the {@link TooltipPositioner} Preact component. */\nexport interface TooltipPositionerProps {\n /**\n * The strategy to use for positioning\n *\n * @default \"absolute\"\n */\n strategy?: TooltipPositionerElementProps['strategy'];\n /**\n * The initial placement of the floating element\n *\n * @default \"top\"\n */\n placement?: TooltipPositionerElementProps['placement'];\n /**\n * Options to activate auto-update listeners\n *\n * @see https://floating-ui.com/docs/autoUpdate\n *\n * @default true\n */\n autoUpdate?: TooltipPositionerElementProps['autoUpdate'];\n /**\n * Whether to use the browser Popover API to place the floating element on\n * top of other page content.\n *\n * @default true\n */\n hoist?: TooltipPositionerElementProps['hoist'];\n /**\n * The distance between the reference and floating element.\n *\n * @default 6\n */\n offset?: TooltipPositionerElementProps['offset'];\n /**\n * Whether to flip the `placement` in order to keep it in view when the\n * preferred placement(s) will overflow the clipping boundary. You can also\n * provide an array of placements to try sequentially if the preferred\n * `placement` does not fit.\n *\n * @default true\n */\n flip?: TooltipPositionerElementProps['flip'];\n /**\n * Whether the floating element should shift to keep it in view.\n *\n * @default true\n */\n shift?: TooltipPositionerElementProps['shift'];\n /**\n * Whether the floating element can overlap the reference element to keep it\n * in view.\n *\n * @default false\n */\n overlap?: TooltipPositionerElementProps['overlap'];\n /**\n * Whether to constrain the floating element's width and height to not exceed\n * the viewport.\n *\n * @default false\n */\n fitViewport?: TooltipPositionerElementProps['fitViewport'];\n /**\n * Whether to constrain the floating element's width so that it matches the\n * reference element.\n *\n * @default false\n */\n sameWidth?: TooltipPositionerElementProps['sameWidth'];\n /**\n * Whether to constrain the floating element's height so that it matches the\n * reference element.\n *\n * @default false\n */\n sameHeight?: TooltipPositionerElementProps['sameHeight'];\n /**\n * Whether to improve positioning for inline reference elements that span over\n * multiple lines.\n *\n * @default false\n */\n inline?: TooltipPositionerElementProps['inline'];\n /**\n * Whether to hide the floating element when the reference element or the\n * floating element is fully clipped.\n *\n * @default false\n */\n hide?: TooltipPositionerElementProps['hide'];\n /**\n * Describes the clipping element(s) or area that overflow will be checked relative to.\n * Please see https://floating-ui.com/docs/detectoverflow#boundary for more information.\n *\n * @default 'clippingAncestors'\n */\n boundary?: TooltipPositionerElementProps['boundary'];\n /**\n * Describes the root boundary that the element will be checked for overflow relative to.\n * Please see https://floating-ui.com/docs/detectoverflow#rootboundary for more information.\n *\n * @default 'viewport'\n */\n rootBoundary?: TooltipPositionerElementProps['rootBoundary'];\n /**\n * Describes the virtual padding around the boundary to check for overflow.\n * Please see https://floating-ui.com/docs/detectoverflow#padding for more information.\n *\n * @default 4\n */\n overflowPadding?: TooltipPositionerElementProps['overflowPadding'];\n /**\n * The element that will be used to check for overflow. Please see\n * https://floating-ui.com/docs/detectoverflow#elementcontext for more\n * information.\n *\n * @default 'floating'\n */\n elementContext?: TooltipPositionerElementProps['elementContext'];\n /**\n * Whether to check the alternate elementContext's boundary. Please see\n * https://floating-ui.com/docs/detectoverflow#altboundary for more\n * information.\n *\n * @default false\n */\n altBoundary?: TooltipPositionerElementProps['altBoundary'];\n}\n\nfunction TooltipPositionerComponent(props: TooltipPositionerProps, forwardedRef: Ref<TooltipPositionerElement>) {\n registerTooltipPositionerElement();\n\n const elementRef = useRef<TooltipPositionerElement>(null);\n\n const { altBoundary: p0, autoUpdate: p1, boundary: p2, elementContext: p3, fitViewport: p4, flip: p5, hide: p6, hoist: p7, inline: p8, offset: p9, overflowPadding: p10, overlap: p11, placement: p12, rootBoundary: p13, sameHeight: p14, sameWidth: p15, shift: p16, strategy: p17, ...restProps } = props;\n\n useLayoutEffect(() => {\n const element = elementRef.current as Record<string, unknown> | null;\n if (!element) return;\n Object.assign(element, { altBoundary: p0, autoUpdate: p1, boundary: p2, elementContext: p3, fitViewport: p4, flip: p5, hide: p6, hoist: p7, inline: p8, offset: p9, overflowPadding: p10, overlap: p11, placement: p12, rootBoundary: p13, sameHeight: p14, sameWidth: p15, shift: p16, strategy: p17 });\n });\n\n const mergedRef = useCallback(\n (element: TooltipPositionerElement | null) => {\n elementRef.current = element;\n if (typeof forwardedRef === 'function') {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n [forwardedRef],\n );\n\n return createElement('prosekit-tooltip-positioner', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });\n}\n\n/** A Preact component that renders an `prosekit-tooltip-positioner` custom element. */\nexport const TooltipPositioner: ForwardRefExoticComponent<TooltipPositionerProps & HTMLAttributes<TooltipPositionerElement> & RefAttributes<TooltipPositionerElement>> = /* @__PURE__ */ forwardRef(TooltipPositionerComponent);\n","// This file is auto-generated by \"@aria-ui/cli\". Do not edit this file directly.\n\nimport { registerTooltipRootElement, type TooltipRootElement, type TooltipRootProps as TooltipRootElementProps, type TooltipRootEvents } from '@prosekit/web/tooltip';\nimport { createElement, type HTMLAttributes, type Ref } from 'preact';\nimport { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';\nimport { useCallback, useRef, useLayoutEffect } from 'preact/hooks';\n\n/** Props for the {@link TooltipRoot} Preact component. */\nexport interface TooltipRootProps {\n /**\n * Whether the overlay is initially open.\n * @default false\n */\n defaultOpen?: TooltipRootElementProps['defaultOpen'];\n /**\n * Whether the overlay is currently open.\n * @default null\n */\n open?: TooltipRootElementProps['open'];\n /**\n * Whether the component should ignore user interaction.\n * @default false\n */\n disabled?: TooltipRootElementProps['disabled'];\n /** Emitted when the tooltip is opened or closed. */\n onOpenChange?: (event: TooltipRootEvents['openChange']) => void;\n}\n\nfunction TooltipRootComponent(props: TooltipRootProps, forwardedRef: Ref<TooltipRootElement>) {\n registerTooltipRootElement();\n\n const elementRef = useRef<TooltipRootElement>(null);\n const handlersRef = useRef<Array<((event: Event) => void) | undefined>>([]);\n\n const { defaultOpen: p0, disabled: p1, open: p2, onOpenChange: e0, ...restProps } = props;\n\n useLayoutEffect(() => {\n const element = elementRef.current as Record<string, unknown> | null;\n if (!element) return;\n Object.assign(element, { defaultOpen: p0, disabled: p1, open: p2 });\n handlersRef.current = [e0] as Array<((event: Event) => void) | undefined>;\n });\n\n useLayoutEffect(() => {\n const element = elementRef.current;\n if (!element) return;\n const ac = new AbortController();\n for (const [index, eventName] of ['openChange'].entries()) {\n element.addEventListener(\n eventName,\n (event: Event) => {\n handlersRef.current[index]?.(event);\n },\n { signal: ac.signal },\n );\n }\n return () => ac.abort();\n }, []);\n\n const mergedRef = useCallback(\n (element: TooltipRootElement | null) => {\n elementRef.current = element;\n if (typeof forwardedRef === 'function') {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n [forwardedRef],\n );\n\n return createElement('prosekit-tooltip-root', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });\n}\n\n/** A Preact component that renders an `prosekit-tooltip-root` custom element. */\nexport const TooltipRoot: ForwardRefExoticComponent<TooltipRootProps & HTMLAttributes<TooltipRootElement> & RefAttributes<TooltipRootElement>> = /* @__PURE__ */ forwardRef(TooltipRootComponent);\n","// This file is auto-generated by \"@aria-ui/cli\". Do not edit this file directly.\n\nimport { registerTooltipTriggerElement, type TooltipTriggerElement, type TooltipTriggerProps as TooltipTriggerElementProps } from '@prosekit/web/tooltip';\nimport { createElement, type HTMLAttributes, type Ref } from 'preact';\nimport { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';\nimport { useCallback, useRef, useLayoutEffect } from 'preact/hooks';\n\n/** Props for the {@link TooltipTrigger} Preact component. */\nexport interface TooltipTriggerProps {\n /**\n * Whether the component should ignore user interaction.\n * @default false\n */\n disabled?: TooltipTriggerElementProps['disabled'];\n /**\n * The delay in milliseconds before opening the tooltip on hover.\n * @default 600\n */\n openDelay?: TooltipTriggerElementProps['openDelay'];\n /**\n * The delay in milliseconds before closing the tooltip when hover/focus ends.\n * @default 0\n */\n closeDelay?: TooltipTriggerElementProps['closeDelay'];\n}\n\nfunction TooltipTriggerComponent(props: TooltipTriggerProps, forwardedRef: Ref<TooltipTriggerElement>) {\n registerTooltipTriggerElement();\n\n const elementRef = useRef<TooltipTriggerElement>(null);\n\n const { closeDelay: p0, disabled: p1, openDelay: p2, ...restProps } = props;\n\n useLayoutEffect(() => {\n const element = elementRef.current as Record<string, unknown> | null;\n if (!element) return;\n Object.assign(element, { closeDelay: p0, disabled: p1, openDelay: p2 });\n });\n\n const mergedRef = useCallback(\n (element: TooltipTriggerElement | null) => {\n elementRef.current = element;\n if (typeof forwardedRef === 'function') {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n [forwardedRef],\n );\n\n return createElement('prosekit-tooltip-trigger', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });\n}\n\n/** A Preact component that renders an `prosekit-tooltip-trigger` custom element. */\nexport const TooltipTrigger: ForwardRefExoticComponent<TooltipTriggerProps & HTMLAttributes<TooltipTriggerElement> & RefAttributes<TooltipTriggerElement>> = /* @__PURE__ */ forwardRef(TooltipTriggerComponent);\n"],"mappings":"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"}
@@ -4,8 +4,6 @@ import { MarkViewContext, NodeViewContext } from "@prosemirror-adapter/preact";
4
4
  import { CoreMarkViewUserOptions, CoreNodeViewUserOptions } from "@prosemirror-adapter/core";
5
5
  import { ProseMirrorNode } from "@prosekit/pm/model";
6
6
  import { EditorState } from "@prosekit/pm/state";
7
-
8
- //#region src/components/prosekit.d.ts
9
7
  interface ProseKitProps {
10
8
  editor: Editor;
11
9
  children?: ComponentChildren;
@@ -16,8 +14,6 @@ interface ProseKitProps {
16
14
  * @public
17
15
  */
18
16
  declare const ProseKit: ComponentType<ProseKitProps>;
19
- //#endregion
20
- //#region src/extensions/preact-mark-view.d.ts
21
17
  /**
22
18
  * @public
23
19
  */
@@ -43,8 +39,6 @@ interface PreactMarkViewOptions extends CoreMarkViewUserOptions<PreactMarkViewCo
43
39
  * @public
44
40
  */
45
41
  declare function definePreactMarkView(options: PreactMarkViewOptions): Extension;
46
- //#endregion
47
- //#region src/extensions/preact-node-view.d.ts
48
42
  /**
49
43
  * @public
50
44
  */
@@ -70,8 +64,6 @@ interface PreactNodeViewOptions extends CoreNodeViewUserOptions<PreactNodeViewCo
70
64
  * @public
71
65
  */
72
66
  declare function definePreactNodeView(options: PreactNodeViewOptions): Extension;
73
- //#endregion
74
- //#region src/hooks/use-extension.d.ts
75
67
  interface UseExtensionOptions {
76
68
  /**
77
69
  * The editor to add the extension to. If not provided, it will use the
@@ -93,16 +85,12 @@ declare function useExtension(
93
85
  */
94
86
 
95
87
  extension: Extension | null, options?: UseExtensionOptions): void;
96
- //#endregion
97
- //#region src/hooks/use-doc-change.d.ts
98
88
  /**
99
89
  * Calls the given handler whenever the editor document changes.
100
90
  *
101
91
  * @public
102
92
  */
103
93
  declare function useDocChange(handler: (doc: ProseMirrorNode) => void, options?: UseExtensionOptions): void;
104
- //#endregion
105
- //#region src/hooks/use-editor-derived-value.d.ts
106
94
  interface UseEditorDerivedOptions<E extends Extension = any> {
107
95
  /**
108
96
  * The editor to add the extension to. If not provided, it will use the
@@ -132,8 +120,6 @@ declare function useEditorDerivedValue<E extends Extension, Derived>(
132
120
  */
133
121
 
134
122
  derive: (editor: Editor<E>) => Derived, options?: UseEditorDerivedOptions<E>): Derived;
135
- //#endregion
136
- //#region src/hooks/use-editor.d.ts
137
123
  /**
138
124
  * Retrieves the editor instance from the nearest ProseKit component.
139
125
  *
@@ -148,19 +134,13 @@ declare function useEditor<E extends Extension = any>(options?: {
148
134
  */
149
135
  update?: boolean;
150
136
  }): Editor<E>;
151
- //#endregion
152
- //#region src/hooks/use-keymap.d.ts
153
137
  declare function useKeymap(keymap: Keymap, options?: UseExtensionOptions): void;
154
- //#endregion
155
- //#region src/hooks/use-state-update.d.ts
156
138
  /**
157
139
  * Calls the given handler whenever the editor state changes.
158
140
  *
159
141
  * @public
160
142
  */
161
143
  declare function useStateUpdate(handler: (state: EditorState) => void, options?: UseExtensionOptions): void;
162
- //#endregion
163
- //#region src/types.d.ts
164
144
  /**
165
145
  * @internal
166
146
  */
@@ -174,6 +154,5 @@ type PropsWithClass<P = unknown> = P & {
174
154
  type PropsWithChildren<P = unknown> = P & {
175
155
  children?: ComponentChildren | undefined;
176
156
  };
177
- //#endregion
178
157
  export { type PreactMarkViewComponent, type PreactMarkViewOptions, type PreactMarkViewProps, type PreactNodeViewComponent, type PreactNodeViewOptions, type PreactNodeViewProps, type PropsWithChildren, type PropsWithClass, ProseKit, type ProseKitProps, type UseEditorDerivedOptions, type UseExtensionOptions, definePreactMarkView, definePreactNodeView, useDocChange, useEditor, useEditorDerivedValue, useExtension, useKeymap, useStateUpdate };
179
158
  //# sourceMappingURL=prosekit-preact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prosekit-preact.d.ts","names":[],"sources":["../src/components/prosekit.ts","../src/extensions/preact-mark-view.ts","../src/extensions/preact-node-view.ts","../src/hooks/use-extension.ts","../src/hooks/use-doc-change.ts","../src/hooks/use-editor-derived-value.ts","../src/hooks/use-editor.ts","../src/hooks/use-keymap.ts","../src/hooks/use-state-update.ts","../src/types.ts"],"mappings":";;;;;;;;UAOiB,aAAA;EACf,MAAA,EAAQ,MAAA;EACR,QAAA,GAAW,iBAAA;AAAA;;;AAFb;;;cAUa,QAAA,EAAU,aAAA,CAAc,aAAA;;;;;;UCHpB,mBAAA,SAA4B,eAAA;;;;KAKjC,uBAAA,GAA0B,aAAA,CAAc,mBAAA;;;;;;UAOnC,qBAAA,SAA8B,uBAAA,CAAwB,uBAAA;EDEtE;;;ECEC,IAAA;AAAA;;;;AAXF;;iBA4CgB,oBAAA,CAAqB,OAAA,EAAS,qBAAA,GAAwB,SAAA;;;;;;UCjDrD,mBAAA,SAA4B,eAAA;;;;KAKjC,uBAAA,GAA0B,aAAA,CAAc,mBAAA;;;;;;UAOnC,qBAAA,SAA8B,uBAAA,CAAwB,uBAAA;EFEtE;;;EEEC,IAAA;AAAA;;;;ADXF;;iBC4CgB,oBAAA,CAAqB,OAAA,EAAS,qBAAA,GAAwB,SAAA;;;UCxDrD,mBAAA;;;;;EAKf,MAAA,GAAS,MAAA;;AHLX;;EGUE,QAAA,GAAW,QAAA;AAAA;;;;iBAMG,YAAA;;;AHNhB;;;AGWE,SAAA,EAAW,SAAA,SACX,OAAA,GAAU,mBAAA;;;;;;;;iBCjBI,YAAA,CACd,OAAA,GAAU,GAAA,EAAK,eAAA,WACf,OAAA,GAAU,mBAAA;;;UCRK,uBAAA,WAAkC,SAAA;;;;;EAKjD,MAAA,GAAS,MAAA,CAAO,CAAA;AAAA;ALJlB;;;;;;;;;;AAUA;AAVA,iBKkBgB,qBAAA,WAAgC,SAAA,UAAA;;;;;;;AJXhD;;;AIoBE,MAAA,GAAS,MAAA,EAAQ,MAAA,CAAO,CAAA,MAAO,OAAA,EAC/B,OAAA,GAAU,uBAAA,CAAwB,CAAA,IACjC,OAAA;;;;;;;;iBC1Ba,SAAA,WAAoB,SAAA,OAAA,CAAiB,OAAA;;ANHrD;;;;;EMUE,MAAA;AAAA,IACE,MAAA,CAAO,CAAA;;;iBCbK,SAAA,CAAU,MAAA,EAAQ,MAAA,EAAQ,OAAA,GAAU,mBAAA;;;;;;;;iBCOpC,cAAA,CACd,OAAA,GAAU,KAAA,EAAO,WAAA,WACjB,OAAA,GAAU,mBAAA;;;;;;KCTA,cAAA,gBAA8B,CAAA;EACxC,KAAA;EACA,SAAA;AAAA;ATAF;;;AAAA,KSMY,iBAAA,gBAAiC,CAAA;EAC3C,QAAA,GAAW,iBAAA;AAAA"}
1
+ {"version":3,"file":"prosekit-preact.d.ts","names":[],"sources":["../src/components/prosekit.ts","../src/extensions/preact-mark-view.ts","../src/extensions/preact-node-view.ts","../src/hooks/use-extension.ts","../src/hooks/use-doc-change.ts","../src/hooks/use-editor-derived-value.ts","../src/hooks/use-editor.ts","../src/hooks/use-keymap.ts","../src/hooks/use-state-update.ts","../src/types.ts"],"mappings":";;;;;;UAOiB,aAAA;EACf,MAAA,EAAQ,MAAA;EACR,QAAA,GAAW,iBAAA;AAAA;;AAFb;;;;cAUa,QAAA,EAAU,aAAA,CAAc,aAAA;;;;UCHpB,mBAAA,SAA4B,eAAA;;;;KAKjC,uBAAA,GAA0B,aAAA,CAAc,mBAAA;;;;;ADFpD;UCSiB,qBAAA,SAA8B,uBAAA,CAAwB,uBAAA;;;;EAIrE,IAAA;AAAA;AAXF;;;;;AAAA,iBA4CgB,oBAAA,CAAqB,OAAA,EAAS,qBAAA,GAAwB,SAAA;;;;UCjDrD,mBAAA,SAA4B,eAAA;;;;KAKjC,uBAAA,GAA0B,aAAA,CAAc,mBAAA;;;;;AFFpD;UESiB,qBAAA,SAA8B,uBAAA,CAAwB,uBAAA;;;;EAIrE,IAAA;AAAA;ADXF;;;;;AAAA,iBC4CgB,oBAAA,CAAqB,OAAA,EAAS,qBAAA,GAAwB,SAAA;AAAA,UCxDrD,mBAAA;;;;;EAKf,MAAA,GAAS,MAAA;EHLM;;;EGUf,QAAA,GAAW,QAAA;AAAA;;;;iBAMG,YAAA;;AHNhB;;;;AGWE,SAAA,EAAW,SAAA,SACX,OAAA,GAAU,mBAAA;;;;;;iBCjBI,YAAA,CACd,OAAA,GAAU,GAAA,EAAK,eAAA,WACf,OAAA,GAAU,mBAAA;AAAA,UCRK,uBAAA,WAAkC,SAAA;;;;;EAKjD,MAAA,GAAS,MAAA,CAAO,CAAA;AAAA;;;;;;;;;;ALMlB;;iBKQgB,qBAAA,WAAgC,SAAA,UAAA;;;;AJXhD;;;;;;AIoBE,MAAA,GAAS,MAAA,EAAQ,MAAA,CAAO,CAAA,MAAO,OAAA,EAC/B,OAAA,GAAU,uBAAA,CAAwB,CAAA,IACjC,OAAA;;;;;;iBC1Ba,SAAA,WAAoB,SAAA,OAAA,CAAiB,OAAA;ENHpC;;;;;;EMUf,MAAA;AAAA,IACE,MAAA,CAAO,CAAA;AAAA,iBCbK,SAAA,CAAU,MAAA,EAAQ,MAAA,EAAQ,OAAA,GAAU,mBAAA;;;;;;iBCOpC,cAAA,CACd,OAAA,GAAU,KAAA,EAAO,WAAA,WACjB,OAAA,GAAU,mBAAA;;;;KCTA,cAAA,gBAA8B,CAAA;EACxC,KAAA;EACA,SAAA;AAAA;;;;KAMU,iBAAA,gBAAiC,CAAA;EAC3C,QAAA,GAAW,iBAAA;AAAA"}
@@ -5,7 +5,6 @@ import { EditorNotFoundError, ProseKitError, defineDocChangeHandler, defineKeyma
5
5
  import { AbstractPreactMarkView, AbstractPreactNodeView, buildPreactMarkViewCreator, buildPreactNodeViewCreator, usePreactRenderer } from "@prosemirror-adapter/preact";
6
6
  import { createPortal, useSyncExternalStore } from "preact/compat";
7
7
  import { queueExtension } from "@prosekit/web";
8
- //#region src/extensions/preact-mark-view.ts
9
8
  var ProseKitPreactMarkView = class extends AbstractPreactMarkView {
10
9
  constructor(..._args) {
11
10
  super(..._args);
@@ -36,8 +35,6 @@ function definePreactMarkView(options) {
36
35
  args: options
37
36
  });
38
37
  }
39
- //#endregion
40
- //#region src/extensions/preact-node-view.ts
41
38
  var ProseKitPreactNodeView = class extends AbstractPreactNodeView {
42
39
  constructor(..._args) {
43
40
  super(..._args);
@@ -68,8 +65,6 @@ function definePreactNodeView(options) {
68
65
  args: options
69
66
  });
70
67
  }
71
- //#endregion
72
- //#region src/hooks/use-editor-extension.ts
73
68
  /**
74
69
  * @internal
75
70
  */
@@ -79,8 +74,6 @@ function useEditorExtension(editor, extension) {
79
74
  if (extension) return queueExtension(editor, extension);
80
75
  }, [editor, extension]);
81
76
  }
82
- //#endregion
83
- //#region src/components/view-renderer.ts
84
77
  const ViewRenderer = ({ editor, children }) => {
85
78
  const { renderPreactRenderer, removePreactRenderer, render } = usePreactRenderer();
86
79
  useEditorExtension(editor, useMemo(() => {
@@ -88,8 +81,6 @@ const ViewRenderer = ({ editor, children }) => {
88
81
  }, [renderPreactRenderer, removePreactRenderer]));
89
82
  return createElement(Fragment, null, createElement(Fragment, null, children), createElement(Fragment, null, render()));
90
83
  };
91
- //#endregion
92
- //#region src/components/prosekit.ts
93
84
  /**
94
85
  * The root component for a ProseKit editor.
95
86
  *
@@ -102,8 +93,6 @@ const ProseKit = (props) => {
102
93
  children
103
94
  }));
104
95
  };
105
- //#endregion
106
- //#region src/hooks/use-event-callback.ts
107
96
  /**
108
97
  * @internal
109
98
  */
@@ -114,8 +103,6 @@ function useEventCallback(callback) {
114
103
  }, [callback]);
115
104
  return useCallback((...args) => callbackRef.current(...args), []);
116
105
  }
117
- //#endregion
118
- //#region src/hooks/use-priority-extension.ts
119
106
  /**
120
107
  * @internal
121
108
  */
@@ -124,8 +111,6 @@ function usePriorityExtension(extension, priority) {
124
111
  return extension && priority ? withPriority(extension, priority) : extension;
125
112
  }, [extension, priority]);
126
113
  }
127
- //#endregion
128
- //#region src/hooks/use-extension.ts
129
114
  /**
130
115
  * Add an extension to the editor.
131
116
  */
@@ -133,8 +118,6 @@ function useExtension(extension, options) {
133
118
  const editorContext = useEditorContext();
134
119
  useEditorExtension(options?.editor || editorContext, usePriorityExtension(extension, options?.priority));
135
120
  }
136
- //#endregion
137
- //#region src/hooks/use-doc-change.ts
138
121
  /**
139
122
  * Calls the given handler whenever the editor document changes.
140
123
  *
@@ -144,8 +127,6 @@ function useDocChange(handler, options) {
144
127
  const memoizedHandler = useEventCallback(handler);
145
128
  useExtension(useMemo(() => defineDocChangeHandler((view) => memoizedHandler(view.state.doc)), [memoizedHandler]), options);
146
129
  }
147
- //#endregion
148
- //#region src/hooks/use-editor-derived-value.ts
149
130
  /**
150
131
  * Runs a function to derive a value from the editor instance after editor state
151
132
  * changes.
@@ -186,8 +167,6 @@ function createEditorStore(editor, derive) {
186
167
  };
187
168
  return [subscribe, getSnapshot];
188
169
  }
189
- //#endregion
190
- //#region src/hooks/use-editor.ts
191
170
  /**
192
171
  * Retrieves the editor instance from the nearest ProseKit component.
193
172
  *
@@ -214,13 +193,9 @@ function useForceUpdate() {
214
193
  const [, dispatch] = useReducer((x) => x + 1, 0);
215
194
  return dispatch;
216
195
  }
217
- //#endregion
218
- //#region src/hooks/use-keymap.ts
219
196
  function useKeymap(keymap, options) {
220
197
  useExtension(useMemo(() => defineKeymap(keymap), [keymap]), options);
221
198
  }
222
- //#endregion
223
- //#region src/hooks/use-state-update.ts
224
199
  /**
225
200
  * Calls the given handler whenever the editor state changes.
226
201
  *
@@ -230,7 +205,6 @@ function useStateUpdate(handler, options) {
230
205
  const memoizedHandler = useEventCallback(handler);
231
206
  useExtension(useMemo(() => defineUpdateHandler((view) => memoizedHandler(view.state)), [memoizedHandler]), options);
232
207
  }
233
- //#endregion
234
208
  export { ProseKit, definePreactMarkView, definePreactNodeView, useDocChange, useEditor, useEditorDerivedValue, useExtension, useKeymap, useStateUpdate };
235
209
 
236
210
  //# sourceMappingURL=prosekit-preact.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prosekit-preact.js","names":[],"sources":["../src/extensions/preact-mark-view.ts","../src/extensions/preact-node-view.ts","../src/hooks/use-editor-extension.ts","../src/components/view-renderer.ts","../src/components/prosekit.ts","../src/hooks/use-event-callback.ts","../src/hooks/use-priority-extension.ts","../src/hooks/use-extension.ts","../src/hooks/use-doc-change.ts","../src/hooks/use-editor-derived-value.ts","../src/hooks/use-editor.ts","../src/hooks/use-keymap.ts","../src/hooks/use-state-update.ts"],"sourcesContent":["import { defineMarkViewComponent, defineMarkViewFactory, type Extension } from '@prosekit/core'\nimport type { CoreMarkViewUserOptions } from '@prosemirror-adapter/core'\nimport {\n AbstractPreactMarkView,\n buildPreactMarkViewCreator,\n type MarkViewContext,\n type PreactRendererResult,\n} from '@prosemirror-adapter/preact'\nimport { createElement, type ComponentType } from 'preact'\nimport { createPortal } from 'preact/compat'\n\n/**\n * @public\n */\nexport interface PreactMarkViewProps extends MarkViewContext {}\n\n/**\n * @public\n */\nexport type PreactMarkViewComponent = ComponentType<PreactMarkViewProps>\n\n/**\n * Options for {@link definePreactMarkView}.\n *\n * @public\n */\nexport interface PreactMarkViewOptions extends CoreMarkViewUserOptions<PreactMarkViewComponent> {\n /**\n * The name of the mark type.\n */\n name: string\n}\n\nclass ProseKitPreactMarkView extends AbstractPreactMarkView<PreactMarkViewComponent> {\n render = () => {\n const UserComponent = this.component\n const props = { ...this.context }\n return createPortal(\n createElement(UserComponent, props),\n this.dom,\n )\n }\n}\n\n/**\n * @internal\n */\nexport function definePreactMarkViewFactory(\n renderPreactRenderer: PreactRendererResult['renderPreactRenderer'],\n removePreactRenderer: PreactRendererResult['removePreactRenderer'],\n): Extension {\n const factory = buildPreactMarkViewCreator(renderPreactRenderer, removePreactRenderer, ProseKitPreactMarkView)\n return defineMarkViewFactory<PreactMarkViewOptions>({\n group: 'preact',\n factory,\n })\n}\n\n/**\n * Defines a mark view using a Preact component.\n *\n * @public\n */\nexport function definePreactMarkView(options: PreactMarkViewOptions): Extension {\n return defineMarkViewComponent<PreactMarkViewOptions>({\n group: 'preact',\n name: options.name,\n args: options,\n })\n}\n","import { defineNodeViewComponent, defineNodeViewFactory, type Extension } from '@prosekit/core'\nimport type { CoreNodeViewUserOptions } from '@prosemirror-adapter/core'\nimport {\n AbstractPreactNodeView,\n buildPreactNodeViewCreator,\n type NodeViewContext,\n type PreactRendererResult,\n} from '@prosemirror-adapter/preact'\nimport { createElement, type ComponentType } from 'preact'\nimport { createPortal } from 'preact/compat'\n\n/**\n * @public\n */\nexport interface PreactNodeViewProps extends NodeViewContext {}\n\n/**\n * @public\n */\nexport type PreactNodeViewComponent = ComponentType<PreactNodeViewProps>\n\n/**\n * Options for {@link definePreactNodeView}.\n *\n * @public\n */\nexport interface PreactNodeViewOptions extends CoreNodeViewUserOptions<PreactNodeViewComponent> {\n /**\n * The name of the node type.\n */\n name: string\n}\n\nclass ProseKitPreactNodeView extends AbstractPreactNodeView<PreactNodeViewComponent> {\n render = () => {\n const UserComponent = this.component\n const props = { ...this.context }\n return createPortal(\n createElement(UserComponent, props),\n this.dom,\n )\n }\n}\n\n/**\n * @internal\n */\nexport function definePreactNodeViewFactory(\n renderPreactRenderer: PreactRendererResult['renderPreactRenderer'],\n removePreactRenderer: PreactRendererResult['removePreactRenderer'],\n): Extension {\n const factory = buildPreactNodeViewCreator(renderPreactRenderer, removePreactRenderer, ProseKitPreactNodeView)\n return defineNodeViewFactory<PreactNodeViewOptions>({\n group: 'preact',\n factory,\n })\n}\n\n/**\n * Defines a node view using a Preact component.\n *\n * @public\n */\nexport function definePreactNodeView(options: PreactNodeViewOptions): Extension {\n return defineNodeViewComponent<PreactNodeViewOptions>({\n group: 'preact',\n name: options.name,\n args: options,\n })\n}\n","import { EditorNotFoundError, type Editor, type Extension } from '@prosekit/core'\nimport { queueExtension } from '@prosekit/web'\nimport { useEffect } from 'preact/hooks'\n\n/**\n * @internal\n */\nexport function useEditorExtension(\n editor: Editor | null | undefined,\n extension: Extension | null,\n): void {\n if (!editor) {\n throw new EditorNotFoundError()\n }\n\n useEffect(() => {\n if (extension) {\n return queueExtension(editor, extension)\n }\n }, [editor, extension])\n}\n","import { union, type Editor } from '@prosekit/core'\nimport { usePreactRenderer } from '@prosemirror-adapter/preact'\nimport { createElement, Fragment, type ComponentChildren, type ComponentType } from 'preact'\nimport { useMemo } from 'preact/hooks'\n\nimport { definePreactMarkViewFactory } from '../extensions/preact-mark-view.ts'\nimport { definePreactNodeViewFactory } from '../extensions/preact-node-view.ts'\nimport { useEditorExtension } from '../hooks/use-editor-extension.ts'\n\ninterface ViewRendererProps {\n editor: Editor\n children: ComponentChildren\n}\n\nexport const ViewRenderer: ComponentType<ViewRendererProps> = ({ editor, children }) => {\n const { renderPreactRenderer, removePreactRenderer, render } = usePreactRenderer()\n\n const extension = useMemo(() => {\n return union([\n definePreactMarkViewFactory(renderPreactRenderer, removePreactRenderer),\n definePreactNodeViewFactory(renderPreactRenderer, removePreactRenderer),\n ])\n }, [renderPreactRenderer, removePreactRenderer])\n\n useEditorExtension(editor, extension)\n\n return createElement(Fragment, null, createElement(Fragment, null, children), createElement(Fragment, null, render()))\n}\n","import type { Editor } from '@prosekit/core'\nimport { createElement, type ComponentChildren, type ComponentType } from 'preact'\n\nimport { EditorContextProvider } from '../contexts/editor-context.ts'\n\nimport { ViewRenderer } from './view-renderer.ts'\n\nexport interface ProseKitProps {\n editor: Editor\n children?: ComponentChildren\n}\n\n/**\n * The root component for a ProseKit editor.\n *\n * @public\n */\nexport const ProseKit: ComponentType<ProseKitProps> = (props) => {\n const { editor, children } = props\n\n return createElement(\n EditorContextProvider,\n { value: editor },\n createElement(\n ViewRenderer,\n { editor, children },\n ),\n )\n}\n","import { useCallback, useLayoutEffect, useRef } from 'preact/hooks'\n\n/**\n * @internal\n */\nexport function useEventCallback<Args extends unknown[], Return>(\n callback: (...args: Args) => Return,\n): (...args: Args) => Return {\n const callbackRef = useRef(callback)\n useLayoutEffect(() => {\n callbackRef.current = callback\n }, [callback])\n return useCallback((...args: Args) => callbackRef.current(...args), [])\n}\n","import { withPriority, type Extension, type Priority } from '@prosekit/core'\nimport { useMemo } from 'preact/hooks'\n\n/**\n * @internal\n */\nexport function usePriorityExtension<T extends Extension = Extension>(\n extension: T | null,\n priority?: Priority | null,\n): T | null {\n return useMemo(() => {\n return extension && priority ? withPriority(extension, priority) : extension\n }, [extension, priority])\n}\n","import type { Editor, Extension, Priority } from '@prosekit/core'\n\nimport { useEditorContext } from '../contexts/editor-context.ts'\n\nimport { useEditorExtension } from './use-editor-extension.ts'\nimport { usePriorityExtension } from './use-priority-extension.ts'\n\nexport interface UseExtensionOptions {\n /**\n * The editor to add the extension to. If not provided, it will use the\n * editor from the nearest `<ProseKit>` component.\n */\n editor?: Editor\n\n /**\n * Optional priority to add the extension with.\n */\n priority?: Priority\n}\n\n/**\n * Add an extension to the editor.\n */\nexport function useExtension(\n /**\n * The extension to add to the editor. If it changes, the previous\n * extension will be removed and the new one (if not null) will be added.\n */\n extension: Extension | null,\n options?: UseExtensionOptions,\n): void {\n const editorContext = useEditorContext()\n useEditorExtension(\n options?.editor || editorContext,\n usePriorityExtension(extension, options?.priority),\n )\n}\n","import { defineDocChangeHandler } from '@prosekit/core'\nimport type { ProseMirrorNode } from '@prosekit/pm/model'\nimport { useMemo } from 'preact/hooks'\n\nimport { useEventCallback } from './use-event-callback.ts'\nimport { useExtension, type UseExtensionOptions } from './use-extension.ts'\n\n/**\n * Calls the given handler whenever the editor document changes.\n *\n * @public\n */\nexport function useDocChange(\n handler: (doc: ProseMirrorNode) => void,\n options?: UseExtensionOptions,\n): void {\n const memoizedHandler = useEventCallback(handler)\n const extension = useMemo(\n () => defineDocChangeHandler((view) => memoizedHandler(view.state.doc)),\n [memoizedHandler],\n )\n useExtension(extension, options)\n}\n","import { defineMountHandler, defineUpdateHandler, EditorNotFoundError, union, type Editor, type Extension } from '@prosekit/core'\nimport { useSyncExternalStore } from 'preact/compat'\nimport { useMemo } from 'preact/hooks'\n\nimport { useEditorContext } from '../contexts/editor-context.ts'\n\nexport interface UseEditorDerivedOptions<E extends Extension = any> {\n /**\n * The editor to add the extension to. If not provided, it will use the\n * editor from the nearest `<ProseKit>` component.\n */\n editor?: Editor<E>\n}\n\n/**\n * Runs a function to derive a value from the editor instance after editor state\n * changes.\n *\n * This is useful when you need to render something based on the editor state,\n * for example, whether the selected text is wrapped in an italic mark.\n *\n * It returns the derived value that updates whenever the editor state changes.\n *\n * @public\n */\nexport function useEditorDerivedValue<E extends Extension, Derived>(\n /**\n * A function that receives the editor instance and returns a derived value.\n *\n * It will be called whenever the editor's document state changes, or when it\n * mounts.\n *\n * This function should be memoized.\n */\n derive: (editor: Editor<E>) => Derived,\n options?: UseEditorDerivedOptions<E>,\n): Derived {\n const editorContext = useEditorContext<E>()\n const editor = options?.editor ?? editorContext\n if (!editor) {\n throw new EditorNotFoundError()\n }\n\n const [subscribe, getSnapshot] = useMemo(() => {\n return createEditorStore(editor, derive)\n }, [editor, derive])\n\n return useSyncExternalStore(subscribe, getSnapshot)\n}\n\nfunction createEditorStore<Derived, E extends Extension = any>(editor: Editor<E>, derive: (editor: Editor<E>) => Derived) {\n let dirty = true\n let derived: Derived\n\n const subscribe = (onChange: VoidFunction): VoidFunction => {\n const handleChange = () => {\n dirty = true\n onChange()\n }\n const extension = union(\n defineUpdateHandler(handleChange),\n defineMountHandler(handleChange),\n )\n return editor.use(extension)\n }\n\n const getSnapshot = () => {\n if (dirty) {\n dirty = false\n derived = derive(editor)\n }\n return derived\n }\n\n return [subscribe, getSnapshot] as const\n}\n","import { defineMountHandler, defineUpdateHandler, ProseKitError, union, type Editor, type Extension } from '@prosekit/core'\nimport { useEffect, useReducer } from 'preact/hooks'\n\nimport { useEditorContext } from '../contexts/editor-context.ts'\n\n/**\n * Retrieves the editor instance from the nearest ProseKit component.\n *\n * @public\n */\nexport function useEditor<E extends Extension = any>(options?: {\n /**\n * Whether to update the component when the editor is mounted or editor state\n * is updated.\n *\n * @default false\n */\n update?: boolean\n}): Editor<E> {\n const update = options?.update ?? false\n\n const editor = useEditorContext<E>()\n if (!editor) {\n throw new ProseKitError(\n 'useEditor must be used within the ProseKit component',\n )\n }\n\n const forceUpdate = useForceUpdate()\n\n useEffect(() => {\n if (update) {\n const extension = union(\n defineMountHandler(forceUpdate),\n defineUpdateHandler(forceUpdate),\n )\n return editor.use(extension)\n }\n }, [editor, update, forceUpdate])\n\n return editor\n}\n\nfunction useForceUpdate() {\n const [, dispatch] = useReducer((x: number) => x + 1, 0)\n return dispatch\n}\n","import { defineKeymap, type Keymap } from '@prosekit/core'\nimport { useMemo } from 'preact/hooks'\n\nimport { useExtension, type UseExtensionOptions } from './use-extension.ts'\n\nexport function useKeymap(keymap: Keymap, options?: UseExtensionOptions): void {\n const extension = useMemo(() => defineKeymap(keymap), [keymap])\n useExtension(extension, options)\n}\n","import { defineUpdateHandler } from '@prosekit/core'\nimport type { EditorState } from '@prosekit/pm/state'\nimport { useMemo } from 'preact/hooks'\n\nimport { useEventCallback } from './use-event-callback.ts'\nimport { useExtension, type UseExtensionOptions } from './use-extension.ts'\n\n/**\n * Calls the given handler whenever the editor state changes.\n *\n * @public\n */\nexport function useStateUpdate(\n handler: (state: EditorState) => void,\n options?: UseExtensionOptions,\n): void {\n const memoizedHandler = useEventCallback(handler)\n const extension = useMemo(\n () => defineUpdateHandler((view) => memoizedHandler(view.state)),\n [memoizedHandler],\n )\n useExtension(extension, options)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"prosekit-preact.js","names":[],"sources":["../src/extensions/preact-mark-view.ts","../src/extensions/preact-node-view.ts","../src/hooks/use-editor-extension.ts","../src/components/view-renderer.ts","../src/components/prosekit.ts","../src/hooks/use-event-callback.ts","../src/hooks/use-priority-extension.ts","../src/hooks/use-extension.ts","../src/hooks/use-doc-change.ts","../src/hooks/use-editor-derived-value.ts","../src/hooks/use-editor.ts","../src/hooks/use-keymap.ts","../src/hooks/use-state-update.ts"],"sourcesContent":["import { defineMarkViewComponent, defineMarkViewFactory, type Extension } from '@prosekit/core'\nimport type { CoreMarkViewUserOptions } from '@prosemirror-adapter/core'\nimport {\n AbstractPreactMarkView,\n buildPreactMarkViewCreator,\n type MarkViewContext,\n type PreactRendererResult,\n} from '@prosemirror-adapter/preact'\nimport { createElement, type ComponentType } from 'preact'\nimport { createPortal } from 'preact/compat'\n\n/**\n * @public\n */\nexport interface PreactMarkViewProps extends MarkViewContext {}\n\n/**\n * @public\n */\nexport type PreactMarkViewComponent = ComponentType<PreactMarkViewProps>\n\n/**\n * Options for {@link definePreactMarkView}.\n *\n * @public\n */\nexport interface PreactMarkViewOptions extends CoreMarkViewUserOptions<PreactMarkViewComponent> {\n /**\n * The name of the mark type.\n */\n name: string\n}\n\nclass ProseKitPreactMarkView extends AbstractPreactMarkView<PreactMarkViewComponent> {\n render = () => {\n const UserComponent = this.component\n const props = { ...this.context }\n return createPortal(\n createElement(UserComponent, props),\n this.dom,\n )\n }\n}\n\n/**\n * @internal\n */\nexport function definePreactMarkViewFactory(\n renderPreactRenderer: PreactRendererResult['renderPreactRenderer'],\n removePreactRenderer: PreactRendererResult['removePreactRenderer'],\n): Extension {\n const factory = buildPreactMarkViewCreator(renderPreactRenderer, removePreactRenderer, ProseKitPreactMarkView)\n return defineMarkViewFactory<PreactMarkViewOptions>({\n group: 'preact',\n factory,\n })\n}\n\n/**\n * Defines a mark view using a Preact component.\n *\n * @public\n */\nexport function definePreactMarkView(options: PreactMarkViewOptions): Extension {\n return defineMarkViewComponent<PreactMarkViewOptions>({\n group: 'preact',\n name: options.name,\n args: options,\n })\n}\n","import { defineNodeViewComponent, defineNodeViewFactory, type Extension } from '@prosekit/core'\nimport type { CoreNodeViewUserOptions } from '@prosemirror-adapter/core'\nimport {\n AbstractPreactNodeView,\n buildPreactNodeViewCreator,\n type NodeViewContext,\n type PreactRendererResult,\n} from '@prosemirror-adapter/preact'\nimport { createElement, type ComponentType } from 'preact'\nimport { createPortal } from 'preact/compat'\n\n/**\n * @public\n */\nexport interface PreactNodeViewProps extends NodeViewContext {}\n\n/**\n * @public\n */\nexport type PreactNodeViewComponent = ComponentType<PreactNodeViewProps>\n\n/**\n * Options for {@link definePreactNodeView}.\n *\n * @public\n */\nexport interface PreactNodeViewOptions extends CoreNodeViewUserOptions<PreactNodeViewComponent> {\n /**\n * The name of the node type.\n */\n name: string\n}\n\nclass ProseKitPreactNodeView extends AbstractPreactNodeView<PreactNodeViewComponent> {\n render = () => {\n const UserComponent = this.component\n const props = { ...this.context }\n return createPortal(\n createElement(UserComponent, props),\n this.dom,\n )\n }\n}\n\n/**\n * @internal\n */\nexport function definePreactNodeViewFactory(\n renderPreactRenderer: PreactRendererResult['renderPreactRenderer'],\n removePreactRenderer: PreactRendererResult['removePreactRenderer'],\n): Extension {\n const factory = buildPreactNodeViewCreator(renderPreactRenderer, removePreactRenderer, ProseKitPreactNodeView)\n return defineNodeViewFactory<PreactNodeViewOptions>({\n group: 'preact',\n factory,\n })\n}\n\n/**\n * Defines a node view using a Preact component.\n *\n * @public\n */\nexport function definePreactNodeView(options: PreactNodeViewOptions): Extension {\n return defineNodeViewComponent<PreactNodeViewOptions>({\n group: 'preact',\n name: options.name,\n args: options,\n })\n}\n","import { EditorNotFoundError, type Editor, type Extension } from '@prosekit/core'\nimport { queueExtension } from '@prosekit/web'\nimport { useEffect } from 'preact/hooks'\n\n/**\n * @internal\n */\nexport function useEditorExtension(\n editor: Editor | null | undefined,\n extension: Extension | null,\n): void {\n if (!editor) {\n throw new EditorNotFoundError()\n }\n\n useEffect(() => {\n if (extension) {\n return queueExtension(editor, extension)\n }\n }, [editor, extension])\n}\n","import { union, type Editor } from '@prosekit/core'\nimport { usePreactRenderer } from '@prosemirror-adapter/preact'\nimport { createElement, Fragment, type ComponentChildren, type ComponentType } from 'preact'\nimport { useMemo } from 'preact/hooks'\n\nimport { definePreactMarkViewFactory } from '../extensions/preact-mark-view.ts'\nimport { definePreactNodeViewFactory } from '../extensions/preact-node-view.ts'\nimport { useEditorExtension } from '../hooks/use-editor-extension.ts'\n\ninterface ViewRendererProps {\n editor: Editor\n children: ComponentChildren\n}\n\nexport const ViewRenderer: ComponentType<ViewRendererProps> = ({ editor, children }) => {\n const { renderPreactRenderer, removePreactRenderer, render } = usePreactRenderer()\n\n const extension = useMemo(() => {\n return union([\n definePreactMarkViewFactory(renderPreactRenderer, removePreactRenderer),\n definePreactNodeViewFactory(renderPreactRenderer, removePreactRenderer),\n ])\n }, [renderPreactRenderer, removePreactRenderer])\n\n useEditorExtension(editor, extension)\n\n return createElement(Fragment, null, createElement(Fragment, null, children), createElement(Fragment, null, render()))\n}\n","import type { Editor } from '@prosekit/core'\nimport { createElement, type ComponentChildren, type ComponentType } from 'preact'\n\nimport { EditorContextProvider } from '../contexts/editor-context.ts'\n\nimport { ViewRenderer } from './view-renderer.ts'\n\nexport interface ProseKitProps {\n editor: Editor\n children?: ComponentChildren\n}\n\n/**\n * The root component for a ProseKit editor.\n *\n * @public\n */\nexport const ProseKit: ComponentType<ProseKitProps> = (props) => {\n const { editor, children } = props\n\n return createElement(\n EditorContextProvider,\n { value: editor },\n createElement(\n ViewRenderer,\n { editor, children },\n ),\n )\n}\n","import { useCallback, useLayoutEffect, useRef } from 'preact/hooks'\n\n/**\n * @internal\n */\nexport function useEventCallback<Args extends unknown[], Return>(\n callback: (...args: Args) => Return,\n): (...args: Args) => Return {\n const callbackRef = useRef(callback)\n useLayoutEffect(() => {\n callbackRef.current = callback\n }, [callback])\n return useCallback((...args: Args) => callbackRef.current(...args), [])\n}\n","import { withPriority, type Extension, type Priority } from '@prosekit/core'\nimport { useMemo } from 'preact/hooks'\n\n/**\n * @internal\n */\nexport function usePriorityExtension<T extends Extension = Extension>(\n extension: T | null,\n priority?: Priority | null,\n): T | null {\n return useMemo(() => {\n return extension && priority ? withPriority(extension, priority) : extension\n }, [extension, priority])\n}\n","import type { Editor, Extension, Priority } from '@prosekit/core'\n\nimport { useEditorContext } from '../contexts/editor-context.ts'\n\nimport { useEditorExtension } from './use-editor-extension.ts'\nimport { usePriorityExtension } from './use-priority-extension.ts'\n\nexport interface UseExtensionOptions {\n /**\n * The editor to add the extension to. If not provided, it will use the\n * editor from the nearest `<ProseKit>` component.\n */\n editor?: Editor\n\n /**\n * Optional priority to add the extension with.\n */\n priority?: Priority\n}\n\n/**\n * Add an extension to the editor.\n */\nexport function useExtension(\n /**\n * The extension to add to the editor. If it changes, the previous\n * extension will be removed and the new one (if not null) will be added.\n */\n extension: Extension | null,\n options?: UseExtensionOptions,\n): void {\n const editorContext = useEditorContext()\n useEditorExtension(\n options?.editor || editorContext,\n usePriorityExtension(extension, options?.priority),\n )\n}\n","import { defineDocChangeHandler } from '@prosekit/core'\nimport type { ProseMirrorNode } from '@prosekit/pm/model'\nimport { useMemo } from 'preact/hooks'\n\nimport { useEventCallback } from './use-event-callback.ts'\nimport { useExtension, type UseExtensionOptions } from './use-extension.ts'\n\n/**\n * Calls the given handler whenever the editor document changes.\n *\n * @public\n */\nexport function useDocChange(\n handler: (doc: ProseMirrorNode) => void,\n options?: UseExtensionOptions,\n): void {\n const memoizedHandler = useEventCallback(handler)\n const extension = useMemo(\n () => defineDocChangeHandler((view) => memoizedHandler(view.state.doc)),\n [memoizedHandler],\n )\n useExtension(extension, options)\n}\n","import { defineMountHandler, defineUpdateHandler, EditorNotFoundError, union, type Editor, type Extension } from '@prosekit/core'\nimport { useSyncExternalStore } from 'preact/compat'\nimport { useMemo } from 'preact/hooks'\n\nimport { useEditorContext } from '../contexts/editor-context.ts'\n\nexport interface UseEditorDerivedOptions<E extends Extension = any> {\n /**\n * The editor to add the extension to. If not provided, it will use the\n * editor from the nearest `<ProseKit>` component.\n */\n editor?: Editor<E>\n}\n\n/**\n * Runs a function to derive a value from the editor instance after editor state\n * changes.\n *\n * This is useful when you need to render something based on the editor state,\n * for example, whether the selected text is wrapped in an italic mark.\n *\n * It returns the derived value that updates whenever the editor state changes.\n *\n * @public\n */\nexport function useEditorDerivedValue<E extends Extension, Derived>(\n /**\n * A function that receives the editor instance and returns a derived value.\n *\n * It will be called whenever the editor's document state changes, or when it\n * mounts.\n *\n * This function should be memoized.\n */\n derive: (editor: Editor<E>) => Derived,\n options?: UseEditorDerivedOptions<E>,\n): Derived {\n const editorContext = useEditorContext<E>()\n const editor = options?.editor ?? editorContext\n if (!editor) {\n throw new EditorNotFoundError()\n }\n\n const [subscribe, getSnapshot] = useMemo(() => {\n return createEditorStore(editor, derive)\n }, [editor, derive])\n\n return useSyncExternalStore(subscribe, getSnapshot)\n}\n\nfunction createEditorStore<Derived, E extends Extension = any>(editor: Editor<E>, derive: (editor: Editor<E>) => Derived) {\n let dirty = true\n let derived: Derived\n\n const subscribe = (onChange: VoidFunction): VoidFunction => {\n const handleChange = () => {\n dirty = true\n onChange()\n }\n const extension = union(\n defineUpdateHandler(handleChange),\n defineMountHandler(handleChange),\n )\n return editor.use(extension)\n }\n\n const getSnapshot = () => {\n if (dirty) {\n dirty = false\n derived = derive(editor)\n }\n return derived\n }\n\n return [subscribe, getSnapshot] as const\n}\n","import { defineMountHandler, defineUpdateHandler, ProseKitError, union, type Editor, type Extension } from '@prosekit/core'\nimport { useEffect, useReducer } from 'preact/hooks'\n\nimport { useEditorContext } from '../contexts/editor-context.ts'\n\n/**\n * Retrieves the editor instance from the nearest ProseKit component.\n *\n * @public\n */\nexport function useEditor<E extends Extension = any>(options?: {\n /**\n * Whether to update the component when the editor is mounted or editor state\n * is updated.\n *\n * @default false\n */\n update?: boolean\n}): Editor<E> {\n const update = options?.update ?? false\n\n const editor = useEditorContext<E>()\n if (!editor) {\n throw new ProseKitError(\n 'useEditor must be used within the ProseKit component',\n )\n }\n\n const forceUpdate = useForceUpdate()\n\n useEffect(() => {\n if (update) {\n const extension = union(\n defineMountHandler(forceUpdate),\n defineUpdateHandler(forceUpdate),\n )\n return editor.use(extension)\n }\n }, [editor, update, forceUpdate])\n\n return editor\n}\n\nfunction useForceUpdate() {\n const [, dispatch] = useReducer((x: number) => x + 1, 0)\n return dispatch\n}\n","import { defineKeymap, type Keymap } from '@prosekit/core'\nimport { useMemo } from 'preact/hooks'\n\nimport { useExtension, type UseExtensionOptions } from './use-extension.ts'\n\nexport function useKeymap(keymap: Keymap, options?: UseExtensionOptions): void {\n const extension = useMemo(() => defineKeymap(keymap), [keymap])\n useExtension(extension, options)\n}\n","import { defineUpdateHandler } from '@prosekit/core'\nimport type { EditorState } from '@prosekit/pm/state'\nimport { useMemo } from 'preact/hooks'\n\nimport { useEventCallback } from './use-event-callback.ts'\nimport { useExtension, type UseExtensionOptions } from './use-extension.ts'\n\n/**\n * Calls the given handler whenever the editor state changes.\n *\n * @public\n */\nexport function useStateUpdate(\n handler: (state: EditorState) => void,\n options?: UseExtensionOptions,\n): void {\n const memoizedHandler = useEventCallback(handler)\n const extension = useMemo(\n () => defineUpdateHandler((view) => memoizedHandler(view.state)),\n [memoizedHandler],\n )\n useExtension(extension, options)\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@prosekit/preact",
3
3
  "type": "module",
4
- "version": "0.7.0-beta.2",
4
+ "version": "0.7.0-beta.4",
5
5
  "private": false,
6
6
  "description": "Preact components and utilities for ProseKit",
7
7
  "author": {
@@ -75,8 +75,8 @@
75
75
  "@prosemirror-adapter/core": "^0.5.3",
76
76
  "@prosemirror-adapter/preact": "^0.5.3",
77
77
  "@prosekit/core": "^0.12.0-beta.0",
78
- "@prosekit/pm": "^0.1.15",
79
- "@prosekit/web": "^0.8.0-beta.2"
78
+ "@prosekit/web": "^0.8.0-beta.4",
79
+ "@prosekit/pm": "^0.1.15"
80
80
  },
81
81
  "peerDependencies": {
82
82
  "preact": ">= 10.11.0"
@@ -94,8 +94,8 @@
94
94
  "vitest-browser-preact": "^1.0.0",
95
95
  "@prosekit/config-ts": "0.0.0",
96
96
  "@prosekit/config-vitest": "0.0.0",
97
- "@prosekit/config-tsdown": "0.0.0",
98
- "@prosekit/testing": "0.0.0"
97
+ "@prosekit/testing": "0.0.0",
98
+ "@prosekit/config-tsdown": "0.0.0"
99
99
  },
100
100
  "publishConfig": {
101
101
  "dev": {}
@@ -1,18 +1,12 @@
1
- /**
2
- * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
- */
1
+ // This file is auto-generated by "@aria-ui/cli". Do not edit this file directly.
4
2
 
5
3
  import { registerAutocompleteEmptyElement, type AutocompleteEmptyElement } from '@prosekit/web/autocomplete';
6
4
  import { createElement, type HTMLAttributes, type Ref } from 'preact';
7
5
  import { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';
8
6
  import { useCallback, useRef } from 'preact/hooks';
9
7
 
10
- /**
11
- * Props for the {@link AutocompleteEmpty} Preact component.
12
- *
13
- * @public
14
- */
15
- export interface AutocompleteEmptyProps extends HTMLAttributes<AutocompleteEmptyElement> {}
8
+ /** Props for the {@link AutocompleteEmpty} Preact component. */
9
+ export interface AutocompleteEmptyProps {}
16
10
 
17
11
  function AutocompleteEmptyComponent(props: AutocompleteEmptyProps, forwardedRef: Ref<AutocompleteEmptyElement>) {
18
12
  registerAutocompleteEmptyElement();
@@ -36,9 +30,5 @@ function AutocompleteEmptyComponent(props: AutocompleteEmptyProps, forwardedRef:
36
30
  return createElement('prosekit-autocomplete-empty', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });
37
31
  }
38
32
 
39
- /**
40
- * A Preact component that renders an `prosekit-autocomplete-empty` custom element.
41
- *
42
- * @public
43
- */
44
- export const AutocompleteEmpty: ForwardRefExoticComponent<AutocompleteEmptyProps & RefAttributes<AutocompleteEmptyElement>> = /* @__PURE__ */ forwardRef(AutocompleteEmptyComponent);
33
+ /** A Preact component that renders an `prosekit-autocomplete-empty` custom element. */
34
+ export const AutocompleteEmpty: ForwardRefExoticComponent<AutocompleteEmptyProps & HTMLAttributes<AutocompleteEmptyElement> & RefAttributes<AutocompleteEmptyElement>> = /* @__PURE__ */ forwardRef(AutocompleteEmptyComponent);
@@ -1,18 +1,12 @@
1
- /**
2
- * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
- */
1
+ // This file is auto-generated by "@aria-ui/cli". Do not edit this file directly.
4
2
 
5
3
  import { registerAutocompleteItemElement, type AutocompleteItemElement, type AutocompleteItemProps as AutocompleteItemElementProps, type AutocompleteItemEvents } from '@prosekit/web/autocomplete';
6
4
  import { createElement, type HTMLAttributes, type Ref } from 'preact';
7
5
  import { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';
8
6
  import { useCallback, useRef, useLayoutEffect } from 'preact/hooks';
9
7
 
10
- /**
11
- * Props for the {@link AutocompleteItem} Preact component.
12
- *
13
- * @public
14
- */
15
- export interface AutocompleteItemProps extends Omit<HTMLAttributes<AutocompleteItemElement>, 'onSelect'> {
8
+ /** Props for the {@link AutocompleteItem} Preact component. */
9
+ export interface AutocompleteItemProps {
16
10
  /**
17
11
  * The value of the item, which will be matched against the query.
18
12
  *
@@ -77,11 +71,5 @@ function AutocompleteItemComponent(props: AutocompleteItemProps, forwardedRef: R
77
71
  return createElement('prosekit-autocomplete-item', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });
78
72
  }
79
73
 
80
- /**
81
- * A Preact component that renders an `prosekit-autocomplete-item` custom element.
82
- *
83
- * @public
84
- */
85
- export const AutocompleteItem: ForwardRefExoticComponent<AutocompleteItemProps & RefAttributes<AutocompleteItemElement>> = /* @__PURE__ */ forwardRef(AutocompleteItemComponent);
86
-
87
- export type { AutocompleteItemEvents };
74
+ /** A Preact component that renders an `prosekit-autocomplete-item` custom element. */
75
+ export const AutocompleteItem: ForwardRefExoticComponent<AutocompleteItemProps & Omit<HTMLAttributes<AutocompleteItemElement>, 'onSelect'> & RefAttributes<AutocompleteItemElement>> = /* @__PURE__ */ forwardRef(AutocompleteItemComponent);
@@ -1,18 +1,12 @@
1
- /**
2
- * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
- */
1
+ // This file is auto-generated by "@aria-ui/cli". Do not edit this file directly.
4
2
 
5
3
  import { registerAutocompletePopupElement, type AutocompletePopupElement, type AutocompletePopupEvents } from '@prosekit/web/autocomplete';
6
4
  import { createElement, type HTMLAttributes, type Ref } from 'preact';
7
5
  import { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';
8
6
  import { useCallback, useRef, useLayoutEffect } from 'preact/hooks';
9
7
 
10
- /**
11
- * Props for the {@link AutocompletePopup} Preact component.
12
- *
13
- * @public
14
- */
15
- export interface AutocompletePopupProps extends HTMLAttributes<AutocompletePopupElement> {
8
+ /** Props for the {@link AutocompletePopup} Preact component. */
9
+ export interface AutocompletePopupProps {
16
10
  /**
17
11
  * Emitted when the selected value changes. Only available when multiple is
18
12
  * false.
@@ -70,11 +64,5 @@ function AutocompletePopupComponent(props: AutocompletePopupProps, forwardedRef:
70
64
  return createElement('prosekit-autocomplete-popup', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });
71
65
  }
72
66
 
73
- /**
74
- * A Preact component that renders an `prosekit-autocomplete-popup` custom element.
75
- *
76
- * @public
77
- */
78
- export const AutocompletePopup: ForwardRefExoticComponent<AutocompletePopupProps & RefAttributes<AutocompletePopupElement>> = /* @__PURE__ */ forwardRef(AutocompletePopupComponent);
79
-
80
- export type { AutocompletePopupEvents };
67
+ /** A Preact component that renders an `prosekit-autocomplete-popup` custom element. */
68
+ export const AutocompletePopup: ForwardRefExoticComponent<AutocompletePopupProps & HTMLAttributes<AutocompletePopupElement> & RefAttributes<AutocompletePopupElement>> = /* @__PURE__ */ forwardRef(AutocompletePopupComponent);
@@ -1,18 +1,12 @@
1
- /**
2
- * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
- */
1
+ // This file is auto-generated by "@aria-ui/cli". Do not edit this file directly.
4
2
 
5
3
  import { registerAutocompletePositionerElement, type AutocompletePositionerElement, type AutocompletePositionerProps as AutocompletePositionerElementProps } from '@prosekit/web/autocomplete';
6
4
  import { createElement, type HTMLAttributes, type Ref } from 'preact';
7
5
  import { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';
8
6
  import { useCallback, useRef, useLayoutEffect } from 'preact/hooks';
9
7
 
10
- /**
11
- * Props for the {@link AutocompletePositioner} Preact component.
12
- *
13
- * @public
14
- */
15
- export interface AutocompletePositionerProps extends HTMLAttributes<AutocompletePositionerElement> {
8
+ /** Props for the {@link AutocompletePositioner} Preact component. */
9
+ export interface AutocompletePositionerProps {
16
10
  /**
17
11
  * The placement of the popover, relative to the text cursor.
18
12
  *
@@ -145,9 +139,5 @@ function AutocompletePositionerComponent(props: AutocompletePositionerProps, for
145
139
  return createElement('prosekit-autocomplete-positioner', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });
146
140
  }
147
141
 
148
- /**
149
- * A Preact component that renders an `prosekit-autocomplete-positioner` custom element.
150
- *
151
- * @public
152
- */
153
- export const AutocompletePositioner: ForwardRefExoticComponent<AutocompletePositionerProps & RefAttributes<AutocompletePositionerElement>> = /* @__PURE__ */ forwardRef(AutocompletePositionerComponent);
142
+ /** A Preact component that renders an `prosekit-autocomplete-positioner` custom element. */
143
+ export const AutocompletePositioner: ForwardRefExoticComponent<AutocompletePositionerProps & HTMLAttributes<AutocompletePositionerElement> & RefAttributes<AutocompletePositionerElement>> = /* @__PURE__ */ forwardRef(AutocompletePositionerComponent);
@@ -1,6 +1,4 @@
1
- /**
2
- * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
- */
1
+ // This file is auto-generated by "@aria-ui/cli". Do not edit this file directly.
4
2
 
5
3
  import { registerAutocompleteRootElement, type AutocompleteRootElement, type AutocompleteRootProps as AutocompleteRootElementProps, type AutocompleteRootEvents } from '@prosekit/web/autocomplete';
6
4
  import { createElement, type HTMLAttributes, type Ref } from 'preact';
@@ -9,12 +7,8 @@ import { useCallback, useRef, useLayoutEffect } from 'preact/hooks';
9
7
 
10
8
  import { useEditorContext } from '../../contexts/editor-context.ts';
11
9
 
12
- /**
13
- * Props for the {@link AutocompleteRoot} Preact component.
14
- *
15
- * @public
16
- */
17
- export interface AutocompleteRootProps extends HTMLAttributes<AutocompleteRootElement> {
10
+ /** Props for the {@link AutocompleteRoot} Preact component. */
11
+ export interface AutocompleteRootProps {
18
12
  /**
19
13
  * The ProseKit editor instance.
20
14
  *
@@ -99,11 +93,5 @@ function AutocompleteRootComponent(props: AutocompleteRootProps, forwardedRef: R
99
93
  return createElement('prosekit-autocomplete-root', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });
100
94
  }
101
95
 
102
- /**
103
- * A Preact component that renders an `prosekit-autocomplete-root` custom element.
104
- *
105
- * @public
106
- */
107
- export const AutocompleteRoot: ForwardRefExoticComponent<AutocompleteRootProps & RefAttributes<AutocompleteRootElement>> = /* @__PURE__ */ forwardRef(AutocompleteRootComponent);
108
-
109
- export type { AutocompleteRootEvents };
96
+ /** A Preact component that renders an `prosekit-autocomplete-root` custom element. */
97
+ export const AutocompleteRoot: ForwardRefExoticComponent<AutocompleteRootProps & HTMLAttributes<AutocompleteRootElement> & RefAttributes<AutocompleteRootElement>> = /* @__PURE__ */ forwardRef(AutocompleteRootComponent);
@@ -1,15 +1,11 @@
1
- /**
2
- * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
- */
1
+ // This file is auto-generated by "@aria-ui/cli". Do not edit this file directly.
4
2
 
5
3
  export { AutocompleteEmpty, type AutocompleteEmptyProps } from './autocomplete-empty.gen.ts';
6
4
 
7
- export { AutocompleteItem, type AutocompleteItemProps, type AutocompleteItemEvents } from './autocomplete-item.gen.ts';
5
+ export { AutocompleteItem, type AutocompleteItemProps } from './autocomplete-item.gen.ts';
8
6
 
9
- export { AutocompletePopup, type AutocompletePopupProps, type AutocompletePopupEvents } from './autocomplete-popup.gen.ts';
7
+ export { AutocompletePopup, type AutocompletePopupProps } from './autocomplete-popup.gen.ts';
10
8
 
11
9
  export { AutocompletePositioner, type AutocompletePositionerProps } from './autocomplete-positioner.gen.ts';
12
10
 
13
- export { AutocompleteRoot, type AutocompleteRootProps, type AutocompleteRootEvents } from './autocomplete-root.gen.ts';
14
-
15
- export { OpenChangeEvent, QueryChangeEvent, SelectEvent, ValueChangeEvent, ValuesChangeEvent } from '@prosekit/web/autocomplete';
11
+ export { AutocompleteRoot, type AutocompleteRootProps } from './autocomplete-root.gen.ts';