@gunkin/uiify 0.0.14-alpha → 0.0.16-alpha

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 (165) hide show
  1. package/README.md +46 -1
  2. package/agents/components.md +80 -0
  3. package/agents/index.md +179 -0
  4. package/agents/reference/components/accordion.md +35 -0
  5. package/agents/reference/components/alert-modal.md +63 -0
  6. package/agents/reference/components/breadcrumb.md +72 -0
  7. package/agents/reference/components/button.md +40 -0
  8. package/agents/reference/components/candle-chart.md +107 -0
  9. package/agents/reference/components/carousel.md +274 -0
  10. package/agents/reference/components/checkbox.md +32 -0
  11. package/agents/reference/components/collapsible.md +26 -0
  12. package/agents/reference/components/color-picker.md +33 -0
  13. package/agents/reference/components/combobox.md +193 -0
  14. package/agents/reference/components/context-menu.md +129 -0
  15. package/agents/reference/components/drawer.md +215 -0
  16. package/agents/reference/components/dropdown-menu.md +178 -0
  17. package/agents/reference/components/field.md +76 -0
  18. package/agents/reference/components/file-upload.md +131 -0
  19. package/agents/reference/components/form.md +28 -0
  20. package/agents/reference/components/header.md +44 -0
  21. package/agents/reference/components/hover-card.md +54 -0
  22. package/agents/reference/components/input.md +29 -0
  23. package/agents/reference/components/line-chart.md +104 -0
  24. package/agents/reference/components/modal.md +106 -0
  25. package/agents/reference/components/number-field.md +60 -0
  26. package/agents/reference/components/otp-input.md +68 -0
  27. package/agents/reference/components/pagination.md +112 -0
  28. package/agents/reference/components/popup.md +111 -0
  29. package/agents/reference/components/radio-group.md +37 -0
  30. package/agents/reference/components/rating.md +43 -0
  31. package/agents/reference/components/segmented-control.md +51 -0
  32. package/agents/reference/components/select.md +60 -0
  33. package/agents/reference/components/skeleton.md +29 -0
  34. package/agents/reference/components/slider.md +71 -0
  35. package/agents/reference/components/spinner.md +34 -0
  36. package/agents/reference/components/switch.md +27 -0
  37. package/agents/reference/components/table-of-contents.md +185 -0
  38. package/agents/reference/components/table.md +189 -0
  39. package/agents/reference/components/tabs.md +42 -0
  40. package/agents/reference/components/tags-input.md +123 -0
  41. package/agents/reference/components/textarea.md +31 -0
  42. package/agents/reference/components/toast.md +151 -0
  43. package/agents/reference/components/toggle-group.md +50 -0
  44. package/agents/reference/components/toggle.md +26 -0
  45. package/agents/reference/components/toolbar.md +69 -0
  46. package/agents/reference/components/tooltip.md +76 -0
  47. package/agents/reference/components/virtual-scroll.md +97 -0
  48. package/agents/reference/elements/choice.md +55 -0
  49. package/agents/reference/elements/details.md +45 -0
  50. package/agents/reference/elements/dialog.md +43 -0
  51. package/agents/reference/elements/invoker.md +28 -0
  52. package/agents/reference/elements/popover.md +53 -0
  53. package/dist/components/alert-modal/AlertModalParts.js +1 -1
  54. package/dist/components/alert-modal/AlertModalParts.js.map +1 -1
  55. package/dist/components/button/Button.d.ts.map +1 -1
  56. package/dist/components/button/Button.js +5 -3
  57. package/dist/components/button/Button.js.map +1 -1
  58. package/dist/components/button/index.d.ts +1 -1
  59. package/dist/components/button/index.d.ts.map +1 -1
  60. package/dist/components/button/index.js.map +1 -1
  61. package/dist/components/button/types.d.ts +5 -4
  62. package/dist/components/button/types.d.ts.map +1 -1
  63. package/dist/components/carousel/CarouselMarkup.d.ts.map +1 -1
  64. package/dist/components/carousel/CarouselMarkup.js +8 -0
  65. package/dist/components/carousel/CarouselMarkup.js.map +1 -1
  66. package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -1
  67. package/dist/components/dropdown-menu/DropdownMenu.js +0 -2
  68. package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -1
  69. package/dist/components/dropdown-menu/types.d.ts +0 -1
  70. package/dist/components/dropdown-menu/types.d.ts.map +1 -1
  71. package/dist/components/index.d.ts +1 -0
  72. package/dist/components/index.d.ts.map +1 -1
  73. package/dist/components/index.js +1 -0
  74. package/dist/components/index.js.map +1 -1
  75. package/dist/components/internal/choice-family/ChoiceGroup.d.ts.map +1 -1
  76. package/dist/components/internal/choice-family/ChoiceGroup.js +2 -3
  77. package/dist/components/internal/choice-family/ChoiceGroup.js.map +1 -1
  78. package/dist/components/internal/choice-family/types.d.ts +2 -2
  79. package/dist/components/internal/choice-family/types.d.ts.map +1 -1
  80. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  81. package/dist/components/pagination/Pagination.js +11 -0
  82. package/dist/components/pagination/Pagination.js.map +1 -1
  83. package/dist/components/pagination/PaginationShell.d.ts.map +1 -1
  84. package/dist/components/pagination/PaginationShell.js +26 -1
  85. package/dist/components/pagination/PaginationShell.js.map +1 -1
  86. package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -1
  87. package/dist/components/segmented-control/SegmentedControl.js +1 -0
  88. package/dist/components/segmented-control/SegmentedControl.js.map +1 -1
  89. package/dist/components/segmented-control/client/SegmentedControlClient.d.ts.map +1 -1
  90. package/dist/components/segmented-control/client/SegmentedControlClient.js +1 -0
  91. package/dist/components/segmented-control/client/SegmentedControlClient.js.map +1 -1
  92. package/dist/components/table-of-contents/TableOfContents.d.ts +22 -0
  93. package/dist/components/table-of-contents/TableOfContents.d.ts.map +1 -0
  94. package/dist/components/table-of-contents/TableOfContents.js +142 -0
  95. package/dist/components/table-of-contents/TableOfContents.js.map +1 -0
  96. package/dist/components/table-of-contents/client/TableOfContentsClient.d.ts +18 -0
  97. package/dist/components/table-of-contents/client/TableOfContentsClient.d.ts.map +1 -0
  98. package/dist/components/table-of-contents/client/TableOfContentsClient.js +140 -0
  99. package/dist/components/table-of-contents/client/TableOfContentsClient.js.map +1 -0
  100. package/dist/components/table-of-contents/client/TableOfContentsClientParts.d.ts +7 -0
  101. package/dist/components/table-of-contents/client/TableOfContentsClientParts.d.ts.map +1 -0
  102. package/dist/components/table-of-contents/client/TableOfContentsClientParts.js +48 -0
  103. package/dist/components/table-of-contents/client/TableOfContentsClientParts.js.map +1 -0
  104. package/dist/components/table-of-contents/client/index.d.ts +5 -0
  105. package/dist/components/table-of-contents/client/index.d.ts.map +1 -0
  106. package/dist/components/table-of-contents/client/index.js +23 -0
  107. package/dist/components/table-of-contents/client/index.js.map +1 -0
  108. package/dist/components/table-of-contents/client/table-of-contents-context.d.ts +3 -0
  109. package/dist/components/table-of-contents/client/table-of-contents-context.d.ts.map +1 -0
  110. package/dist/components/table-of-contents/client/table-of-contents-context.js +7 -0
  111. package/dist/components/table-of-contents/client/table-of-contents-context.js.map +1 -0
  112. package/dist/components/table-of-contents/client/table-of-contents-interactions.d.ts +3 -0
  113. package/dist/components/table-of-contents/client/table-of-contents-interactions.d.ts.map +1 -0
  114. package/dist/components/table-of-contents/client/table-of-contents-interactions.js +144 -0
  115. package/dist/components/table-of-contents/client/table-of-contents-interactions.js.map +1 -0
  116. package/dist/components/table-of-contents/client/table-of-contents-pointer.d.ts +3 -0
  117. package/dist/components/table-of-contents/client/table-of-contents-pointer.d.ts.map +1 -0
  118. package/dist/components/table-of-contents/client/table-of-contents-pointer.js +94 -0
  119. package/dist/components/table-of-contents/client/table-of-contents-pointer.js.map +1 -0
  120. package/dist/components/table-of-contents/client.d.ts +1 -0
  121. package/dist/components/table-of-contents/client.js +1 -0
  122. package/dist/components/table-of-contents/index.d.ts +3 -0
  123. package/dist/components/table-of-contents/index.d.ts.map +1 -0
  124. package/dist/components/table-of-contents/index.js +21 -0
  125. package/dist/components/table-of-contents/index.js.map +1 -0
  126. package/dist/components/table-of-contents/scrollspy-selection.d.ts +4 -0
  127. package/dist/components/table-of-contents/scrollspy-selection.d.ts.map +1 -0
  128. package/dist/components/table-of-contents/scrollspy-selection.js +31 -0
  129. package/dist/components/table-of-contents/scrollspy-selection.js.map +1 -0
  130. package/dist/components/table-of-contents/scrollspy.d.ts +4 -0
  131. package/dist/components/table-of-contents/scrollspy.d.ts.map +1 -0
  132. package/dist/components/table-of-contents/scrollspy.js +178 -0
  133. package/dist/components/table-of-contents/scrollspy.js.map +1 -0
  134. package/dist/components/table-of-contents/types.d.ts +123 -0
  135. package/dist/components/table-of-contents/types.d.ts.map +1 -0
  136. package/dist/components/table-of-contents/types.js +1 -0
  137. package/dist/components/table-of-contents/types.js.map +1 -0
  138. package/dist/components/table-of-contents.d.ts +1 -0
  139. package/dist/components/table-of-contents.js +1 -0
  140. package/dist/components/toggle/Toggle.d.ts.map +1 -1
  141. package/dist/components/toggle/Toggle.js +12 -1
  142. package/dist/components/toggle/Toggle.js.map +1 -1
  143. package/dist/components/toggle-group/ToggleGroup.d.ts +1 -1
  144. package/dist/components/toggle-group/ToggleGroup.d.ts.map +1 -1
  145. package/dist/components/toggle-group/ToggleGroup.js +6 -1
  146. package/dist/components/toggle-group/ToggleGroup.js.map +1 -1
  147. package/dist/components/toggle-group/client/ToggleGroupClient.d.ts +1 -1
  148. package/dist/components/toggle-group/client/ToggleGroupClient.d.ts.map +1 -1
  149. package/dist/components/toggle-group/client/ToggleGroupClient.js +19 -6
  150. package/dist/components/toggle-group/client/ToggleGroupClient.js.map +1 -1
  151. package/dist/components/toggle-group/types.d.ts +3 -3
  152. package/dist/components/toggle-group/types.d.ts.map +1 -1
  153. package/dist/components/toolbar/ToolbarShell.d.ts.map +1 -1
  154. package/dist/components/toolbar/ToolbarShell.js +5 -2
  155. package/dist/components/toolbar/ToolbarShell.js.map +1 -1
  156. package/dist/components/toolbar/types.d.ts +2 -1
  157. package/dist/components/toolbar/types.d.ts.map +1 -1
  158. package/dist/core/render-native-invoker.d.ts +1 -1
  159. package/dist/core/render-native-invoker.d.ts.map +1 -1
  160. package/dist/core/render-native-invoker.js.map +1 -1
  161. package/dist/styles/index.css +1 -1
  162. package/package.json +4 -2
  163. package/skills/uiify/SKILL.md +167 -0
  164. package/skills/uiify/scripts/lint.mjs +56 -0
  165. package/skills/uiify/scripts/static.mjs +95 -0
@@ -74,7 +74,6 @@ function DropdownMenuTrigger(props) {
74
74
  render,
75
75
  className,
76
76
  openOnHover = false,
77
- shape,
78
77
  ...consumerProps
79
78
  } = props;
