@component-labs/ui 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/HMKTUWOU-DlOdK4rt.js +25 -0
- package/dist/HMKTUWOU-DlOdK4rt.js.map +1 -0
- package/dist/HOITXJDS-DBccNHOl.js +48 -0
- package/dist/HOITXJDS-DBccNHOl.js.map +1 -0
- package/dist/I7KWAPMF-CcAk8kiH.js +86 -0
- package/dist/I7KWAPMF-CcAk8kiH.js.map +1 -0
- package/dist/IQYAUKXT-CoP_Jrsi.js +546 -0
- package/dist/IQYAUKXT-CoP_Jrsi.js.map +1 -0
- package/dist/PZ3OL7I2-h7WHitqi.js +61 -0
- package/dist/PZ3OL7I2-h7WHitqi.js.map +1 -0
- package/dist/Provider.d.ts +8 -0
- package/dist/Provider.d.ts.map +1 -0
- package/dist/Q5W46E73-DjlVG3LH.js +353 -0
- package/dist/Q5W46E73-DjlVG3LH.js.map +1 -0
- package/dist/U6HHPQDW-BkT6kvCd.js +888 -0
- package/dist/U6HHPQDW-BkT6kvCd.js.map +1 -0
- package/dist/X6LNAU2F-DroCIVyL.js +1692 -0
- package/dist/X6LNAU2F-DroCIVyL.js.map +1 -0
- package/dist/Z32PU2LQ-CPSDShGU.js +1116 -0
- package/dist/Z32PU2LQ-CPSDShGU.js.map +1 -0
- package/dist/button.d.ts +4 -0
- package/dist/button.d.ts.map +1 -0
- package/dist/button.js +252 -0
- package/dist/button.js.map +1 -0
- package/dist/checkbox.d.ts +4 -0
- package/dist/checkbox.d.ts.map +1 -0
- package/dist/checkbox.js +210 -0
- package/dist/checkbox.js.map +1 -0
- package/dist/combobox.d.ts +4 -0
- package/dist/combobox.d.ts.map +1 -0
- package/dist/combobox.js +948 -0
- package/dist/combobox.js.map +1 -0
- package/dist/components/button/Button.d.ts +26 -0
- package/dist/components/button/Button.d.ts.map +1 -0
- package/dist/components/button/Button.docs.d.ts +4 -0
- package/dist/components/button/Button.docs.d.ts.map +1 -0
- package/dist/components/button/Button.showcase.d.ts +40 -0
- package/dist/components/button/Button.showcase.d.ts.map +1 -0
- package/dist/components/checkbox/Checkbox.d.ts +19 -0
- package/dist/components/checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/checkbox/Checkbox.docs.d.ts +4 -0
- package/dist/components/checkbox/Checkbox.docs.d.ts.map +1 -0
- package/dist/components/checkbox/Checkbox.showcase.d.ts +35 -0
- package/dist/components/checkbox/Checkbox.showcase.d.ts.map +1 -0
- package/dist/components/combobox/Combobox.d.ts +36 -0
- package/dist/components/combobox/Combobox.d.ts.map +1 -0
- package/dist/components/combobox/Combobox.docs.d.ts +4 -0
- package/dist/components/combobox/Combobox.docs.d.ts.map +1 -0
- package/dist/components/combobox/Combobox.showcase.d.ts +43 -0
- package/dist/components/combobox/Combobox.showcase.d.ts.map +1 -0
- package/dist/components/data-table/DataTable.d.ts +86 -0
- package/dist/components/data-table/DataTable.d.ts.map +1 -0
- package/dist/components/data-table/DataTable.docs.d.ts +4 -0
- package/dist/components/data-table/DataTable.docs.d.ts.map +1 -0
- package/dist/components/data-table/DataTable.showcase.d.ts +36 -0
- package/dist/components/data-table/DataTable.showcase.d.ts.map +1 -0
- package/dist/components/date-picker/date-picker.d.ts +1 -0
- package/dist/components/date-picker/date-picker.d.ts.map +1 -0
- package/dist/components/dialog/Dialog.d.ts +56 -0
- package/dist/components/dialog/Dialog.d.ts.map +1 -0
- package/dist/components/dialog/Dialog.docs.d.ts +4 -0
- package/dist/components/dialog/Dialog.docs.d.ts.map +1 -0
- package/dist/components/input/Input.d.ts +22 -0
- package/dist/components/input/Input.d.ts.map +1 -0
- package/dist/components/input/Input.docs.d.ts +4 -0
- package/dist/components/input/Input.docs.d.ts.map +1 -0
- package/dist/components/menu/Menu.d.ts +41 -0
- package/dist/components/menu/Menu.d.ts.map +1 -0
- package/dist/components/menu/Menu.docs.d.ts +4 -0
- package/dist/components/menu/Menu.docs.d.ts.map +1 -0
- package/dist/components/menu/Menu.showcase.d.ts +43 -0
- package/dist/components/menu/Menu.showcase.d.ts.map +1 -0
- package/dist/components/slider/date-picker.d.ts +1 -0
- package/dist/components/slider/date-picker.d.ts.map +1 -0
- package/dist/components/sub-menu/date-picker.d.ts +1 -0
- package/dist/components/sub-menu/date-picker.d.ts.map +1 -0
- package/dist/components/switch/Switch.d.ts +17 -0
- package/dist/components/switch/Switch.d.ts.map +1 -0
- package/dist/components/switch/Switch.docs.d.ts +4 -0
- package/dist/components/switch/Switch.docs.d.ts.map +1 -0
- package/dist/components/toast/date-picker.d.ts +1 -0
- package/dist/components/toast/date-picker.d.ts.map +1 -0
- package/dist/data-table.d.ts +4 -0
- package/dist/data-table.d.ts.map +1 -0
- package/dist/data-table.js +298 -0
- package/dist/data-table.js.map +1 -0
- package/dist/dialog.d.ts +4 -0
- package/dist/dialog.d.ts.map +1 -0
- package/dist/dialog.js +323 -0
- package/dist/dialog.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/input.d.ts +4 -0
- package/dist/input.d.ts.map +1 -0
- package/dist/input.js +230 -0
- package/dist/input.js.map +1 -0
- package/dist/lib/IntersectionObserver.d.ts +30 -0
- package/dist/lib/IntersectionObserver.d.ts.map +1 -0
- package/dist/lib/utils.d.ts +7 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/menu.d.ts +4 -0
- package/dist/menu.d.ts.map +1 -0
- package/dist/menu.js +1335 -0
- package/dist/menu.js.map +1 -0
- package/dist/switch.d.ts +4 -0
- package/dist/switch.d.ts.map +1 -0
- package/dist/switch.js +194 -0
- package/dist/switch.js.map +1 -0
- package/dist/types/docs.d.ts +24 -0
- package/dist/types/docs.d.ts.map +1 -0
- package/dist/utils-BZvHF7th.js +2806 -0
- package/dist/utils-BZvHF7th.js.map +1 -0
- package/package.json +98 -0
- package/src/styles.css +91 -0
package/dist/menu.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.js","sources":["../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/__chunks/P7VC6T3R.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/__chunks/YBRT277Q.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/__chunks/PTRWAQFT.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/__chunks/X7QOZUD3.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/__chunks/4HTVKX2Y.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/__chunks/2XVFVSLB.js","../../../node_modules/.pnpm/@ariakit+core@0.4.18/node_modules/@ariakit/core/esm/__chunks/TIQDSBWP.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/__chunks/ECBEZ4YM.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/__chunks/2DUOQURA.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/__chunks/NDVACHQI.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/__chunks/APVORPDK.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/__chunks/RFRKSHIZ.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/__chunks/37HM5VRA.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/__chunks/FORDJ4GP.js","../../../node_modules/.pnpm/@ariakit+core@0.4.18/node_modules/@ariakit/core/esm/checkbox/checkbox-store.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/__chunks/ALZMXNL4.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/__chunks/Z4X7TRJU.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/__chunks/SVHPDYU7.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/menu/menu.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/menu/menu-button.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/menu/menu-button-arrow.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/__chunks/MOWGOTGG.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/menu/menu-item-check.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/menu/menu-item-checkbox.js","../../../node_modules/.pnpm/@ariakit+core@0.4.18/node_modules/@ariakit/core/esm/menu/menu-store.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/__chunks/62CEUOYM.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/menu/menu-provider.js","../../../node_modules/.pnpm/@ariakit+react-core@0.4.21_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@ariakit/react-core/esm/menu/menu-separator.js","../src/components/menu/Menu.tsx","../src/components/menu/Menu.docs.ts"],"sourcesContent":["\"use client\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./GWSL6KNJ.js\";\n\n// src/separator/separator.tsx\nvar TagName = \"hr\";\nvar useSeparator = createHook(\n function useSeparator2({ orientation = \"horizontal\", ...props }) {\n props = {\n role: \"separator\",\n \"aria-orientation\": orientation,\n ...props\n };\n return props;\n }\n);\nvar Separator = forwardRef(function Separator2(props) {\n const htmlProps = useSeparator(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useSeparator,\n Separator\n};\n","\"use client\";\nimport {\n useSeparator\n} from \"./P7VC6T3R.js\";\nimport {\n useCompositeContext\n} from \"./AVVXDJMZ.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./GWSL6KNJ.js\";\n\n// src/composite/composite-separator.tsx\nimport { invariant } from \"@ariakit/core/utils/misc\";\nvar TagName = \"hr\";\nvar useCompositeSeparator = createHook(function useCompositeSeparator2({ store, ...props }) {\n const context = useCompositeContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"CompositeSeparator must be wrapped in a Composite component.\"\n );\n const orientation = store.useState(\n (state) => state.orientation === \"horizontal\" ? \"vertical\" : \"horizontal\"\n );\n props = useSeparator({ ...props, orientation });\n return props;\n});\nvar CompositeSeparator = forwardRef(function CompositeSeparator2(props) {\n const htmlProps = useCompositeSeparator(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useCompositeSeparator,\n CompositeSeparator\n};\n","\"use client\";\nimport {\n PopoverContextProvider,\n PopoverScopedContextProvider\n} from \"./JMU4N4M5.js\";\nimport {\n createStoreContext\n} from \"./GWSL6KNJ.js\";\n\n// src/hovercard/hovercard-context.tsx\nvar ctx = createStoreContext(\n [PopoverContextProvider],\n [PopoverScopedContextProvider]\n);\nvar useHovercardContext = ctx.useContext;\nvar useHovercardScopedContext = ctx.useScopedContext;\nvar useHovercardProviderContext = ctx.useProviderContext;\nvar HovercardContextProvider = ctx.ContextProvider;\nvar HovercardScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n useHovercardContext,\n useHovercardScopedContext,\n useHovercardProviderContext,\n HovercardContextProvider,\n HovercardScopedContextProvider\n};\n","\"use client\";\n\n// src/hovercard/utils/polygon.ts\nfunction getEventPoint(event) {\n return [event.clientX, event.clientY];\n}\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let inside = false;\n const length = polygon.length;\n for (let l = length, i = 0, j = l - 1; i < l; j = i++) {\n const [xi, yi] = polygon[i];\n const [xj, yj] = polygon[j];\n const [, vy] = polygon[j === 0 ? l - 1 : j - 1] || [0, 0];\n const where = (yi - yj) * (x - xi) - (xi - xj) * (y - yi);\n if (yj < yi) {\n if (y >= yj && y < yi) {\n if (where === 0) return true;\n if (where > 0) {\n if (y === yj) {\n if (y > vy) {\n inside = !inside;\n }\n } else {\n inside = !inside;\n }\n }\n }\n } else if (yi < yj) {\n if (y > yi && y <= yj) {\n if (where === 0) return true;\n if (where < 0) {\n if (y === yj) {\n if (y < vy) {\n inside = !inside;\n }\n } else {\n inside = !inside;\n }\n }\n }\n } else if (y === yi && (x >= xj && x <= xi || x >= xi && x <= xj)) {\n return true;\n }\n }\n return inside;\n}\nfunction getEnterPointPlacement(enterPoint, rect) {\n const { top, right, bottom, left } = rect;\n const [x, y] = enterPoint;\n const placementX = x < left ? \"left\" : x > right ? \"right\" : null;\n const placementY = y < top ? \"top\" : y > bottom ? \"bottom\" : null;\n return [placementX, placementY];\n}\nfunction getElementPolygon(element, enterPoint) {\n const rect = element.getBoundingClientRect();\n const { top, right, bottom, left } = rect;\n const [x, y] = getEnterPointPlacement(enterPoint, rect);\n const polygon = [enterPoint];\n if (x) {\n if (y !== \"top\") {\n polygon.push([x === \"left\" ? left : right, top]);\n }\n polygon.push([x === \"left\" ? right : left, top]);\n polygon.push([x === \"left\" ? right : left, bottom]);\n if (y !== \"bottom\") {\n polygon.push([x === \"left\" ? left : right, bottom]);\n }\n } else if (y === \"top\") {\n polygon.push([left, top]);\n polygon.push([left, bottom]);\n polygon.push([right, bottom]);\n polygon.push([right, top]);\n } else {\n polygon.push([left, bottom]);\n polygon.push([left, top]);\n polygon.push([right, top]);\n polygon.push([right, bottom]);\n }\n return polygon;\n}\n\nexport {\n getEventPoint,\n isPointInPolygon,\n getElementPolygon\n};\n","\"use client\";\nimport {\n getElementPolygon,\n getEventPoint,\n isPointInPolygon\n} from \"./X7QOZUD3.js\";\nimport {\n HovercardScopedContextProvider,\n useHovercardProviderContext\n} from \"./PTRWAQFT.js\";\nimport {\n usePopover\n} from \"./KW7Z5AIL.js\";\nimport {\n createDialogComponent\n} from \"./Z32PU2LQ.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./GWSL6KNJ.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useIsMouseMoving,\n useLiveRef,\n useMergeRefs,\n usePortalRef,\n useSafeLayoutEffect,\n useWrapElement\n} from \"./KPHZR4MB.js\";\n\n// src/hovercard/hovercard.tsx\nimport { contains } from \"@ariakit/core/utils/dom\";\nimport { addGlobalEventListener } from \"@ariakit/core/utils/events\";\nimport { hasFocusWithin } from \"@ariakit/core/utils/focus\";\nimport {\n chain,\n invariant,\n isFalsyBooleanCallback\n} from \"@ariakit/core/utils/misc\";\nimport { sync } from \"@ariakit/core/utils/store\";\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState\n} from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction isMovingOnHovercard(target, card, anchor, nested) {\n if (hasFocusWithin(card)) return true;\n if (!target) return false;\n if (contains(card, target)) return true;\n if (anchor && contains(anchor, target)) return true;\n if (nested == null ? void 0 : nested.some((card2) => isMovingOnHovercard(target, card2, anchor))) {\n return true;\n }\n return false;\n}\nfunction useAutoFocusOnHide({\n store,\n ...props\n}) {\n const [autoFocusOnHide, setAutoFocusOnHide] = useState(false);\n const mounted = store.useState(\"mounted\");\n useEffect(() => {\n if (!mounted) {\n setAutoFocusOnHide(false);\n }\n }, [mounted]);\n const onFocusProp = props.onFocus;\n const onFocus = useEvent((event) => {\n onFocusProp == null ? void 0 : onFocusProp(event);\n if (event.defaultPrevented) return;\n setAutoFocusOnHide(true);\n });\n const finalFocusRef = useRef(null);\n useEffect(() => {\n return sync(store, [\"anchorElement\"], (state) => {\n finalFocusRef.current = state.anchorElement;\n });\n }, []);\n props = {\n autoFocusOnHide,\n finalFocus: finalFocusRef,\n ...props,\n onFocus\n };\n return props;\n}\nvar NestedHovercardContext = createContext(null);\nvar useHovercard = createHook(\n function useHovercard2({\n store,\n modal = false,\n portal = !!modal,\n hideOnEscape = true,\n hideOnHoverOutside = true,\n disablePointerEventsOnApproach = !!hideOnHoverOutside,\n ...props\n }) {\n const context = useHovercardProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"Hovercard must receive a `store` prop or be wrapped in a HovercardProvider component.\"\n );\n const ref = useRef(null);\n const [nestedHovercards, setNestedHovercards] = useState([]);\n const hideTimeoutRef = useRef(0);\n const enterPointRef = useRef(null);\n const { portalRef, domReady } = usePortalRef(portal, props.portalRef);\n const isMouseMoving = useIsMouseMoving();\n const mayHideOnHoverOutside = !!hideOnHoverOutside;\n const hideOnHoverOutsideProp = useBooleanEvent(hideOnHoverOutside);\n const mayDisablePointerEvents = !!disablePointerEventsOnApproach;\n const disablePointerEventsProp = useBooleanEvent(\n disablePointerEventsOnApproach\n );\n const open = store.useState(\"open\");\n const mounted = store.useState(\"mounted\");\n useEffect(() => {\n if (!domReady) return;\n if (!mounted) return;\n if (!mayHideOnHoverOutside && !mayDisablePointerEvents) return;\n const element = ref.current;\n if (!element) return;\n const onMouseMove = (event) => {\n if (!store) return;\n if (!isMouseMoving()) return;\n const { anchorElement, hideTimeout, timeout } = store.getState();\n const enterPoint = enterPointRef.current;\n const [target] = event.composedPath();\n const anchor = anchorElement;\n if (isMovingOnHovercard(target, element, anchor, nestedHovercards)) {\n enterPointRef.current = target && anchor && contains(anchor, target) ? getEventPoint(event) : null;\n window.clearTimeout(hideTimeoutRef.current);\n hideTimeoutRef.current = 0;\n return;\n }\n if (hideTimeoutRef.current) return;\n if (enterPoint) {\n const currentPoint = getEventPoint(event);\n const polygon = getElementPolygon(element, enterPoint);\n if (isPointInPolygon(currentPoint, polygon)) {\n enterPointRef.current = currentPoint;\n if (!disablePointerEventsProp(event)) return;\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n if (!hideOnHoverOutsideProp(event)) return;\n hideTimeoutRef.current = window.setTimeout(() => {\n hideTimeoutRef.current = 0;\n store == null ? void 0 : store.hide();\n }, hideTimeout != null ? hideTimeout : timeout);\n };\n return chain(\n addGlobalEventListener(\"mousemove\", onMouseMove, true),\n () => clearTimeout(hideTimeoutRef.current)\n );\n }, [\n store,\n isMouseMoving,\n domReady,\n mounted,\n mayHideOnHoverOutside,\n mayDisablePointerEvents,\n nestedHovercards,\n disablePointerEventsProp,\n hideOnHoverOutsideProp\n ]);\n useEffect(() => {\n if (!domReady) return;\n if (!mounted) return;\n if (!mayDisablePointerEvents) return;\n const disableEvent = (event) => {\n const element = ref.current;\n if (!element) return;\n const enterPoint = enterPointRef.current;\n if (!enterPoint) return;\n const polygon = getElementPolygon(element, enterPoint);\n if (isPointInPolygon(getEventPoint(event), polygon)) {\n if (!disablePointerEventsProp(event)) return;\n event.preventDefault();\n event.stopPropagation();\n }\n };\n return chain(\n // Note: we may need to add pointer events here in the future.\n addGlobalEventListener(\"mouseenter\", disableEvent, true),\n addGlobalEventListener(\"mouseover\", disableEvent, true),\n addGlobalEventListener(\"mouseout\", disableEvent, true),\n addGlobalEventListener(\"mouseleave\", disableEvent, true)\n );\n }, [domReady, mounted, mayDisablePointerEvents, disablePointerEventsProp]);\n useEffect(() => {\n if (!domReady) return;\n if (open) return;\n store == null ? void 0 : store.setAutoFocusOnShow(false);\n }, [store, domReady, open]);\n const openRef = useLiveRef(open);\n useEffect(() => {\n if (!domReady) return;\n return () => {\n if (!openRef.current) {\n store == null ? void 0 : store.setAutoFocusOnShow(false);\n }\n };\n }, [store, domReady]);\n const registerOnParent = useContext(NestedHovercardContext);\n useSafeLayoutEffect(() => {\n if (modal) return;\n if (!portal) return;\n if (!mounted) return;\n if (!domReady) return;\n const element = ref.current;\n if (!element) return;\n return registerOnParent == null ? void 0 : registerOnParent(element);\n }, [modal, portal, mounted, domReady]);\n const registerNestedHovercard = useCallback(\n (element) => {\n setNestedHovercards((prevElements) => [...prevElements, element]);\n const parentUnregister = registerOnParent == null ? void 0 : registerOnParent(element);\n return () => {\n setNestedHovercards(\n (prevElements) => prevElements.filter((item) => item !== element)\n );\n parentUnregister == null ? void 0 : parentUnregister();\n };\n },\n [registerOnParent]\n );\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(HovercardScopedContextProvider, { value: store, children: /* @__PURE__ */ jsx(NestedHovercardContext.Provider, { value: registerNestedHovercard, children: element }) }),\n [store, registerNestedHovercard]\n );\n props = {\n ...props,\n ref: useMergeRefs(ref, props.ref)\n };\n props = useAutoFocusOnHide({ store, ...props });\n const autoFocusOnShow = store.useState(\n (state) => modal || state.autoFocusOnShow\n );\n props = usePopover({\n store,\n modal,\n portal,\n autoFocusOnShow,\n ...props,\n portalRef,\n hideOnEscape(event) {\n if (isFalsyBooleanCallback(hideOnEscape, event)) return false;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n store == null ? void 0 : store.hide();\n });\n });\n return true;\n }\n });\n return props;\n }\n);\nvar Hovercard = createDialogComponent(\n forwardRef(function Hovercard2(props) {\n const htmlProps = useHovercard(props);\n return createElement(TagName, htmlProps);\n }),\n useHovercardProviderContext\n);\n\nexport {\n useHovercard,\n Hovercard\n};\n","\"use client\";\nimport {\n useHovercardProviderContext\n} from \"./PTRWAQFT.js\";\nimport {\n useFocusable\n} from \"./U6HHPQDW.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./GWSL6KNJ.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useIsMouseMoving,\n useMergeRefs\n} from \"./KPHZR4MB.js\";\n\n// src/hovercard/hovercard-anchor.tsx\nimport { addGlobalEventListener } from \"@ariakit/core/utils/events\";\nimport { disabledFromProps, invariant } from \"@ariakit/core/utils/misc\";\nimport { useCallback, useEffect, useRef } from \"react\";\nvar TagName = \"a\";\nvar useHovercardAnchor = createHook(\n function useHovercardAnchor2({ store, showOnHover = true, ...props }) {\n const context = useHovercardProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"HovercardAnchor must receive a `store` prop or be wrapped in a HovercardProvider component.\"\n );\n const disabled = disabledFromProps(props);\n const showTimeoutRef = useRef(0);\n useEffect(() => () => window.clearTimeout(showTimeoutRef.current), []);\n useEffect(() => {\n const onMouseLeave = (event) => {\n if (!store) return;\n const { anchorElement } = store.getState();\n if (!anchorElement) return;\n if (event.target !== anchorElement) return;\n window.clearTimeout(showTimeoutRef.current);\n showTimeoutRef.current = 0;\n };\n return addGlobalEventListener(\"mouseleave\", onMouseLeave, true);\n }, [store]);\n const onMouseMoveProp = props.onMouseMove;\n const showOnHoverProp = useBooleanEvent(showOnHover);\n const isMouseMoving = useIsMouseMoving();\n const onMouseMove = useEvent((event) => {\n onMouseMoveProp == null ? void 0 : onMouseMoveProp(event);\n if (disabled) return;\n if (!store) return;\n if (event.defaultPrevented) return;\n if (showTimeoutRef.current) return;\n if (!isMouseMoving()) return;\n if (!showOnHoverProp(event)) return;\n const element = event.currentTarget;\n store.setAnchorElement(element);\n store.setDisclosureElement(element);\n const { showTimeout, timeout } = store.getState();\n const showHovercard = () => {\n showTimeoutRef.current = 0;\n if (!isMouseMoving()) return;\n store == null ? void 0 : store.setAnchorElement(element);\n store == null ? void 0 : store.show();\n queueMicrotask(() => {\n store == null ? void 0 : store.setDisclosureElement(element);\n });\n };\n const timeoutMs = showTimeout != null ? showTimeout : timeout;\n if (timeoutMs === 0) {\n showHovercard();\n } else {\n showTimeoutRef.current = window.setTimeout(showHovercard, timeoutMs);\n }\n });\n const onClickProp = props.onClick;\n const onClick = useEvent((event) => {\n onClickProp == null ? void 0 : onClickProp(event);\n if (!store) return;\n window.clearTimeout(showTimeoutRef.current);\n showTimeoutRef.current = 0;\n });\n const ref = useCallback(\n (element) => {\n if (!store) return;\n const { anchorElement } = store.getState();\n if (anchorElement == null ? void 0 : anchorElement.isConnected) return;\n store.setAnchorElement(element);\n },\n [store]\n );\n props = {\n ...props,\n ref: useMergeRefs(ref, props.ref),\n onMouseMove,\n onClick\n };\n props = useFocusable(props);\n return props;\n }\n);\nvar HovercardAnchor = forwardRef(function HovercardAnchor2(props) {\n const htmlProps = useHovercardAnchor(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useHovercardAnchor,\n HovercardAnchor\n};\n","\"use client\";\nimport {\n createPopoverStore\n} from \"./BFGNM53A.js\";\nimport {\n createStore\n} from \"./SXKM4CGU.js\";\nimport {\n defaultValue\n} from \"./XMCVU3LR.js\";\n\n// src/hovercard/hovercard-store.ts\nfunction createHovercardStore(props = {}) {\n var _a;\n const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n const popover = createPopoverStore({\n ...props,\n placement: defaultValue(\n props.placement,\n syncState == null ? void 0 : syncState.placement,\n \"bottom\"\n )\n });\n const timeout = defaultValue(props.timeout, syncState == null ? void 0 : syncState.timeout, 500);\n const initialState = {\n ...popover.getState(),\n timeout,\n showTimeout: defaultValue(props.showTimeout, syncState == null ? void 0 : syncState.showTimeout),\n hideTimeout: defaultValue(props.hideTimeout, syncState == null ? void 0 : syncState.hideTimeout),\n autoFocusOnShow: defaultValue(syncState == null ? void 0 : syncState.autoFocusOnShow, false)\n };\n const hovercard = createStore(initialState, popover, props.store);\n return {\n ...popover,\n ...hovercard,\n setAutoFocusOnShow: (value) => hovercard.setState(\"autoFocusOnShow\", value)\n };\n}\n\nexport {\n createHovercardStore\n};\n","\"use client\";\nimport {\n usePopoverStoreProps\n} from \"./B6FLPFJM.js\";\nimport {\n useStore,\n useStoreProps\n} from \"./Q5W46E73.js\";\n\n// src/hovercard/hovercard-store.ts\nimport * as Core from \"@ariakit/core/hovercard/hovercard-store\";\nfunction useHovercardStoreProps(store, update, props) {\n useStoreProps(store, props, \"timeout\");\n useStoreProps(store, props, \"showTimeout\");\n useStoreProps(store, props, \"hideTimeout\");\n return usePopoverStoreProps(store, update, props);\n}\nfunction useHovercardStore(props = {}) {\n const [store, update] = useStore(Core.createHovercardStore, props);\n return useHovercardStoreProps(store, update, props);\n}\n\nexport {\n useHovercardStoreProps,\n useHovercardStore\n};\n","\"use client\";\nimport {\n CompositeContextProvider,\n CompositeScopedContextProvider\n} from \"./AVVXDJMZ.js\";\nimport {\n createStoreContext\n} from \"./GWSL6KNJ.js\";\n\n// src/menubar/menubar-context.tsx\nimport { createContext } from \"react\";\nvar menubar = createStoreContext(\n [CompositeContextProvider],\n [CompositeScopedContextProvider]\n);\nvar useMenubarContext = menubar.useContext;\nvar useMenubarScopedContext = menubar.useScopedContext;\nvar useMenubarProviderContext = menubar.useProviderContext;\nvar MenubarContextProvider = menubar.ContextProvider;\nvar MenubarScopedContextProvider = menubar.ScopedContextProvider;\nvar MenuItemCheckedContext = createContext(\n void 0\n);\n\nexport {\n useMenubarContext,\n useMenubarScopedContext,\n useMenubarProviderContext,\n MenubarContextProvider,\n MenubarScopedContextProvider,\n MenuItemCheckedContext\n};\n","\"use client\";\nimport {\n useDisclosureProviderContext\n} from \"./LVDQFHCH.js\";\nimport {\n useButton\n} from \"./HMKTUWOU.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./GWSL6KNJ.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useMergeRefs,\n useMetadataProps\n} from \"./KPHZR4MB.js\";\n\n// src/disclosure/disclosure.tsx\nimport { invariant } from \"@ariakit/core/utils/misc\";\nimport { useEffect, useRef, useState } from \"react\";\nvar TagName = \"button\";\nvar symbol = Symbol(\"disclosure\");\nvar useDisclosure = createHook(\n function useDisclosure2({ store, toggleOnClick = true, ...props }) {\n const context = useDisclosureProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"Disclosure must receive a `store` prop or be wrapped in a DisclosureProvider component.\"\n );\n const ref = useRef(null);\n const [expanded, setExpanded] = useState(false);\n const disclosureElement = store.useState(\"disclosureElement\");\n const open = store.useState(\"open\");\n useEffect(() => {\n let isCurrentDisclosure = disclosureElement === ref.current;\n if (!(disclosureElement == null ? void 0 : disclosureElement.isConnected)) {\n store == null ? void 0 : store.setDisclosureElement(ref.current);\n isCurrentDisclosure = true;\n }\n setExpanded(open && isCurrentDisclosure);\n }, [disclosureElement, store, open]);\n const onClickProp = props.onClick;\n const toggleOnClickProp = useBooleanEvent(toggleOnClick);\n const [isDuplicate, metadataProps] = useMetadataProps(props, symbol, true);\n const onClick = useEvent((event) => {\n onClickProp == null ? void 0 : onClickProp(event);\n if (event.defaultPrevented) return;\n if (isDuplicate) return;\n if (!toggleOnClickProp(event)) return;\n store == null ? void 0 : store.setDisclosureElement(event.currentTarget);\n store == null ? void 0 : store.toggle();\n });\n const contentElement = store.useState(\"contentElement\");\n props = {\n \"aria-expanded\": expanded,\n \"aria-controls\": contentElement == null ? void 0 : contentElement.id,\n ...metadataProps,\n ...props,\n ref: useMergeRefs(ref, props.ref),\n onClick\n };\n props = useButton(props);\n return props;\n }\n);\nvar Disclosure = forwardRef(function Disclosure2(props) {\n const htmlProps = useDisclosure(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useDisclosure,\n Disclosure\n};\n","\"use client\";\nimport {\n useDisclosure\n} from \"./NDVACHQI.js\";\nimport {\n useDialogProviderContext\n} from \"./A62MDFCW.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./GWSL6KNJ.js\";\n\n// src/dialog/dialog-disclosure.tsx\nimport { getPopupRole } from \"@ariakit/core/utils/dom\";\nimport { invariant } from \"@ariakit/core/utils/misc\";\nvar TagName = \"button\";\nvar useDialogDisclosure = createHook(\n function useDialogDisclosure2({ store, ...props }) {\n const context = useDialogProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"DialogDisclosure must receive a `store` prop or be wrapped in a DialogProvider component.\"\n );\n const contentElement = store.useState(\"contentElement\");\n props = {\n \"aria-haspopup\": getPopupRole(contentElement, \"dialog\"),\n ...props\n };\n props = useDisclosure({ store, ...props });\n return props;\n }\n);\nvar DialogDisclosure = forwardRef(function DialogDisclosure2(props) {\n const htmlProps = useDialogDisclosure(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useDialogDisclosure,\n DialogDisclosure\n};\n","\"use client\";\nimport {\n usePopoverAnchor\n} from \"./4POTBZ2J.js\";\nimport {\n useDialogDisclosure\n} from \"./APVORPDK.js\";\nimport {\n PopoverScopedContextProvider,\n usePopoverProviderContext\n} from \"./JMU4N4M5.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./GWSL6KNJ.js\";\nimport {\n useEvent,\n useWrapElement\n} from \"./KPHZR4MB.js\";\n\n// src/popover/popover-disclosure.tsx\nimport { invariant } from \"@ariakit/core/utils/misc\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"button\";\nvar usePopoverDisclosure = createHook(function usePopoverDisclosure2({ store, ...props }) {\n const context = usePopoverProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"PopoverDisclosure must receive a `store` prop or be wrapped in a PopoverProvider component.\"\n );\n const onClickProp = props.onClick;\n const onClick = useEvent((event) => {\n store == null ? void 0 : store.setAnchorElement(event.currentTarget);\n onClickProp == null ? void 0 : onClickProp(event);\n });\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(PopoverScopedContextProvider, { value: store, children: element }),\n [store]\n );\n props = {\n ...props,\n onClick\n };\n props = usePopoverAnchor({ store, ...props });\n props = useDialogDisclosure({ store, ...props });\n return props;\n});\nvar PopoverDisclosure = forwardRef(function PopoverDisclosure2(props) {\n const htmlProps = usePopoverDisclosure(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n usePopoverDisclosure,\n PopoverDisclosure\n};\n","\"use client\";\nimport {\n usePopoverContext\n} from \"./JMU4N4M5.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./GWSL6KNJ.js\";\n\n// src/popover/popover-disclosure-arrow.tsx\nimport { invariant, removeUndefinedValues } from \"@ariakit/core/utils/misc\";\nimport { useMemo } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"span\";\nvar pointsMap = {\n top: \"4,10 8,6 12,10\",\n right: \"6,4 10,8 6,12\",\n bottom: \"4,6 8,10 12,6\",\n left: \"10,4 6,8 10,12\"\n};\nvar usePopoverDisclosureArrow = createHook(function usePopoverDisclosureArrow2({ store, placement, ...props }) {\n const context = usePopoverContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"PopoverDisclosureArrow must be wrapped in a PopoverDisclosure component.\"\n );\n const position = store.useState((state) => placement || state.placement);\n const dir = position.split(\"-\")[0];\n const points = pointsMap[dir];\n const children = useMemo(\n () => /* @__PURE__ */ jsx(\n \"svg\",\n {\n display: \"block\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5,\n viewBox: \"0 0 16 16\",\n height: \"1em\",\n width: \"1em\",\n children: /* @__PURE__ */ jsx(\"polyline\", { points })\n }\n ),\n [points]\n );\n props = {\n children,\n \"aria-hidden\": true,\n ...props,\n style: {\n width: \"1em\",\n height: \"1em\",\n pointerEvents: \"none\",\n ...props.style\n }\n };\n return removeUndefinedValues(props);\n});\nvar PopoverDisclosureArrow = forwardRef(\n function PopoverDisclosureArrow2(props) {\n const htmlProps = usePopoverDisclosureArrow(props);\n return createElement(TagName, htmlProps);\n }\n);\n\nexport {\n usePopoverDisclosureArrow,\n PopoverDisclosureArrow\n};\n","\"use client\";\nimport {\n flipItems\n} from \"./5VQZOHHZ.js\";\nimport {\n useCompositeContext\n} from \"./AVVXDJMZ.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./GWSL6KNJ.js\";\nimport {\n useEvent\n} from \"./KPHZR4MB.js\";\n\n// src/composite/composite-typeahead.tsx\nimport {\n getDocument,\n isTextField,\n sortBasedOnDOMPosition\n} from \"@ariakit/core/utils/dom\";\nimport { isSelfTarget } from \"@ariakit/core/utils/events\";\nimport {\n invariant,\n normalizeString,\n removeUndefinedValues\n} from \"@ariakit/core/utils/misc\";\nimport { useRef } from \"react\";\nvar TagName = \"div\";\nvar chars = \"\";\nfunction clearChars() {\n chars = \"\";\n}\nfunction isValidTypeaheadEvent(event) {\n const target = event.target;\n if (target && isTextField(target)) return false;\n if (event.key === \" \" && chars.length) return true;\n return event.key.length === 1 && !event.ctrlKey && !event.altKey && !event.metaKey && /^[\\p{Letter}\\p{Number}]$/u.test(event.key);\n}\nfunction isSelfTargetOrItem(event, items) {\n if (isSelfTarget(event)) return true;\n const target = event.target;\n if (!target) return false;\n const isItem = items.some((item) => item.element === target);\n return isItem;\n}\nfunction getEnabledItems(items) {\n return items.filter((item) => !item.disabled);\n}\nfunction itemTextStartsWith(item, text) {\n var _a;\n const itemText = ((_a = item.element) == null ? void 0 : _a.textContent) || item.children || // The composite item object itself doesn't include a value property, but\n // other components like Select do. Since CompositeTypeahead is a generic\n // component that can be used with those as well, we also consider the value\n // property as a fallback for the typeahead text content.\n \"value\" in item && item.value;\n if (!itemText) return false;\n return normalizeString(itemText).trim().toLowerCase().startsWith(text.toLowerCase());\n}\nfunction getSameInitialItems(items, char, activeId) {\n if (!activeId) return items;\n const activeItem = items.find((item) => item.id === activeId);\n if (!activeItem) return items;\n if (!itemTextStartsWith(activeItem, char)) return items;\n if (chars !== char && itemTextStartsWith(activeItem, chars)) return items;\n chars = char;\n return flipItems(\n items.filter((item) => itemTextStartsWith(item, chars)),\n activeId\n ).filter((item) => item.id !== activeId);\n}\nvar useCompositeTypeahead = createHook(function useCompositeTypeahead2({ store, typeahead = true, ...props }) {\n const context = useCompositeContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"CompositeTypeahead must be a Composite component\"\n );\n const onKeyDownCaptureProp = props.onKeyDownCapture;\n const cleanupTimeoutRef = useRef(0);\n const onKeyDownCapture = useEvent((event) => {\n onKeyDownCaptureProp == null ? void 0 : onKeyDownCaptureProp(event);\n if (event.defaultPrevented) return;\n if (!typeahead) return;\n if (!store) return;\n if (!isValidTypeaheadEvent(event)) {\n return clearChars();\n }\n const { renderedItems, items, activeId, id } = store.getState();\n let enabledItems = getEnabledItems(\n items.length > renderedItems.length ? items : renderedItems\n );\n const document = getDocument(event.currentTarget);\n const selector = `[data-offscreen-id=\"${id}\"]`;\n const offscreenItems = document.querySelectorAll(selector);\n for (const element of offscreenItems) {\n const disabled = element.ariaDisabled === \"true\" || \"disabled\" in element && !!element.disabled;\n enabledItems.push({ id: element.id, element, disabled });\n }\n if (offscreenItems.length) {\n enabledItems = sortBasedOnDOMPosition(enabledItems, (i) => i.element);\n }\n if (!isSelfTargetOrItem(event, enabledItems)) return clearChars();\n event.preventDefault();\n window.clearTimeout(cleanupTimeoutRef.current);\n cleanupTimeoutRef.current = window.setTimeout(() => {\n chars = \"\";\n }, 500);\n const char = event.key.toLowerCase();\n chars += char;\n enabledItems = getSameInitialItems(enabledItems, char, activeId);\n const item = enabledItems.find((item2) => itemTextStartsWith(item2, chars));\n if (item) {\n store.move(item.id);\n } else {\n clearChars();\n }\n });\n props = {\n ...props,\n onKeyDownCapture\n };\n return removeUndefinedValues(props);\n});\nvar CompositeTypeahead = forwardRef(function CompositeTypeahead2(props) {\n const htmlProps = useCompositeTypeahead(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useCompositeTypeahead,\n CompositeTypeahead\n};\n","\"use client\";\nimport {\n createStore,\n throwOnConflictingProps\n} from \"../__chunks/SXKM4CGU.js\";\nimport {\n defaultValue\n} from \"../__chunks/XMCVU3LR.js\";\n\n// src/checkbox/checkbox-store.ts\nfunction createCheckboxStore(props = {}) {\n var _a;\n throwOnConflictingProps(props, props.store);\n const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n const initialState = {\n value: defaultValue(\n props.value,\n syncState == null ? void 0 : syncState.value,\n props.defaultValue,\n false\n )\n };\n const checkbox = createStore(initialState, props.store);\n return {\n ...checkbox,\n setValue: (value) => checkbox.setState(\"value\", value)\n };\n}\nexport {\n createCheckboxStore\n};\n","\"use client\";\nimport {\n useStore,\n useStoreProps\n} from \"./Q5W46E73.js\";\nimport {\n useUpdateEffect\n} from \"./KPHZR4MB.js\";\n\n// src/checkbox/checkbox-store.ts\nimport * as Core from \"@ariakit/core/checkbox/checkbox-store\";\nfunction useCheckboxStoreProps(store, update, props) {\n useUpdateEffect(update, [props.store]);\n useStoreProps(store, props, \"value\", \"setValue\");\n return store;\n}\nfunction useCheckboxStore(props = {}) {\n const [store, update] = useStore(Core.createCheckboxStore, props);\n return useCheckboxStoreProps(store, update, props);\n}\n\nexport {\n useCheckboxStoreProps,\n useCheckboxStore\n};\n","\"use client\";\nimport {\n MenubarContextProvider,\n MenubarScopedContextProvider,\n useMenubarContext,\n useMenubarProviderContext,\n useMenubarScopedContext\n} from \"./2DUOQURA.js\";\nimport {\n HovercardContextProvider,\n HovercardScopedContextProvider\n} from \"./PTRWAQFT.js\";\nimport {\n CompositeContextProvider,\n CompositeScopedContextProvider\n} from \"./AVVXDJMZ.js\";\nimport {\n createStoreContext\n} from \"./GWSL6KNJ.js\";\n\n// src/menu/menu-context.tsx\nimport { createContext } from \"react\";\nvar menu = createStoreContext(\n [CompositeContextProvider, HovercardContextProvider],\n [CompositeScopedContextProvider, HovercardScopedContextProvider]\n);\nvar useMenuContext = menu.useContext;\nvar useMenuScopedContext = menu.useScopedContext;\nvar useMenuProviderContext = menu.useProviderContext;\nvar MenuContextProvider = menu.ContextProvider;\nvar MenuScopedContextProvider = menu.ScopedContextProvider;\nvar useMenuBarContext = useMenubarContext;\nvar useMenuBarScopedContext = useMenubarScopedContext;\nvar useMenuBarProviderContext = useMenubarProviderContext;\nvar MenuBarContextProvider = MenubarContextProvider;\nvar MenuBarScopedContextProvider = MenubarScopedContextProvider;\nvar MenuItemCheckedContext = createContext(\n void 0\n);\n\nexport {\n useMenuContext,\n useMenuScopedContext,\n useMenuProviderContext,\n MenuContextProvider,\n MenuScopedContextProvider,\n useMenuBarContext,\n useMenuBarScopedContext,\n useMenuBarProviderContext,\n MenuBarContextProvider,\n MenuBarScopedContextProvider,\n MenuItemCheckedContext\n};\n","\"use client\";\nimport {\n MenuScopedContextProvider,\n useMenuProviderContext\n} from \"./Z4X7TRJU.js\";\nimport {\n useCompositeTypeahead\n} from \"./FORDJ4GP.js\";\nimport {\n isHidden\n} from \"./6B3RXHKP.js\";\nimport {\n useComposite\n} from \"./ZMWF7ASR.js\";\nimport {\n useStoreState\n} from \"./Q5W46E73.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./GWSL6KNJ.js\";\nimport {\n useEvent,\n useId,\n useMergeRefs,\n useWrapElement\n} from \"./KPHZR4MB.js\";\n\n// src/menu/menu-list.tsx\nimport { invariant } from \"@ariakit/core/utils/misc\";\nimport { useEffect, useState } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction useAriaLabelledBy({ store, ...props }) {\n const [id, setId] = useState(void 0);\n const label = props[\"aria-label\"];\n const disclosureElement = useStoreState(store, \"disclosureElement\");\n const contentElement = useStoreState(store, \"contentElement\");\n useEffect(() => {\n const disclosure = disclosureElement;\n if (!disclosure) return;\n const menu = contentElement;\n if (!menu) return;\n const menuLabel = label || menu.hasAttribute(\"aria-label\");\n if (menuLabel) {\n setId(void 0);\n } else if (disclosure.id) {\n setId(disclosure.id);\n }\n }, [label, disclosureElement, contentElement]);\n return id;\n}\nvar useMenuList = createHook(\n function useMenuList2({ store, alwaysVisible, composite, ...props }) {\n const context = useMenuProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"MenuList must receive a `store` prop or be wrapped in a MenuProvider component.\"\n );\n const parentMenu = store.parent;\n const parentMenubar = store.menubar;\n const hasParentMenu = !!parentMenu;\n const id = useId(props.id);\n const onKeyDownProp = props.onKeyDown;\n const dir = store.useState(\n (state) => state.placement.split(\"-\")[0]\n );\n const orientation = store.useState(\n (state) => state.orientation === \"both\" ? void 0 : state.orientation\n );\n const isHorizontal = orientation !== \"vertical\";\n const isMenubarHorizontal = useStoreState(\n parentMenubar,\n (state) => !!state && state.orientation !== \"vertical\"\n );\n const onKeyDown = useEvent((event) => {\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n if (event.defaultPrevented) return;\n if (hasParentMenu || parentMenubar && !isHorizontal) {\n const hideMap = {\n ArrowRight: () => dir === \"left\" && !isHorizontal,\n ArrowLeft: () => dir === \"right\" && !isHorizontal,\n ArrowUp: () => dir === \"bottom\" && isHorizontal,\n ArrowDown: () => dir === \"top\" && isHorizontal\n };\n const action = hideMap[event.key];\n if (action == null ? void 0 : action()) {\n event.stopPropagation();\n event.preventDefault();\n return store == null ? void 0 : store.hide();\n }\n }\n if (parentMenubar) {\n const keyMap = {\n ArrowRight: () => {\n if (!isMenubarHorizontal) return;\n return parentMenubar.next();\n },\n ArrowLeft: () => {\n if (!isMenubarHorizontal) return;\n return parentMenubar.previous();\n },\n ArrowDown: () => {\n if (isMenubarHorizontal) return;\n return parentMenubar.next();\n },\n ArrowUp: () => {\n if (isMenubarHorizontal) return;\n return parentMenubar.previous();\n }\n };\n const action = keyMap[event.key];\n const id2 = action == null ? void 0 : action();\n if (id2 !== void 0) {\n event.stopPropagation();\n event.preventDefault();\n parentMenubar.move(id2);\n }\n }\n });\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(MenuScopedContextProvider, { value: store, children: element }),\n [store]\n );\n const ariaLabelledBy = useAriaLabelledBy({ store, ...props });\n const mounted = store.useState(\"mounted\");\n const hidden = isHidden(mounted, props.hidden, alwaysVisible);\n const style = hidden ? { ...props.style, display: \"none\" } : props.style;\n props = {\n id,\n \"aria-labelledby\": ariaLabelledBy,\n hidden,\n ...props,\n ref: useMergeRefs(id ? store.setContentElement : null, props.ref),\n style,\n onKeyDown\n };\n const hasCombobox = !!store.combobox;\n composite = composite != null ? composite : !hasCombobox;\n if (composite) {\n props = {\n role: \"menu\",\n \"aria-orientation\": orientation,\n ...props\n };\n }\n props = useComposite({ store, composite, ...props });\n props = useCompositeTypeahead({ store, typeahead: !hasCombobox, ...props });\n return props;\n }\n);\nvar MenuList = forwardRef(function MenuList2(props) {\n const htmlProps = useMenuList(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useMenuList,\n MenuList\n};\n","\"use client\";\nimport {\n useMenuList\n} from \"../__chunks/SVHPDYU7.js\";\nimport {\n useHovercard\n} from \"../__chunks/4HTVKX2Y.js\";\nimport \"../__chunks/X7QOZUD3.js\";\nimport {\n useMenuProviderContext\n} from \"../__chunks/Z4X7TRJU.js\";\nimport \"../__chunks/2DUOQURA.js\";\nimport \"../__chunks/PTRWAQFT.js\";\nimport \"../__chunks/FORDJ4GP.js\";\nimport \"../__chunks/KW7Z5AIL.js\";\nimport {\n createDialogComponent\n} from \"../__chunks/Z32PU2LQ.js\";\nimport \"../__chunks/VJH3F6TN.js\";\nimport \"../__chunks/AOQQTIBO.js\";\nimport \"../__chunks/5M6RIVE2.js\";\nimport \"../__chunks/BFOIJXK2.js\";\nimport \"../__chunks/2F57YTN4.js\";\nimport \"../__chunks/3HM4TGWW.js\";\nimport \"../__chunks/6GXEOXGT.js\";\nimport \"../__chunks/KKITJVHA.js\";\nimport \"../__chunks/U3R3WHDK.js\";\nimport \"../__chunks/JSI7U3EA.js\";\nimport \"../__chunks/B6W4QFKS.js\";\nimport \"../__chunks/OT5RJDXG.js\";\nimport \"../__chunks/CZ4GFWYL.js\";\nimport \"../__chunks/Z5GCVBAY.js\";\nimport \"../__chunks/IGR4SXG2.js\";\nimport \"../__chunks/677M2CI3.js\";\nimport \"../__chunks/S7U6BLGA.js\";\nimport \"../__chunks/P45QRJLH.js\";\nimport \"../__chunks/3NDVDEB4.js\";\nimport \"../__chunks/AOUGVQZ3.js\";\nimport \"../__chunks/K2ZF5NU7.js\";\nimport \"../__chunks/63XF7ACK.js\";\nimport \"../__chunks/6B3RXHKP.js\";\nimport \"../__chunks/4NYSH4UO.js\";\nimport \"../__chunks/WLZ6H5FH.js\";\nimport \"../__chunks/ZMWF7ASR.js\";\nimport \"../__chunks/5VQZOHHZ.js\";\nimport \"../__chunks/JG4VNI52.js\";\nimport \"../__chunks/JMU4N4M5.js\";\nimport \"../__chunks/A62MDFCW.js\";\nimport \"../__chunks/LVDQFHCH.js\";\nimport \"../__chunks/AVVXDJMZ.js\";\nimport \"../__chunks/U6HHPQDW.js\";\nimport \"../__chunks/SWN3JYXT.js\";\nimport {\n useStoreState\n} from \"../__chunks/Q5W46E73.js\";\nimport \"../__chunks/SMPCIMZM.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"../__chunks/GWSL6KNJ.js\";\nimport {\n useMergeRefs\n} from \"../__chunks/KPHZR4MB.js\";\nimport \"../__chunks/YXGXYGQX.js\";\n\n// src/menu/menu.tsx\nimport { fireEvent } from \"@ariakit/core/utils/events\";\nimport { hasFocusWithin } from \"@ariakit/core/utils/focus\";\nimport { invariant, isFalsyBooleanCallback } from \"@ariakit/core/utils/misc\";\nimport { createRef, useEffect, useMemo, useRef, useState } from \"react\";\nvar TagName = \"div\";\nvar useMenu = createHook(function useMenu2({\n store,\n modal: modalProp = false,\n portal = !!modalProp,\n hideOnEscape = true,\n autoFocusOnShow = true,\n hideOnHoverOutside,\n alwaysVisible,\n ...props\n}) {\n const context = useMenuProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"Menu must receive a `store` prop or be wrapped in a MenuProvider component.\"\n );\n const ref = useRef(null);\n const parentMenu = store.parent;\n const parentMenubar = store.menubar;\n const hasParentMenu = !!parentMenu;\n const parentIsMenubar = !!parentMenubar && !hasParentMenu;\n props = {\n ...props,\n ref: useMergeRefs(ref, props.ref)\n };\n const { \"aria-labelledby\": ariaLabelledBy, ...menuListProps } = useMenuList({\n store,\n alwaysVisible,\n ...props\n });\n props = menuListProps;\n const [initialFocusRef, setInitialFocusRef] = useState();\n const autoFocusOnShowState = store.useState(\"autoFocusOnShow\");\n const initialFocus = store.useState(\"initialFocus\");\n const baseElement = store.useState(\"baseElement\");\n const items = store.useState(\"renderedItems\");\n useEffect(() => {\n let cleaning = false;\n setInitialFocusRef((prevInitialFocusRef) => {\n var _a, _b, _c;\n if (cleaning) return;\n if (!autoFocusOnShowState) return;\n if ((_a = prevInitialFocusRef == null ? void 0 : prevInitialFocusRef.current) == null ? void 0 : _a.isConnected) return prevInitialFocusRef;\n const ref2 = createRef();\n switch (initialFocus) {\n // TODO: Refactor\n case \"first\":\n ref2.current = ((_b = items.find((item) => !item.disabled && item.element)) == null ? void 0 : _b.element) || null;\n break;\n case \"last\":\n ref2.current = ((_c = [...items].reverse().find((item) => !item.disabled && item.element)) == null ? void 0 : _c.element) || null;\n break;\n default:\n ref2.current = baseElement;\n }\n return ref2;\n });\n return () => {\n cleaning = true;\n };\n }, [store, autoFocusOnShowState, initialFocus, items, baseElement]);\n const modal = hasParentMenu ? false : modalProp;\n const mayAutoFocusOnShow = !!autoFocusOnShow;\n const canAutoFocusOnShow = !!initialFocusRef || !!props.initialFocus || !!modal;\n const contentElement = useStoreState(\n store.combobox || store,\n \"contentElement\"\n );\n const parentContentElement = useStoreState(\n (parentMenu == null ? void 0 : parentMenu.combobox) || parentMenu,\n \"contentElement\"\n );\n const preserveTabOrderAnchor = useMemo(() => {\n if (!parentContentElement) return;\n if (!contentElement) return;\n const role = contentElement.getAttribute(\"role\");\n const parentRole = parentContentElement.getAttribute(\"role\");\n const parentIsMenuOrMenubar = parentRole === \"menu\" || parentRole === \"menubar\";\n if (parentIsMenuOrMenubar && role === \"menu\") return;\n return parentContentElement;\n }, [contentElement, parentContentElement]);\n if (preserveTabOrderAnchor !== void 0) {\n props = {\n preserveTabOrderAnchor,\n ...props\n };\n }\n props = useHovercard({\n store,\n alwaysVisible,\n initialFocus: initialFocusRef,\n autoFocusOnShow: mayAutoFocusOnShow ? canAutoFocusOnShow && autoFocusOnShow : autoFocusOnShowState || !!modal,\n ...props,\n hideOnEscape(event) {\n if (isFalsyBooleanCallback(hideOnEscape, event)) return false;\n store == null ? void 0 : store.hideAll();\n return true;\n },\n hideOnHoverOutside(event) {\n const disclosureElement = store == null ? void 0 : store.getState().disclosureElement;\n const getHideOnHoverOutside = () => {\n if (typeof hideOnHoverOutside === \"function\") {\n return hideOnHoverOutside(event);\n }\n if (hideOnHoverOutside != null) return hideOnHoverOutside;\n if (hasParentMenu) return true;\n if (!parentIsMenubar) return false;\n if (!disclosureElement) return true;\n if (hasFocusWithin(disclosureElement)) return false;\n return true;\n };\n if (!getHideOnHoverOutside()) return false;\n if (event.defaultPrevented) return true;\n if (!hasParentMenu) return true;\n if (!disclosureElement) return true;\n fireEvent(disclosureElement, \"mouseout\", event);\n if (!hasFocusWithin(disclosureElement)) return true;\n requestAnimationFrame(() => {\n if (hasFocusWithin(disclosureElement)) return;\n store == null ? void 0 : store.hide();\n });\n return false;\n },\n modal,\n portal,\n backdrop: hasParentMenu ? false : props.backdrop\n });\n props = {\n \"aria-labelledby\": ariaLabelledBy,\n ...props\n };\n return props;\n});\nvar Menu = createDialogComponent(\n forwardRef(function Menu2(props) {\n const htmlProps = useMenu(props);\n return createElement(TagName, htmlProps);\n }),\n useMenuProviderContext\n);\nexport {\n Menu,\n useMenu\n};\n","\"use client\";\nimport {\n MenuContextProvider,\n useMenuProviderContext\n} from \"../__chunks/Z4X7TRJU.js\";\nimport \"../__chunks/2DUOQURA.js\";\nimport {\n useHovercardAnchor\n} from \"../__chunks/2XVFVSLB.js\";\nimport \"../__chunks/PTRWAQFT.js\";\nimport {\n useCompositeTypeahead\n} from \"../__chunks/FORDJ4GP.js\";\nimport {\n usePopoverDisclosure\n} from \"../__chunks/RFRKSHIZ.js\";\nimport \"../__chunks/4POTBZ2J.js\";\nimport \"../__chunks/APVORPDK.js\";\nimport \"../__chunks/NDVACHQI.js\";\nimport \"../__chunks/5VQZOHHZ.js\";\nimport {\n Role\n} from \"../__chunks/JG4VNI52.js\";\nimport \"../__chunks/JMU4N4M5.js\";\nimport \"../__chunks/A62MDFCW.js\";\nimport \"../__chunks/LVDQFHCH.js\";\nimport \"../__chunks/AVVXDJMZ.js\";\nimport \"../__chunks/HMKTUWOU.js\";\nimport \"../__chunks/PZ3OL7I2.js\";\nimport \"../__chunks/U6HHPQDW.js\";\nimport \"../__chunks/SWN3JYXT.js\";\nimport {\n useStoreState\n} from \"../__chunks/Q5W46E73.js\";\nimport \"../__chunks/SMPCIMZM.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"../__chunks/GWSL6KNJ.js\";\nimport {\n useEvent,\n useId,\n useMergeRefs,\n useWrapElement\n} from \"../__chunks/KPHZR4MB.js\";\nimport \"../__chunks/YXGXYGQX.js\";\n\n// src/menu/menu-button.tsx\nimport { getPopupItemRole, getPopupRole } from \"@ariakit/core/utils/dom\";\nimport { disabledFromProps, invariant } from \"@ariakit/core/utils/misc\";\nimport { useRef } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"button\";\nfunction getInitialFocus(event, dir) {\n const keyMap = {\n ArrowDown: dir === \"bottom\" || dir === \"top\" ? \"first\" : false,\n ArrowUp: dir === \"bottom\" || dir === \"top\" ? \"last\" : false,\n ArrowRight: dir === \"right\" ? \"first\" : false,\n ArrowLeft: dir === \"left\" ? \"first\" : false\n };\n return keyMap[event.key];\n}\nfunction hasActiveItem(items, excludeElement) {\n return !!(items == null ? void 0 : items.some((item) => {\n if (!item.element) return false;\n if (item.element === excludeElement) return false;\n return item.element.getAttribute(\"aria-expanded\") === \"true\";\n }));\n}\nvar useMenuButton = createHook(\n function useMenuButton2({\n store,\n focusable,\n accessibleWhenDisabled,\n showOnHover,\n ...props\n }) {\n const context = useMenuProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"MenuButton must receive a `store` prop or be wrapped in a MenuProvider component.\"\n );\n const ref = useRef(null);\n const parentMenu = store.parent;\n const parentMenubar = store.menubar;\n const hasParentMenu = !!parentMenu;\n const parentIsMenubar = !!parentMenubar && !hasParentMenu;\n const disabled = disabledFromProps(props);\n const showMenu = () => {\n const trigger = ref.current;\n if (!trigger) return;\n store == null ? void 0 : store.setDisclosureElement(trigger);\n store == null ? void 0 : store.setAnchorElement(trigger);\n store == null ? void 0 : store.show();\n };\n const onFocusProp = props.onFocus;\n const onFocus = useEvent((event) => {\n onFocusProp == null ? void 0 : onFocusProp(event);\n if (disabled) return;\n if (event.defaultPrevented) return;\n store == null ? void 0 : store.setAutoFocusOnShow(false);\n store == null ? void 0 : store.setActiveId(null);\n if (!parentMenubar) return;\n if (!parentIsMenubar) return;\n const { items } = parentMenubar.getState();\n if (hasActiveItem(items, event.currentTarget)) {\n showMenu();\n }\n });\n const dir = useStoreState(\n store,\n (state) => state.placement.split(\"-\")[0]\n );\n const onKeyDownProp = props.onKeyDown;\n const onKeyDown = useEvent((event) => {\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n if (disabled) return;\n if (event.defaultPrevented) return;\n const initialFocus = getInitialFocus(event, dir);\n if (initialFocus) {\n event.preventDefault();\n showMenu();\n store == null ? void 0 : store.setAutoFocusOnShow(true);\n store == null ? void 0 : store.setInitialFocus(initialFocus);\n }\n });\n const onClickProp = props.onClick;\n const onClick = useEvent((event) => {\n onClickProp == null ? void 0 : onClickProp(event);\n if (event.defaultPrevented) return;\n if (!store) return;\n const isKeyboardClick = !event.detail;\n const { open } = store.getState();\n if (!open || isKeyboardClick) {\n if (!hasParentMenu || isKeyboardClick) {\n store.setAutoFocusOnShow(true);\n }\n store.setInitialFocus(isKeyboardClick ? \"first\" : \"container\");\n }\n if (hasParentMenu) {\n showMenu();\n }\n });\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(MenuContextProvider, { value: store, children: element }),\n [store]\n );\n if (hasParentMenu) {\n props = {\n ...props,\n render: /* @__PURE__ */ jsx(Role.div, { render: props.render })\n };\n }\n const id = useId(props.id);\n const parentContentElement = useStoreState(\n (parentMenu == null ? void 0 : parentMenu.combobox) || parentMenu,\n \"contentElement\"\n );\n const role = hasParentMenu || parentIsMenubar ? getPopupItemRole(parentContentElement, \"menuitem\") : void 0;\n const contentElement = store.useState(\"contentElement\");\n props = {\n id,\n role,\n \"aria-haspopup\": getPopupRole(contentElement, \"menu\"),\n ...props,\n ref: useMergeRefs(ref, props.ref),\n onFocus,\n onKeyDown,\n onClick\n };\n props = useHovercardAnchor({\n store,\n focusable,\n accessibleWhenDisabled,\n ...props,\n showOnHover: (event) => {\n const getShowOnHover = () => {\n if (typeof showOnHover === \"function\") return showOnHover(event);\n if (showOnHover != null) return showOnHover;\n if (hasParentMenu) return true;\n if (!parentMenubar) return false;\n const { items } = parentMenubar.getState();\n return parentIsMenubar && hasActiveItem(items);\n };\n const canShowOnHover = getShowOnHover();\n if (!canShowOnHover) return false;\n const parent = parentIsMenubar ? parentMenubar : parentMenu;\n if (!parent) return true;\n parent.setActiveId(event.currentTarget.id);\n return true;\n }\n });\n props = usePopoverDisclosure({\n store,\n toggleOnClick: !hasParentMenu,\n focusable,\n accessibleWhenDisabled,\n ...props\n });\n props = useCompositeTypeahead({\n store,\n typeahead: parentIsMenubar,\n ...props\n });\n return props;\n }\n);\nvar MenuButton = forwardRef(function MenuButton2(props) {\n const htmlProps = useMenuButton(props);\n return createElement(TagName, htmlProps);\n});\nexport {\n MenuButton,\n useMenuButton\n};\n","\"use client\";\nimport {\n usePopoverDisclosureArrow\n} from \"../__chunks/37HM5VRA.js\";\nimport {\n useMenuContext\n} from \"../__chunks/Z4X7TRJU.js\";\nimport \"../__chunks/2DUOQURA.js\";\nimport \"../__chunks/PTRWAQFT.js\";\nimport \"../__chunks/JMU4N4M5.js\";\nimport \"../__chunks/A62MDFCW.js\";\nimport \"../__chunks/LVDQFHCH.js\";\nimport \"../__chunks/AVVXDJMZ.js\";\nimport \"../__chunks/SMPCIMZM.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"../__chunks/GWSL6KNJ.js\";\nimport \"../__chunks/KPHZR4MB.js\";\nimport \"../__chunks/YXGXYGQX.js\";\n\n// src/menu/menu-button-arrow.tsx\nvar TagName = \"span\";\nvar useMenuButtonArrow = createHook(\n function useMenuButtonArrow2({ store, ...props }) {\n const context = useMenuContext();\n store = store || context;\n props = usePopoverDisclosureArrow({ store, ...props });\n return props;\n }\n);\nvar MenuButtonArrow = forwardRef(function MenuButtonArrow2(props) {\n const htmlProps = useMenuButtonArrow(props);\n return createElement(TagName, htmlProps);\n});\nexport {\n MenuButtonArrow,\n useMenuButtonArrow\n};\n","\"use client\";\nimport {\n useMenuScopedContext\n} from \"./Z4X7TRJU.js\";\nimport {\n useMenubarScopedContext\n} from \"./2DUOQURA.js\";\nimport {\n useCompositeHover\n} from \"./X6LNAU2F.js\";\nimport {\n useCompositeItem\n} from \"./WZWDIE3S.js\";\nimport {\n useStoreState\n} from \"./Q5W46E73.js\";\nimport {\n createElement,\n createHook,\n forwardRef,\n memo\n} from \"./GWSL6KNJ.js\";\nimport {\n useBooleanEvent,\n useEvent\n} from \"./KPHZR4MB.js\";\n\n// src/menu/menu-item.tsx\nimport { getDocument, getPopupItemRole } from \"@ariakit/core/utils/dom\";\nimport { isDownloading, isOpeningInNewTab } from \"@ariakit/core/utils/events\";\nimport { hasFocusWithin } from \"@ariakit/core/utils/focus\";\nimport { invariant } from \"@ariakit/core/utils/misc\";\nvar TagName = \"div\";\nfunction menuHasFocus(baseElement, items, currentTarget) {\n var _a;\n if (!baseElement) return false;\n if (hasFocusWithin(baseElement)) return true;\n const expandedItem = items == null ? void 0 : items.find((item) => {\n var _a2;\n if (item.element === currentTarget) return false;\n return ((_a2 = item.element) == null ? void 0 : _a2.getAttribute(\"aria-expanded\")) === \"true\";\n });\n const expandedMenuId = (_a = expandedItem == null ? void 0 : expandedItem.element) == null ? void 0 : _a.getAttribute(\"aria-controls\");\n if (!expandedMenuId) return false;\n const doc = getDocument(baseElement);\n const expandedMenu = doc.getElementById(expandedMenuId);\n if (!expandedMenu) return false;\n if (hasFocusWithin(expandedMenu)) return true;\n return !!expandedMenu.querySelector(\"[role=menuitem][aria-expanded=true]\");\n}\nvar useMenuItem = createHook(\n function useMenuItem2({\n store,\n hideOnClick = true,\n preventScrollOnKeyDown = true,\n focusOnHover,\n blurOnHoverEnd,\n ...props\n }) {\n const menuContext = useMenuScopedContext(true);\n const menubarContext = useMenubarScopedContext();\n store = store || menuContext || menubarContext;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"MenuItem must be wrapped in a MenuList, Menu or Menubar component\"\n );\n const onClickProp = props.onClick;\n const hideOnClickProp = useBooleanEvent(hideOnClick);\n const hideMenu = \"hideAll\" in store ? store.hideAll : void 0;\n const isWithinMenu = !!hideMenu;\n const onClick = useEvent((event) => {\n onClickProp == null ? void 0 : onClickProp(event);\n if (event.defaultPrevented) return;\n if (isDownloading(event)) return;\n if (isOpeningInNewTab(event)) return;\n if (!hideMenu) return;\n const popupType = event.currentTarget.getAttribute(\"aria-haspopup\");\n if (popupType === \"menu\") return;\n if (!hideOnClickProp(event)) return;\n hideMenu();\n });\n const contentElement = useStoreState(\n store,\n (state) => \"contentElement\" in state ? state.contentElement : null\n );\n const role = getPopupItemRole(contentElement, \"menuitem\");\n props = {\n role,\n ...props,\n onClick\n };\n props = useCompositeItem({\n store,\n preventScrollOnKeyDown,\n ...props\n });\n props = useCompositeHover({\n store,\n ...props,\n focusOnHover(event) {\n const getFocusOnHover = () => {\n if (typeof focusOnHover === \"function\") return focusOnHover(event);\n if (focusOnHover != null) return focusOnHover;\n return true;\n };\n if (!store) return false;\n if (!getFocusOnHover()) return false;\n const { baseElement, items } = store.getState();\n if (isWithinMenu) {\n if (event.currentTarget.hasAttribute(\"aria-expanded\")) {\n event.currentTarget.focus();\n }\n return true;\n }\n if (menuHasFocus(baseElement, items, event.currentTarget)) {\n event.currentTarget.focus();\n return true;\n }\n return false;\n },\n blurOnHoverEnd(event) {\n if (typeof blurOnHoverEnd === \"function\") return blurOnHoverEnd(event);\n if (blurOnHoverEnd != null) return blurOnHoverEnd;\n return isWithinMenu;\n }\n });\n return props;\n }\n);\nvar MenuItem = memo(\n forwardRef(function MenuItem2(props) {\n const htmlProps = useMenuItem(props);\n return createElement(TagName, htmlProps);\n })\n);\n\nexport {\n useMenuItem,\n MenuItem\n};\n","\"use client\";\nimport {\n MenuItemCheckedContext\n} from \"../__chunks/Z4X7TRJU.js\";\nimport \"../__chunks/2DUOQURA.js\";\nimport \"../__chunks/PTRWAQFT.js\";\nimport \"../__chunks/JMU4N4M5.js\";\nimport \"../__chunks/A62MDFCW.js\";\nimport \"../__chunks/LVDQFHCH.js\";\nimport \"../__chunks/AVVXDJMZ.js\";\nimport {\n useCheckboxCheck\n} from \"../__chunks/HOITXJDS.js\";\nimport \"../__chunks/EYKMH5G5.js\";\nimport \"../__chunks/SMPCIMZM.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"../__chunks/GWSL6KNJ.js\";\nimport \"../__chunks/KPHZR4MB.js\";\nimport \"../__chunks/YXGXYGQX.js\";\n\n// src/menu/menu-item-check.tsx\nimport { useContext } from \"react\";\nvar TagName = \"span\";\nvar useMenuItemCheck = createHook(\n function useMenuItemCheck2({ store, checked, ...props }) {\n const context = useContext(MenuItemCheckedContext);\n checked = checked != null ? checked : context;\n props = useCheckboxCheck({ ...props, checked });\n return props;\n }\n);\nvar MenuItemCheck = forwardRef(function MenuItemCheck2(props) {\n const htmlProps = useMenuItemCheck(props);\n return createElement(TagName, htmlProps);\n});\nexport {\n MenuItemCheck,\n useMenuItemCheck\n};\n","\"use client\";\nimport {\n useMenuItem\n} from \"../__chunks/MOWGOTGG.js\";\nimport {\n useMenuScopedContext\n} from \"../__chunks/Z4X7TRJU.js\";\nimport \"../__chunks/2DUOQURA.js\";\nimport \"../__chunks/PTRWAQFT.js\";\nimport \"../__chunks/X6LNAU2F.js\";\nimport \"../__chunks/WZWDIE3S.js\";\nimport \"../__chunks/5VQZOHHZ.js\";\nimport \"../__chunks/Z2O3VLAQ.js\";\nimport \"../__chunks/JMU4N4M5.js\";\nimport \"../__chunks/A62MDFCW.js\";\nimport \"../__chunks/LVDQFHCH.js\";\nimport \"../__chunks/AVVXDJMZ.js\";\nimport {\n useCheckboxStore\n} from \"../__chunks/ALZMXNL4.js\";\nimport {\n useCheckbox\n} from \"../__chunks/I7KWAPMF.js\";\nimport \"../__chunks/PZ3OL7I2.js\";\nimport \"../__chunks/U6HHPQDW.js\";\nimport \"../__chunks/SWN3JYXT.js\";\nimport \"../__chunks/EYKMH5G5.js\";\nimport \"../__chunks/ZVXT4QFT.js\";\nimport \"../__chunks/Q5W46E73.js\";\nimport \"../__chunks/SMPCIMZM.js\";\nimport {\n createElement,\n createHook,\n forwardRef,\n memo\n} from \"../__chunks/GWSL6KNJ.js\";\nimport {\n useInitialValue\n} from \"../__chunks/KPHZR4MB.js\";\nimport \"../__chunks/YXGXYGQX.js\";\n\n// src/menu/menu-item-checkbox.tsx\nimport { invariant, shallowEqual } from \"@ariakit/core/utils/misc\";\nimport { useEffect } from \"react\";\nvar TagName = \"div\";\nfunction getPrimitiveValue(value) {\n if (Array.isArray(value)) {\n return value.toString();\n }\n return value;\n}\nfunction getValue(storeValue, value, checked) {\n if (value === void 0) {\n if (Array.isArray(storeValue)) return storeValue;\n return !!checked;\n }\n const primitiveValue = getPrimitiveValue(value);\n if (!Array.isArray(storeValue)) {\n if (checked) {\n return primitiveValue;\n }\n return storeValue === primitiveValue ? false : storeValue;\n }\n if (checked) {\n if (storeValue.includes(primitiveValue)) {\n return storeValue;\n }\n return [...storeValue, primitiveValue];\n }\n return storeValue.filter((v) => v !== primitiveValue);\n}\nvar useMenuItemCheckbox = createHook(\n function useMenuItemCheckbox2({\n store,\n name,\n value,\n checked,\n defaultChecked: defaultCheckedProp,\n hideOnClick = false,\n ...props\n }) {\n const context = useMenuScopedContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"MenuItemCheckbox must be wrapped in a MenuList or Menu component\"\n );\n const defaultChecked = useInitialValue(defaultCheckedProp);\n useEffect(() => {\n store == null ? void 0 : store.setValue(name, (prevValue = []) => {\n if (!defaultChecked) return prevValue;\n return getValue(prevValue, value, true);\n });\n }, [store, name, value, defaultChecked]);\n useEffect(() => {\n if (checked === void 0) return;\n store == null ? void 0 : store.setValue(name, (prevValue) => {\n return getValue(prevValue, value, checked);\n });\n }, [store, name, value, checked]);\n const checkboxStore = useCheckboxStore({\n value: store.useState((state) => state.values[name]),\n setValue(internalValue) {\n store == null ? void 0 : store.setValue(name, () => {\n if (checked === void 0) return internalValue;\n const nextValue = getValue(internalValue, value, checked);\n if (!Array.isArray(nextValue)) return nextValue;\n if (!Array.isArray(internalValue)) return nextValue;\n if (shallowEqual(internalValue, nextValue)) return internalValue;\n return nextValue;\n });\n }\n });\n props = {\n role: \"menuitemcheckbox\",\n ...props\n };\n props = useCheckbox({\n store: checkboxStore,\n name,\n value,\n checked,\n ...props\n });\n props = useMenuItem({ store, hideOnClick, ...props });\n return props;\n }\n);\nvar MenuItemCheckbox = memo(\n forwardRef(function MenuItemCheckbox2(props) {\n const htmlProps = useMenuItemCheckbox(props);\n return createElement(TagName, htmlProps);\n })\n);\nexport {\n MenuItemCheckbox,\n useMenuItemCheckbox\n};\n","\"use client\";\nimport {\n createHovercardStore\n} from \"../__chunks/TIQDSBWP.js\";\nimport \"../__chunks/BFGNM53A.js\";\nimport {\n createCompositeStore\n} from \"../__chunks/RVTIKFRL.js\";\nimport \"../__chunks/7PRQYBBV.js\";\nimport \"../__chunks/KMAUV3TY.js\";\nimport \"../__chunks/75BJEVSH.js\";\nimport \"../__chunks/N5XGANPW.js\";\nimport \"../__chunks/3DNM6L6E.js\";\nimport {\n createStore,\n mergeStore,\n omit,\n pick,\n setup,\n sync,\n throwOnConflictingProps\n} from \"../__chunks/SXKM4CGU.js\";\nimport {\n applyState,\n defaultValue\n} from \"../__chunks/XMCVU3LR.js\";\n\n// src/menu/menu-store.ts\nfunction createMenuStore({\n combobox,\n parent,\n menubar,\n ...props\n} = {}) {\n const parentIsMenubar = !!menubar && !parent;\n const store = mergeStore(\n props.store,\n pick(parent, [\"values\"]),\n omit(combobox, [\n \"arrowElement\",\n \"anchorElement\",\n \"contentElement\",\n \"popoverElement\",\n \"disclosureElement\"\n ])\n );\n throwOnConflictingProps(props, store);\n const syncState = store.getState();\n const composite = createCompositeStore({\n ...props,\n store,\n orientation: defaultValue(\n props.orientation,\n syncState.orientation,\n \"vertical\"\n )\n });\n const hovercard = createHovercardStore({\n ...props,\n store,\n placement: defaultValue(\n props.placement,\n syncState.placement,\n \"bottom-start\"\n ),\n timeout: defaultValue(\n props.timeout,\n syncState.timeout,\n parentIsMenubar ? 0 : 150\n ),\n hideTimeout: defaultValue(props.hideTimeout, syncState.hideTimeout, 0)\n });\n const initialState = {\n ...composite.getState(),\n ...hovercard.getState(),\n initialFocus: defaultValue(syncState.initialFocus, \"container\"),\n values: defaultValue(\n props.values,\n syncState.values,\n props.defaultValues,\n {}\n )\n };\n const menu = createStore(initialState, composite, hovercard, store);\n setup(\n menu,\n () => sync(menu, [\"mounted\"], (state) => {\n if (state.mounted) return;\n menu.setState(\"activeId\", null);\n })\n );\n setup(\n menu,\n () => sync(parent, [\"orientation\"], (state) => {\n menu.setState(\n \"placement\",\n state.orientation === \"vertical\" ? \"right-start\" : \"bottom-start\"\n );\n })\n );\n return {\n ...composite,\n ...hovercard,\n ...menu,\n combobox,\n parent,\n menubar,\n hideAll: () => {\n hovercard.hide();\n parent == null ? void 0 : parent.hideAll();\n },\n setInitialFocus: (value) => menu.setState(\"initialFocus\", value),\n setValues: (values) => menu.setState(\"values\", values),\n setValue: (name, value) => {\n if (name === \"__proto__\") return;\n if (name === \"constructor\") return;\n if (Array.isArray(name)) return;\n menu.setState(\"values\", (values) => {\n const prevValue = values[name];\n const nextValue = applyState(value, prevValue);\n if (nextValue === prevValue) return values;\n return {\n ...values,\n [name]: nextValue !== void 0 && nextValue\n };\n });\n }\n };\n}\nexport {\n createMenuStore\n};\n","\"use client\";\nimport {\n useMenuContext\n} from \"./Z4X7TRJU.js\";\nimport {\n useMenubarContext\n} from \"./2DUOQURA.js\";\nimport {\n useHovercardStoreProps\n} from \"./ECBEZ4YM.js\";\nimport {\n useCompositeStoreProps\n} from \"./IQYAUKXT.js\";\nimport {\n useComboboxProviderContext\n} from \"./CVCFNOHX.js\";\nimport {\n useStore,\n useStoreProps\n} from \"./Q5W46E73.js\";\nimport {\n useUpdateEffect\n} from \"./KPHZR4MB.js\";\n\n// src/menu/menu-store.ts\nimport * as Core from \"@ariakit/core/menu/menu-store\";\nfunction useMenuStoreProps(store, update, props) {\n useUpdateEffect(update, [props.combobox, props.parent, props.menubar]);\n useStoreProps(store, props, \"values\", \"setValues\");\n return Object.assign(\n useHovercardStoreProps(\n useCompositeStoreProps(store, update, props),\n update,\n props\n ),\n {\n combobox: props.combobox,\n parent: props.parent,\n menubar: props.menubar\n }\n );\n}\nfunction useMenuStore(props = {}) {\n const parent = useMenuContext();\n const menubar = useMenubarContext();\n const combobox = useComboboxProviderContext();\n props = {\n ...props,\n parent: props.parent !== void 0 ? props.parent : parent,\n menubar: props.menubar !== void 0 ? props.menubar : menubar,\n combobox: props.combobox !== void 0 ? props.combobox : combobox\n };\n const [store, update] = useStore(Core.createMenuStore, props);\n return useMenuStoreProps(store, update, props);\n}\n\nexport {\n useMenuStoreProps,\n useMenuStore\n};\n","\"use client\";\nimport {\n useMenuStore\n} from \"../__chunks/62CEUOYM.js\";\nimport {\n MenuContextProvider\n} from \"../__chunks/Z4X7TRJU.js\";\nimport \"../__chunks/2DUOQURA.js\";\nimport \"../__chunks/ECBEZ4YM.js\";\nimport \"../__chunks/PTRWAQFT.js\";\nimport \"../__chunks/B6FLPFJM.js\";\nimport \"../__chunks/IQYAUKXT.js\";\nimport \"../__chunks/4NYSH4UO.js\";\nimport \"../__chunks/WLZ6H5FH.js\";\nimport \"../__chunks/GVAFFF2B.js\";\nimport \"../__chunks/CVCFNOHX.js\";\nimport \"../__chunks/JMU4N4M5.js\";\nimport \"../__chunks/A62MDFCW.js\";\nimport \"../__chunks/LVDQFHCH.js\";\nimport \"../__chunks/AVVXDJMZ.js\";\nimport \"../__chunks/Q5W46E73.js\";\nimport \"../__chunks/SMPCIMZM.js\";\nimport \"../__chunks/GWSL6KNJ.js\";\nimport \"../__chunks/KPHZR4MB.js\";\nimport \"../__chunks/YXGXYGQX.js\";\n\n// src/menu/menu-provider.tsx\nimport { jsx } from \"react/jsx-runtime\";\nfunction MenuProvider(props = {}) {\n const store = useMenuStore(props);\n return /* @__PURE__ */ jsx(MenuContextProvider, { value: store, children: props.children });\n}\nexport {\n MenuProvider\n};\n","\"use client\";\nimport {\n useMenuContext\n} from \"../__chunks/Z4X7TRJU.js\";\nimport \"../__chunks/2DUOQURA.js\";\nimport \"../__chunks/PTRWAQFT.js\";\nimport {\n useCompositeSeparator\n} from \"../__chunks/YBRT277Q.js\";\nimport \"../__chunks/P7VC6T3R.js\";\nimport \"../__chunks/JMU4N4M5.js\";\nimport \"../__chunks/A62MDFCW.js\";\nimport \"../__chunks/LVDQFHCH.js\";\nimport \"../__chunks/AVVXDJMZ.js\";\nimport \"../__chunks/SMPCIMZM.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"../__chunks/GWSL6KNJ.js\";\nimport \"../__chunks/KPHZR4MB.js\";\nimport \"../__chunks/YXGXYGQX.js\";\n\n// src/menu/menu-separator.tsx\nvar TagName = \"hr\";\nvar useMenuSeparator = createHook(\n function useMenuSeparator2({ store, ...props }) {\n const context = useMenuContext();\n store = store || context;\n props = useCompositeSeparator({ store, ...props });\n return props;\n }\n);\nvar MenuSeparator = forwardRef(function MenuSeparator2(props) {\n const htmlProps = useMenuSeparator(props);\n return createElement(TagName, htmlProps);\n});\nexport {\n MenuSeparator,\n useMenuSeparator\n};\n","import {\n Menu as AriaMenu,\n MenuButton,\n MenuButtonArrow,\n MenuItem,\n MenuItemCheckbox,\n MenuItemCheck,\n MenuProvider,\n MenuSeparator,\n type MenuButtonProps,\n type MenuItemCheckboxProps,\n type MenuItemProps,\n type MenuProps as AriaMenuProps,\n type MenuProviderProps,\n type MenuSeparatorProps,\n} from \"@ariakit/react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nconst menuButtonVariants = cva(\n [\n \"inline-flex items-center justify-center gap-2\",\n \"font-medium transition-all duration-200\",\n \"rounded-lg\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2\",\n \"disabled:opacity-50 disabled:cursor-not-allowed\",\n ],\n {\n variants: {\n variant: {\n default: [\n \"bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 border border-gray-300 dark:border-gray-700\",\n \"hover:bg-gray-50 dark:hover:bg-gray-800\",\n \"focus-visible:ring-primary-600\",\n \"shadow-sm hover:shadow\",\n ],\n primary: [\n \"bg-primary-600 text-white border border-transparent\",\n \"hover:bg-primary-700\",\n \"focus-visible:ring-primary-600\",\n \"shadow-sm hover:shadow\",\n ],\n ghost: [\n \"text-gray-900 dark:text-gray-100 bg-transparent border-transparent\",\n \"hover:bg-gray-100 dark:hover:bg-gray-800\",\n \"focus-visible:ring-primary-600\",\n ],\n },\n size: {\n sm: \"h-9 px-3 text-sm\",\n md: \"h-10 px-4 text-base\",\n lg: \"h-11 px-6 text-lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nconst menuVariants = cva([\n \"z-50 min-w-[200px] rounded-lg border bg-white p-1 shadow-lg\",\n \"dark:bg-gray-900 dark:border-gray-700\",\n \"opacity-0 transition-all duration-200 ease-out\",\n \"data-enter:opacity-100 data-enter:translate-y-0\",\n \"data-leave:opacity-0 data-leave:-translate-y-1\",\n]);\n\nconst menuItemVariants = cva(\n [\n \"flex items-center gap-2 px-3 py-2 rounded-md\",\n \"text-sm cursor-pointer\",\n \"transition-colors duration-150\",\n \"outline-none\",\n \"text-gray-900 dark:text-gray-100\",\n \"data-active-item:bg-primary-100 dark:data-active-item:bg-primary-900\",\n \"data-active-item:text-primary-900 dark:data-active-item:text-primary-100\",\n \"disabled:opacity-50 disabled:cursor-not-allowed\",\n ],\n);\n\nconst menuSeparatorVariants = cva([\n \"my-1 h-px bg-gray-200 dark:bg-gray-700\",\n]);\n\n// Menu Provider wrapper\nexport interface MenuRootProps extends MenuProviderProps {\n children: ReactNode;\n}\n\nexport function MenuRoot({ children, ...props }: MenuRootProps) {\n return <MenuProvider {...props}>{children}</MenuProvider>;\n}\n\n// Menu Button\nexport interface MenuTriggerProps\n extends MenuButtonProps,\n VariantProps<typeof menuButtonVariants> {\n /** Show arrow icon */\n showArrow?: boolean;\n}\n\nexport const MenuTrigger = forwardRef<HTMLButtonElement, MenuTriggerProps>(\n ({ variant, size, showArrow = true, className, children, ...props }, ref) => {\n return (\n <MenuButton\n ref={ref}\n className={cn(menuButtonVariants({ variant, size, className }))}\n {...props}\n >\n {children}\n {showArrow && (\n <MenuButtonArrow className=\"transition-transform duration-200 group-data-[open]:rotate-180\" />\n )}\n </MenuButton>\n );\n },\n);\n\nMenuTrigger.displayName = \"MenuTrigger\";\n\n// Menu Content\nexport interface MenuContentProps extends AriaMenuProps {\n /** Gutter space between trigger and menu */\n gutter?: number;\n}\n\nexport const MenuContent = forwardRef<HTMLDivElement, MenuContentProps>(\n ({ gutter = 8, className, children, ...props }, ref) => {\n return (\n <AriaMenu\n ref={ref}\n gutter={gutter}\n className={cn(menuVariants(), className)}\n {...props}\n >\n {children}\n </AriaMenu>\n );\n },\n);\n\nMenuContent.displayName = \"MenuContent\";\n\n// Menu Item\nexport interface MenuItemComponentProps extends MenuItemProps {}\n\nexport const MenuItemComponent = forwardRef<\n HTMLDivElement,\n MenuItemComponentProps\n>(({ className, children, ...props }, ref) => {\n return (\n <MenuItem\n ref={ref}\n className={cn(menuItemVariants(), className)}\n {...props}\n >\n {children}\n </MenuItem>\n );\n});\n\nMenuItemComponent.displayName = \"MenuItem\";\n\n// Menu Item Checkbox\nexport interface MenuItemCheckboxComponentProps\n extends MenuItemCheckboxProps {}\n\nexport const MenuItemCheckboxComponent = forwardRef<\n HTMLDivElement,\n MenuItemCheckboxComponentProps\n>(({ className, children, ...props }, ref) => {\n return (\n <MenuItemCheckbox\n ref={ref}\n className={cn(menuItemVariants(), \"pl-8 relative\", className)}\n {...props}\n >\n <MenuItemCheck className=\"absolute left-2 flex items-center justify-center\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"text-primary-600 dark:text-primary-400\"\n >\n <path\n d=\"M13 4L6 11L3 8\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </MenuItemCheck>\n {children}\n </MenuItemCheckbox>\n );\n});\n\nMenuItemCheckboxComponent.displayName = \"MenuItemCheckbox\";\n\n// Menu Separator\nexport interface MenuSeparatorComponentProps extends MenuSeparatorProps {}\n\nexport const MenuSeparatorComponent = forwardRef<\n HTMLHRElement,\n MenuSeparatorComponentProps\n>(({ className, ...props }, ref) => {\n return (\n <MenuSeparator\n ref={ref}\n className={cn(menuSeparatorVariants(), className)}\n {...props}\n />\n );\n});\n\nMenuSeparatorComponent.displayName = \"MenuSeparator\";\n\n// Compound component export\nexport const Menu = {\n Root: MenuRoot,\n Trigger: MenuTrigger,\n Content: MenuContent,\n Item: MenuItemComponent,\n ItemCheckbox: MenuItemCheckboxComponent,\n Separator: MenuSeparatorComponent,\n};\n","import type { ComponentDoc } from \"../../types/docs\";\n\nexport const menuDocs: ComponentDoc = {\n name: \"Menu\",\n description: \"Dropdown menu with keyboard navigation and checkbox support, built on Ariakit.\",\n category: \"Navigation\",\n installation: `pnpm add @component-labs/ui`,\n usage: `import { Menu } from \"@component-labs/ui\";\n\n<Menu.Root>\n <Menu.Trigger>Open Menu</Menu.Trigger>\n <Menu.Content>\n <Menu.Item>Item 1</Menu.Item>\n <Menu.Item>Item 2</Menu.Item>\n </Menu.Content>\n</Menu.Root>`,\n props: [\n {\n name: \"variant\",\n type: \"'default' | 'primary' | 'ghost'\",\n description: \"Visual style variant of the menu trigger button (Menu.Trigger)\",\n default: \"'default'\",\n },\n {\n name: \"size\",\n type: \"'sm' | 'md' | 'lg'\",\n description: \"Size of the menu trigger button (Menu.Trigger)\",\n default: \"'md'\",\n },\n {\n name: \"showArrow\",\n type: \"boolean\",\n description: \"Whether to show arrow icon on trigger (Menu.Trigger)\",\n default: \"true\",\n },\n {\n name: \"gutter\",\n type: \"number\",\n description: \"Space between trigger and menu content (Menu.Content)\",\n default: \"8\",\n },\n ],\n examples: [\n {\n title: \"Basic Menu\",\n code: `<Menu.Root>\n <Menu.Trigger>Actions</Menu.Trigger>\n <Menu.Content>\n <Menu.Item>Edit</Menu.Item>\n <Menu.Item>Duplicate</Menu.Item>\n <Menu.Separator />\n <Menu.Item>Delete</Menu.Item>\n </Menu.Content>\n</Menu.Root>`,\n description: \"Simple dropdown menu with items and separator\",\n },\n {\n title: \"With Checkboxes\",\n code: `<Menu.Root>\n <Menu.Trigger>View Options</Menu.Trigger>\n <Menu.Content>\n <Menu.ItemCheckbox defaultChecked>Show toolbar</Menu.ItemCheckbox>\n <Menu.ItemCheckbox>Show sidebar</Menu.ItemCheckbox>\n <Menu.ItemCheckbox defaultChecked>Show footer</Menu.ItemCheckbox>\n </Menu.Content>\n</Menu.Root>`,\n description: \"Menu with checkbox items for toggleable options\",\n },\n {\n title: \"Trigger Variants\",\n code: `<div className=\"flex gap-2\">\n <Menu.Root>\n <Menu.Trigger variant=\"default\">Default</Menu.Trigger>\n <Menu.Content>\n <Menu.Item>Item 1</Menu.Item>\n </Menu.Content>\n </Menu.Root>\n\n <Menu.Root>\n <Menu.Trigger variant=\"primary\">Primary</Menu.Trigger>\n <Menu.Content>\n <Menu.Item>Item 1</Menu.Item>\n </Menu.Content>\n </Menu.Root>\n\n <Menu.Root>\n <Menu.Trigger variant=\"ghost\">Ghost</Menu.Trigger>\n <Menu.Content>\n <Menu.Item>Item 1</Menu.Item>\n </Menu.Content>\n </Menu.Root>\n</div>`,\n description: \"Different trigger button styles\",\n },\n {\n title: \"Without Arrow\",\n code: `<Menu.Root>\n <Menu.Trigger showArrow={false}>No Arrow</Menu.Trigger>\n <Menu.Content>\n <Menu.Item>Item 1</Menu.Item>\n </Menu.Content>\n</Menu.Root>`,\n description: \"Menu trigger without arrow indicator\",\n },\n ],\n accessibility: [\n \"Built on Ariakit's accessible Menu component\",\n \"Full keyboard navigation (Arrow keys, Enter, Escape)\",\n \"Proper ARIA attributes (aria-haspopup, aria-expanded)\",\n \"Focus management and trap within menu\",\n \"Screen reader announcements\",\n \"Automatic focus return to trigger on close\",\n ],\n relatedComponents: [\"Combobox\", \"Command\"],\n};\n"],"names":["TagName","useSeparator","createHook","orientation","props","forwardRef","htmlProps","createElement","useCompositeSeparator","store","context","useCompositeContext","invariant","state","ctx","createStoreContext","PopoverContextProvider","PopoverScopedContextProvider","useHovercardProviderContext","HovercardContextProvider","HovercardScopedContextProvider","getEventPoint","event","isPointInPolygon","point","polygon","x","y","inside","length","l","i","j","xi","yi","xj","yj","vy","where","getEnterPointPlacement","enterPoint","rect","top","right","bottom","left","placementX","placementY","getElementPolygon","element","isMovingOnHovercard","target","card","anchor","nested","hasFocusWithin","contains","card2","useAutoFocusOnHide","autoFocusOnHide","setAutoFocusOnHide","useState","mounted","useEffect","onFocusProp","onFocus","useEvent","finalFocusRef","useRef","sync","NestedHovercardContext","createContext","useHovercard","modal","portal","hideOnEscape","hideOnHoverOutside","disablePointerEventsOnApproach","ref","nestedHovercards","setNestedHovercards","hideTimeoutRef","enterPointRef","portalRef","domReady","usePortalRef","isMouseMoving","useIsMouseMoving","mayHideOnHoverOutside","hideOnHoverOutsideProp","useBooleanEvent","mayDisablePointerEvents","disablePointerEventsProp","open","chain","addGlobalEventListener","anchorElement","hideTimeout","timeout","currentPoint","disableEvent","openRef","useLiveRef","registerOnParent","useContext","useSafeLayoutEffect","registerNestedHovercard","useCallback","prevElements","parentUnregister","item","useWrapElement","jsx","useMergeRefs","autoFocusOnShow","usePopover","isFalsyBooleanCallback","createDialogComponent","useHovercardAnchor","showOnHover","disabled","disabledFromProps","showTimeoutRef","onMouseMoveProp","showOnHoverProp","onMouseMove","showTimeout","showHovercard","timeoutMs","onClickProp","onClick","useFocusable","createHovercardStore","_a","syncState","popover","createPopoverStore","defaultValue","initialState","hovercard","createStore","value","useHovercardStoreProps","update","useStoreProps","usePopoverStoreProps","menubar","CompositeContextProvider","CompositeScopedContextProvider","useMenubarContext","useMenubarScopedContext","symbol","useDisclosure","toggleOnClick","useDisclosureProviderContext","expanded","setExpanded","disclosureElement","isCurrentDisclosure","toggleOnClickProp","isDuplicate","metadataProps","useMetadataProps","contentElement","useButton","useDialogDisclosure","useDialogProviderContext","getPopupRole","usePopoverDisclosure","usePopoverProviderContext","usePopoverAnchor","pointsMap","usePopoverDisclosureArrow","placement","usePopoverContext","dir","points","useMemo","removeUndefinedValues","chars","clearChars","isValidTypeaheadEvent","isTextField","isSelfTargetOrItem","items","isSelfTarget","getEnabledItems","itemTextStartsWith","text","itemText","normalizeString","getSameInitialItems","char","activeId","activeItem","flipItems","useCompositeTypeahead","typeahead","onKeyDownCaptureProp","cleanupTimeoutRef","onKeyDownCapture","renderedItems","id","enabledItems","document","getDocument","selector","offscreenItems","sortBasedOnDOMPosition","item2","createCheckboxStore","throwOnConflictingProps","checkbox","useCheckboxStoreProps","useUpdateEffect","useCheckboxStore","useStore","Core.createCheckboxStore","menu","useMenuContext","useMenuScopedContext","useMenuProviderContext","MenuContextProvider","MenuScopedContextProvider","MenuItemCheckedContext","useAriaLabelledBy","setId","label","useStoreState","disclosure","useMenuList","alwaysVisible","composite","parentMenu","parentMenubar","hasParentMenu","useId","onKeyDownProp","isHorizontal","isMenubarHorizontal","onKeyDown","action","id2","ariaLabelledBy","hidden","isHidden","style","hasCombobox","useComposite","useMenu","modalProp","parentIsMenubar","menuListProps","initialFocusRef","setInitialFocusRef","autoFocusOnShowState","initialFocus","baseElement","cleaning","prevInitialFocusRef","_b","_c","ref2","createRef","mayAutoFocusOnShow","canAutoFocusOnShow","parentContentElement","preserveTabOrderAnchor","role","parentRole","fireEvent","Menu","getInitialFocus","hasActiveItem","excludeElement","useMenuButton","focusable","accessibleWhenDisabled","showMenu","trigger","isKeyboardClick","Role","getPopupItemRole","parent","MenuButton","useMenuButtonArrow","MenuButtonArrow","menuHasFocus","currentTarget","expandedItem","_a2","expandedMenuId","expandedMenu","useMenuItem","hideOnClick","preventScrollOnKeyDown","focusOnHover","blurOnHoverEnd","menuContext","menubarContext","hideOnClickProp","hideMenu","isWithinMenu","isDownloading","isOpeningInNewTab","useCompositeItem","useCompositeHover","getFocusOnHover","MenuItem","memo","useMenuItemCheck","checked","useCheckboxCheck","MenuItemCheck","getPrimitiveValue","getValue","storeValue","primitiveValue","v","useMenuItemCheckbox","name","defaultCheckedProp","defaultChecked","useInitialValue","prevValue","checkboxStore","internalValue","nextValue","shallowEqual","useCheckbox","MenuItemCheckbox","createMenuStore","combobox","mergeStore","pick","omit","createCompositeStore","setup","values","applyState","useMenuStoreProps","useCompositeStoreProps","useMenuStore","useComboboxProviderContext","Core.createMenuStore","MenuProvider","useMenuSeparator","MenuSeparator","menuButtonVariants","cva","menuVariants","menuItemVariants","menuSeparatorVariants","MenuRoot","children","MenuTrigger","variant","size","showArrow","className","jsxs","cn","MenuContent","gutter","AriaMenu","MenuItemComponent","MenuItemCheckboxComponent","MenuSeparatorComponent","menuDocs"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]}
|
package/dist/switch.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../src/switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC"}
|
package/dist/switch.js
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { jsx as e, jsxs as n } from "react/jsx-runtime";
|
|
2
|
+
import { C as p } from "./I7KWAPMF-CcAk8kiH.js";
|
|
3
|
+
import { c as u, a as c } from "./utils-BZvHF7th.js";
|
|
4
|
+
import { forwardRef as b } from "react";
|
|
5
|
+
const m = c(
|
|
6
|
+
[
|
|
7
|
+
"relative inline-flex shrink-0 cursor-pointer rounded-full border-2 border-transparent",
|
|
8
|
+
"transition-all duration-200",
|
|
9
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-600 focus-visible:ring-offset-2",
|
|
10
|
+
"disabled:cursor-not-allowed disabled:opacity-50"
|
|
11
|
+
],
|
|
12
|
+
{
|
|
13
|
+
variants: {
|
|
14
|
+
variant: {
|
|
15
|
+
default: [
|
|
16
|
+
"bg-gray-300 dark:bg-gray-700",
|
|
17
|
+
"aria-checked:bg-primary-600 dark:aria-checked:bg-primary-500"
|
|
18
|
+
],
|
|
19
|
+
success: [
|
|
20
|
+
"bg-gray-300 dark:bg-gray-700",
|
|
21
|
+
"aria-checked:bg-green-600 dark:aria-checked:bg-green-500"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
size: {
|
|
25
|
+
sm: "h-5 w-9",
|
|
26
|
+
md: "h-6 w-11",
|
|
27
|
+
lg: "h-7 w-14"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
defaultVariants: {
|
|
31
|
+
variant: "default",
|
|
32
|
+
size: "md"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
), g = c(
|
|
36
|
+
[
|
|
37
|
+
"pointer-events-none inline-block rounded-full bg-white shadow-lg ring-0",
|
|
38
|
+
"transition-transform duration-200"
|
|
39
|
+
],
|
|
40
|
+
{
|
|
41
|
+
variants: {
|
|
42
|
+
size: {
|
|
43
|
+
sm: "h-4 w-4 group-aria-checked:translate-x-4",
|
|
44
|
+
md: "h-5 w-5 group-aria-checked:translate-x-5",
|
|
45
|
+
lg: "h-6 w-6 group-aria-checked:translate-x-7"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
defaultVariants: {
|
|
49
|
+
size: "md"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
), f = b(
|
|
53
|
+
({ variant: l, size: s, label: t, description: a, className: o, children: i, ...d }, h) => {
|
|
54
|
+
const r = /* @__PURE__ */ e(
|
|
55
|
+
p,
|
|
56
|
+
{
|
|
57
|
+
ref: h,
|
|
58
|
+
render: /* @__PURE__ */ e("button", { type: "button" }),
|
|
59
|
+
className: u("group", m({ variant: l, size: s, className: o })),
|
|
60
|
+
...d,
|
|
61
|
+
children: /* @__PURE__ */ e(
|
|
62
|
+
"span",
|
|
63
|
+
{
|
|
64
|
+
"aria-hidden": "true",
|
|
65
|
+
className: g({ size: s })
|
|
66
|
+
}
|
|
67
|
+
)
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
return t || a || i ? /* @__PURE__ */ n("label", { className: "flex items-start gap-3 cursor-pointer group", children: [
|
|
71
|
+
r,
|
|
72
|
+
/* @__PURE__ */ n("div", { className: "flex flex-col gap-1", children: [
|
|
73
|
+
(t || i) && /* @__PURE__ */ e("span", { className: "text-sm font-medium text-gray-900 dark:text-gray-100 group-hover:text-gray-700 dark:group-hover:text-gray-300", children: t || i }),
|
|
74
|
+
a && /* @__PURE__ */ e("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: a })
|
|
75
|
+
] })
|
|
76
|
+
] }) : r;
|
|
77
|
+
}
|
|
78
|
+
);
|
|
79
|
+
f.displayName = "Switch";
|
|
80
|
+
const x = {
|
|
81
|
+
name: "Switch",
|
|
82
|
+
description: "Toggle switch for boolean settings, built on Ariakit for accessibility.",
|
|
83
|
+
category: "Inputs",
|
|
84
|
+
installation: "pnpm add @component-labs/ui",
|
|
85
|
+
usage: `import { Switch } from "@component-labs/ui";
|
|
86
|
+
|
|
87
|
+
<Switch label="Enable notifications" />`,
|
|
88
|
+
props: [
|
|
89
|
+
{
|
|
90
|
+
name: "variant",
|
|
91
|
+
type: "'default' | 'success'",
|
|
92
|
+
description: "Visual style variant",
|
|
93
|
+
default: "'default'"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
name: "size",
|
|
97
|
+
type: "'sm' | 'md' | 'lg'",
|
|
98
|
+
description: "Size of the switch",
|
|
99
|
+
default: "'md'"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: "label",
|
|
103
|
+
type: "ReactNode",
|
|
104
|
+
description: "Label text to display next to the switch"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: "description",
|
|
108
|
+
type: "ReactNode",
|
|
109
|
+
description: "Description text to display below the label"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
name: "checked",
|
|
113
|
+
type: "boolean",
|
|
114
|
+
description: "Controlled checked state"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
name: "defaultChecked",
|
|
118
|
+
type: "boolean",
|
|
119
|
+
description: "Default checked state for uncontrolled usage"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
name: "disabled",
|
|
123
|
+
type: "boolean",
|
|
124
|
+
description: "Whether the switch is disabled",
|
|
125
|
+
default: "false"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
name: "onChange",
|
|
129
|
+
type: "(event: ChangeEvent<HTMLInputElement>) => void",
|
|
130
|
+
description: "Callback when switch state changes"
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
examples: [
|
|
134
|
+
{
|
|
135
|
+
title: "Basic Switch",
|
|
136
|
+
code: '<Switch label="Enable notifications" />',
|
|
137
|
+
description: "Simple toggle switch"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
title: "With Description",
|
|
141
|
+
code: `<Switch
|
|
142
|
+
label="Marketing emails"
|
|
143
|
+
description="Receive updates about new features and products"
|
|
144
|
+
/>`,
|
|
145
|
+
description: "Switch with additional description"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
title: "Sizes",
|
|
149
|
+
code: `<div className="flex flex-col gap-4">
|
|
150
|
+
<Switch size="sm" label="Small switch" />
|
|
151
|
+
<Switch size="md" label="Medium switch" />
|
|
152
|
+
<Switch size="lg" label="Large switch" />
|
|
153
|
+
</div>`,
|
|
154
|
+
description: "Different switch sizes"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
title: "Variants",
|
|
158
|
+
code: `<div className="flex flex-col gap-4">
|
|
159
|
+
<Switch variant="default" label="Default variant" defaultChecked />
|
|
160
|
+
<Switch variant="success" label="Success variant" defaultChecked />
|
|
161
|
+
</div>`,
|
|
162
|
+
description: "Available visual variants"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
title: "Controlled",
|
|
166
|
+
code: `const [enabled, setEnabled] = useState(false);
|
|
167
|
+
|
|
168
|
+
<Switch
|
|
169
|
+
checked={enabled}
|
|
170
|
+
onChange={(e) => setEnabled(e.target.checked)}
|
|
171
|
+
label="Controlled switch"
|
|
172
|
+
/>`,
|
|
173
|
+
description: "Using switch in controlled mode"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
title: "Disabled State",
|
|
177
|
+
code: '<Switch label="Disabled switch" disabled />',
|
|
178
|
+
description: "Switch in disabled state"
|
|
179
|
+
}
|
|
180
|
+
],
|
|
181
|
+
accessibility: [
|
|
182
|
+
"Built on Ariakit's accessible Switch component",
|
|
183
|
+
"Proper ARIA attributes (role='switch', aria-checked)",
|
|
184
|
+
"Keyboard accessible (Space to toggle)",
|
|
185
|
+
"Focus visible states with ring indicator",
|
|
186
|
+
"Screen reader announcements for state changes"
|
|
187
|
+
],
|
|
188
|
+
relatedComponents: ["Checkbox"]
|
|
189
|
+
};
|
|
190
|
+
export {
|
|
191
|
+
f as Switch,
|
|
192
|
+
x as switchDocs
|
|
193
|
+
};
|
|
194
|
+
//# sourceMappingURL=switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.js","sources":["../src/components/switch/Switch.tsx","../src/components/switch/Switch.docs.ts"],"sourcesContent":["import {\n Checkbox,\n type CheckboxProps as AriaCheckboxProps,\n} from \"@ariakit/react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { forwardRef, type ReactNode } from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nconst switchVariants = cva(\n [\n \"relative inline-flex shrink-0 cursor-pointer rounded-full border-2 border-transparent\",\n \"transition-all duration-200\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-600 focus-visible:ring-offset-2\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n ],\n {\n variants: {\n variant: {\n default: [\n \"bg-gray-300 dark:bg-gray-700\",\n \"aria-checked:bg-primary-600 dark:aria-checked:bg-primary-500\",\n ],\n success: [\n \"bg-gray-300 dark:bg-gray-700\",\n \"aria-checked:bg-green-600 dark:aria-checked:bg-green-500\",\n ],\n },\n size: {\n sm: \"h-5 w-9\",\n md: \"h-6 w-11\",\n lg: \"h-7 w-14\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nconst switchThumbVariants = cva(\n [\n \"pointer-events-none inline-block rounded-full bg-white shadow-lg ring-0\",\n \"transition-transform duration-200\",\n ],\n {\n variants: {\n size: {\n sm: \"h-4 w-4 group-aria-checked:translate-x-4\",\n md: \"h-5 w-5 group-aria-checked:translate-x-5\",\n lg: \"h-6 w-6 group-aria-checked:translate-x-7\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nexport interface SwitchProps\n extends Omit<AriaCheckboxProps, \"size\">,\n VariantProps<typeof switchVariants> {\n /** Label text to display next to the switch */\n label?: ReactNode;\n /** Description text to display below the label */\n description?: ReactNode;\n}\n\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(\n (\n { variant, size, label, description, className, children, ...props },\n ref,\n ) => {\n const switchElement = (\n <Checkbox\n ref={ref}\n render={<button type=\"button\" />}\n className={cn(\"group\", switchVariants({ variant, size, className }))}\n {...props}\n >\n <span\n aria-hidden=\"true\"\n className={switchThumbVariants({ size })}\n />\n </Checkbox>\n );\n\n // If there's a label or description, wrap in a label element\n if (label || description || children) {\n return (\n <label className=\"flex items-start gap-3 cursor-pointer group\">\n {switchElement}\n <div className=\"flex flex-col gap-1\">\n {(label || children) && (\n <span className=\"text-sm font-medium text-gray-900 dark:text-gray-100 group-hover:text-gray-700 dark:group-hover:text-gray-300\">\n {label || children}\n </span>\n )}\n {description && (\n <span className=\"text-xs text-gray-500 dark:text-gray-400\">\n {description}\n </span>\n )}\n </div>\n </label>\n );\n }\n\n return switchElement;\n },\n);\n\nSwitch.displayName = \"Switch\";\n","import type { ComponentDoc } from \"../../types/docs\";\n\nexport const switchDocs: ComponentDoc = {\n name: \"Switch\",\n description: \"Toggle switch for boolean settings, built on Ariakit for accessibility.\",\n category: \"Inputs\",\n installation: `pnpm add @component-labs/ui`,\n usage: `import { Switch } from \"@component-labs/ui\";\n\n<Switch label=\"Enable notifications\" />`,\n props: [\n {\n name: \"variant\",\n type: \"'default' | 'success'\",\n description: \"Visual style variant\",\n default: \"'default'\",\n },\n {\n name: \"size\",\n type: \"'sm' | 'md' | 'lg'\",\n description: \"Size of the switch\",\n default: \"'md'\",\n },\n {\n name: \"label\",\n type: \"ReactNode\",\n description: \"Label text to display next to the switch\",\n },\n {\n name: \"description\",\n type: \"ReactNode\",\n description: \"Description text to display below the label\",\n },\n {\n name: \"checked\",\n type: \"boolean\",\n description: \"Controlled checked state\",\n },\n {\n name: \"defaultChecked\",\n type: \"boolean\",\n description: \"Default checked state for uncontrolled usage\",\n },\n {\n name: \"disabled\",\n type: \"boolean\",\n description: \"Whether the switch is disabled\",\n default: \"false\",\n },\n {\n name: \"onChange\",\n type: \"(event: ChangeEvent<HTMLInputElement>) => void\",\n description: \"Callback when switch state changes\",\n },\n ],\n examples: [\n {\n title: \"Basic Switch\",\n code: `<Switch label=\"Enable notifications\" />`,\n description: \"Simple toggle switch\",\n },\n {\n title: \"With Description\",\n code: `<Switch\n label=\"Marketing emails\"\n description=\"Receive updates about new features and products\"\n/>`,\n description: \"Switch with additional description\",\n },\n {\n title: \"Sizes\",\n code: `<div className=\"flex flex-col gap-4\">\n <Switch size=\"sm\" label=\"Small switch\" />\n <Switch size=\"md\" label=\"Medium switch\" />\n <Switch size=\"lg\" label=\"Large switch\" />\n</div>`,\n description: \"Different switch sizes\",\n },\n {\n title: \"Variants\",\n code: `<div className=\"flex flex-col gap-4\">\n <Switch variant=\"default\" label=\"Default variant\" defaultChecked />\n <Switch variant=\"success\" label=\"Success variant\" defaultChecked />\n</div>`,\n description: \"Available visual variants\",\n },\n {\n title: \"Controlled\",\n code: `const [enabled, setEnabled] = useState(false);\n\n<Switch\n checked={enabled}\n onChange={(e) => setEnabled(e.target.checked)}\n label=\"Controlled switch\"\n/>`,\n description: \"Using switch in controlled mode\",\n },\n {\n title: \"Disabled State\",\n code: `<Switch label=\"Disabled switch\" disabled />`,\n description: \"Switch in disabled state\",\n },\n ],\n accessibility: [\n \"Built on Ariakit's accessible Switch component\",\n \"Proper ARIA attributes (role='switch', aria-checked)\",\n \"Keyboard accessible (Space to toggle)\",\n \"Focus visible states with ring indicator\",\n \"Screen reader announcements for state changes\",\n ],\n relatedComponents: [\"Checkbox\"],\n};\n"],"names":["switchVariants","cva","switchThumbVariants","Switch","forwardRef","variant","size","label","description","className","children","props","ref","switchElement","jsx","Checkbox","cn","jsxs","switchDocs"],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface PropDoc {
|
|
2
|
+
name: string;
|
|
3
|
+
type: string;
|
|
4
|
+
description: string;
|
|
5
|
+
default?: string;
|
|
6
|
+
required?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface ExampleDoc {
|
|
9
|
+
title: string;
|
|
10
|
+
code: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ComponentDoc {
|
|
14
|
+
name: string;
|
|
15
|
+
description: string;
|
|
16
|
+
category: "Inputs" | "Data Display" | "Navigation" | "Feedback" | "Layout" | "Overlay";
|
|
17
|
+
installation: string;
|
|
18
|
+
usage: string;
|
|
19
|
+
props?: PropDoc[];
|
|
20
|
+
examples: ExampleDoc[];
|
|
21
|
+
accessibility?: string[];
|
|
22
|
+
relatedComponents?: string[];
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=docs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/types/docs.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,GAAG,cAAc,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;IACvF,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B"}
|