80
79
  const {
@@ -134,7 +133,6 @@ function DropdownMenuTrigger(props) {
134
133
  ...nativeButton ? { "data-uiify-button": "" } : {},
135
134
  "aria-haspopup": "menu",
136
135
  "data-part": "trigger",
137
- ...shape !== void 0 ? { "data-shape": shape } : {},
138
136
  "data-state": open ? "open" : "closed",
139
137
  "data-disabled": disabled ? "" : void 0,
140
138
  disabled: nativeButton && disabled ? true : void 0,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/dropdown-menu/DropdownMenu.tsx"],"sourcesContent":["\"use client\";\n\nimport { useCallback, useMemo, useRef } from \"react\";\nimport type {\n ElementType,\n KeyboardEvent,\n MouseEvent,\n PointerEvent,\n ReactElement,\n RefObject,\n SyntheticEvent,\n} from \"react\";\nimport { useControllableState, useMergedRefs } from \"@gunkin/uiify/hooks\";\nimport { createPartContext, splitRef } from \"@gunkin/uiify/core\";\nimport { useAnchorPosition } from \"@gunkin/uiify/core/anchor-position\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { useDirection } from \"@gunkin/uiify/core/direction\";\nimport { createHoverIntentStore } from \"@gunkin/uiify/core/hover-intent-store\";\nimport type { HoverIntentStore } from \"@gunkin/uiify/core/hover-intent-store\";\nimport type { OpenChangeDetails } from \"@gunkin/uiify/core/open-change-details\";\nimport { usePopover } from \"@gunkin/uiify/core/popover\";\nimport { RovingFocusItem, RovingFocusRoot } from \"@gunkin/uiify/core/roving-focus\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { createMenuSelectEvent } from \"../internal/menu/menu-utils.js\";\nimport { focusMenuItem } from \"../internal/menu/focus-menu-item.js\";\nimport { MenuGroup, MenuLabel, MenuSeparator } from \"../internal/menu/menu-parts.js\";\nimport { useMenuSurface } from \"../internal/menu/use-menu-surface.js\";\nimport { DropdownMenuBar } from \"./DropdownMenuBar.js\";\nimport type {\n DropdownMenuCheckedState,\n DropdownMenuCheckboxItemProps,\n DropdownMenuContentProps,\n DropdownMenuContextValue,\n DropdownMenuGroupProps,\n DropdownMenuItemDescriptionProps,\n DropdownMenuItemIconProps,\n DropdownMenuItemIndicatorProps,\n DropdownMenuItemProps,\n DropdownMenuItemTextProps,\n DropdownMenuLabelProps,\n DropdownMenuOpenChangeReason,\n DropdownMenuPartProps,\n DropdownMenuRadioGroupProps,\n DropdownMenuRadioItemProps,\n DropdownMenuRootProps,\n DropdownMenuSeparatorProps,\n DropdownMenuShortcutProps,\n DropdownMenuSubContentProps,\n DropdownMenuSubProps,\n DropdownMenuSubTriggerProps,\n DropdownMenuTriggerProps,\n} from \"./types.js\";\n\nexport type { MenuSelectEvent } from \"./types.js\";\n\nfunction mapReason(reason: OpenChangeDetails[\"reason\"]): DropdownMenuOpenChangeReason {\n if (reason === \"escape-key\") return \"escape\";\n if (reason === \"focus-outside\") return \"focus-out\";\n if (reason === \"native-toggle\") return \"trigger-press\";\n return reason;\n}\n\nconst [DropdownMenuProvider, useDropdownMenuContext] =\n createPartContext<DropdownMenuContextValue>(\"DropdownMenu\");\n\nexport function DropdownMenuRoot(props: DropdownMenuRootProps): ReactElement | null {\n const {\n children,\n className,\n defaultOpen,\n dir: localDir,\n disabled = false,\n loop = true,\n onOpenChange,\n open,\n } = props;\n const dir = useDirection(localDir);\n const surface = useMenuSurface({\n mode: \"auto\",\n ...(defaultOpen !== undefined ? { defaultOpen } : {}),\n ...(open !== undefined ? { open } : {}),\n ...(onOpenChange\n ? {\n onOpenChange: (next, details) =>\n onOpenChange(next, { event: details.event, reason: mapReason(details.reason) }),\n }\n : {}),\n });\n const intentRef = useRef<HoverIntentStore | null>(null);\n intentRef.current ??= createHoverIntentStore({ closeDelay: 150, openDelay: 0 });\n const intent = intentRef.current;\n const hoverEnabledRef = useRef(false);\n // Read by the scheduled close so a timer from a menu that already closed\n // cannot emit onOpenChange(false) over a sibling that opened since.\n const openRef = useRef(surface.open);\n openRef.current = surface.open;\n\n const cancelHoverClose = useCallback(() => intent.clearCloseTimer(), [intent]);\n const scheduleHoverClose = useCallback(() => {\n intent.scheduleClose(() => {\n if (openRef.current) surface.close();\n });\n }, [intent, surface]);\n\n const value = useMemo(\n () => ({\n ...surface,\n cancelHoverClose,\n dir,\n disabled,\n hoverEnabledRef,\n loop,\n scheduleHoverClose,\n }),\n [cancelHoverClose, surface, dir, disabled, loop, scheduleHoverClose],\n );\n return (\n <div className={className} data-uiify-menu=\"\">\n <DropdownMenuProvider value={value}>{children}</DropdownMenuProvider>\n </div>\n );\n}\n\nexport function DropdownMenuTrigger<TAs extends ElementType = \"button\">(\n props: DropdownMenuTriggerProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n className,\n openOnHover = false,\n shape,\n ...consumerProps\n } = props as DropdownMenuTriggerProps<\"button\"> & { openOnHover?: boolean };\n const {\n anchorProps,\n cancelHoverClose,\n close,\n disabled,\n focusTrigger,\n hoverEnabledRef,\n open,\n openPopover,\n openToItem,\n scheduleHoverClose,\n setTriggerElement,\n triggerProps,\n } = useDropdownMenuContext(\"Trigger\");\n hoverEnabledRef.current = openOnHover;\n const [consumerRef, withoutRef] = splitRef<HTMLElement, typeof consumerProps>(consumerProps);\n const mergedRef = useMergedRefs(setTriggerElement, consumerRef);\n const nativeButton = !as || as === \"button\";\n const {\n onClick: consumerOnClick,\n onKeyDown: consumerOnKeyDown,\n onPointerEnter: consumerOnPointerEnter,\n onPointerLeave: consumerOnPointerLeave,\n } = withoutRef as {\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n onKeyDown?: (event: KeyboardEvent<HTMLButtonElement>) => void;\n onPointerEnter?: (event: PointerEvent<HTMLElement>) => void;\n onPointerLeave?: (event: PointerEvent<HTMLElement>) => void;\n };\n const internalOnClick = triggerProps.onClick as (event: MouseEvent<HTMLButtonElement>) => void;\n const handlePointerEnter = () => {\n if (disabled) return;\n cancelHoverClose();\n if (!open) openPopover();\n };\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n if (disabled) return;\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n if (open) close();\n else openToItem(false);\n } else if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n event.preventDefault();\n openToItem(event.key === \"ArrowUp\");\n } else if (event.key === \"Escape\" && open) {\n event.preventDefault();\n close();\n focusTrigger();\n }\n };\n return useRenderElement({\n as,\n defaultTag: \"button\",\n render,\n props: {\n ...withoutRef,\n ...triggerProps,\n ...anchorProps,\n ref: mergedRef,\n ...(nativeButton ? { \"data-uiify-button\": \"\" } : {}),\n \"aria-haspopup\": \"menu\",\n \"data-part\": \"trigger\",\n ...(shape !== undefined ? { \"data-shape\": shape } : {}),\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-disabled\": disabled ? \"\" : undefined,\n disabled: nativeButton && disabled ? true : undefined,\n ...(nativeButton && !triggerProps.type ? { type: \"button\" } : {}),\n ...(className ? { className } : {}),\n onClick: disabled ? consumerOnClick : composeEventHandlers(consumerOnClick, internalOnClick),\n onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),\n ...(openOnHover && !disabled\n ? {\n onPointerEnter: composeEventHandlers(consumerOnPointerEnter, handlePointerEnter),\n onPointerLeave: composeEventHandlers(consumerOnPointerLeave, scheduleHoverClose),\n }\n : {}),\n },\n state: { open },\n });\n}\n\nexport function DropdownMenuContent<TAs extends ElementType = \"div\">(\n props: DropdownMenuContentProps<TAs>,\n): ReactElement | null {\n const {\n align = \"start\",\n as,\n className,\n side = \"bottom\",\n children,\n render,\n ...consumerProps\n } = props as DropdownMenuContentProps<\"div\">;\n const {\n cancelHoverClose,\n close,\n contentRef,\n dir,\n focusTrigger,\n hoverEnabledRef,\n loop,\n open,\n popupProps,\n popupRef,\n positionerProps,\n scheduleHoverClose,\n } = useDropdownMenuContext(\"Content\");\n const [consumerRef, withoutRef] = splitRef<HTMLElement, typeof consumerProps>(consumerProps);\n const mergedRef = useMergedRefs(popupRef, contentRef, consumerRef);\n const {\n onKeyDown: consumerOnKeyDown,\n onPointerEnter: consumerOnPointerEnter,\n onPointerLeave: consumerOnPointerLeave,\n } = withoutRef as {\n onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;\n onPointerEnter?: (event: PointerEvent<HTMLElement>) => void;\n onPointerLeave?: (event: PointerEvent<HTMLElement>) => void;\n };\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n close();\n focusTrigger();\n }\n };\n const contentProps = {\n ...withoutRef,\n ...popupProps,\n ...positionerProps,\n ref: mergedRef,\n role: \"menu\",\n \"data-part\": \"content\",\n \"data-align\": align,\n \"data-side\": side,\n \"data-state\": open ? \"open\" : \"closed\",\n ...(className ? { className } : {}),\n onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),\n ...(hoverEnabledRef.current\n ? {\n onPointerEnter: composeEventHandlers(consumerOnPointerEnter, cancelHoverClose),\n onPointerLeave: composeEventHandlers(consumerOnPointerLeave, scheduleHoverClose),\n }\n : {}),\n children,\n };\n if (render)\n return (\n <RovingFocusRoot\n direction={dir}\n loop={loop}\n orientation=\"vertical\"\n {...contentProps}\n render={(p) => render(p, { open })}\n />\n );\n return (\n <RovingFocusRoot\n as={as ?? \"div\"}\n direction={dir}\n loop={loop}\n orientation=\"vertical\"\n {...contentProps}\n />\n );\n}\n\ninterface ItemActivationOptions {\n closeOnSelect: boolean;\n disabled: boolean;\n onSelect?: DropdownMenuItemProps[\"onSelect\"];\n onStateChange?: () => void;\n}\nfunction useItemActivation({\n closeOnSelect,\n disabled,\n onSelect,\n onStateChange,\n}: ItemActivationOptions) {\n const { close, focusTrigger } = useDropdownMenuContext(\"Item\");\n const select = (event: SyntheticEvent<HTMLElement>) => {\n if (disabled) return;\n const selectEvent = createMenuSelectEvent();\n onSelect?.(selectEvent);\n if (!selectEvent.defaultPrevented) {\n onStateChange?.();\n if (closeOnSelect) {\n close();\n focusTrigger();\n }\n }\n event.preventDefault();\n };\n return {\n select,\n keyDown: (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === \"Enter\" || event.key === \" \") select(event);\n },\n };\n}\n\nfunction MenuItem<TAs extends ElementType>(\n props: DropdownMenuItemProps<TAs> & {\n roleName: string;\n checked?: boolean | \"mixed\";\n state?: string;\n onStateChange?: () => void;\n defaultClose: boolean;\n },\n): ReactElement | null {\n const {\n as,\n render,\n children,\n className,\n closeOnSelect,\n disabled = false,\n onSelect,\n textValue,\n roleName,\n checked,\n state,\n onStateChange,\n defaultClose,\n ...consumerProps\n } = props as DropdownMenuItemProps<\"div\"> & {\n roleName: string;\n checked?: boolean | \"mixed\";\n state?: string;\n onStateChange?: () => void;\n defaultClose: boolean;\n };\n const { onClick: consumerOnClick, onKeyDown: consumerOnKeyDown } = consumerProps as {\n onClick?: (event: SyntheticEvent<HTMLElement>) => void;\n onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;\n };\n const activation = useItemActivation({\n closeOnSelect: closeOnSelect ?? defaultClose,\n disabled,\n onSelect,\n ...(onStateChange ? { onStateChange } : {}),\n });\n const itemProps = {\n ...consumerProps,\n role: roleName,\n \"aria-checked\": checked,\n \"data-part\": roleName === \"menuitem\" ? \"item\" : roleName.replace(\"menuitem\", \"\") + \"-item\",\n \"data-state\": state,\n ...(className ? { className } : {}),\n onClick: composeEventHandlers(consumerOnClick, activation.select),\n onKeyDown: composeEventHandlers(consumerOnKeyDown, activation.keyDown),\n children,\n };\n if (render)\n return (\n <RovingFocusItem\n disabled={disabled}\n {...(textValue !== undefined ? { textValue } : {})}\n {...(itemProps as object)}\n render={(p) => render(p, { disabled })}\n />\n );\n return (\n <RovingFocusItem\n as={as ?? \"div\"}\n disabled={disabled}\n {...(textValue !== undefined ? { textValue } : {})}\n {...(itemProps as object)}\n />\n );\n}\n\nexport function DropdownMenuItem<TAs extends ElementType = \"div\">(\n props: DropdownMenuItemProps<TAs>,\n): ReactElement | null {\n return <MenuItem {...props} roleName=\"menuitem\" defaultClose />;\n}\n\ninterface SelectionContextValue {\n checked: DropdownMenuCheckedState;\n kind: \"checkbox\" | \"radio\";\n}\nconst [SelectionProvider, useSelectionContext] = createPartContext<SelectionContextValue>(\n \"DropdownMenu\",\n \"ItemIndicator\",\n);\n\nexport function DropdownMenuCheckboxItem<TAs extends ElementType = \"div\">(\n props: DropdownMenuCheckboxItemProps<TAs>,\n): ReactElement | null {\n const { checked: controlled, defaultChecked = false, onCheckedChange, ...itemProps } = props;\n const [checked, setChecked] = useControllableState<DropdownMenuCheckedState>({\n value: controlled,\n defaultValue: defaultChecked,\n });\n const next = checked === \"indeterminate\" ? true : !checked;\n return (\n <SelectionProvider value={{ checked, kind: \"checkbox\" }}>\n <MenuItem\n {...(itemProps as DropdownMenuItemProps<ElementType>)}\n roleName=\"menuitemcheckbox\"\n checked={checked === \"indeterminate\" ? \"mixed\" : checked}\n state={checked === \"indeterminate\" ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\"}\n defaultClose={false}\n onStateChange={() => {\n setChecked(next);\n onCheckedChange?.(next);\n }}\n />\n </SelectionProvider>\n );\n}\n\ninterface RadioContextValue {\n setValue: (value: string) => void;\n value: string | undefined;\n}\nconst [RadioProvider, useRadioContext] = createPartContext<RadioContextValue>(\n \"DropdownMenu\",\n \"RadioGroup\",\n);\nexport function DropdownMenuRadioGroup<TAs extends ElementType = \"div\">(\n props: DropdownMenuRadioGroupProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n children,\n defaultValue,\n onValueChange,\n value: controlled,\n ...consumerProps\n } = props as DropdownMenuRadioGroupProps<\"div\">;\n const [value, setValue] = useControllableState<string | undefined>({\n value: controlled,\n defaultValue,\n ...(onValueChange\n ? {\n onChange: (next) => {\n if (next !== undefined) onValueChange(next);\n },\n }\n : {}),\n });\n return (\n <RadioProvider value={{ value, setValue }}>\n {useRenderElement({\n as,\n defaultTag: \"div\",\n render,\n props: { ...consumerProps, role: \"group\", \"data-part\": \"radio-group\", children },\n state: { value },\n })}\n </RadioProvider>\n );\n}\nexport function DropdownMenuRadioItem<TAs extends ElementType = \"div\">(\n props: DropdownMenuRadioItemProps<TAs>,\n): ReactElement | null {\n const { value, ...itemProps } = props;\n const radio = useRadioContext(\"RadioItem\");\n const checked = radio.value === value;\n return (\n <SelectionProvider value={{ checked, kind: \"radio\" }}>\n <MenuItem\n {...(itemProps as DropdownMenuItemProps<ElementType>)}\n roleName=\"menuitemradio\"\n checked={checked}\n state={checked ? \"checked\" : \"unchecked\"}\n defaultClose={false}\n onStateChange={() => radio.setValue(value)}\n />\n </SelectionProvider>\n );\n}\n\nfunction Part<TAs extends ElementType = \"span\">({\n part,\n defaultTag,\n ...props\n}: DropdownMenuPartProps<TAs> & { part: string; defaultTag: ElementType }): ReactElement | null {\n const { as, render, children, className, ...consumerProps } =\n props as DropdownMenuPartProps<\"span\">;\n return useRenderElement({\n as,\n defaultTag,\n render,\n props: { ...consumerProps, \"data-part\": part, ...(className ? { className } : {}), children },\n state: {},\n });\n}\nexport const DropdownMenuItemIcon = <TAs extends ElementType = \"span\">(\n p: DropdownMenuItemIconProps<TAs>,\n) => <Part {...p} part=\"item-icon\" defaultTag=\"span\" />;\nexport const DropdownMenuItemText = <TAs extends ElementType = \"span\">(\n p: DropdownMenuItemTextProps<TAs>,\n) => <Part {...p} part=\"item-text\" defaultTag=\"span\" />;\nexport const DropdownMenuItemDescription = <TAs extends ElementType = \"span\">(\n p: DropdownMenuItemDescriptionProps<TAs>,\n) => <Part {...p} part=\"item-description\" defaultTag=\"span\" />;\nexport const DropdownMenuShortcut = <TAs extends ElementType = \"span\">(\n p: DropdownMenuShortcutProps<TAs>,\n) => <Part {...p} part=\"shortcut\" defaultTag=\"kbd\" />;\nexport function DropdownMenuItemIndicator<TAs extends ElementType = \"span\">(\n p: DropdownMenuItemIndicatorProps<TAs>,\n): ReactElement | null {\n const s = useSelectionContext(\"ItemIndicator\");\n return (\n <Part\n {...p}\n part=\"item-indicator\"\n defaultTag=\"span\"\n data-state={\n s.checked === \"indeterminate\" ? \"indeterminate\" : s.checked ? \"checked\" : \"unchecked\"\n }\n />\n );\n}\nexport function DropdownMenuGroup<TAs extends ElementType = \"div\">(\n p: DropdownMenuGroupProps<TAs>,\n): ReactElement | null {\n return <MenuGroup {...p} />;\n}\nexport function DropdownMenuLabel<TAs extends ElementType = \"div\">(\n p: DropdownMenuLabelProps<TAs>,\n): ReactElement | null {\n return <MenuLabel {...p} />;\n}\nexport function DropdownMenuSeparator<TAs extends ElementType = \"div\">(\n p: DropdownMenuSeparatorProps<TAs>,\n): ReactElement | null {\n return <MenuSeparator {...p} />;\n}\n\ninterface SubValue {\n clickedRef: RefObject<boolean>;\n contentRef: React.RefObject<HTMLElement | null>;\n open: boolean;\n popover: ReturnType<typeof usePopover>;\n anchor: ReturnType<typeof useAnchorPosition>;\n triggerRef: React.RefObject<HTMLElement | null>;\n}\nconst [SubProvider, useSubContext] = createPartContext<SubValue>(\"DropdownMenu\", \"Sub\");\nexport function DropdownMenuSub(props: DropdownMenuSubProps): ReactElement | null {\n const { children, defaultOpen, onOpenChange, open } = props;\n const contentRef = useRef<HTMLElement | null>(null);\n const triggerRef = useRef<HTMLElement | null>(null);\n const popover = usePopover({\n mode: \"auto\",\n ...(defaultOpen !== undefined ? { defaultOpen } : {}),\n ...(open !== undefined ? { open } : {}),\n ...(onOpenChange\n ? {\n onOpenChange: (next, details) =>\n onOpenChange(next, { event: details.event, reason: mapReason(details.reason) }),\n }\n : {}),\n });\n const anchor = useAnchorPosition();\n const clickedRef = useRef(false);\n const value = useMemo(\n () => ({ anchor, clickedRef, contentRef, open: popover.open, popover, triggerRef }),\n [anchor, popover, clickedRef],\n );\n return <SubProvider value={value}>{children}</SubProvider>;\n}\nexport function DropdownMenuSubTrigger<TAs extends ElementType = \"button\">(\n props: DropdownMenuSubTriggerProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n children,\n disabled = false,\n textValue,\n ...consumerProps\n } = props as DropdownMenuSubTriggerProps<\"div\">;\n const sub = useSubContext(\"SubTrigger\");\n const root = useDropdownMenuContext(\"SubTrigger\");\n const { clickedRef } = sub;\n const { onClick, onKeyDown, onPointerEnter, ...withoutEvents } =\n consumerProps as typeof consumerProps & {\n onClick?: (event: MouseEvent<HTMLElement>) => void;\n onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;\n onPointerEnter?: (event: PointerEvent<HTMLElement>) => void;\n };\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n const openKey = root.dir === \"rtl\" ? \"ArrowLeft\" : \"ArrowRight\";\n if (event.key === openKey || event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n clickedRef.current = true;\n sub.popover.openPopover();\n queueMicrotask(() => focusMenuItem(sub.contentRef.current));\n }\n };\n const handlePointerEnter = () => {\n clickedRef.current = false;\n sub.popover.openPopover();\n };\n const handlePointerLeave = (event: PointerEvent<HTMLElement>) => {\n if (clickedRef.current) return;\n const nextTarget = event.relatedTarget;\n if (nextTarget instanceof Node && sub.contentRef.current?.contains(nextTarget)) return;\n sub.popover.close();\n };\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n clickedRef.current = true;\n if (!sub.open) {\n (sub.popover.triggerProps.onClick as (event: MouseEvent<HTMLElement>) => void)(event);\n }\n };\n const triggerProps = {\n ...(withoutEvents as object),\n ...sub.popover.triggerProps,\n ...sub.anchor.anchorProps,\n command: \"show-popover\",\n ref: sub.triggerRef,\n role: \"menuitem\",\n \"aria-haspopup\": \"menu\" as const,\n \"aria-expanded\": sub.open,\n \"data-part\": \"sub-trigger\",\n \"data-state\": sub.open ? \"open\" : \"closed\",\n onClick: composeEventHandlers(onClick, handleClick),\n onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown),\n onPointerEnter: composeEventHandlers(onPointerEnter, handlePointerEnter),\n onPointerLeave: handlePointerLeave,\n children,\n };\n if (render)\n return (\n <RovingFocusItem\n {...(triggerProps as object)}\n disabled={disabled}\n {...(textValue !== undefined ? { textValue } : {})}\n render={(p) => render(p, { disabled, open: sub.open })}\n />\n );\n return (\n <RovingFocusItem\n as={as ?? \"button\"}\n {...(triggerProps as object)}\n disabled={disabled}\n {...(textValue !== undefined ? { textValue } : {})}\n />\n );\n}\nexport function DropdownMenuSubContent<TAs extends ElementType = \"div\">(\n props: DropdownMenuSubContentProps<TAs>,\n): ReactElement | null {\n const {\n align = \"start\",\n as,\n render,\n side = \"right\",\n children,\n ...consumerProps\n } = props as DropdownMenuSubContentProps<\"div\">;\n const sub = useSubContext(\"SubContent\");\n const root = useDropdownMenuContext(\"SubContent\");\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n const closeKey = root.dir === \"rtl\" ? \"ArrowRight\" : \"ArrowLeft\";\n if (event.key === closeKey || event.key === \"Escape\") {\n event.preventDefault();\n sub.popover.close();\n sub.triggerRef.current?.focus();\n }\n };\n const contentProps = {\n ...consumerProps,\n ...sub.popover.popupProps,\n ...sub.anchor.positionerProps,\n ref: useMergedRefs(sub.popover.popupRef, sub.contentRef),\n role: \"menu\",\n \"data-part\": \"sub-content\",\n \"data-state\": sub.open ? \"open\" : \"closed\",\n \"data-side\": side,\n \"data-align\": align,\n onKeyDown: handleKeyDown,\n onPointerLeave: (event: PointerEvent<HTMLElement>) => {\n if (sub.clickedRef.current) return;\n const nextTarget = event.relatedTarget;\n if (!(nextTarget instanceof Node) || !sub.triggerRef.current?.contains(nextTarget)) {\n sub.popover.close();\n }\n },\n children,\n };\n if (render)\n return (\n <RovingFocusRoot\n direction={root.dir}\n loop={root.loop}\n orientation=\"vertical\"\n {...contentProps}\n render={(p) => render(p, { open: sub.open })}\n />\n );\n return (\n <RovingFocusRoot\n as={as ?? \"div\"}\n direction={root.dir}\n loop={root.loop}\n orientation=\"vertical\"\n {...contentProps}\n />\n );\n}\n\nDropdownMenuRoot.displayName = \"DropdownMenuRoot\";\nDropdownMenuTrigger.displayName = \"DropdownMenuTrigger\";\nDropdownMenuContent.displayName = \"DropdownMenuContent\";\nMenuItem.displayName = \"DropdownMenuItemBase\";\nDropdownMenuItem.displayName = \"DropdownMenuItem\";\nDropdownMenuCheckboxItem.displayName = \"DropdownMenuCheckboxItem\";\nDropdownMenuRadioGroup.displayName = \"DropdownMenuRadioGroup\";\nDropdownMenuRadioItem.displayName = \"DropdownMenuRadioItem\";\nPart.displayName = \"DropdownMenuPart\";\nDropdownMenuItemIcon.displayName = \"DropdownMenuItemIcon\";\nDropdownMenuItemText.displayName = \"DropdownMenuItemText\";\nDropdownMenuItemDescription.displayName = \"DropdownMenuItemDescription\";\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\nDropdownMenuItemIndicator.displayName = \"DropdownMenuItemIndicator\";\nDropdownMenuGroup.displayName = \"DropdownMenuGroup\";\nDropdownMenuLabel.displayName = \"DropdownMenuLabel\";\nDropdownMenuSeparator.displayName = \"DropdownMenuSeparator\";\nDropdownMenuSub.displayName = \"DropdownMenuSub\";\nDropdownMenuSubTrigger.displayName = \"DropdownMenuSubTrigger\";\nDropdownMenuSubContent.displayName = \"DropdownMenuSubContent\";\n\nexport const DropdownMenu = {\n Bar: DropdownMenuBar,\n Root: DropdownMenuRoot,\n Trigger: DropdownMenuTrigger,\n Content: DropdownMenuContent,\n Group: DropdownMenuGroup,\n Label: DropdownMenuLabel,\n Item: DropdownMenuItem,\n ItemIcon: DropdownMenuItemIcon,\n ItemText: DropdownMenuItemText,\n ItemDescription: DropdownMenuItemDescription,\n Shortcut: DropdownMenuShortcut,\n Separator: DropdownMenuSeparator,\n CheckboxItem: DropdownMenuCheckboxItem,\n ItemIndicator: DropdownMenuItemIndicator,\n RadioGroup: DropdownMenuRadioGroup,\n RadioItem: DropdownMenuRadioItem,\n Sub: DropdownMenuSub,\n SubTrigger: DropdownMenuSubTrigger,\n SubContent: DropdownMenuSubContent,\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/components/dropdown-menu/DropdownMenu.tsx"],"sourcesContent":["\"use client\";\n\nimport { useCallback, useMemo, useRef } from \"react\";\nimport type {\n ElementType,\n KeyboardEvent,\n MouseEvent,\n PointerEvent,\n ReactElement,\n RefObject,\n SyntheticEvent,\n} from \"react\";\nimport { useControllableState, useMergedRefs } from \"@gunkin/uiify/hooks\";\nimport { createPartContext, splitRef } from \"@gunkin/uiify/core\";\nimport { useAnchorPosition } from \"@gunkin/uiify/core/anchor-position\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { useDirection } from \"@gunkin/uiify/core/direction\";\nimport { createHoverIntentStore } from \"@gunkin/uiify/core/hover-intent-store\";\nimport type { HoverIntentStore } from \"@gunkin/uiify/core/hover-intent-store\";\nimport type { OpenChangeDetails } from \"@gunkin/uiify/core/open-change-details\";\nimport { usePopover } from \"@gunkin/uiify/core/popover\";\nimport { RovingFocusItem, RovingFocusRoot } from \"@gunkin/uiify/core/roving-focus\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { createMenuSelectEvent } from \"../internal/menu/menu-utils.js\";\nimport { focusMenuItem } from \"../internal/menu/focus-menu-item.js\";\nimport { MenuGroup, MenuLabel, MenuSeparator } from \"../internal/menu/menu-parts.js\";\nimport { useMenuSurface } from \"../internal/menu/use-menu-surface.js\";\nimport { DropdownMenuBar } from \"./DropdownMenuBar.js\";\nimport type {\n DropdownMenuCheckedState,\n DropdownMenuCheckboxItemProps,\n DropdownMenuContentProps,\n DropdownMenuContextValue,\n DropdownMenuGroupProps,\n DropdownMenuItemDescriptionProps,\n DropdownMenuItemIconProps,\n DropdownMenuItemIndicatorProps,\n DropdownMenuItemProps,\n DropdownMenuItemTextProps,\n DropdownMenuLabelProps,\n DropdownMenuOpenChangeReason,\n DropdownMenuPartProps,\n DropdownMenuRadioGroupProps,\n DropdownMenuRadioItemProps,\n DropdownMenuRootProps,\n DropdownMenuSeparatorProps,\n DropdownMenuShortcutProps,\n DropdownMenuSubContentProps,\n DropdownMenuSubProps,\n DropdownMenuSubTriggerProps,\n DropdownMenuTriggerProps,\n} from \"./types.js\";\n\nexport type { MenuSelectEvent } from \"./types.js\";\n\nfunction mapReason(reason: OpenChangeDetails[\"reason\"]): DropdownMenuOpenChangeReason {\n if (reason === \"escape-key\") return \"escape\";\n if (reason === \"focus-outside\") return \"focus-out\";\n if (reason === \"native-toggle\") return \"trigger-press\";\n return reason;\n}\n\nconst [DropdownMenuProvider, useDropdownMenuContext] =\n createPartContext<DropdownMenuContextValue>(\"DropdownMenu\");\n\nexport function DropdownMenuRoot(props: DropdownMenuRootProps): ReactElement | null {\n const {\n children,\n className,\n defaultOpen,\n dir: localDir,\n disabled = false,\n loop = true,\n onOpenChange,\n open,\n } = props;\n const dir = useDirection(localDir);\n const surface = useMenuSurface({\n mode: \"auto\",\n ...(defaultOpen !== undefined ? { defaultOpen } : {}),\n ...(open !== undefined ? { open } : {}),\n ...(onOpenChange\n ? {\n onOpenChange: (next, details) =>\n onOpenChange(next, { event: details.event, reason: mapReason(details.reason) }),\n }\n : {}),\n });\n const intentRef = useRef<HoverIntentStore | null>(null);\n intentRef.current ??= createHoverIntentStore({ closeDelay: 150, openDelay: 0 });\n const intent = intentRef.current;\n const hoverEnabledRef = useRef(false);\n // Read by the scheduled close so a timer from a menu that already closed\n // cannot emit onOpenChange(false) over a sibling that opened since.\n const openRef = useRef(surface.open);\n openRef.current = surface.open;\n\n const cancelHoverClose = useCallback(() => intent.clearCloseTimer(), [intent]);\n const scheduleHoverClose = useCallback(() => {\n intent.scheduleClose(() => {\n if (openRef.current) surface.close();\n });\n }, [intent, surface]);\n\n const value = useMemo(\n () => ({\n ...surface,\n cancelHoverClose,\n dir,\n disabled,\n hoverEnabledRef,\n loop,\n scheduleHoverClose,\n }),\n [cancelHoverClose, surface, dir, disabled, loop, scheduleHoverClose],\n );\n return (\n <div className={className} data-uiify-menu=\"\">\n <DropdownMenuProvider value={value}>{children}</DropdownMenuProvider>\n </div>\n );\n}\n\nexport function DropdownMenuTrigger<TAs extends ElementType = \"button\">(\n props: DropdownMenuTriggerProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n className,\n openOnHover = false,\n ...consumerProps\n } = props as DropdownMenuTriggerProps<\"button\"> & { openOnHover?: boolean };\n const {\n anchorProps,\n cancelHoverClose,\n close,\n disabled,\n focusTrigger,\n hoverEnabledRef,\n open,\n openPopover,\n openToItem,\n scheduleHoverClose,\n setTriggerElement,\n triggerProps,\n } = useDropdownMenuContext(\"Trigger\");\n hoverEnabledRef.current = openOnHover;\n const [consumerRef, withoutRef] = splitRef<HTMLElement, typeof consumerProps>(consumerProps);\n const mergedRef = useMergedRefs(setTriggerElement, consumerRef);\n const nativeButton = !as || as === \"button\";\n const {\n onClick: consumerOnClick,\n onKeyDown: consumerOnKeyDown,\n onPointerEnter: consumerOnPointerEnter,\n onPointerLeave: consumerOnPointerLeave,\n } = withoutRef as {\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n onKeyDown?: (event: KeyboardEvent<HTMLButtonElement>) => void;\n onPointerEnter?: (event: PointerEvent<HTMLElement>) => void;\n onPointerLeave?: (event: PointerEvent<HTMLElement>) => void;\n };\n const internalOnClick = triggerProps.onClick as (event: MouseEvent<HTMLButtonElement>) => void;\n const handlePointerEnter = () => {\n if (disabled) return;\n cancelHoverClose();\n if (!open) openPopover();\n };\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n if (disabled) return;\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n if (open) close();\n else openToItem(false);\n } else if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n event.preventDefault();\n openToItem(event.key === \"ArrowUp\");\n } else if (event.key === \"Escape\" && open) {\n event.preventDefault();\n close();\n focusTrigger();\n }\n };\n return useRenderElement({\n as,\n defaultTag: \"button\",\n render,\n props: {\n ...withoutRef,\n ...triggerProps,\n ...anchorProps,\n ref: mergedRef,\n ...(nativeButton ? { \"data-uiify-button\": \"\" } : {}),\n \"aria-haspopup\": \"menu\",\n \"data-part\": \"trigger\",\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-disabled\": disabled ? \"\" : undefined,\n disabled: nativeButton && disabled ? true : undefined,\n ...(nativeButton && !triggerProps.type ? { type: \"button\" } : {}),\n ...(className ? { className } : {}),\n onClick: disabled ? consumerOnClick : composeEventHandlers(consumerOnClick, internalOnClick),\n onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),\n ...(openOnHover && !disabled\n ? {\n onPointerEnter: composeEventHandlers(consumerOnPointerEnter, handlePointerEnter),\n onPointerLeave: composeEventHandlers(consumerOnPointerLeave, scheduleHoverClose),\n }\n : {}),\n },\n state: { open },\n });\n}\n\nexport function DropdownMenuContent<TAs extends ElementType = \"div\">(\n props: DropdownMenuContentProps<TAs>,\n): ReactElement | null {\n const {\n align = \"start\",\n as,\n className,\n side = \"bottom\",\n children,\n render,\n ...consumerProps\n } = props as DropdownMenuContentProps<\"div\">;\n const {\n cancelHoverClose,\n close,\n contentRef,\n dir,\n focusTrigger,\n hoverEnabledRef,\n loop,\n open,\n popupProps,\n popupRef,\n positionerProps,\n scheduleHoverClose,\n } = useDropdownMenuContext(\"Content\");\n const [consumerRef, withoutRef] = splitRef<HTMLElement, typeof consumerProps>(consumerProps);\n const mergedRef = useMergedRefs(popupRef, contentRef, consumerRef);\n const {\n onKeyDown: consumerOnKeyDown,\n onPointerEnter: consumerOnPointerEnter,\n onPointerLeave: consumerOnPointerLeave,\n } = withoutRef as {\n onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;\n onPointerEnter?: (event: PointerEvent<HTMLElement>) => void;\n onPointerLeave?: (event: PointerEvent<HTMLElement>) => void;\n };\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n close();\n focusTrigger();\n }\n };\n const contentProps = {\n ...withoutRef,\n ...popupProps,\n ...positionerProps,\n ref: mergedRef,\n role: \"menu\",\n \"data-part\": \"content\",\n \"data-align\": align,\n \"data-side\": side,\n \"data-state\": open ? \"open\" : \"closed\",\n ...(className ? { className } : {}),\n onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),\n ...(hoverEnabledRef.current\n ? {\n onPointerEnter: composeEventHandlers(consumerOnPointerEnter, cancelHoverClose),\n onPointerLeave: composeEventHandlers(consumerOnPointerLeave, scheduleHoverClose),\n }\n : {}),\n children,\n };\n if (render)\n return (\n <RovingFocusRoot\n direction={dir}\n loop={loop}\n orientation=\"vertical\"\n {...contentProps}\n render={(p) => render(p, { open })}\n />\n );\n return (\n <RovingFocusRoot\n as={as ?? \"div\"}\n direction={dir}\n loop={loop}\n orientation=\"vertical\"\n {...contentProps}\n />\n );\n}\n\ninterface ItemActivationOptions {\n closeOnSelect: boolean;\n disabled: boolean;\n onSelect?: DropdownMenuItemProps[\"onSelect\"];\n onStateChange?: () => void;\n}\nfunction useItemActivation({\n closeOnSelect,\n disabled,\n onSelect,\n onStateChange,\n}: ItemActivationOptions) {\n const { close, focusTrigger } = useDropdownMenuContext(\"Item\");\n const select = (event: SyntheticEvent<HTMLElement>) => {\n if (disabled) return;\n const selectEvent = createMenuSelectEvent();\n onSelect?.(selectEvent);\n if (!selectEvent.defaultPrevented) {\n onStateChange?.();\n if (closeOnSelect) {\n close();\n focusTrigger();\n }\n }\n event.preventDefault();\n };\n return {\n select,\n keyDown: (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === \"Enter\" || event.key === \" \") select(event);\n },\n };\n}\n\nfunction MenuItem<TAs extends ElementType>(\n props: DropdownMenuItemProps<TAs> & {\n roleName: string;\n checked?: boolean | \"mixed\";\n state?: string;\n onStateChange?: () => void;\n defaultClose: boolean;\n },\n): ReactElement | null {\n const {\n as,\n render,\n children,\n className,\n closeOnSelect,\n disabled = false,\n onSelect,\n textValue,\n roleName,\n checked,\n state,\n onStateChange,\n defaultClose,\n ...consumerProps\n } = props as DropdownMenuItemProps<\"div\"> & {\n roleName: string;\n checked?: boolean | \"mixed\";\n state?: string;\n onStateChange?: () => void;\n defaultClose: boolean;\n };\n const { onClick: consumerOnClick, onKeyDown: consumerOnKeyDown } = consumerProps as {\n onClick?: (event: SyntheticEvent<HTMLElement>) => void;\n onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;\n };\n const activation = useItemActivation({\n closeOnSelect: closeOnSelect ?? defaultClose,\n disabled,\n onSelect,\n ...(onStateChange ? { onStateChange } : {}),\n });\n const itemProps = {\n ...consumerProps,\n role: roleName,\n \"aria-checked\": checked,\n \"data-part\": roleName === \"menuitem\" ? \"item\" : roleName.replace(\"menuitem\", \"\") + \"-item\",\n \"data-state\": state,\n ...(className ? { className } : {}),\n onClick: composeEventHandlers(consumerOnClick, activation.select),\n onKeyDown: composeEventHandlers(consumerOnKeyDown, activation.keyDown),\n children,\n };\n if (render)\n return (\n <RovingFocusItem\n disabled={disabled}\n {...(textValue !== undefined ? { textValue } : {})}\n {...(itemProps as object)}\n render={(p) => render(p, { disabled })}\n />\n );\n return (\n <RovingFocusItem\n as={as ?? \"div\"}\n disabled={disabled}\n {...(textValue !== undefined ? { textValue } : {})}\n {...(itemProps as object)}\n />\n );\n}\n\nexport function DropdownMenuItem<TAs extends ElementType = \"div\">(\n props: DropdownMenuItemProps<TAs>,\n): ReactElement | null {\n return <MenuItem {...props} roleName=\"menuitem\" defaultClose />;\n}\n\ninterface SelectionContextValue {\n checked: DropdownMenuCheckedState;\n kind: \"checkbox\" | \"radio\";\n}\nconst [SelectionProvider, useSelectionContext] = createPartContext<SelectionContextValue>(\n \"DropdownMenu\",\n \"ItemIndicator\",\n);\n\nexport function DropdownMenuCheckboxItem<TAs extends ElementType = \"div\">(\n props: DropdownMenuCheckboxItemProps<TAs>,\n): ReactElement | null {\n const { checked: controlled, defaultChecked = false, onCheckedChange, ...itemProps } = props;\n const [checked, setChecked] = useControllableState<DropdownMenuCheckedState>({\n value: controlled,\n defaultValue: defaultChecked,\n });\n const next = checked === \"indeterminate\" ? true : !checked;\n return (\n <SelectionProvider value={{ checked, kind: \"checkbox\" }}>\n <MenuItem\n {...(itemProps as DropdownMenuItemProps<ElementType>)}\n roleName=\"menuitemcheckbox\"\n checked={checked === \"indeterminate\" ? \"mixed\" : checked}\n state={checked === \"indeterminate\" ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\"}\n defaultClose={false}\n onStateChange={() => {\n setChecked(next);\n onCheckedChange?.(next);\n }}\n />\n </SelectionProvider>\n );\n}\n\ninterface RadioContextValue {\n setValue: (value: string) => void;\n value: string | undefined;\n}\nconst [RadioProvider, useRadioContext] = createPartContext<RadioContextValue>(\n \"DropdownMenu\",\n \"RadioGroup\",\n);\nexport function DropdownMenuRadioGroup<TAs extends ElementType = \"div\">(\n props: DropdownMenuRadioGroupProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n children,\n defaultValue,\n onValueChange,\n value: controlled,\n ...consumerProps\n } = props as DropdownMenuRadioGroupProps<\"div\">;\n const [value, setValue] = useControllableState<string | undefined>({\n value: controlled,\n defaultValue,\n ...(onValueChange\n ? {\n onChange: (next) => {\n if (next !== undefined) onValueChange(next);\n },\n }\n : {}),\n });\n return (\n <RadioProvider value={{ value, setValue }}>\n {useRenderElement({\n as,\n defaultTag: \"div\",\n render,\n props: { ...consumerProps, role: \"group\", \"data-part\": \"radio-group\", children },\n state: { value },\n })}\n </RadioProvider>\n );\n}\nexport function DropdownMenuRadioItem<TAs extends ElementType = \"div\">(\n props: DropdownMenuRadioItemProps<TAs>,\n): ReactElement | null {\n const { value, ...itemProps } = props;\n const radio = useRadioContext(\"RadioItem\");\n const checked = radio.value === value;\n return (\n <SelectionProvider value={{ checked, kind: \"radio\" }}>\n <MenuItem\n {...(itemProps as DropdownMenuItemProps<ElementType>)}\n roleName=\"menuitemradio\"\n checked={checked}\n state={checked ? \"checked\" : \"unchecked\"}\n defaultClose={false}\n onStateChange={() => radio.setValue(value)}\n />\n </SelectionProvider>\n );\n}\n\nfunction Part<TAs extends ElementType = \"span\">({\n part,\n defaultTag,\n ...props\n}: DropdownMenuPartProps<TAs> & { part: string; defaultTag: ElementType }): ReactElement | null {\n const { as, render, children, className, ...consumerProps } =\n props as DropdownMenuPartProps<\"span\">;\n return useRenderElement({\n as,\n defaultTag,\n render,\n props: { ...consumerProps, \"data-part\": part, ...(className ? { className } : {}), children },\n state: {},\n });\n}\nexport const DropdownMenuItemIcon = <TAs extends ElementType = \"span\">(\n p: DropdownMenuItemIconProps<TAs>,\n) => <Part {...p} part=\"item-icon\" defaultTag=\"span\" />;\nexport const DropdownMenuItemText = <TAs extends ElementType = \"span\">(\n p: DropdownMenuItemTextProps<TAs>,\n) => <Part {...p} part=\"item-text\" defaultTag=\"span\" />;\nexport const DropdownMenuItemDescription = <TAs extends ElementType = \"span\">(\n p: DropdownMenuItemDescriptionProps<TAs>,\n) => <Part {...p} part=\"item-description\" defaultTag=\"span\" />;\nexport const DropdownMenuShortcut = <TAs extends ElementType = \"span\">(\n p: DropdownMenuShortcutProps<TAs>,\n) => <Part {...p} part=\"shortcut\" defaultTag=\"kbd\" />;\nexport function DropdownMenuItemIndicator<TAs extends ElementType = \"span\">(\n p: DropdownMenuItemIndicatorProps<TAs>,\n): ReactElement | null {\n const s = useSelectionContext(\"ItemIndicator\");\n return (\n <Part\n {...p}\n part=\"item-indicator\"\n defaultTag=\"span\"\n data-state={\n s.checked === \"indeterminate\" ? \"indeterminate\" : s.checked ? \"checked\" : \"unchecked\"\n }\n />\n );\n}\nexport function DropdownMenuGroup<TAs extends ElementType = \"div\">(\n p: DropdownMenuGroupProps<TAs>,\n): ReactElement | null {\n return <MenuGroup {...p} />;\n}\nexport function DropdownMenuLabel<TAs extends ElementType = \"div\">(\n p: DropdownMenuLabelProps<TAs>,\n): ReactElement | null {\n return <MenuLabel {...p} />;\n}\nexport function DropdownMenuSeparator<TAs extends ElementType = \"div\">(\n p: DropdownMenuSeparatorProps<TAs>,\n): ReactElement | null {\n return <MenuSeparator {...p} />;\n}\n\ninterface SubValue {\n clickedRef: RefObject<boolean>;\n contentRef: React.RefObject<HTMLElement | null>;\n open: boolean;\n popover: ReturnType<typeof usePopover>;\n anchor: ReturnType<typeof useAnchorPosition>;\n triggerRef: React.RefObject<HTMLElement | null>;\n}\nconst [SubProvider, useSubContext] = createPartContext<SubValue>(\"DropdownMenu\", \"Sub\");\nexport function DropdownMenuSub(props: DropdownMenuSubProps): ReactElement | null {\n const { children, defaultOpen, onOpenChange, open } = props;\n const contentRef = useRef<HTMLElement | null>(null);\n const triggerRef = useRef<HTMLElement | null>(null);\n const popover = usePopover({\n mode: \"auto\",\n ...(defaultOpen !== undefined ? { defaultOpen } : {}),\n ...(open !== undefined ? { open } : {}),\n ...(onOpenChange\n ? {\n onOpenChange: (next, details) =>\n onOpenChange(next, { event: details.event, reason: mapReason(details.reason) }),\n }\n : {}),\n });\n const anchor = useAnchorPosition();\n const clickedRef = useRef(false);\n const value = useMemo(\n () => ({ anchor, clickedRef, contentRef, open: popover.open, popover, triggerRef }),\n [anchor, popover, clickedRef],\n );\n return <SubProvider value={value}>{children}</SubProvider>;\n}\nexport function DropdownMenuSubTrigger<TAs extends ElementType = \"button\">(\n props: DropdownMenuSubTriggerProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n children,\n disabled = false,\n textValue,\n ...consumerProps\n } = props as DropdownMenuSubTriggerProps<\"div\">;\n const sub = useSubContext(\"SubTrigger\");\n const root = useDropdownMenuContext(\"SubTrigger\");\n const { clickedRef } = sub;\n const { onClick, onKeyDown, onPointerEnter, ...withoutEvents } =\n consumerProps as typeof consumerProps & {\n onClick?: (event: MouseEvent<HTMLElement>) => void;\n onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;\n onPointerEnter?: (event: PointerEvent<HTMLElement>) => void;\n };\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n const openKey = root.dir === \"rtl\" ? \"ArrowLeft\" : \"ArrowRight\";\n if (event.key === openKey || event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n clickedRef.current = true;\n sub.popover.openPopover();\n queueMicrotask(() => focusMenuItem(sub.contentRef.current));\n }\n };\n const handlePointerEnter = () => {\n clickedRef.current = false;\n sub.popover.openPopover();\n };\n const handlePointerLeave = (event: PointerEvent<HTMLElement>) => {\n if (clickedRef.current) return;\n const nextTarget = event.relatedTarget;\n if (nextTarget instanceof Node && sub.contentRef.current?.contains(nextTarget)) return;\n sub.popover.close();\n };\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n clickedRef.current = true;\n if (!sub.open) {\n (sub.popover.triggerProps.onClick as (event: MouseEvent<HTMLElement>) => void)(event);\n }\n };\n const triggerProps = {\n ...(withoutEvents as object),\n ...sub.popover.triggerProps,\n ...sub.anchor.anchorProps,\n command: \"show-popover\",\n ref: sub.triggerRef,\n role: \"menuitem\",\n \"aria-haspopup\": \"menu\" as const,\n \"aria-expanded\": sub.open,\n \"data-part\": \"sub-trigger\",\n \"data-state\": sub.open ? \"open\" : \"closed\",\n onClick: composeEventHandlers(onClick, handleClick),\n onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown),\n onPointerEnter: composeEventHandlers(onPointerEnter, handlePointerEnter),\n onPointerLeave: handlePointerLeave,\n children,\n };\n if (render)\n return (\n <RovingFocusItem\n {...(triggerProps as object)}\n disabled={disabled}\n {...(textValue !== undefined ? { textValue } : {})}\n render={(p) => render(p, { disabled, open: sub.open })}\n />\n );\n return (\n <RovingFocusItem\n as={as ?? \"button\"}\n {...(triggerProps as object)}\n disabled={disabled}\n {...(textValue !== undefined ? { textValue } : {})}\n />\n );\n}\nexport function DropdownMenuSubContent<TAs extends ElementType = \"div\">(\n props: DropdownMenuSubContentProps<TAs>,\n): ReactElement | null {\n const {\n align = \"start\",\n as,\n render,\n side = \"right\",\n children,\n ...consumerProps\n } = props as DropdownMenuSubContentProps<\"div\">;\n const sub = useSubContext(\"SubContent\");\n const root = useDropdownMenuContext(\"SubContent\");\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n const closeKey = root.dir === \"rtl\" ? \"ArrowRight\" : \"ArrowLeft\";\n if (event.key === closeKey || event.key === \"Escape\") {\n event.preventDefault();\n sub.popover.close();\n sub.triggerRef.current?.focus();\n }\n };\n const contentProps = {\n ...consumerProps,\n ...sub.popover.popupProps,\n ...sub.anchor.positionerProps,\n ref: useMergedRefs(sub.popover.popupRef, sub.contentRef),\n role: \"menu\",\n \"data-part\": \"sub-content\",\n \"data-state\": sub.open ? \"open\" : \"closed\",\n \"data-side\": side,\n \"data-align\": align,\n onKeyDown: handleKeyDown,\n onPointerLeave: (event: PointerEvent<HTMLElement>) => {\n if (sub.clickedRef.current) return;\n const nextTarget = event.relatedTarget;\n if (!(nextTarget instanceof Node) || !sub.triggerRef.current?.contains(nextTarget)) {\n sub.popover.close();\n }\n },\n children,\n };\n if (render)\n return (\n <RovingFocusRoot\n direction={root.dir}\n loop={root.loop}\n orientation=\"vertical\"\n {...contentProps}\n render={(p) => render(p, { open: sub.open })}\n />\n );\n return (\n <RovingFocusRoot\n as={as ?? \"div\"}\n direction={root.dir}\n loop={root.loop}\n orientation=\"vertical\"\n {...contentProps}\n />\n );\n}\n\nDropdownMenuRoot.displayName = \"DropdownMenuRoot\";\nDropdownMenuTrigger.displayName = \"DropdownMenuTrigger\";\nDropdownMenuContent.displayName = \"DropdownMenuContent\";\nMenuItem.displayName = \"DropdownMenuItemBase\";\nDropdownMenuItem.displayName = \"DropdownMenuItem\";\nDropdownMenuCheckboxItem.displayName = \"DropdownMenuCheckboxItem\";\nDropdownMenuRadioGroup.displayName = \"DropdownMenuRadioGroup\";\nDropdownMenuRadioItem.displayName = \"DropdownMenuRadioItem\";\nPart.displayName = \"DropdownMenuPart\";\nDropdownMenuItemIcon.displayName = \"DropdownMenuItemIcon\";\nDropdownMenuItemText.displayName = \"DropdownMenuItemText\";\nDropdownMenuItemDescription.displayName = \"DropdownMenuItemDescription\";\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\nDropdownMenuItemIndicator.displayName = \"DropdownMenuItemIndicator\";\nDropdownMenuGroup.displayName = \"DropdownMenuGroup\";\nDropdownMenuLabel.displayName = \"DropdownMenuLabel\";\nDropdownMenuSeparator.displayName = \"DropdownMenuSeparator\";\nDropdownMenuSub.displayName = \"DropdownMenuSub\";\nDropdownMenuSubTrigger.displayName = \"DropdownMenuSubTrigger\";\nDropdownMenuSubContent.displayName = \"DropdownMenuSubContent\";\n\nexport const DropdownMenu = {\n Bar: DropdownMenuBar,\n Root: DropdownMenuRoot,\n Trigger: DropdownMenuTrigger,\n Content: DropdownMenuContent,\n Group: DropdownMenuGroup,\n Label: DropdownMenuLabel,\n Item: DropdownMenuItem,\n ItemIcon: DropdownMenuItemIcon,\n ItemText: DropdownMenuItemText,\n ItemDescription: DropdownMenuItemDescription,\n Shortcut: DropdownMenuShortcut,\n Separator: DropdownMenuSeparator,\n CheckboxItem: DropdownMenuCheckboxItem,\n ItemIndicator: DropdownMenuItemIndicator,\n RadioGroup: DropdownMenuRadioGroup,\n RadioItem: DropdownMenuRadioItem,\n Sub: DropdownMenuSub,\n SubTrigger: DropdownMenuSubTrigger,\n SubContent: DropdownMenuSubContent,\n};\n"],"mappings":"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","names":[]}
@@ -41,7 +41,6 @@ export type DropdownMenuRootShellOwnProps = DropdownMenuRootOwnProps;
41
41
  export type DropdownMenuRootControlledOwnProps = Pick<DropdownMenuRootOwnProps, "onOpenChange" | "open">;
42
42
  export type DropdownMenuRootShellProps = DropdownMenuRootOwnProps;
43
43
  export interface DropdownMenuTriggerOwnProps {
44
- readonly shape?: "square" | "circle";
45
44
  readonly children?: ReactNode;
46
45
  readonly className?: string;
47
46
  readonly openOnHover?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown-menu/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown-menu/types.ts"],"names":[],"mappings":"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"}
@@ -41,4 +41,5 @@ export * from "./drawer/index.js";
41
41
  export * from "./context-menu/index.js";
42
42
  export * from "./header/index.js";
43
43
  export * from "./virtual-scroll/index.js";
44
+ export * from "./table-of-contents/index.js";
44
45
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,8BAA8B,CAAC"}
@@ -41,4 +41,5 @@ export * from "./drawer/index.js";
41
41
  export * from "./context-menu/index.js";
42
42
  export * from "./header/index.js";
43
43
  export * from "./virtual-scroll/index.js";
44
+ export * from "./table-of-contents/index.js";
44
45
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/index.ts"],"sourcesContent":["// @gunkin/uiify/components — root barrel export.\n// Each component task appends one line here:\n// export * from \"./<name>/index.js\";\n\nexport * from \"./button/index.js\";\nexport * from \"./checkbox/index.js\";\nexport * from \"./modal/index.js\";\nexport * from \"./dropdown-menu/index.js\";\nexport * from \"./hover-card/index.js\";\nexport * from \"./input/index.js\";\nexport * from \"./popup/index.js\";\nexport * from \"./radio-group/index.js\";\nexport * from \"./slider/index.js\";\nexport * from \"./switch/index.js\";\nexport * from \"./tabs/index.js\";\nexport * from \"./textarea/index.js\";\nexport * from \"./toggle-group/index.js\";\nexport * from \"./toolbar/index.js\";\nexport * from \"./toggle/index.js\";\nexport * from \"./tooltip/index.js\";\nexport * from \"./accordion/index.js\";\nexport * from \"./alert-modal/index.js\";\nexport * from \"./combobox/index.js\";\nexport * from \"./toast/index.js\";\nexport * from \"./select/index.js\";\nexport * from \"./spinner/index.js\";\nexport * from \"./skeleton/index.js\";\nexport * from \"./collapsible/index.js\";\nexport * from \"./breadcrumb/index.js\";\nexport * from \"./pagination/index.js\";\nexport * from \"./table/index.js\";\nexport * from \"./number-field/index.js\";\nexport * from \"./otp-input/index.js\";\nexport * from \"./segmented-control/index.js\";\nexport * from \"./rating/index.js\";\nexport * from \"./field/index.js\";\nexport * from \"./form/index.js\";\nexport * from \"./tags-input/index.js\";\nexport * from \"./file-upload/index.js\";\nexport * from \"./color-picker/index.js\";\nexport * from \"./carousel/index.js\";\nexport * from \"./candle-chart/index.js\";\nexport * from \"./line-chart/index.js\";\nexport * from \"./drawer/index.js\";\nexport * from \"./context-menu/index.js\";\nexport * from \"./header/index.js\";\nexport * from \"./virtual-scroll/index.js\";\n"],"mappings":"AAIA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../src/components/index.ts"],"sourcesContent":["// @gunkin/uiify/components — root barrel export.\n// Each component task appends one line here:\n// export * from \"./<name>/index.js\";\n\nexport * from \"./button/index.js\";\nexport * from \"./checkbox/index.js\";\nexport * from \"./modal/index.js\";\nexport * from \"./dropdown-menu/index.js\";\nexport * from \"./hover-card/index.js\";\nexport * from \"./input/index.js\";\nexport * from \"./popup/index.js\";\nexport * from \"./radio-group/index.js\";\nexport * from \"./slider/index.js\";\nexport * from \"./switch/index.js\";\nexport * from \"./tabs/index.js\";\nexport * from \"./textarea/index.js\";\nexport * from \"./toggle-group/index.js\";\nexport * from \"./toolbar/index.js\";\nexport * from \"./toggle/index.js\";\nexport * from \"./tooltip/index.js\";\nexport * from \"./accordion/index.js\";\nexport * from \"./alert-modal/index.js\";\nexport * from \"./combobox/index.js\";\nexport * from \"./toast/index.js\";\nexport * from \"./select/index.js\";\nexport * from \"./spinner/index.js\";\nexport * from \"./skeleton/index.js\";\nexport * from \"./collapsible/index.js\";\nexport * from \"./breadcrumb/index.js\";\nexport * from \"./pagination/index.js\";\nexport * from \"./table/index.js\";\nexport * from \"./number-field/index.js\";\nexport * from \"./otp-input/index.js\";\nexport * from \"./segmented-control/index.js\";\nexport * from \"./rating/index.js\";\nexport * from \"./field/index.js\";\nexport * from \"./form/index.js\";\nexport * from \"./tags-input/index.js\";\nexport * from \"./file-upload/index.js\";\nexport * from \"./color-picker/index.js\";\nexport * from \"./carousel/index.js\";\nexport * from \"./candle-chart/index.js\";\nexport * from \"./line-chart/index.js\";\nexport * from \"./drawer/index.js\";\nexport * from \"./context-menu/index.js\";\nexport * from \"./header/index.js\";\nexport * from \"./virtual-scroll/index.js\";\n\nexport * from \"./table-of-contents/index.js\";\n"],"mappings":"AAIA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd,cAAc;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ChoiceGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/choice-family/ChoiceGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAM1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,SAAS,UAAU,EAClD,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAC7B,YAAY,CA8Dd;yBAhEe,WAAW"}
1
+ {"version":3,"file":"ChoiceGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/choice-family/ChoiceGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAM1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,SAAS,UAAU,EAClD,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAC7B,YAAY,CA6Dd;yBA/De,WAAW"}
@@ -19,7 +19,7 @@ function ChoiceGroup(props) {
19
19
  itemPart = "item",
20
20
  labelPart = false,
21
21
  rootAttributes,
22
- itemWrapperAttributes,
22
+ labelAttributes,
23
23
  itemInputClassName,
24
24
  onItemChange,
25
25
  renderPanel,
@@ -42,7 +42,6 @@ function ChoiceGroup(props) {
42
42
  return /* @__PURE__ */ createElement(
43
43
  ElementChoiceItem,
44
44
  {
45
- ...itemWrapperAttributes?.(item),
46
45
  ...panel === void 0 ? {} : { panel },
47
46
  ...isControlled ? { checked: isChecked(item) } : { defaultChecked: isChecked(item) },
48
47
  disabled: item.disabled ?? false,
@@ -56,7 +55,7 @@ function ChoiceGroup(props) {
56
55
  kind,
57
56
  label: renderLabel ? renderLabel(item) : item.label,
58
57
  labelPart: false,
59
- labelProps: { "data-part": labelPart ? "trigger" : "label" },
58
+ labelProps: { ...labelAttributes, "data-part": labelPart ? "trigger" : "label" },
60
59
  name: groupName,
61
60
  ...onItemChange ? { onValueChange: () => onItemChange(item) } : {},
62
61
  panelProps: { "data-part": "panel" },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/internal/choice-family/ChoiceGroup.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport {\n ChoiceGroup as ElementChoiceGroup,\n ChoiceItem as ElementChoiceItem,\n} from \"../../../elements/choice/index.js\";\nimport { getChoiceGroupName } from \"./ids.js\";\nimport type { ChoiceGroupProps, ChoiceItem } from \"./types.js\";\n\n/**\n * Built on `@gunkin/uiify/elements/choice`: this component\n * stays the ergonomic, items-array API six components share, now implemented as a thin map\n * from `items` onto `Choice.Item` with canonical `data-part` anatomy.\n */\nexport function ChoiceGroup<TItem extends ChoiceItem>(\n props: ChoiceGroupProps<TItem>,\n): ReactElement {\n const {\n id,\n items,\n namespace,\n kind,\n isChecked,\n isControlled = false,\n name,\n orientation,\n className,\n itemPart = \"item\",\n labelPart = false,\n rootAttributes,\n itemWrapperAttributes,\n itemInputClassName,\n onItemChange,\n renderPanel,\n renderLabel,\n append,\n } = props;\n const groupName = name ?? getChoiceGroupName(id, kind);\n\n return (\n <ElementChoiceGroup\n {...{ [`data-uiify-${namespace}`]: \"\" }}\n {...rootAttributes}\n className={className}\n id={id}\n kind={kind}\n orientation={orientation}\n >\n {items.map((item) => {\n const panel = renderPanel ? renderPanel(item) : undefined;\n return (\n <ElementChoiceItem\n {...itemWrapperAttributes?.(item)}\n {...(panel === undefined ? {} : { panel })}\n {...(isControlled ? { checked: isChecked(item) } : { defaultChecked: isChecked(item) })}\n disabled={item.disabled ?? false}\n groupId={id}\n inputProps={{\n className: itemInputClassName?.(item),\n \"data-part\": \"control\",\n ...(kind === \"single\" ? { \"data-uiify-radio\": \"\" } : {}),\n }}\n key={item.value}\n kind={kind}\n label={renderLabel ? renderLabel(item) : item.label}\n labelPart={false}\n labelProps={{ \"data-part\": labelPart ? \"trigger\" : \"label\" }}\n name={groupName}\n {...(onItemChange ? { onValueChange: () => onItemChange(item) } : {})}\n panelProps={{ \"data-part\": \"panel\" }}\n part={itemPart}\n value={item.value}\n />\n );\n })}\n {append ? <div data-part=\"append\">{append}</div> : null}\n </ElementChoiceGroup>\n );\n}\nChoiceGroup.displayName = \"ChoiceGroup\";\n"],"mappings":"AAuCI,SAmCY,KAnCZ;AAWM;AAjDV;AAAA,EACE,eAAe;AAAA,EACf,cAAc;AAAA,OACT;AACP,SAAS,0BAA0B;AAQ5B,SAAS,YACd,OACc;AACd,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,YAAY,QAAQ,mBAAmB,IAAI,IAAI;AAErD,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG,EAAE,CAAC,cAAc,SAAS,EAAE,GAAG,GAAG;AAAA,MACrC,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEC;AAAA,cAAM,IAAI,CAAC,SAAS;AACnB,gBAAM,QAAQ,cAAc,YAAY,IAAI,IAAI;AAChD,iBACE;AAAA,YAAC;AAAA;AAAA,cACE,GAAG,wBAAwB,IAAI;AAAA,cAC/B,GAAI,UAAU,SAAY,CAAC,IAAI,EAAE,MAAM;AAAA,cACvC,GAAI,eAAe,EAAE,SAAS,UAAU,IAAI,EAAE,IAAI,EAAE,gBAAgB,UAAU,IAAI,EAAE;AAAA,cACrF,UAAU,KAAK,YAAY;AAAA,cAC3B,SAAS;AAAA,cACT,YAAY;AAAA,gBACV,WAAW,qBAAqB,IAAI;AAAA,gBACpC,aAAa;AAAA,gBACb,GAAI,SAAS,WAAW,EAAE,oBAAoB,GAAG,IAAI,CAAC;AAAA,cACxD;AAAA,cACA,KAAK,KAAK;AAAA,cACV;AAAA,cACA,OAAO,cAAc,YAAY,IAAI,IAAI,KAAK;AAAA,cAC9C,WAAW;AAAA,cACX,YAAY,EAAE,aAAa,YAAY,YAAY,QAAQ;AAAA,cAC3D,MAAM;AAAA,cACL,GAAI,eAAe,EAAE,eAAe,MAAM,aAAa,IAAI,EAAE,IAAI,CAAC;AAAA,cACnE,YAAY,EAAE,aAAa,QAAQ;AAAA,cACnC,MAAM;AAAA,cACN,OAAO,KAAK;AAAA;AAAA,UACd;AAAA,QAEJ,CAAC;AAAA,QACA,SAAS,oBAAC,SAAI,aAAU,UAAU,kBAAO,IAAS;AAAA;AAAA;AAAA,EACrD;AAEJ;AACA,YAAY,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/internal/choice-family/ChoiceGroup.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport {\n ChoiceGroup as ElementChoiceGroup,\n ChoiceItem as ElementChoiceItem,\n} from \"../../../elements/choice/index.js\";\nimport { getChoiceGroupName } from \"./ids.js\";\nimport type { ChoiceGroupProps, ChoiceItem } from \"./types.js\";\n\n/**\n * Built on `@gunkin/uiify/elements/choice`: this component\n * stays the ergonomic, items-array API six components share, now implemented as a thin map\n * from `items` onto `Choice.Item` with canonical `data-part` anatomy.\n */\nexport function ChoiceGroup<TItem extends ChoiceItem>(\n props: ChoiceGroupProps<TItem>,\n): ReactElement {\n const {\n id,\n items,\n namespace,\n kind,\n isChecked,\n isControlled = false,\n name,\n orientation,\n className,\n itemPart = \"item\",\n labelPart = false,\n rootAttributes,\n labelAttributes,\n itemInputClassName,\n onItemChange,\n renderPanel,\n renderLabel,\n append,\n } = props;\n const groupName = name ?? getChoiceGroupName(id, kind);\n\n return (\n <ElementChoiceGroup\n {...{ [`data-uiify-${namespace}`]: \"\" }}\n {...rootAttributes}\n className={className}\n id={id}\n kind={kind}\n orientation={orientation}\n >\n {items.map((item) => {\n const panel = renderPanel ? renderPanel(item) : undefined;\n return (\n <ElementChoiceItem\n {...(panel === undefined ? {} : { panel })}\n {...(isControlled ? { checked: isChecked(item) } : { defaultChecked: isChecked(item) })}\n disabled={item.disabled ?? false}\n groupId={id}\n inputProps={{\n className: itemInputClassName?.(item),\n \"data-part\": \"control\",\n ...(kind === \"single\" ? { \"data-uiify-radio\": \"\" } : {}),\n }}\n key={item.value}\n kind={kind}\n label={renderLabel ? renderLabel(item) : item.label}\n labelPart={false}\n labelProps={{ ...labelAttributes, \"data-part\": labelPart ? \"trigger\" : \"label\" }}\n name={groupName}\n {...(onItemChange ? { onValueChange: () => onItemChange(item) } : {})}\n panelProps={{ \"data-part\": \"panel\" }}\n part={itemPart}\n value={item.value}\n />\n );\n })}\n {append ? <div data-part=\"append\">{append}</div> : null}\n </ElementChoiceGroup>\n );\n}\nChoiceGroup.displayName = \"ChoiceGroup\";\n"],"mappings":"AAuCI,SAkCY,KAlCZ;AAWM;AAjDV;AAAA,EACE,eAAe;AAAA,EACf,cAAc;AAAA,OACT;AACP,SAAS,0BAA0B;AAQ5B,SAAS,YACd,OACc;AACd,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,YAAY,QAAQ,mBAAmB,IAAI,IAAI;AAErD,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG,EAAE,CAAC,cAAc,SAAS,EAAE,GAAG,GAAG;AAAA,MACrC,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEC;AAAA,cAAM,IAAI,CAAC,SAAS;AACnB,gBAAM,QAAQ,cAAc,YAAY,IAAI,IAAI;AAChD,iBACE;AAAA,YAAC;AAAA;AAAA,cACE,GAAI,UAAU,SAAY,CAAC,IAAI,EAAE,MAAM;AAAA,cACvC,GAAI,eAAe,EAAE,SAAS,UAAU,IAAI,EAAE,IAAI,EAAE,gBAAgB,UAAU,IAAI,EAAE;AAAA,cACrF,UAAU,KAAK,YAAY;AAAA,cAC3B,SAAS;AAAA,cACT,YAAY;AAAA,gBACV,WAAW,qBAAqB,IAAI;AAAA,gBACpC,aAAa;AAAA,gBACb,GAAI,SAAS,WAAW,EAAE,oBAAoB,GAAG,IAAI,CAAC;AAAA,cACxD;AAAA,cACA,KAAK,KAAK;AAAA,cACV;AAAA,cACA,OAAO,cAAc,YAAY,IAAI,IAAI,KAAK;AAAA,cAC9C,WAAW;AAAA,cACX,YAAY,EAAE,GAAG,iBAAiB,aAAa,YAAY,YAAY,QAAQ;AAAA,cAC/E,MAAM;AAAA,cACL,GAAI,eAAe,EAAE,eAAe,MAAM,aAAa,IAAI,EAAE,IAAI,CAAC;AAAA,cACnE,YAAY,EAAE,aAAa,QAAQ;AAAA,cACnC,MAAM;AAAA,cACN,OAAO,KAAK;AAAA;AAAA,UACd;AAAA,QAEJ,CAAC;AAAA,QACA,SAAS,oBAAC,SAAI,aAAU,UAAU,kBAAO,IAAS;AAAA;AAAA;AAAA,EACrD;AAEJ;AACA,YAAY,cAAc;","names":[]}
@@ -28,8 +28,8 @@ export interface ChoiceGroupProps<TItem extends ChoiceItem = ChoiceItem> {
28
28
  readonly labelPart?: boolean;
29
29
  /** Extra attributes spread onto the root, e.g. `data-full-width`, `aria-label`. */
30
30
  readonly rootAttributes?: Record<string, string | undefined>;
31
- /** Extra attributes spread onto each item's wrapper div, such as consumer state markers. */
32
- readonly itemWrapperAttributes?: (item: TItem) => Record<string, string | undefined>;
31
+ /** Extra attributes for each item's label, e.g. the Button skin markers. */
32
+ readonly labelAttributes?: Record<string, string>;
33
33
  /** Per-item `className` hook for the input, e.g. RadioGroup's `item.className`. */
34
34
  readonly itemInputClassName?: (item: TItem) => string | undefined;
35
35
  /** Fires on the input's native `change` event, e.g. a client wrapper syncing
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/choice-family/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,UAAU,CAAC;AAE1D;+EAC+E;AAC/E,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEpD,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,KAAK,EAAE,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,uEAAuE;IACvE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,mFAAmF;IACnF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7D,4FAA4F;IAC5F,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACrF,mFAAmF;IACnF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,SAAS,CAAC;IAClE;8EAC0E;IAC1E,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IAC9C,wFAAwF;IACxF,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC;IAClD,sFAAsF;IACtF,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC;IAClD,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC7B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/choice-family/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,UAAU,CAAC;AAE1D;+EAC+E;AAC/E,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEpD,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,KAAK,EAAE,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,uEAAuE;IACvE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,mFAAmF;IACnF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7D,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,mFAAmF;IACnF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,SAAS,CAAC;IAClE;8EAC0E;IAC1E,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IAC9C,wFAAwF;IACxF,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC;IAClD,sFAAsF;IACtF,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC;IAClD,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/Pagination.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAc,YAAY,EAAE,MAAM,OAAO,CAAC;AAInE,OAAO,EACL,kBAAkB,IAAI,yBAAyB,EAC/C,kBAAkB,EAEnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAGV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK9E,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,EAC5D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAuDrB;yBAzDe,cAAc;;;AA8F9B,wBAAgB,cAAc,IAAI,YAAY,GAAG,IAAI,CAUpD;yBAVe,cAAc;;;AAa9B,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EAC/D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CA8BrB;AA0ED,eAAO,MAAM,UAAU;;;;;;CAMtB,CAAC"}
1
+ {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/Pagination.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAc,YAAY,EAAE,MAAM,OAAO,CAAC;AAInE,OAAO,EACL,kBAAkB,IAAI,yBAAyB,EAC/C,kBAAkB,EAEnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAGV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK9E,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,EAC5D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAuDrB;yBAzDe,cAAc;;;AA8F9B,wBAAgB,cAAc,IAAI,YAAY,GAAG,IAAI,CAUpD;yBAVe,cAAc;;;AAa9B,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EAC/D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAiCrB;AAkFD,eAAO,MAAM,UAAU;;;;;;CAMtB,CAAC"}
@@ -107,7 +107,10 @@ function PaginationLink(props) {
107
107
  "aria-current": selected ? "page" : void 0,
108
108
  "aria-label": `Page ${page}`,
109
109
  "data-selected": selected ? "" : void 0,
110
+ "data-size": "icon",
110
111
  "data-type": "page",
112
+ "data-uiify-button": "",
113
+ "data-variant": "ghost",
111
114
  disabled: disabled || void 0,
112
115
  onClick: composeEventHandlers(onClick, () => setPage(page)),
113
116
  type: "button",
@@ -124,6 +127,8 @@ function PaginationPrevious({ disabled }) {
124
127
  {
125
128
  "aria-label": "Previous page",
126
129
  "data-type": "previous",
130
+ "data-uiify-button": "",
131
+ "data-variant": "ghost",
127
132
  disabled,
128
133
  onClick: () => setPage(page - 1),
129
134
  type: "button",
@@ -139,6 +144,8 @@ function PaginationNext({ disabled }) {
139
144
  {
140
145
  "aria-label": "Next page",
141
146
  "data-type": "next",
147
+ "data-uiify-button": "",
148
+ "data-variant": "ghost",
142
149
  disabled,
143
150
  onClick: () => setPage(page + 1),
144
151
  type: "button",
@@ -154,6 +161,8 @@ function PaginationFirst({ disabled }) {
154
161
  {
155
162
  "aria-label": "First page",
156
163
  "data-type": "first",
164
+ "data-uiify-button": "",
165
+ "data-variant": "ghost",
157
166
  disabled,
158
167
  onClick: () => setPage(1),
159
168
  type: "button",
@@ -169,6 +178,8 @@ function PaginationLast({ disabled }) {
169
178
  {
170
179
  "aria-label": "Last page",
171
180
  "data-type": "last",
181
+ "data-uiify-button": "",
182
+ "data-variant": "ghost",
172
183
  disabled,
173
184
  onClick: () => setPage(count),
174
185
  type: "button",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/pagination/Pagination.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo } from \"react\";\nimport type { ElementType, MouseEvent, ReactElement } from \"react\";\nimport { createPartContext } from \"@gunkin/uiify/core\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport {\n PaginationEllipsis as PaginationEllipsisElement,\n PaginationItemPart,\n PaginationList as PaginationListElement,\n} from \"./PaginationShell.js\";\nimport { usePagination } from \"./use-pagination.js\";\nimport type {\n PaginationContextValue,\n PaginationItem,\n PaginationLinkProps,\n PaginationRootProps,\n} from \"./types.js\";\n\nexport type { PaginationItem } from \"./types.js\";\n\nexport { PaginationEllipsis, PaginationItemPart } from \"./PaginationShell.js\";\n\nconst [PaginationProvider, usePaginationContext] =\n createPartContext<PaginationContextValue>(\"Pagination\");\n\nexport function PaginationRoot<TAs extends ElementType = \"nav\">(\n props: PaginationRootProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n \"aria-label\": ariaLabel = \"Pagination\",\n boundaryCount,\n count,\n defaultPage,\n disabled,\n onPageChange,\n page,\n showFirstLast,\n siblingCount,\n children,\n ...consumerProps\n } = props as PaginationRootProps<\"nav\">;\n\n const {\n items,\n page: currentPage,\n setPage,\n } = usePagination({\n count,\n ...(boundaryCount !== undefined ? { boundaryCount } : {}),\n ...(defaultPage !== undefined ? { defaultPage } : {}),\n ...(disabled !== undefined ? { disabled } : {}),\n ...(onPageChange !== undefined ? { onPageChange } : {}),\n ...(page !== undefined ? { page } : {}),\n ...(showFirstLast !== undefined ? { showFirstLast } : {}),\n ...(siblingCount !== undefined ? { siblingCount } : {}),\n });\n\n const contextValue = useMemo(\n () => ({ count, items, page: currentPage, setPage }),\n [count, currentPage, items, setPage],\n );\n\n const element = useRenderElement({\n as,\n defaultTag: \"nav\",\n props: {\n ...consumerProps,\n \"aria-label\": ariaLabel,\n children: children ?? (\n <ol>\n <PaginationListItems />\n </ol>\n ),\n \"data-uiify-pagination\": \"\",\n },\n render,\n state: { page: currentPage },\n });\n\n return <PaginationProvider value={contextValue}>{element}</PaginationProvider>;\n}\nPaginationRoot.displayName = \"PaginationRoot\";\n\nfunction PaginationListItems(): ReactElement {\n const { items } = usePaginationContext(\"List\");\n return (\n <>\n {items.map((item, index) => (\n <PaginationItemRenderer item={item} key={`${item.type}-${item.page ?? index}`} />\n ))}\n </>\n );\n}\nPaginationListItems.displayName = \"PaginationListItems\";\n\nfunction PaginationItemRenderer({ item }: { readonly item: PaginationItem }): ReactElement {\n switch (item.type) {\n case \"ellipsis\":\n return <PaginationEllipsisElement />;\n case \"previous\":\n return <PaginationPrevious disabled={item.disabled} />;\n case \"next\":\n return <PaginationNext disabled={item.disabled} />;\n case \"first\":\n return <PaginationFirst disabled={item.disabled} />;\n case \"last\":\n return <PaginationLast disabled={item.disabled} />;\n default:\n return (\n <PaginationItemPart>\n <PaginationLink disabled={item.disabled} page={item.page ?? 1} selected={item.selected} />\n </PaginationItemPart>\n );\n }\n}\nPaginationItemRenderer.displayName = \"PaginationItemRenderer\";\n\nexport function PaginationList(): ReactElement | null {\n const { items } = usePaginationContext(\"List\");\n\n return (\n <PaginationListElement>\n {items.map((item, index) => (\n <PaginationItemRenderer item={item} key={`${item.type}-${item.page ?? index}`} />\n ))}\n </PaginationListElement>\n );\n}\nPaginationList.displayName = \"PaginationList\";\n\nexport function PaginationLink<TAs extends ElementType = \"button\">(\n props: PaginationLinkProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n disabled = false,\n page,\n selected = false,\n ...consumerProps\n } = props as PaginationLinkProps<\"button\">;\n const { setPage } = usePaginationContext(\"Link\");\n const onClick = (consumerProps as { onClick?: (event: MouseEvent<HTMLButtonElement>) => void })\n .onClick;\n\n return useRenderElement({\n as,\n defaultTag: \"button\",\n props: {\n ...consumerProps,\n \"aria-current\": selected ? \"page\" : undefined,\n \"aria-label\": `Page ${page}`,\n \"data-selected\": selected ? \"\" : undefined,\n \"data-type\": \"page\",\n disabled: disabled || undefined,\n onClick: composeEventHandlers(onClick, () => setPage(page)),\n type: \"button\",\n children: page,\n },\n render,\n state: { selected },\n });\n}\n\nfunction PaginationPrevious({ disabled }: { readonly disabled: boolean }): ReactElement {\n const { page, setPage } = usePaginationContext(\"Previous\");\n return (\n <PaginationItemPart>\n <button\n aria-label=\"Previous page\"\n data-type=\"previous\"\n disabled={disabled}\n onClick={() => setPage(page - 1)}\n type=\"button\"\n >\n Previous\n </button>\n </PaginationItemPart>\n );\n}\nPaginationPrevious.displayName = \"PaginationPrevious\";\n\nfunction PaginationNext({ disabled }: { readonly disabled: boolean }): ReactElement {\n const { page, setPage } = usePaginationContext(\"Next\");\n return (\n <PaginationItemPart>\n <button\n aria-label=\"Next page\"\n data-type=\"next\"\n disabled={disabled}\n onClick={() => setPage(page + 1)}\n type=\"button\"\n >\n Next\n </button>\n </PaginationItemPart>\n );\n}\nPaginationNext.displayName = \"PaginationNext\";\n\nfunction PaginationFirst({ disabled }: { readonly disabled: boolean }): ReactElement {\n const { setPage } = usePaginationContext(\"First\");\n return (\n <PaginationItemPart>\n <button\n aria-label=\"First page\"\n data-type=\"first\"\n disabled={disabled}\n onClick={() => setPage(1)}\n type=\"button\"\n >\n First\n </button>\n </PaginationItemPart>\n );\n}\nPaginationFirst.displayName = \"PaginationFirst\";\n\nfunction PaginationLast({ disabled }: { readonly disabled: boolean }): ReactElement {\n const { count, setPage } = usePaginationContext(\"Last\");\n return (\n <PaginationItemPart>\n <button\n aria-label=\"Last page\"\n data-type=\"last\"\n disabled={disabled}\n onClick={() => setPage(count)}\n type=\"button\"\n >\n Last\n </button>\n </PaginationItemPart>\n );\n}\nPaginationLast.displayName = \"PaginationLast\";\n\nexport const Pagination = {\n Ellipsis: PaginationEllipsisElement,\n Item: PaginationItemPart,\n Link: PaginationLink,\n List: PaginationList,\n Root: PaginationRoot,\n};\n"],"mappings":";AA0EU,SAgBN,UAhBM;AAxEV,SAAS,eAAe;AAExB,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AACjC;AAAA,EACE,sBAAsB;AAAA,EACtB;AAAA,EACA,kBAAkB;AAAA,OACb;AACP,SAAS,qBAAqB;AAU9B,SAAS,oBAAoB,sBAAAA,2BAA0B;AAEvD,MAAM,CAAC,oBAAoB,oBAAoB,IAC7C,kBAA0C,YAAY;AAEjD,SAAS,eACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,cAAc,YAAY;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM;AAAA,IACJ;AAAA,IACA,MAAM;AAAA,IACN;AAAA,EACF,IAAI,cAAc;AAAA,IAChB;AAAA,IACA,GAAI,kBAAkB,SAAY,EAAE,cAAc,IAAI,CAAC;AAAA,IACvD,GAAI,gBAAgB,SAAY,EAAE,YAAY,IAAI,CAAC;AAAA,IACnD,GAAI,aAAa,SAAY,EAAE,SAAS,IAAI,CAAC;AAAA,IAC7C,GAAI,iBAAiB,SAAY,EAAE,aAAa,IAAI,CAAC;AAAA,IACrD,GAAI,SAAS,SAAY,EAAE,KAAK,IAAI,CAAC;AAAA,IACrC,GAAI,kBAAkB,SAAY,EAAE,cAAc,IAAI,CAAC;AAAA,IACvD,GAAI,iBAAiB,SAAY,EAAE,aAAa,IAAI,CAAC;AAAA,EACvD,CAAC;AAED,QAAM,eAAe;AAAA,IACnB,OAAO,EAAE,OAAO,OAAO,MAAM,aAAa,QAAQ;AAAA,IAClD,CAAC,OAAO,aAAa,OAAO,OAAO;AAAA,EACrC;AAEA,QAAM,UAAU,iBAAiB;AAAA,IAC/B;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,cAAc;AAAA,MACd,UAAU,YACR,oBAAC,QACC,8BAAC,uBAAoB,GACvB;AAAA,MAEF,yBAAyB;AAAA,IAC3B;AAAA,IACA;AAAA,IACA,OAAO,EAAE,MAAM,YAAY;AAAA,EAC7B,CAAC;AAED,SAAO,oBAAC,sBAAmB,OAAO,cAAe,mBAAQ;AAC3D;AACA,eAAe,cAAc;AAE7B,SAAS,sBAAoC;AAC3C,QAAM,EAAE,MAAM,IAAI,qBAAqB,MAAM;AAC7C,SACE,gCACG,gBAAM,IAAI,CAAC,MAAM,UAChB,oBAAC,0BAAuB,QAAiB,GAAG,KAAK,IAAI,IAAI,KAAK,QAAQ,KAAK,EAAI,CAChF,GACH;AAEJ;AACA,oBAAoB,cAAc;AAElC,SAAS,uBAAuB,EAAE,KAAK,GAAoD;AACzF,UAAQ,KAAK,MAAM;AAAA,IACjB,KAAK;AACH,aAAO,oBAAC,6BAA0B;AAAA,IACpC,KAAK;AACH,aAAO,oBAAC,sBAAmB,UAAU,KAAK,UAAU;AAAA,IACtD,KAAK;AACH,aAAO,oBAAC,kBAAe,UAAU,KAAK,UAAU;AAAA,IAClD,KAAK;AACH,aAAO,oBAAC,mBAAgB,UAAU,KAAK,UAAU;AAAA,IACnD,KAAK;AACH,aAAO,oBAAC,kBAAe,UAAU,KAAK,UAAU;AAAA,IAClD;AACE,aACE,oBAAC,sBACC,8BAAC,kBAAe,UAAU,KAAK,UAAU,MAAM,KAAK,QAAQ,GAAG,UAAU,KAAK,UAAU,GAC1F;AAAA,EAEN;AACF;AACA,uBAAuB,cAAc;AAE9B,SAAS,iBAAsC;AACpD,QAAM,EAAE,MAAM,IAAI,qBAAqB,MAAM;AAE7C,SACE,oBAAC,yBACE,gBAAM,IAAI,CAAC,MAAM,UAChB,oBAAC,0BAAuB,QAAiB,GAAG,KAAK,IAAI,IAAI,KAAK,QAAQ,KAAK,EAAI,CAChF,GACH;AAEJ;AACA,eAAe,cAAc;AAEtB,SAAS,eACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,WAAW;AAAA,IACX,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,EAAE,QAAQ,IAAI,qBAAqB,MAAM;AAC/C,QAAM,UAAW,cACd;AAEH,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,gBAAgB,WAAW,SAAS;AAAA,MACpC,cAAc,QAAQ,IAAI;AAAA,MAC1B,iBAAiB,WAAW,KAAK;AAAA,MACjC,aAAa;AAAA,MACb,UAAU,YAAY;AAAA,MACtB,SAAS,qBAAqB,SAAS,MAAM,QAAQ,IAAI,CAAC;AAAA,MAC1D,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,IACA,OAAO,EAAE,SAAS;AAAA,EACpB,CAAC;AACH;AAEA,SAAS,mBAAmB,EAAE,SAAS,GAAiD;AACtF,QAAM,EAAE,MAAM,QAAQ,IAAI,qBAAqB,UAAU;AACzD,SACE,oBAAC,sBACC;AAAA,IAAC;AAAA;AAAA,MACC,cAAW;AAAA,MACX,aAAU;AAAA,MACV;AAAA,MACA,SAAS,MAAM,QAAQ,OAAO,CAAC;AAAA,MAC/B,MAAK;AAAA,MACN;AAAA;AAAA,EAED,GACF;AAEJ;AACA,mBAAmB,cAAc;AAEjC,SAAS,eAAe,EAAE,SAAS,GAAiD;AAClF,QAAM,EAAE,MAAM,QAAQ,IAAI,qBAAqB,MAAM;AACrD,SACE,oBAAC,sBACC;AAAA,IAAC;AAAA;AAAA,MACC,cAAW;AAAA,MACX,aAAU;AAAA,MACV;AAAA,MACA,SAAS,MAAM,QAAQ,OAAO,CAAC;AAAA,MAC/B,MAAK;AAAA,MACN;AAAA;AAAA,EAED,GACF;AAEJ;AACA,eAAe,cAAc;AAE7B,SAAS,gBAAgB,EAAE,SAAS,GAAiD;AACnF,QAAM,EAAE,QAAQ,IAAI,qBAAqB,OAAO;AAChD,SACE,oBAAC,sBACC;AAAA,IAAC;AAAA;AAAA,MACC,cAAW;AAAA,MACX,aAAU;AAAA,MACV;AAAA,MACA,SAAS,MAAM,QAAQ,CAAC;AAAA,MACxB,MAAK;AAAA,MACN;AAAA;AAAA,EAED,GACF;AAEJ;AACA,gBAAgB,cAAc;AAE9B,SAAS,eAAe,EAAE,SAAS,GAAiD;AAClF,QAAM,EAAE,OAAO,QAAQ,IAAI,qBAAqB,MAAM;AACtD,SACE,oBAAC,sBACC;AAAA,IAAC;AAAA;AAAA,MACC,cAAW;AAAA,MACX,aAAU;AAAA,MACV;AAAA,MACA,SAAS,MAAM,QAAQ,KAAK;AAAA,MAC5B,MAAK;AAAA,MACN;AAAA;AAAA,EAED,GACF;AAEJ;AACA,eAAe,cAAc;AAEtB,MAAM,aAAa;AAAA,EACxB,UAAU;AAAA,EACV,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AACR;","names":["PaginationItemPart"]}
1
+ {"version":3,"sources":["../../../src/components/pagination/Pagination.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo } from \"react\";\nimport type { ElementType, MouseEvent, ReactElement } from \"react\";\nimport { createPartContext } from \"@gunkin/uiify/core\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport {\n PaginationEllipsis as PaginationEllipsisElement,\n PaginationItemPart,\n PaginationList as PaginationListElement,\n} from \"./PaginationShell.js\";\nimport { usePagination } from \"./use-pagination.js\";\nimport type {\n PaginationContextValue,\n PaginationItem,\n PaginationLinkProps,\n PaginationRootProps,\n} from \"./types.js\";\n\nexport type { PaginationItem } from \"./types.js\";\n\nexport { PaginationEllipsis, PaginationItemPart } from \"./PaginationShell.js\";\n\nconst [PaginationProvider, usePaginationContext] =\n createPartContext<PaginationContextValue>(\"Pagination\");\n\nexport function PaginationRoot<TAs extends ElementType = \"nav\">(\n props: PaginationRootProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n \"aria-label\": ariaLabel = \"Pagination\",\n boundaryCount,\n count,\n defaultPage,\n disabled,\n onPageChange,\n page,\n showFirstLast,\n siblingCount,\n children,\n ...consumerProps\n } = props as PaginationRootProps<\"nav\">;\n\n const {\n items,\n page: currentPage,\n setPage,\n } = usePagination({\n count,\n ...(boundaryCount !== undefined ? { boundaryCount } : {}),\n ...(defaultPage !== undefined ? { defaultPage } : {}),\n ...(disabled !== undefined ? { disabled } : {}),\n ...(onPageChange !== undefined ? { onPageChange } : {}),\n ...(page !== undefined ? { page } : {}),\n ...(showFirstLast !== undefined ? { showFirstLast } : {}),\n ...(siblingCount !== undefined ? { siblingCount } : {}),\n });\n\n const contextValue = useMemo(\n () => ({ count, items, page: currentPage, setPage }),\n [count, currentPage, items, setPage],\n );\n\n const element = useRenderElement({\n as,\n defaultTag: \"nav\",\n props: {\n ...consumerProps,\n \"aria-label\": ariaLabel,\n children: children ?? (\n <ol>\n <PaginationListItems />\n </ol>\n ),\n \"data-uiify-pagination\": \"\",\n },\n render,\n state: { page: currentPage },\n });\n\n return <PaginationProvider value={contextValue}>{element}</PaginationProvider>;\n}\nPaginationRoot.displayName = \"PaginationRoot\";\n\nfunction PaginationListItems(): ReactElement {\n const { items } = usePaginationContext(\"List\");\n return (\n <>\n {items.map((item, index) => (\n <PaginationItemRenderer item={item} key={`${item.type}-${item.page ?? index}`} />\n ))}\n </>\n );\n}\nPaginationListItems.displayName = \"PaginationListItems\";\n\nfunction PaginationItemRenderer({ item }: { readonly item: PaginationItem }): ReactElement {\n switch (item.type) {\n case \"ellipsis\":\n return <PaginationEllipsisElement />;\n case \"previous\":\n return <PaginationPrevious disabled={item.disabled} />;\n case \"next\":\n return <PaginationNext disabled={item.disabled} />;\n case \"first\":\n return <PaginationFirst disabled={item.disabled} />;\n case \"last\":\n return <PaginationLast disabled={item.disabled} />;\n default:\n return (\n <PaginationItemPart>\n <PaginationLink disabled={item.disabled} page={item.page ?? 1} selected={item.selected} />\n </PaginationItemPart>\n );\n }\n}\nPaginationItemRenderer.displayName = \"PaginationItemRenderer\";\n\nexport function PaginationList(): ReactElement | null {\n const { items } = usePaginationContext(\"List\");\n\n return (\n <PaginationListElement>\n {items.map((item, index) => (\n <PaginationItemRenderer item={item} key={`${item.type}-${item.page ?? index}`} />\n ))}\n </PaginationListElement>\n );\n}\nPaginationList.displayName = \"PaginationList\";\n\nexport function PaginationLink<TAs extends ElementType = \"button\">(\n props: PaginationLinkProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n disabled = false,\n page,\n selected = false,\n ...consumerProps\n } = props as PaginationLinkProps<\"button\">;\n const { setPage } = usePaginationContext(\"Link\");\n const onClick = (consumerProps as { onClick?: (event: MouseEvent<HTMLButtonElement>) => void })\n .onClick;\n\n return useRenderElement({\n as,\n defaultTag: \"button\",\n props: {\n ...consumerProps,\n \"aria-current\": selected ? \"page\" : undefined,\n \"aria-label\": `Page ${page}`,\n \"data-selected\": selected ? \"\" : undefined,\n \"data-size\": \"icon\",\n \"data-type\": \"page\",\n \"data-uiify-button\": \"\",\n \"data-variant\": \"ghost\",\n disabled: disabled || undefined,\n onClick: composeEventHandlers(onClick, () => setPage(page)),\n type: \"button\",\n children: page,\n },\n render,\n state: { selected },\n });\n}\n\nfunction PaginationPrevious({ disabled }: { readonly disabled: boolean }): ReactElement {\n const { page, setPage } = usePaginationContext(\"Previous\");\n return (\n <PaginationItemPart>\n <button\n aria-label=\"Previous page\"\n data-type=\"previous\"\n data-uiify-button=\"\"\n data-variant=\"ghost\"\n disabled={disabled}\n onClick={() => setPage(page - 1)}\n type=\"button\"\n >\n Previous\n </button>\n </PaginationItemPart>\n );\n}\nPaginationPrevious.displayName = \"PaginationPrevious\";\n\nfunction PaginationNext({ disabled }: { readonly disabled: boolean }): ReactElement {\n const { page, setPage } = usePaginationContext(\"Next\");\n return (\n <PaginationItemPart>\n <button\n aria-label=\"Next page\"\n data-type=\"next\"\n data-uiify-button=\"\"\n data-variant=\"ghost\"\n disabled={disabled}\n onClick={() => setPage(page + 1)}\n type=\"button\"\n >\n Next\n </button>\n </PaginationItemPart>\n );\n}\nPaginationNext.displayName = \"PaginationNext\";\n\nfunction PaginationFirst({ disabled }: { readonly disabled: boolean }): ReactElement {\n const { setPage } = usePaginationContext(\"First\");\n return (\n <PaginationItemPart>\n <button\n aria-label=\"First page\"\n data-type=\"first\"\n data-uiify-button=\"\"\n data-variant=\"ghost\"\n disabled={disabled}\n onClick={() => setPage(1)}\n type=\"button\"\n >\n First\n </button>\n </PaginationItemPart>\n );\n}\nPaginationFirst.displayName = \"PaginationFirst\";\n\nfunction PaginationLast({ disabled }: { readonly disabled: boolean }): ReactElement {\n const { count, setPage } = usePaginationContext(\"Last\");\n return (\n <PaginationItemPart>\n <button\n aria-label=\"Last page\"\n data-type=\"last\"\n data-uiify-button=\"\"\n data-variant=\"ghost\"\n disabled={disabled}\n onClick={() => setPage(count)}\n type=\"button\"\n >\n Last\n </button>\n </PaginationItemPart>\n );\n}\nPaginationLast.displayName = \"PaginationLast\";\n\nexport const Pagination = {\n Ellipsis: PaginationEllipsisElement,\n Item: PaginationItemPart,\n Link: PaginationLink,\n List: PaginationList,\n Root: PaginationRoot,\n};\n"],"mappings":"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","names":["PaginationItemPart"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PaginationShell.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/PaginationShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAIvD,OAAO,KAAK,EAEV,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,EAC5D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAoDrB;yBAtDe,cAAc;;;AAkI9B,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EAC3D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAUrB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EAC/D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAUrB;AAED,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,GAAG,EAC1D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CA8BrB;AAyCD,wBAAgB,kBAAkB,CAAC,GAAG,SAAS,WAAW,GAAG,MAAM,EACjE,KAAK,EAAE,uBAAuB,CAAC,GAAG,CAAC,GAClC,YAAY,GAAG,IAAI,CAgBrB;yBAlBe,kBAAkB;;;AAqBlC,eAAO,MAAM,UAAU;;;;;;CAMtB,CAAC"}
1
+ {"version":3,"file":"PaginationShell.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/PaginationShell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAIvD,OAAO,KAAK,EAEV,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,EAC5D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAoDrB;yBAtDe,cAAc;;;AAkI9B,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EAC3D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAUrB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EAC/D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAUrB;AAED,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,GAAG,EAC1D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CAkCrB;AAsDD,wBAAgB,kBAAkB,CAAC,GAAG,SAAS,WAAW,GAAG,MAAM,EACjE,KAAK,EAAE,uBAAuB,CAAC,GAAG,CAAC,GAClC,YAAY,GAAG,IAAI,CAgBrB;yBAlBe,kBAAkB;;;AAqBlC,eAAO,MAAM,UAAU;;;;;;CAMtB,CAAC"}
@@ -159,8 +159,12 @@ function PaginationLink(props) {
159
159
  "aria-current": selected ? "page" : void 0,
160
160
  "aria-label": `Page ${page}`,
161
161
  "aria-disabled": disabled ? true : void 0,
162
+ "data-disabled": disabled ? "" : void 0,
162
163
  "data-selected": selected ? "" : void 0,
164
+ "data-size": "icon",
163
165
  "data-type": "page",
166
+ "data-uiify-button": "",
167
+ "data-variant": "ghost",
164
168
  href,
165
169
  children: page
166
170
  },
@@ -177,7 +181,28 @@ function PaginationNavControl({
177
181
  }) {
178
182
  const href = !disabled && getPageHref ? getPageHref(page) : void 0;
179
183
  const labelText = type === "previous" ? "Previous" : type === "next" ? "Next" : type === "first" ? "First" : "Last";
180
- return /* @__PURE__ */ jsx(PaginationItemPart, { children: href ? /* @__PURE__ */ jsx("a", { "aria-label": label, "data-type": type, href, children: labelText }) : /* @__PURE__ */ jsx("span", { "aria-disabled": disabled ? true : void 0, "aria-label": label, "data-type": type, children: labelText }) });
184
+ return /* @__PURE__ */ jsx(PaginationItemPart, { children: href ? /* @__PURE__ */ jsx(
185
+ "a",
186
+ {
187
+ "aria-label": label,
188
+ "data-type": type,
189
+ "data-uiify-button": "",
190
+ "data-variant": "ghost",
191
+ href,
192
+ children: labelText
193
+ }
194
+ ) : /* @__PURE__ */ jsx(
195
+ "span",
196
+ {
197
+ "aria-disabled": disabled ? true : void 0,
198
+ "aria-label": label,
199
+ "data-disabled": disabled ? "" : void 0,
200
+ "data-type": type,
201
+ "data-uiify-button": "",
202
+ "data-variant": "ghost",
203
+ children: labelText
204
+ }
205
+ ) });
181
206
  }
182
207
  PaginationNavControl.displayName = "PaginationNavControl";
183
208
  function PaginationEllipsis(props) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/pagination/PaginationShell.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { buildPaginationItems } from \"./pagination-engine.js\";\n\nimport type {\n PaginationItem,\n PaginationRootProps,\n PaginationListProps,\n PaginationItemProps,\n PaginationLinkProps,\n PaginationEllipsisProps,\n} from \"./types.js\";\n\nexport { buildPaginationItems } from \"./pagination-engine.js\";\n\nexport function PaginationRoot<TAs extends ElementType = \"nav\">(\n props: PaginationRootProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n \"aria-label\": ariaLabel = \"Pagination\",\n boundaryCount = 1,\n count,\n disabled = false,\n getPageHref,\n page = 1,\n showFirstLast = false,\n siblingCount = 1,\n children,\n defaultPage: _defaultPage,\n onPageChange: _onPageChange,\n ...consumerProps\n } = props as PaginationRootProps<\"nav\">;\n\n const items = buildPaginationItems(\n count,\n page,\n siblingCount,\n boundaryCount,\n disabled,\n showFirstLast,\n );\n\n const content = children ?? (\n <ol>\n {items.map((item, index) => (\n <PaginationItemRenderer\n item={item}\n key={`${item.type}-${item.page ?? index}`}\n page={page}\n {...paginationHrefProps(getPageHref)}\n />\n ))}\n </ol>\n );\n\n return useRenderElement({\n as,\n defaultTag: \"nav\",\n props: {\n ...consumerProps,\n \"aria-label\": ariaLabel,\n children: content,\n \"data-uiify-pagination\": \"\",\n },\n render,\n state: { page },\n });\n}\nPaginationRoot.displayName = \"PaginationRoot\";\n\nfunction paginationHrefProps(getPageHref?: (page: number) => string): {\n readonly getPageHref?: (page: number) => string;\n} {\n return getPageHref ? { getPageHref } : {};\n}\n\nfunction PaginationItemRenderer({\n getPageHref,\n item,\n page,\n}: {\n readonly getPageHref?: (page: number) => string;\n readonly item: PaginationItem;\n readonly page: number;\n}): ReactElement {\n const hrefProps = paginationHrefProps(getPageHref);\n\n switch (item.type) {\n case \"ellipsis\":\n return <PaginationEllipsis />;\n case \"previous\":\n return (\n <PaginationNavControl\n disabled={item.disabled}\n label=\"Previous page\"\n page={page - 1}\n type=\"previous\"\n {...hrefProps}\n />\n );\n case \"next\":\n return (\n <PaginationNavControl\n disabled={item.disabled}\n label=\"Next page\"\n page={page + 1}\n type=\"next\"\n {...hrefProps}\n />\n );\n case \"first\":\n return (\n <PaginationNavControl\n disabled={item.disabled}\n label=\"First page\"\n page={1}\n type=\"first\"\n {...hrefProps}\n />\n );\n case \"last\":\n return (\n <PaginationNavControl\n disabled={item.disabled}\n label=\"Last page\"\n page={item.page ?? page}\n type=\"last\"\n {...hrefProps}\n />\n );\n default:\n return (\n <PaginationLink\n disabled={item.disabled}\n page={item.page ?? 1}\n selected={item.selected}\n {...hrefProps}\n />\n );\n }\n}\nPaginationItemRenderer.displayName = \"PaginationItemRenderer\";\n\nexport function PaginationList<TAs extends ElementType = \"ol\">(\n props: PaginationListProps<TAs>,\n): ReactElement | null {\n const { as, render, ...consumerProps } = props as PaginationListProps<\"ol\">;\n\n return useRenderElement({\n as,\n defaultTag: \"ol\",\n props: consumerProps,\n render,\n state: {},\n });\n}\n\nexport function PaginationItemPart<TAs extends ElementType = \"li\">(\n props: PaginationItemProps<TAs>,\n): ReactElement | null {\n const { as, render, children, ...consumerProps } = props as PaginationItemProps<\"li\">;\n\n return useRenderElement({\n as,\n defaultTag: \"li\",\n props: { ...consumerProps, children },\n render,\n state: {},\n });\n}\n\nexport function PaginationLink<TAs extends ElementType = \"a\">(\n props: PaginationLinkProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n disabled = false,\n getPageHref,\n page,\n selected = false,\n ...consumerProps\n } = props as PaginationLinkProps<\"a\">;\n\n const href = !disabled && getPageHref ? getPageHref(page) : undefined;\n const Tag = href ? \"a\" : \"span\";\n\n return useRenderElement({\n as: as ?? Tag,\n defaultTag: Tag,\n props: {\n ...consumerProps,\n \"aria-current\": selected ? \"page\" : undefined,\n \"aria-label\": `Page ${page}`,\n \"aria-disabled\": disabled ? true : undefined,\n \"data-selected\": selected ? \"\" : undefined,\n \"data-type\": \"page\",\n href,\n children: page,\n },\n render,\n state: { selected },\n });\n}\n\nfunction PaginationNavControl({\n disabled,\n getPageHref,\n label,\n page,\n type,\n}: {\n readonly disabled: boolean;\n readonly getPageHref?: (page: number) => string;\n readonly label: string;\n readonly page: number;\n readonly type: \"previous\" | \"next\" | \"first\" | \"last\";\n}): ReactElement {\n const href = !disabled && getPageHref ? getPageHref(page) : undefined;\n const labelText =\n type === \"previous\"\n ? \"Previous\"\n : type === \"next\"\n ? \"Next\"\n : type === \"first\"\n ? \"First\"\n : \"Last\";\n\n return (\n <PaginationItemPart>\n {href ? (\n <a aria-label={label} data-type={type} href={href}>\n {labelText}\n </a>\n ) : (\n <span aria-disabled={disabled ? true : undefined} aria-label={label} data-type={type}>\n {labelText}\n </span>\n )}\n </PaginationItemPart>\n );\n}\nPaginationNavControl.displayName = \"PaginationNavControl\";\n\nexport function PaginationEllipsis<TAs extends ElementType = \"span\">(\n props: PaginationEllipsisProps<TAs>,\n): ReactElement | null {\n const { as, render, ...consumerProps } = props as PaginationEllipsisProps<\"span\">;\n const element = useRenderElement({\n as,\n defaultTag: \"span\",\n props: {\n ...consumerProps,\n \"aria-hidden\": true,\n \"data-type\": \"ellipsis\",\n children: \"…\",\n },\n render,\n state: {},\n });\n\n return <PaginationItemPart>{element}</PaginationItemPart>;\n}\nPaginationEllipsis.displayName = \"PaginationEllipsis\";\n\nexport const Pagination = {\n Ellipsis: PaginationEllipsis,\n Item: PaginationItemPart,\n Link: PaginationLink,\n List: PaginationList,\n Root: PaginationRoot,\n};\n"],"mappings":"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","names":["buildPaginationItems"]}
1
+ {"version":3,"sources":["../../../src/components/pagination/PaginationShell.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { buildPaginationItems } from \"./pagination-engine.js\";\n\nimport type {\n PaginationItem,\n PaginationRootProps,\n PaginationListProps,\n PaginationItemProps,\n PaginationLinkProps,\n PaginationEllipsisProps,\n} from \"./types.js\";\n\nexport { buildPaginationItems } from \"./pagination-engine.js\";\n\nexport function PaginationRoot<TAs extends ElementType = \"nav\">(\n props: PaginationRootProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n \"aria-label\": ariaLabel = \"Pagination\",\n boundaryCount = 1,\n count,\n disabled = false,\n getPageHref,\n page = 1,\n showFirstLast = false,\n siblingCount = 1,\n children,\n defaultPage: _defaultPage,\n onPageChange: _onPageChange,\n ...consumerProps\n } = props as PaginationRootProps<\"nav\">;\n\n const items = buildPaginationItems(\n count,\n page,\n siblingCount,\n boundaryCount,\n disabled,\n showFirstLast,\n );\n\n const content = children ?? (\n <ol>\n {items.map((item, index) => (\n <PaginationItemRenderer\n item={item}\n key={`${item.type}-${item.page ?? index}`}\n page={page}\n {...paginationHrefProps(getPageHref)}\n />\n ))}\n </ol>\n );\n\n return useRenderElement({\n as,\n defaultTag: \"nav\",\n props: {\n ...consumerProps,\n \"aria-label\": ariaLabel,\n children: content,\n \"data-uiify-pagination\": \"\",\n },\n render,\n state: { page },\n });\n}\nPaginationRoot.displayName = \"PaginationRoot\";\n\nfunction paginationHrefProps(getPageHref?: (page: number) => string): {\n readonly getPageHref?: (page: number) => string;\n} {\n return getPageHref ? { getPageHref } : {};\n}\n\nfunction PaginationItemRenderer({\n getPageHref,\n item,\n page,\n}: {\n readonly getPageHref?: (page: number) => string;\n readonly item: PaginationItem;\n readonly page: number;\n}): ReactElement {\n const hrefProps = paginationHrefProps(getPageHref);\n\n switch (item.type) {\n case \"ellipsis\":\n return <PaginationEllipsis />;\n case \"previous\":\n return (\n <PaginationNavControl\n disabled={item.disabled}\n label=\"Previous page\"\n page={page - 1}\n type=\"previous\"\n {...hrefProps}\n />\n );\n case \"next\":\n return (\n <PaginationNavControl\n disabled={item.disabled}\n label=\"Next page\"\n page={page + 1}\n type=\"next\"\n {...hrefProps}\n />\n );\n case \"first\":\n return (\n <PaginationNavControl\n disabled={item.disabled}\n label=\"First page\"\n page={1}\n type=\"first\"\n {...hrefProps}\n />\n );\n case \"last\":\n return (\n <PaginationNavControl\n disabled={item.disabled}\n label=\"Last page\"\n page={item.page ?? page}\n type=\"last\"\n {...hrefProps}\n />\n );\n default:\n return (\n <PaginationLink\n disabled={item.disabled}\n page={item.page ?? 1}\n selected={item.selected}\n {...hrefProps}\n />\n );\n }\n}\nPaginationItemRenderer.displayName = \"PaginationItemRenderer\";\n\nexport function PaginationList<TAs extends ElementType = \"ol\">(\n props: PaginationListProps<TAs>,\n): ReactElement | null {\n const { as, render, ...consumerProps } = props as PaginationListProps<\"ol\">;\n\n return useRenderElement({\n as,\n defaultTag: \"ol\",\n props: consumerProps,\n render,\n state: {},\n });\n}\n\nexport function PaginationItemPart<TAs extends ElementType = \"li\">(\n props: PaginationItemProps<TAs>,\n): ReactElement | null {\n const { as, render, children, ...consumerProps } = props as PaginationItemProps<\"li\">;\n\n return useRenderElement({\n as,\n defaultTag: \"li\",\n props: { ...consumerProps, children },\n render,\n state: {},\n });\n}\n\nexport function PaginationLink<TAs extends ElementType = \"a\">(\n props: PaginationLinkProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n disabled = false,\n getPageHref,\n page,\n selected = false,\n ...consumerProps\n } = props as PaginationLinkProps<\"a\">;\n\n const href = !disabled && getPageHref ? getPageHref(page) : undefined;\n const Tag = href ? \"a\" : \"span\";\n\n return useRenderElement({\n as: as ?? Tag,\n defaultTag: Tag,\n props: {\n ...consumerProps,\n \"aria-current\": selected ? \"page\" : undefined,\n \"aria-label\": `Page ${page}`,\n \"aria-disabled\": disabled ? true : undefined,\n \"data-disabled\": disabled ? \"\" : undefined,\n \"data-selected\": selected ? \"\" : undefined,\n \"data-size\": \"icon\",\n \"data-type\": \"page\",\n \"data-uiify-button\": \"\",\n \"data-variant\": \"ghost\",\n href,\n children: page,\n },\n render,\n state: { selected },\n });\n}\n\nfunction PaginationNavControl({\n disabled,\n getPageHref,\n label,\n page,\n type,\n}: {\n readonly disabled: boolean;\n readonly getPageHref?: (page: number) => string;\n readonly label: string;\n readonly page: number;\n readonly type: \"previous\" | \"next\" | \"first\" | \"last\";\n}): ReactElement {\n const href = !disabled && getPageHref ? getPageHref(page) : undefined;\n const labelText =\n type === \"previous\"\n ? \"Previous\"\n : type === \"next\"\n ? \"Next\"\n : type === \"first\"\n ? \"First\"\n : \"Last\";\n\n return (\n <PaginationItemPart>\n {href ? (\n <a\n aria-label={label}\n data-type={type}\n data-uiify-button=\"\"\n data-variant=\"ghost\"\n href={href}\n >\n {labelText}\n </a>\n ) : (\n <span\n aria-disabled={disabled ? true : undefined}\n aria-label={label}\n data-disabled={disabled ? \"\" : undefined}\n data-type={type}\n data-uiify-button=\"\"\n data-variant=\"ghost\"\n >\n {labelText}\n </span>\n )}\n </PaginationItemPart>\n );\n}\nPaginationNavControl.displayName = \"PaginationNavControl\";\n\nexport function PaginationEllipsis<TAs extends ElementType = \"span\">(\n props: PaginationEllipsisProps<TAs>,\n): ReactElement | null {\n const { as, render, ...consumerProps } = props as PaginationEllipsisProps<\"span\">;\n const element = useRenderElement({\n as,\n defaultTag: \"span\",\n props: {\n ...consumerProps,\n \"aria-hidden\": true,\n \"data-type\": \"ellipsis\",\n children: \"…\",\n },\n render,\n state: {},\n });\n\n return <PaginationItemPart>{element}</PaginationItemPart>;\n}\nPaginationEllipsis.displayName = \"PaginationEllipsis\";\n\nexport const Pagination = {\n Ellipsis: PaginationEllipsis,\n Item: PaginationItemPart,\n Link: PaginationLink,\n List: PaginationList,\n Root: PaginationRoot,\n};\n"],"mappings":"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","names":["buildPaginationItems"]}