@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Z32PU2LQ-CPSDShGU.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/LVDQFHCH.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/A62MDFCW.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/6B3RXHKP.js","../../../node_modules/.pnpm/@ariakit+core@0.4.18/node_modules/@ariakit/core/esm/__chunks/75BJEVSH.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/WLZ6H5FH.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/AOQQTIBO.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/2F57YTN4.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/BFOIJXK2.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/VJH3F6TN.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/CZ4GFWYL.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/5M6RIVE2.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/3HM4TGWW.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/6GXEOXGT.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/U3R3WHDK.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/K2ZF5NU7.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/AOUGVQZ3.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/63XF7ACK.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/3NDVDEB4.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/KKITJVHA.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/JSI7U3EA.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/OT5RJDXG.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/B6W4QFKS.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/IGR4SXG2.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/677M2CI3.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/S7U6BLGA.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/Z5GCVBAY.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/JG4VNI52.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/P45QRJLH.js","../../../node_modules/.pnpm/@ariakit+core@0.4.18/node_modules/@ariakit/core/esm/__chunks/KMAUV3TY.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/4NYSH4UO.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/Z32PU2LQ.js"],"sourcesContent":["\"use client\";\nimport {\n createStoreContext\n} from \"./GWSL6KNJ.js\";\n\n// src/disclosure/disclosure-context.tsx\nvar ctx = createStoreContext();\nvar useDisclosureContext = ctx.useContext;\nvar useDisclosureScopedContext = ctx.useScopedContext;\nvar useDisclosureProviderContext = ctx.useProviderContext;\nvar DisclosureContextProvider = ctx.ContextProvider;\nvar DisclosureScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n useDisclosureContext,\n useDisclosureScopedContext,\n useDisclosureProviderContext,\n DisclosureContextProvider,\n DisclosureScopedContextProvider\n};\n","\"use client\";\nimport {\n DisclosureContextProvider,\n DisclosureScopedContextProvider\n} from \"./LVDQFHCH.js\";\nimport {\n createStoreContext\n} from \"./GWSL6KNJ.js\";\n\n// src/dialog/dialog-context.tsx\nimport { createContext } from \"react\";\nvar ctx = createStoreContext(\n [DisclosureContextProvider],\n [DisclosureScopedContextProvider]\n);\nvar useDialogContext = ctx.useContext;\nvar useDialogScopedContext = ctx.useScopedContext;\nvar useDialogProviderContext = ctx.useProviderContext;\nvar DialogContextProvider = ctx.ContextProvider;\nvar DialogScopedContextProvider = ctx.ScopedContextProvider;\nvar DialogHeadingContext = createContext(void 0);\nvar DialogDescriptionContext = createContext(void 0);\n\nexport {\n useDialogContext,\n useDialogScopedContext,\n useDialogProviderContext,\n DialogContextProvider,\n DialogScopedContextProvider,\n DialogHeadingContext,\n DialogDescriptionContext\n};\n","\"use client\";\nimport {\n DialogScopedContextProvider\n} from \"./A62MDFCW.js\";\nimport {\n useDisclosureProviderContext\n} from \"./LVDQFHCH.js\";\nimport {\n useStoreState\n} from \"./Q5W46E73.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./GWSL6KNJ.js\";\nimport {\n useId,\n useMergeRefs,\n useSafeLayoutEffect,\n useWrapElement\n} from \"./KPHZR4MB.js\";\n\n// src/disclosure/disclosure-content.tsx\nimport { invariant, removeUndefinedValues } from \"@ariakit/core/utils/misc\";\nimport { useMemo, useRef, useState } from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction afterTimeout(timeoutMs, cb) {\n const timeoutId = setTimeout(cb, timeoutMs);\n return () => clearTimeout(timeoutId);\n}\nfunction afterPaint(cb) {\n let raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(cb);\n });\n return () => cancelAnimationFrame(raf);\n}\nfunction parseCSSTime(...times) {\n return times.join(\", \").split(\", \").reduce((longestTime, currentTimeString) => {\n const multiplier = currentTimeString.endsWith(\"ms\") ? 1 : 1e3;\n const currentTime = Number.parseFloat(currentTimeString || \"0s\") * multiplier;\n if (currentTime > longestTime) return currentTime;\n return longestTime;\n }, 0);\n}\nfunction isHidden(mounted, hidden, alwaysVisible) {\n return !alwaysVisible && hidden !== false && (!mounted || !!hidden);\n}\nvar useDisclosureContent = createHook(function useDisclosureContent2({ store, alwaysVisible, ...props }) {\n const context = useDisclosureProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"DisclosureContent must receive a `store` prop or be wrapped in a DisclosureProvider component.\"\n );\n const ref = useRef(null);\n const id = useId(props.id);\n const [transition, setTransition] = useState(null);\n const open = store.useState(\"open\");\n const mounted = store.useState(\"mounted\");\n const animated = store.useState(\"animated\");\n const contentElement = store.useState(\"contentElement\");\n const otherElement = useStoreState(store.disclosure, \"contentElement\");\n useSafeLayoutEffect(() => {\n if (!ref.current) return;\n store == null ? void 0 : store.setContentElement(ref.current);\n }, [store]);\n useSafeLayoutEffect(() => {\n let previousAnimated;\n store == null ? void 0 : store.setState(\"animated\", (animated2) => {\n previousAnimated = animated2;\n return true;\n });\n return () => {\n if (previousAnimated === void 0) return;\n store == null ? void 0 : store.setState(\"animated\", previousAnimated);\n };\n }, [store]);\n useSafeLayoutEffect(() => {\n if (!animated) return;\n if (!(contentElement == null ? void 0 : contentElement.isConnected)) {\n setTransition(null);\n return;\n }\n return afterPaint(() => {\n setTransition(open ? \"enter\" : mounted ? \"leave\" : null);\n });\n }, [animated, contentElement, open, mounted]);\n useSafeLayoutEffect(() => {\n if (!store) return;\n if (!animated) return;\n if (!transition) return;\n if (!contentElement) return;\n const stopAnimation = () => store == null ? void 0 : store.setState(\"animating\", false);\n const stopAnimationSync = () => flushSync(stopAnimation);\n if (transition === \"leave\" && open) return;\n if (transition === \"enter\" && !open) return;\n if (typeof animated === \"number\") {\n const timeout2 = animated;\n return afterTimeout(timeout2, stopAnimationSync);\n }\n const {\n transitionDuration,\n animationDuration,\n transitionDelay,\n animationDelay\n } = getComputedStyle(contentElement);\n const {\n transitionDuration: transitionDuration2 = \"0\",\n animationDuration: animationDuration2 = \"0\",\n transitionDelay: transitionDelay2 = \"0\",\n animationDelay: animationDelay2 = \"0\"\n } = otherElement ? getComputedStyle(otherElement) : {};\n const delay = parseCSSTime(\n transitionDelay,\n animationDelay,\n transitionDelay2,\n animationDelay2\n );\n const duration = parseCSSTime(\n transitionDuration,\n animationDuration,\n transitionDuration2,\n animationDuration2\n );\n const timeout = delay + duration;\n if (!timeout) {\n if (transition === \"enter\") {\n store.setState(\"animated\", false);\n }\n stopAnimation();\n return;\n }\n const frameRate = 1e3 / 60;\n const maxTimeout = Math.max(timeout - frameRate, 0);\n return afterTimeout(maxTimeout, stopAnimationSync);\n }, [store, animated, contentElement, otherElement, open, transition]);\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(DialogScopedContextProvider, { value: store, children: element }),\n [store]\n );\n const hidden = isHidden(mounted, props.hidden, alwaysVisible);\n const styleProp = props.style;\n const style = useMemo(() => {\n if (hidden) {\n return { ...styleProp, display: \"none\" };\n }\n return styleProp;\n }, [hidden, styleProp]);\n props = {\n id,\n \"data-open\": open || void 0,\n \"data-enter\": transition === \"enter\" || void 0,\n \"data-leave\": transition === \"leave\" || void 0,\n hidden,\n ...props,\n ref: useMergeRefs(id ? store.setContentElement : null, ref, props.ref),\n style\n };\n return removeUndefinedValues(props);\n});\nvar DisclosureContentImpl = forwardRef(function DisclosureContentImpl2(props) {\n const htmlProps = useDisclosureContent(props);\n return createElement(TagName, htmlProps);\n});\nvar DisclosureContent = forwardRef(function DisclosureContent2({\n unmountOnHide,\n ...props\n}) {\n const context = useDisclosureProviderContext();\n const store = props.store || context;\n const mounted = useStoreState(\n store,\n (state) => !unmountOnHide || (state == null ? void 0 : state.mounted)\n );\n if (mounted === false) return null;\n return /* @__PURE__ */ jsx(DisclosureContentImpl, { ...props });\n});\n\nexport {\n isHidden,\n useDisclosureContent,\n DisclosureContent\n};\n","\"use client\";\nimport {\n createStore,\n mergeStore,\n omit,\n setup,\n subscribe,\n sync,\n throwOnConflictingProps\n} from \"./SXKM4CGU.js\";\nimport {\n defaultValue\n} from \"./XMCVU3LR.js\";\n\n// src/disclosure/disclosure-store.ts\nfunction createDisclosureStore(props = {}) {\n const store = mergeStore(\n props.store,\n omit(props.disclosure, [\"contentElement\", \"disclosureElement\"])\n );\n throwOnConflictingProps(props, store);\n const syncState = store == null ? void 0 : store.getState();\n const open = defaultValue(\n props.open,\n syncState == null ? void 0 : syncState.open,\n props.defaultOpen,\n false\n );\n const animated = defaultValue(props.animated, syncState == null ? void 0 : syncState.animated, false);\n const initialState = {\n open,\n animated,\n animating: !!animated && open,\n mounted: open,\n contentElement: defaultValue(syncState == null ? void 0 : syncState.contentElement, null),\n disclosureElement: defaultValue(syncState == null ? void 0 : syncState.disclosureElement, null)\n };\n const disclosure = createStore(initialState, store);\n setup(\n disclosure,\n () => sync(disclosure, [\"animated\", \"animating\"], (state) => {\n if (state.animated) return;\n disclosure.setState(\"animating\", false);\n })\n );\n setup(\n disclosure,\n () => subscribe(disclosure, [\"open\"], () => {\n if (!disclosure.getState().animated) return;\n disclosure.setState(\"animating\", true);\n })\n );\n setup(\n disclosure,\n () => sync(disclosure, [\"open\", \"animating\"], (state) => {\n disclosure.setState(\"mounted\", state.open || state.animating);\n })\n );\n return {\n ...disclosure,\n disclosure: props.disclosure,\n setOpen: (value) => disclosure.setState(\"open\", value),\n show: () => disclosure.setState(\"open\", true),\n hide: () => disclosure.setState(\"open\", false),\n toggle: () => disclosure.setState(\"open\", (open2) => !open2),\n stopAnimation: () => disclosure.setState(\"animating\", false),\n setContentElement: (value) => disclosure.setState(\"contentElement\", value),\n setDisclosureElement: (value) => disclosure.setState(\"disclosureElement\", value)\n };\n}\n\nexport {\n createDisclosureStore\n};\n","\"use client\";\nimport {\n useStore,\n useStoreProps\n} from \"./Q5W46E73.js\";\nimport {\n useUpdateEffect\n} from \"./KPHZR4MB.js\";\n\n// src/disclosure/disclosure-store.ts\nimport * as Core from \"@ariakit/core/disclosure/disclosure-store\";\nfunction useDisclosureStoreProps(store, update, props) {\n useUpdateEffect(update, [props.store, props.disclosure]);\n useStoreProps(store, props, \"open\", \"setOpen\");\n useStoreProps(store, props, \"mounted\", \"setMounted\");\n useStoreProps(store, props, \"animated\");\n return Object.assign(store, { disclosure: props.disclosure });\n}\nfunction useDisclosureStore(props = {}) {\n const [store, update] = useStore(Core.createDisclosureStore, props);\n return useDisclosureStoreProps(store, update, props);\n}\n\nexport {\n useDisclosureStoreProps,\n useDisclosureStore\n};\n","\"use client\";\n\n// src/portal/portal-context.tsx\nimport { createContext } from \"react\";\nvar PortalContext = createContext(null);\n\nexport {\n PortalContext\n};\n","\"use client\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./GWSL6KNJ.js\";\n\n// src/visually-hidden/visually-hidden.tsx\nvar TagName = \"span\";\nvar useVisuallyHidden = createHook(\n function useVisuallyHidden2(props) {\n props = {\n ...props,\n style: {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n whiteSpace: \"nowrap\",\n width: \"1px\",\n ...props.style\n }\n };\n return props;\n }\n);\nvar VisuallyHidden = forwardRef(function VisuallyHidden2(props) {\n const htmlProps = useVisuallyHidden(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useVisuallyHidden,\n VisuallyHidden\n};\n","\"use client\";\nimport {\n useVisuallyHidden\n} from \"./2F57YTN4.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./GWSL6KNJ.js\";\n\n// src/focus-trap/focus-trap.tsx\nvar TagName = \"span\";\nvar useFocusTrap = createHook(\n function useFocusTrap2(props) {\n props = {\n \"data-focus-trap\": \"\",\n tabIndex: 0,\n \"aria-hidden\": true,\n ...props,\n style: {\n // Prevents unintended scroll jumps.\n position: \"fixed\",\n top: 0,\n left: 0,\n ...props.style\n }\n };\n props = useVisuallyHidden(props);\n return props;\n }\n);\nvar FocusTrap = forwardRef(function FocusTrap2(props) {\n const htmlProps = useFocusTrap(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useFocusTrap,\n FocusTrap\n};\n","\"use client\";\nimport {\n PortalContext\n} from \"./AOQQTIBO.js\";\nimport {\n FocusTrap\n} from \"./BFOIJXK2.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./GWSL6KNJ.js\";\nimport {\n useMergeRefs,\n useSafeLayoutEffect,\n useWrapElement\n} from \"./KPHZR4MB.js\";\nimport {\n setRef\n} from \"./YXGXYGQX.js\";\n\n// src/portal/portal.tsx\nimport { getDocument } from \"@ariakit/core/utils/dom\";\nimport { isFocusEventOutside } from \"@ariakit/core/utils/events\";\nimport {\n disableFocusIn,\n getNextTabbable,\n getPreviousTabbable,\n restoreFocusIn\n} from \"@ariakit/core/utils/focus\";\nimport { useContext, useEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction getRootElement(element) {\n return getDocument(element).body;\n}\nfunction getPortalElement(element, portalElement) {\n if (!portalElement) {\n return getDocument(element).createElement(\"div\");\n }\n if (typeof portalElement === \"function\") {\n return portalElement(element);\n }\n return portalElement;\n}\nfunction getRandomId(prefix = \"id\") {\n return `${prefix ? `${prefix}-` : \"\"}${Math.random().toString(36).slice(2, 8)}`;\n}\nfunction queueFocus(element) {\n queueMicrotask(() => {\n element == null ? void 0 : element.focus();\n });\n}\nvar usePortal = createHook(function usePortal2({\n preserveTabOrder,\n preserveTabOrderAnchor,\n portalElement,\n portalRef,\n portal = true,\n ...props\n}) {\n const ref = useRef(null);\n const refProp = useMergeRefs(ref, props.ref);\n const context = useContext(PortalContext);\n const [portalNode, setPortalNode] = useState(null);\n const [anchorPortalNode, setAnchorPortalNode] = useState(\n null\n );\n const outerBeforeRef = useRef(null);\n const innerBeforeRef = useRef(null);\n const innerAfterRef = useRef(null);\n const outerAfterRef = useRef(null);\n useSafeLayoutEffect(() => {\n const element = ref.current;\n if (!element || !portal) {\n setPortalNode(null);\n return;\n }\n const portalEl = getPortalElement(element, portalElement);\n if (!portalEl) {\n setPortalNode(null);\n return;\n }\n const isPortalInDocument = portalEl.isConnected;\n if (!isPortalInDocument) {\n const rootElement = context || getRootElement(element);\n rootElement.appendChild(portalEl);\n }\n if (!portalEl.id) {\n portalEl.id = element.id ? `portal/${element.id}` : getRandomId();\n }\n setPortalNode(portalEl);\n setRef(portalRef, portalEl);\n if (isPortalInDocument) return;\n return () => {\n portalEl.remove();\n setRef(portalRef, null);\n };\n }, [portal, portalElement, context, portalRef]);\n useSafeLayoutEffect(() => {\n if (!portal) return;\n if (!preserveTabOrder) return;\n if (!preserveTabOrderAnchor) return;\n const doc = getDocument(preserveTabOrderAnchor);\n const element = doc.createElement(\"span\");\n element.style.position = \"fixed\";\n preserveTabOrderAnchor.insertAdjacentElement(\"afterend\", element);\n setAnchorPortalNode(element);\n return () => {\n element.remove();\n setAnchorPortalNode(null);\n };\n }, [portal, preserveTabOrder, preserveTabOrderAnchor]);\n useEffect(() => {\n if (!portalNode) return;\n if (!preserveTabOrder) return;\n let raf = 0;\n const onFocus = (event) => {\n if (!isFocusEventOutside(event)) return;\n const focusing = event.type === \"focusin\";\n cancelAnimationFrame(raf);\n if (focusing) {\n return restoreFocusIn(portalNode);\n }\n raf = requestAnimationFrame(() => {\n disableFocusIn(portalNode, true);\n });\n };\n portalNode.addEventListener(\"focusin\", onFocus, true);\n portalNode.addEventListener(\"focusout\", onFocus, true);\n return () => {\n cancelAnimationFrame(raf);\n portalNode.removeEventListener(\"focusin\", onFocus, true);\n portalNode.removeEventListener(\"focusout\", onFocus, true);\n };\n }, [portalNode, preserveTabOrder]);\n props = useWrapElement(\n props,\n (element) => {\n element = // While the portal node is not in the DOM, we need to pass the\n // current context to the portal context, otherwise it's going to\n // reset to the body element on nested portals.\n /* @__PURE__ */ jsx(PortalContext.Provider, { value: portalNode || context, children: element });\n if (!portal) return element;\n if (!portalNode) {\n return /* @__PURE__ */ jsx(\n \"span\",\n {\n ref: refProp,\n id: props.id,\n style: { position: \"fixed\" },\n hidden: true\n }\n );\n }\n element = /* @__PURE__ */ jsxs(Fragment, { children: [\n preserveTabOrder && portalNode && /* @__PURE__ */ jsx(\n FocusTrap,\n {\n ref: innerBeforeRef,\n \"data-focus-trap\": props.id,\n className: \"__focus-trap-inner-before\",\n onFocus: (event) => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(getNextTabbable());\n } else {\n queueFocus(outerBeforeRef.current);\n }\n }\n }\n ),\n element,\n preserveTabOrder && portalNode && /* @__PURE__ */ jsx(\n FocusTrap,\n {\n ref: innerAfterRef,\n \"data-focus-trap\": props.id,\n className: \"__focus-trap-inner-after\",\n onFocus: (event) => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(getPreviousTabbable());\n } else {\n queueFocus(outerAfterRef.current);\n }\n }\n }\n )\n ] });\n if (portalNode) {\n element = createPortal(element, portalNode);\n }\n let preserveTabOrderElement = /* @__PURE__ */ jsxs(Fragment, { children: [\n preserveTabOrder && portalNode && /* @__PURE__ */ jsx(\n FocusTrap,\n {\n ref: outerBeforeRef,\n \"data-focus-trap\": props.id,\n className: \"__focus-trap-outer-before\",\n onFocus: (event) => {\n const fromOuter = event.relatedTarget === outerAfterRef.current;\n if (!fromOuter && isFocusEventOutside(event, portalNode)) {\n queueFocus(innerBeforeRef.current);\n } else {\n queueFocus(getPreviousTabbable());\n }\n }\n }\n ),\n preserveTabOrder && // We're using position: fixed here so that the browser doesn't\n // add margin to the element when setting gap on a parent element.\n /* @__PURE__ */ jsx(\"span\", { \"aria-owns\": portalNode == null ? void 0 : portalNode.id, style: { position: \"fixed\" } }),\n preserveTabOrder && portalNode && /* @__PURE__ */ jsx(\n FocusTrap,\n {\n ref: outerAfterRef,\n \"data-focus-trap\": props.id,\n className: \"__focus-trap-outer-after\",\n onFocus: (event) => {\n if (isFocusEventOutside(event, portalNode)) {\n queueFocus(innerAfterRef.current);\n } else {\n const nextTabbable = getNextTabbable();\n if (nextTabbable === innerBeforeRef.current) {\n requestAnimationFrame(() => {\n var _a;\n return (_a = getNextTabbable()) == null ? void 0 : _a.focus();\n });\n return;\n }\n queueFocus(nextTabbable);\n }\n }\n }\n )\n ] });\n if (anchorPortalNode && preserveTabOrder) {\n preserveTabOrderElement = createPortal(\n preserveTabOrderElement,\n anchorPortalNode\n );\n }\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n preserveTabOrderElement,\n element\n ] });\n },\n [portalNode, context, portal, props.id, preserveTabOrder, anchorPortalNode]\n );\n props = {\n ...props,\n ref: refProp\n };\n return props;\n});\nvar Portal = forwardRef(function Portal2(props) {\n const htmlProps = usePortal(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n usePortal,\n Portal\n};\n","\"use client\";\n\n// src/heading/heading-context.tsx\nimport { createContext } from \"react\";\nvar HeadingContext = createContext(0);\n\nexport {\n HeadingContext\n};\n","\"use client\";\nimport {\n HeadingContext\n} from \"./CZ4GFWYL.js\";\n\n// src/heading/heading-level.tsx\nimport { useContext } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction HeadingLevel({ level, children }) {\n const contextLevel = useContext(HeadingContext);\n const nextLevel = Math.max(\n Math.min(level || contextLevel + 1, 6),\n 1\n );\n return /* @__PURE__ */ jsx(HeadingContext.Provider, { value: nextLevel, children });\n}\n\nexport {\n HeadingLevel\n};\n","\"use client\";\nimport {\n FocusableContext\n} from \"./SWN3JYXT.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./GWSL6KNJ.js\";\nimport {\n useWrapElement\n} from \"./KPHZR4MB.js\";\n\n// src/focusable/focusable-container.tsx\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nvar useFocusableContainer = createHook(function useFocusableContainer2({ autoFocusOnShow = true, ...props }) {\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(FocusableContext.Provider, { value: autoFocusOnShow, children: element }),\n [autoFocusOnShow]\n );\n return props;\n});\nvar FocusableContainer = forwardRef(function FocusableContainer2(props) {\n const htmlProps = useFocusableContainer(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useFocusableContainer,\n FocusableContainer\n};\n","\"use client\";\n\n// src/dialog/utils/prepend-hidden-dismiss.ts\nimport { getDocument } from \"@ariakit/core/utils/dom\";\nfunction prependHiddenDismiss(container, onClick) {\n const document = getDocument(container);\n const button = document.createElement(\"button\");\n button.type = \"button\";\n button.tabIndex = -1;\n button.textContent = \"Dismiss popup\";\n Object.assign(button.style, {\n border: \"0px\",\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: \"0px\",\n position: \"absolute\",\n whiteSpace: \"nowrap\",\n width: \"1px\"\n });\n button.addEventListener(\"click\", onClick);\n container.prepend(button);\n const removeHiddenDismiss = () => {\n button.removeEventListener(\"click\", onClick);\n button.remove();\n };\n return removeHiddenDismiss;\n}\n\nexport {\n prependHiddenDismiss\n};\n","\"use client\";\n\n// src/dialog/utils/use-previous-mouse-down-ref.ts\nimport { addGlobalEventListener } from \"@ariakit/core/utils/events\";\nimport { useEffect, useRef } from \"react\";\nfunction usePreviousMouseDownRef(enabled) {\n const previousMouseDownRef = useRef(null);\n useEffect(() => {\n if (!enabled) {\n previousMouseDownRef.current = null;\n return;\n }\n const onMouseDown = (event) => {\n previousMouseDownRef.current = event.target;\n };\n return addGlobalEventListener(\"mousedown\", onMouseDown, true);\n }, [enabled]);\n return previousMouseDownRef;\n}\n\nexport {\n usePreviousMouseDownRef\n};\n","\"use client\";\n\n// src/dialog/utils/orchestrate.ts\nvar cleanups = /* @__PURE__ */ new WeakMap();\nfunction orchestrate(element, key, setup) {\n if (!cleanups.has(element)) {\n cleanups.set(element, /* @__PURE__ */ new Map());\n }\n const elementCleanups = cleanups.get(element);\n const prevCleanup = elementCleanups.get(key);\n if (!prevCleanup) {\n elementCleanups.set(key, setup());\n return () => {\n var _a;\n (_a = elementCleanups.get(key)) == null ? void 0 : _a();\n elementCleanups.delete(key);\n };\n }\n const cleanup = setup();\n const nextCleanup = () => {\n cleanup();\n prevCleanup();\n elementCleanups.delete(key);\n };\n elementCleanups.set(key, nextCleanup);\n return () => {\n const isCurrent = elementCleanups.get(key) === nextCleanup;\n if (!isCurrent) return;\n cleanup();\n elementCleanups.set(key, prevCleanup);\n };\n}\nfunction setAttribute(element, attr, value) {\n const setup = () => {\n const previousValue = element.getAttribute(attr);\n element.setAttribute(attr, value);\n return () => {\n if (previousValue == null) {\n element.removeAttribute(attr);\n } else {\n element.setAttribute(attr, previousValue);\n }\n };\n };\n return orchestrate(element, attr, setup);\n}\nfunction setProperty(element, property, value) {\n const setup = () => {\n const exists = property in element;\n const previousValue = element[property];\n element[property] = value;\n return () => {\n if (!exists) {\n delete element[property];\n } else {\n element[property] = previousValue;\n }\n };\n };\n return orchestrate(element, property, setup);\n}\nfunction assignStyle(element, style) {\n if (!element) return () => {\n };\n const setup = () => {\n const prevStyle = element.style.cssText;\n Object.assign(element.style, style);\n return () => {\n element.style.cssText = prevStyle;\n };\n };\n return orchestrate(element, \"style\", setup);\n}\nfunction setCSSProperty(element, property, value) {\n if (!element) return () => {\n };\n const setup = () => {\n const previousValue = element.style.getPropertyValue(property);\n element.style.setProperty(property, value);\n return () => {\n if (previousValue) {\n element.style.setProperty(property, previousValue);\n } else {\n element.style.removeProperty(property);\n }\n };\n };\n return orchestrate(element, property, setup);\n}\n\nexport {\n orchestrate,\n setAttribute,\n setProperty,\n assignStyle,\n setCSSProperty\n};\n","\"use client\";\nimport {\n setProperty\n} from \"./K2ZF5NU7.js\";\n\n// src/dialog/utils/walk-tree-outside.ts\nimport { contains, getDocument } from \"@ariakit/core/utils/dom\";\nimport { chain } from \"@ariakit/core/utils/misc\";\nvar ignoreTags = [\"SCRIPT\", \"STYLE\"];\nfunction getSnapshotPropertyName(id) {\n return `__ariakit-dialog-snapshot-${id}`;\n}\nfunction inSnapshot(id, element) {\n const doc = getDocument(element);\n const propertyName = getSnapshotPropertyName(id);\n if (!doc.body[propertyName]) return true;\n do {\n if (element === doc.body) return false;\n if (element[propertyName]) return true;\n if (!element.parentElement) return false;\n element = element.parentElement;\n } while (true);\n}\nfunction isValidElement(id, element, ignoredElements) {\n if (ignoreTags.includes(element.tagName)) return false;\n if (!inSnapshot(id, element)) return false;\n return !ignoredElements.some(\n (enabledElement) => enabledElement && contains(element, enabledElement)\n );\n}\nfunction walkTreeOutside(id, elements, callback, ancestorCallback) {\n for (let element of elements) {\n if (!(element == null ? void 0 : element.isConnected)) continue;\n const hasAncestorAlready = elements.some((maybeAncestor) => {\n if (!maybeAncestor) return false;\n if (maybeAncestor === element) return false;\n return maybeAncestor.contains(element);\n });\n const doc = getDocument(element);\n const originalElement = element;\n while (element.parentElement && element !== doc.body) {\n ancestorCallback == null ? void 0 : ancestorCallback(element.parentElement, originalElement);\n if (!hasAncestorAlready) {\n for (const child of element.parentElement.children) {\n if (isValidElement(id, child, elements)) {\n callback(child, originalElement);\n }\n }\n }\n element = element.parentElement;\n }\n }\n}\nfunction createWalkTreeSnapshot(id, elements) {\n const { body } = getDocument(elements[0]);\n const cleanups = [];\n const markElement = (element) => {\n cleanups.push(setProperty(element, getSnapshotPropertyName(id), true));\n };\n walkTreeOutside(id, elements, markElement);\n return chain(setProperty(body, getSnapshotPropertyName(id), true), () => {\n for (const cleanup of cleanups) {\n cleanup();\n }\n });\n}\n\nexport {\n isValidElement,\n walkTreeOutside,\n createWalkTreeSnapshot\n};\n","\"use client\";\n\n// src/dialog/utils/is-backdrop.ts\nfunction isBackdrop(element, ...ids) {\n if (!element) return false;\n const backdrop = element.getAttribute(\"data-backdrop\");\n if (backdrop == null) return false;\n if (backdrop === \"\") return true;\n if (backdrop === \"true\") return true;\n if (!ids.length) return true;\n return ids.some((id) => backdrop === id);\n}\n\nexport {\n isBackdrop\n};\n","\"use client\";\nimport {\n walkTreeOutside\n} from \"./AOUGVQZ3.js\";\nimport {\n setProperty\n} from \"./K2ZF5NU7.js\";\nimport {\n isBackdrop\n} from \"./63XF7ACK.js\";\n\n// src/dialog/utils/mark-tree-outside.ts\nimport { chain } from \"@ariakit/core/utils/misc\";\nfunction getPropertyName(id = \"\", ancestor = false) {\n return `__ariakit-dialog-${ancestor ? \"ancestor\" : \"outside\"}${id ? `-${id}` : \"\"}`;\n}\nfunction markElement(element, id = \"\") {\n return chain(\n setProperty(element, getPropertyName(), true),\n setProperty(element, getPropertyName(id), true)\n );\n}\nfunction markAncestor(element, id = \"\") {\n return chain(\n setProperty(element, getPropertyName(\"\", true), true),\n setProperty(element, getPropertyName(id, true), true)\n );\n}\nfunction isElementMarked(element, id) {\n const ancestorProperty = getPropertyName(id, true);\n if (element[ancestorProperty]) return true;\n const elementProperty = getPropertyName(id);\n do {\n if (element[elementProperty]) return true;\n if (!element.parentElement) return false;\n element = element.parentElement;\n } while (true);\n}\nfunction markTreeOutside(id, elements) {\n const cleanups = [];\n const ids = elements.map((el) => el == null ? void 0 : el.id);\n walkTreeOutside(\n id,\n elements,\n (element) => {\n if (isBackdrop(element, ...ids)) return;\n cleanups.unshift(markElement(element, id));\n },\n (ancestor, element) => {\n const isAnotherDialogAncestor = element.hasAttribute(\"data-dialog\") && element.id !== id;\n if (isAnotherDialogAncestor) return;\n cleanups.unshift(markAncestor(ancestor, id));\n }\n );\n const restoreAccessibilityTree = () => {\n for (const cleanup of cleanups) {\n cleanup();\n }\n };\n return restoreAccessibilityTree;\n}\n\nexport {\n markElement,\n markAncestor,\n isElementMarked,\n markTreeOutside\n};\n","\"use client\";\nimport {\n usePreviousMouseDownRef\n} from \"./U3R3WHDK.js\";\nimport {\n isElementMarked\n} from \"./3NDVDEB4.js\";\nimport {\n isSafariFocusAncestor\n} from \"./U6HHPQDW.js\";\nimport {\n useStoreState\n} from \"./Q5W46E73.js\";\nimport {\n useEvent,\n useSafeLayoutEffect\n} from \"./KPHZR4MB.js\";\n\n// src/dialog/utils/use-hide-on-interact-outside.ts\nimport { contains, getDocument, isVisible } from \"@ariakit/core/utils/dom\";\nimport { addGlobalEventListener } from \"@ariakit/core/utils/events\";\nimport { useEffect, useRef } from \"react\";\nfunction isInDocument(target) {\n if (target.tagName === \"HTML\") return true;\n return contains(getDocument(target).body, target);\n}\nfunction isDisclosure(disclosure, target) {\n if (!disclosure) return false;\n if (contains(disclosure, target)) return true;\n const activeId = target.getAttribute(\"aria-activedescendant\");\n if (activeId) {\n const activeElement = getDocument(disclosure).getElementById(activeId);\n if (activeElement) {\n return contains(disclosure, activeElement);\n }\n }\n return false;\n}\nfunction isMouseEventOnDialog(event, dialog) {\n if (!(\"clientY\" in event)) return false;\n const rect = dialog.getBoundingClientRect();\n if (rect.width === 0 || rect.height === 0) return false;\n return rect.top <= event.clientY && event.clientY <= rect.top + rect.height && rect.left <= event.clientX && event.clientX <= rect.left + rect.width;\n}\nfunction useEventOutside({\n store,\n type,\n listener,\n capture,\n domReady\n}) {\n const callListener = useEvent(listener);\n const open = useStoreState(store, \"open\");\n const focusedRef = useRef(false);\n useSafeLayoutEffect(() => {\n if (!open) return;\n if (!domReady) return;\n const { contentElement } = store.getState();\n if (!contentElement) return;\n const onFocus = () => {\n focusedRef.current = true;\n };\n contentElement.addEventListener(\"focusin\", onFocus, true);\n return () => contentElement.removeEventListener(\"focusin\", onFocus, true);\n }, [store, open, domReady]);\n useEffect(() => {\n if (!open) return;\n const onEvent = (event) => {\n const { contentElement, disclosureElement } = store.getState();\n const target = event.target;\n if (!contentElement) return;\n if (!target) return;\n if (!isInDocument(target)) return;\n if (contains(contentElement, target)) return;\n if (isDisclosure(disclosureElement, target)) return;\n if (target.hasAttribute(\"data-focus-trap\")) return;\n if (isMouseEventOnDialog(event, contentElement)) return;\n const focused = focusedRef.current;\n if (focused && !isElementMarked(target, contentElement.id)) return;\n if (isSafariFocusAncestor(target)) return;\n callListener(event);\n };\n return addGlobalEventListener(type, onEvent, capture);\n }, [open, capture]);\n}\nfunction shouldHideOnInteractOutside(hideOnInteractOutside, event) {\n if (typeof hideOnInteractOutside === \"function\") {\n return hideOnInteractOutside(event);\n }\n return !!hideOnInteractOutside;\n}\nfunction useHideOnInteractOutside(store, hideOnInteractOutside, domReady) {\n const open = useStoreState(store, \"open\");\n const previousMouseDownRef = usePreviousMouseDownRef(open);\n const props = { store, domReady, capture: true };\n useEventOutside({\n ...props,\n type: \"click\",\n listener: (event) => {\n const { contentElement } = store.getState();\n const previousMouseDown = previousMouseDownRef.current;\n if (!previousMouseDown) return;\n if (!isVisible(previousMouseDown)) return;\n if (!isElementMarked(previousMouseDown, contentElement == null ? void 0 : contentElement.id)) return;\n if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) return;\n store.hide();\n }\n });\n useEventOutside({\n ...props,\n type: \"focusin\",\n listener: (event) => {\n const { contentElement } = store.getState();\n if (!contentElement) return;\n if (event.target === getDocument(contentElement)) return;\n if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) return;\n store.hide();\n }\n });\n useEventOutside({\n ...props,\n type: \"contextmenu\",\n listener: (event) => {\n if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) return;\n store.hide();\n }\n });\n}\n\nexport {\n useHideOnInteractOutside\n};\n","\"use client\";\nimport {\n useSafeLayoutEffect\n} from \"./KPHZR4MB.js\";\n\n// src/dialog/utils/use-nested-dialogs.tsx\nimport { chain } from \"@ariakit/core/utils/misc\";\nimport { sync } from \"@ariakit/core/utils/store\";\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState\n} from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NestedDialogsContext = createContext({});\nfunction useNestedDialogs(store) {\n const context = useContext(NestedDialogsContext);\n const [dialogs, setDialogs] = useState([]);\n const add = useCallback(\n (dialog) => {\n var _a;\n setDialogs((dialogs2) => [...dialogs2, dialog]);\n return chain((_a = context.add) == null ? void 0 : _a.call(context, dialog), () => {\n setDialogs((dialogs2) => dialogs2.filter((d) => d !== dialog));\n });\n },\n [context]\n );\n useSafeLayoutEffect(() => {\n return sync(store, [\"open\", \"contentElement\"], (state) => {\n var _a;\n if (!state.open) return;\n if (!state.contentElement) return;\n return (_a = context.add) == null ? void 0 : _a.call(context, store);\n });\n }, [store, context]);\n const providerValue = useMemo(() => ({ store, add }), [store, add]);\n const wrapElement = useCallback(\n (element) => /* @__PURE__ */ jsx(NestedDialogsContext.Provider, { value: providerValue, children: element }),\n [providerValue]\n );\n return { wrapElement, nestedDialogs: dialogs };\n}\n\nexport {\n useNestedDialogs\n};\n","\"use client\";\nimport {\n useForceUpdate\n} from \"./KPHZR4MB.js\";\n\n// src/dialog/utils/use-root-dialog.ts\nimport { getDocument } from \"@ariakit/core/utils/dom\";\nimport { useCallback, useEffect } from \"react\";\nimport { flushSync } from \"react-dom\";\nfunction useRootDialog({\n attribute,\n contentId,\n contentElement,\n enabled\n}) {\n const [updated, retry] = useForceUpdate();\n const isRootDialog = useCallback(() => {\n if (!enabled) return false;\n if (!contentElement) return false;\n const { body } = getDocument(contentElement);\n const id = body.getAttribute(attribute);\n return !id || id === contentId;\n }, [updated, enabled, contentElement, attribute, contentId]);\n useEffect(() => {\n if (!enabled) return;\n if (!contentId) return;\n if (!contentElement) return;\n const { body } = getDocument(contentElement);\n if (isRootDialog()) {\n body.setAttribute(attribute, contentId);\n return () => body.removeAttribute(attribute);\n }\n const observer = new MutationObserver(() => flushSync(retry));\n observer.observe(body, { attributeFilter: [attribute] });\n return () => observer.disconnect();\n }, [updated, enabled, contentId, contentElement, isRootDialog, attribute]);\n return isRootDialog;\n}\n\nexport {\n useRootDialog\n};\n","\"use client\";\nimport {\n useRootDialog\n} from \"./OT5RJDXG.js\";\nimport {\n assignStyle,\n setCSSProperty\n} from \"./K2ZF5NU7.js\";\n\n// src/dialog/utils/use-prevent-body-scroll.ts\nimport { getDocument, getWindow } from \"@ariakit/core/utils/dom\";\nimport { chain } from \"@ariakit/core/utils/misc\";\nimport { isApple, isMac } from \"@ariakit/core/utils/platform\";\nimport { useEffect } from \"react\";\nfunction getPaddingProperty(documentElement) {\n const documentLeft = documentElement.getBoundingClientRect().left;\n const scrollbarX = Math.round(documentLeft) + documentElement.scrollLeft;\n return scrollbarX ? \"paddingLeft\" : \"paddingRight\";\n}\nfunction usePreventBodyScroll(contentElement, contentId, enabled) {\n const isRootDialog = useRootDialog({\n attribute: \"data-dialog-prevent-body-scroll\",\n contentElement,\n contentId,\n enabled\n });\n useEffect(() => {\n if (!isRootDialog()) return;\n if (!contentElement) return;\n const doc = getDocument(contentElement);\n const win = getWindow(contentElement);\n const { documentElement, body } = doc;\n const cssScrollbarWidth = documentElement.style.getPropertyValue(\"--scrollbar-width\");\n const scrollbarWidth = cssScrollbarWidth ? Number.parseInt(cssScrollbarWidth, 10) : win.innerWidth - documentElement.clientWidth;\n const setScrollbarWidthProperty = () => setCSSProperty(\n documentElement,\n \"--scrollbar-width\",\n `${scrollbarWidth}px`\n );\n const paddingProperty = getPaddingProperty(documentElement);\n const setStyle = () => assignStyle(body, {\n overflow: \"hidden\",\n [paddingProperty]: `${scrollbarWidth}px`\n });\n const setIOSStyle = () => {\n var _a, _b;\n const { scrollX, scrollY, visualViewport } = win;\n const offsetLeft = (_a = visualViewport == null ? void 0 : visualViewport.offsetLeft) != null ? _a : 0;\n const offsetTop = (_b = visualViewport == null ? void 0 : visualViewport.offsetTop) != null ? _b : 0;\n const restoreStyle = assignStyle(body, {\n position: \"fixed\",\n overflow: \"hidden\",\n top: `${-(scrollY - Math.floor(offsetTop))}px`,\n left: `${-(scrollX - Math.floor(offsetLeft))}px`,\n right: \"0\",\n [paddingProperty]: `${scrollbarWidth}px`\n });\n return () => {\n restoreStyle();\n if (process.env.NODE_ENV !== \"test\") {\n win.scrollTo({ left: scrollX, top: scrollY, behavior: \"instant\" });\n }\n };\n };\n const isIOS = isApple() && !isMac();\n return chain(\n setScrollbarWidthProperty(),\n isIOS ? setIOSStyle() : setStyle()\n );\n }, [isRootDialog, contentElement]);\n}\n\nexport {\n usePreventBodyScroll\n};\n","\"use client\";\n\n// src/dialog/utils/is-focus-trap.ts\nfunction isFocusTrap(element, ...ids) {\n if (!element) return false;\n const attr = element.getAttribute(\"data-focus-trap\");\n if (attr == null) return false;\n if (!ids.length) return true;\n if (attr === \"\") return false;\n return ids.some((id) => attr === id);\n}\n\nexport {\n isFocusTrap\n};\n","\"use client\";\n\n// src/dialog/utils/supports-inert.ts\nfunction supportsInert() {\n return \"inert\" in HTMLElement.prototype;\n}\n\nexport {\n supportsInert\n};\n","\"use client\";\nimport {\n walkTreeOutside\n} from \"./AOUGVQZ3.js\";\nimport {\n setAttribute\n} from \"./K2ZF5NU7.js\";\nimport {\n isBackdrop\n} from \"./63XF7ACK.js\";\n\n// src/dialog/utils/disable-accessibility-tree-outside.ts\nfunction hideElementFromAccessibilityTree(element) {\n return setAttribute(element, \"aria-hidden\", \"true\");\n}\nfunction disableAccessibilityTreeOutside(id, elements) {\n const cleanups = [];\n const ids = elements.map((el) => el == null ? void 0 : el.id);\n walkTreeOutside(id, elements, (element) => {\n if (isBackdrop(element, ...ids)) return;\n cleanups.unshift(hideElementFromAccessibilityTree(element));\n });\n const restoreAccessibilityTree = () => {\n for (const cleanup of cleanups) {\n cleanup();\n }\n };\n return restoreAccessibilityTree;\n}\n\nexport {\n hideElementFromAccessibilityTree,\n disableAccessibilityTreeOutside\n};\n","\"use client\";\nimport {\n isFocusTrap\n} from \"./IGR4SXG2.js\";\nimport {\n supportsInert\n} from \"./677M2CI3.js\";\nimport {\n hideElementFromAccessibilityTree\n} from \"./S7U6BLGA.js\";\nimport {\n walkTreeOutside\n} from \"./AOUGVQZ3.js\";\nimport {\n assignStyle,\n orchestrate,\n setAttribute,\n setProperty\n} from \"./K2ZF5NU7.js\";\nimport {\n isBackdrop\n} from \"./63XF7ACK.js\";\n\n// src/dialog/utils/disable-tree.ts\nimport { contains } from \"@ariakit/core/utils/dom\";\nimport { getAllTabbableIn } from \"@ariakit/core/utils/focus\";\nimport { chain, noop } from \"@ariakit/core/utils/misc\";\nfunction disableTree(element, ignoredElements) {\n if (!(\"style\" in element)) return noop;\n if (supportsInert()) {\n return setProperty(element, \"inert\", true);\n }\n const tabbableElements = getAllTabbableIn(element, true);\n const enableElements = tabbableElements.map((element2) => {\n if (ignoredElements == null ? void 0 : ignoredElements.some((el) => el && contains(el, element2))) return noop;\n const restoreFocusMethod = orchestrate(element2, \"focus\", () => {\n element2.focus = noop;\n return () => {\n delete element2.focus;\n };\n });\n return chain(setAttribute(element2, \"tabindex\", \"-1\"), restoreFocusMethod);\n });\n return chain(\n ...enableElements,\n hideElementFromAccessibilityTree(element),\n assignStyle(element, {\n pointerEvents: \"none\",\n userSelect: \"none\",\n cursor: \"default\"\n })\n );\n}\nfunction disableTreeOutside(id, elements) {\n const cleanups = [];\n const ids = elements.map((el) => el == null ? void 0 : el.id);\n walkTreeOutside(\n id,\n elements,\n (element) => {\n if (isBackdrop(element, ...ids)) return;\n if (isFocusTrap(element, ...ids)) return;\n cleanups.unshift(disableTree(element, elements));\n },\n (element) => {\n if (!element.hasAttribute(\"role\")) return;\n if (elements.some((el) => el && contains(el, element))) return;\n cleanups.unshift(setAttribute(element, \"role\", \"none\"));\n }\n );\n const restoreTreeOutside = () => {\n for (const cleanup of cleanups) {\n cleanup();\n }\n };\n return restoreTreeOutside;\n}\n\nexport {\n disableTree,\n disableTreeOutside\n};\n","\"use client\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./GWSL6KNJ.js\";\n\n// src/role/role.tsx\nvar TagName = \"div\";\nvar elements = [\n \"a\",\n \"button\",\n \"details\",\n \"dialog\",\n \"div\",\n \"form\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"header\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"section\",\n \"select\",\n \"span\",\n \"summary\",\n \"textarea\",\n \"ul\",\n \"svg\"\n];\nvar useRole = createHook(\n function useRole2(props) {\n return props;\n }\n);\nvar Role = forwardRef(\n // @ts-expect-error\n function Role2(props) {\n return createElement(TagName, props);\n }\n);\nObject.assign(\n Role,\n elements.reduce((acc, element) => {\n acc[element] = forwardRef(function Role3(props) {\n return createElement(element, props);\n });\n return acc;\n }, {})\n);\n\nexport {\n useRole,\n Role\n};\n","\"use client\";\nimport {\n markAncestor\n} from \"./3NDVDEB4.js\";\nimport {\n useDisclosureContent\n} from \"./6B3RXHKP.js\";\nimport {\n useDisclosureStore\n} from \"./WLZ6H5FH.js\";\nimport {\n Role\n} from \"./JG4VNI52.js\";\nimport {\n useStoreState\n} from \"./Q5W46E73.js\";\nimport {\n useSafeLayoutEffect\n} from \"./KPHZR4MB.js\";\n\n// src/dialog/dialog-backdrop.tsx\nimport { isValidElement, useEffect, useRef } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction DialogBackdrop({\n store,\n backdrop,\n alwaysVisible,\n hidden\n}) {\n const ref = useRef(null);\n const disclosure = useDisclosureStore({ disclosure: store });\n const contentElement = useStoreState(store, \"contentElement\");\n useEffect(() => {\n const backdrop2 = ref.current;\n const dialog = contentElement;\n if (!backdrop2) return;\n if (!dialog) return;\n backdrop2.style.zIndex = getComputedStyle(dialog).zIndex;\n }, [contentElement]);\n useSafeLayoutEffect(() => {\n const id = contentElement == null ? void 0 : contentElement.id;\n if (!id) return;\n const backdrop2 = ref.current;\n if (!backdrop2) return;\n return markAncestor(backdrop2, id);\n }, [contentElement]);\n const props = useDisclosureContent({\n ref,\n store: disclosure,\n role: \"presentation\",\n \"data-backdrop\": (contentElement == null ? void 0 : contentElement.id) || \"\",\n alwaysVisible,\n hidden: hidden != null ? hidden : void 0,\n style: {\n position: \"fixed\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n });\n if (!backdrop) return null;\n if (isValidElement(backdrop)) {\n return /* @__PURE__ */ jsx(Role, { ...props, render: backdrop });\n }\n const Component = typeof backdrop !== \"boolean\" ? backdrop : \"div\";\n return /* @__PURE__ */ jsx(Role, { ...props, render: /* @__PURE__ */ jsx(Component, {}) });\n}\n\nexport {\n DialogBackdrop\n};\n","\"use client\";\nimport {\n createDisclosureStore\n} from \"./75BJEVSH.js\";\n\n// src/dialog/dialog-store.ts\nfunction createDialogStore(props = {}) {\n return createDisclosureStore(props);\n}\n\nexport {\n createDialogStore\n};\n","\"use client\";\nimport {\n useDisclosureStoreProps\n} from \"./WLZ6H5FH.js\";\nimport {\n useStore\n} from \"./Q5W46E73.js\";\n\n// src/dialog/dialog-store.ts\nimport * as Core from \"@ariakit/core/dialog/dialog-store\";\nfunction useDialogStoreProps(store, update, props) {\n return useDisclosureStoreProps(store, update, props);\n}\nfunction useDialogStore(props = {}) {\n const [store, update] = useStore(Core.createDialogStore, props);\n return useDialogStoreProps(store, update, props);\n}\n\nexport {\n useDialogStoreProps,\n useDialogStore\n};\n","\"use client\";\nimport {\n usePortal\n} from \"./VJH3F6TN.js\";\nimport {\n HeadingLevel\n} from \"./5M6RIVE2.js\";\nimport {\n useFocusableContainer\n} from \"./3HM4TGWW.js\";\nimport {\n prependHiddenDismiss\n} from \"./6GXEOXGT.js\";\nimport {\n useHideOnInteractOutside\n} from \"./KKITJVHA.js\";\nimport {\n useNestedDialogs\n} from \"./JSI7U3EA.js\";\nimport {\n usePreventBodyScroll\n} from \"./B6W4QFKS.js\";\nimport {\n disableTree,\n disableTreeOutside\n} from \"./Z5GCVBAY.js\";\nimport {\n supportsInert\n} from \"./677M2CI3.js\";\nimport {\n DialogBackdrop\n} from \"./P45QRJLH.js\";\nimport {\n isElementMarked,\n markTreeOutside\n} from \"./3NDVDEB4.js\";\nimport {\n createWalkTreeSnapshot\n} from \"./AOUGVQZ3.js\";\nimport {\n isHidden,\n useDisclosureContent\n} from \"./6B3RXHKP.js\";\nimport {\n useDialogStore\n} from \"./4NYSH4UO.js\";\nimport {\n DialogDescriptionContext,\n DialogHeadingContext,\n DialogScopedContextProvider,\n useDialogProviderContext\n} from \"./A62MDFCW.js\";\nimport {\n useFocusable\n} from \"./U6HHPQDW.js\";\nimport {\n useStoreState\n} from \"./Q5W46E73.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./GWSL6KNJ.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useId,\n useMergeRefs,\n usePortalRef,\n useSafeLayoutEffect,\n useWrapElement\n} from \"./KPHZR4MB.js\";\n\n// src/dialog/dialog.tsx\nimport {\n contains,\n getActiveElement,\n getDocument,\n getWindow,\n isButton\n} from \"@ariakit/core/utils/dom\";\nimport {\n addGlobalEventListener,\n queueBeforeEvent\n} from \"@ariakit/core/utils/events\";\nimport {\n focusIfNeeded,\n getFirstTabbableIn,\n isFocusable\n} from \"@ariakit/core/utils/focus\";\nimport { chain } from \"@ariakit/core/utils/misc\";\nimport { isSafari } from \"@ariakit/core/utils/platform\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nvar isSafariBrowser = isSafari();\nfunction isAlreadyFocusingAnotherElement(dialog) {\n const activeElement = getActiveElement();\n if (!activeElement) return false;\n if (dialog && contains(dialog, activeElement)) return false;\n if (isFocusable(activeElement)) return true;\n return false;\n}\nfunction getElementFromProp(prop, focusable = false) {\n if (!prop) return null;\n const element = \"current\" in prop ? prop.current : prop;\n if (!element) return null;\n if (focusable) return isFocusable(element) ? element : null;\n return element;\n}\nvar useDialog = createHook(function useDialog2({\n store: storeProp,\n open: openProp,\n onClose,\n focusable = true,\n modal = true,\n portal = !!modal,\n backdrop = !!modal,\n hideOnEscape = true,\n hideOnInteractOutside = true,\n getPersistentElements,\n preventBodyScroll = !!modal,\n autoFocusOnShow = true,\n autoFocusOnHide = true,\n initialFocus,\n finalFocus,\n unmountOnHide,\n unstable_treeSnapshotKey,\n ...props\n}) {\n const context = useDialogProviderContext();\n const ref = useRef(null);\n const store = useDialogStore({\n store: storeProp || context,\n open: openProp,\n setOpen(open2) {\n if (open2) return;\n const dialog = ref.current;\n if (!dialog) return;\n const event = new Event(\"close\", { bubbles: false, cancelable: true });\n if (onClose) {\n dialog.addEventListener(\"close\", onClose, { once: true });\n }\n dialog.dispatchEvent(event);\n if (!event.defaultPrevented) return;\n store.setOpen(true);\n }\n });\n const { portalRef, domReady } = usePortalRef(portal, props.portalRef);\n const preserveTabOrderProp = props.preserveTabOrder;\n const preserveTabOrder = useStoreState(\n store,\n (state) => preserveTabOrderProp && !modal && state.mounted\n );\n const id = useId(props.id);\n const open = useStoreState(store, \"open\");\n const mounted = useStoreState(store, \"mounted\");\n const contentElement = useStoreState(store, \"contentElement\");\n const hidden = isHidden(mounted, props.hidden, props.alwaysVisible);\n usePreventBodyScroll(contentElement, id, preventBodyScroll && !hidden);\n useHideOnInteractOutside(store, hideOnInteractOutside, domReady);\n const { wrapElement, nestedDialogs } = useNestedDialogs(store);\n props = useWrapElement(props, wrapElement, [wrapElement]);\n useSafeLayoutEffect(() => {\n if (!open) return;\n const dialog = ref.current;\n const activeElement = getActiveElement(dialog, true);\n if (!activeElement) return;\n if (activeElement.tagName === \"BODY\") return;\n if (dialog && contains(dialog, activeElement)) return;\n store.setDisclosureElement(activeElement);\n }, [store, open]);\n if (isSafariBrowser) {\n useEffect(() => {\n if (!mounted) return;\n const { disclosureElement } = store.getState();\n if (!disclosureElement) return;\n if (!isButton(disclosureElement)) return;\n const onMouseDown = () => {\n let receivedFocus = false;\n const onFocus = () => {\n receivedFocus = true;\n };\n const options = { capture: true, once: true };\n disclosureElement.addEventListener(\"focusin\", onFocus, options);\n queueBeforeEvent(disclosureElement, \"mouseup\", () => {\n disclosureElement.removeEventListener(\"focusin\", onFocus, true);\n if (receivedFocus) return;\n focusIfNeeded(disclosureElement);\n });\n };\n disclosureElement.addEventListener(\"mousedown\", onMouseDown);\n return () => {\n disclosureElement.removeEventListener(\"mousedown\", onMouseDown);\n };\n }, [store, mounted]);\n }\n useEffect(() => {\n if (!mounted) return;\n if (!domReady) return;\n const dialog = ref.current;\n if (!dialog) return;\n const win = getWindow(dialog);\n const viewport = win.visualViewport || win;\n const setViewportHeight = () => {\n var _a, _b;\n const height = (_b = (_a = win.visualViewport) == null ? void 0 : _a.height) != null ? _b : win.innerHeight;\n dialog.style.setProperty(\"--dialog-viewport-height\", `${height}px`);\n };\n setViewportHeight();\n viewport.addEventListener(\"resize\", setViewportHeight);\n return () => {\n viewport.removeEventListener(\"resize\", setViewportHeight);\n };\n }, [mounted, domReady]);\n useEffect(() => {\n if (!modal) return;\n if (!mounted) return;\n if (!domReady) return;\n const dialog = ref.current;\n if (!dialog) return;\n const existingDismiss = dialog.querySelector(\"[data-dialog-dismiss]\");\n if (existingDismiss) return;\n return prependHiddenDismiss(dialog, store.hide);\n }, [store, modal, mounted, domReady]);\n useSafeLayoutEffect(() => {\n if (!supportsInert()) return;\n if (open) return;\n if (!mounted) return;\n if (!domReady) return;\n const dialog = ref.current;\n if (!dialog) return;\n return disableTree(dialog);\n }, [open, mounted, domReady]);\n const canTakeTreeSnapshot = open && domReady;\n useSafeLayoutEffect(() => {\n if (!id) return;\n if (!canTakeTreeSnapshot) return;\n const dialog = ref.current;\n return createWalkTreeSnapshot(id, [dialog]);\n }, [id, canTakeTreeSnapshot, unstable_treeSnapshotKey]);\n const getPersistentElementsProp = useEvent(getPersistentElements);\n useSafeLayoutEffect(() => {\n if (!id) return;\n if (!canTakeTreeSnapshot) return;\n const { disclosureElement } = store.getState();\n const dialog = ref.current;\n const persistentElements = getPersistentElementsProp() || [];\n const allElements = [\n dialog,\n ...persistentElements,\n ...nestedDialogs.map((dialog2) => dialog2.getState().contentElement)\n ];\n if (modal) {\n return chain(\n markTreeOutside(id, allElements),\n disableTreeOutside(id, allElements)\n );\n }\n return markTreeOutside(id, [disclosureElement, ...allElements]);\n }, [\n id,\n store,\n canTakeTreeSnapshot,\n getPersistentElementsProp,\n nestedDialogs,\n modal,\n unstable_treeSnapshotKey\n ]);\n const mayAutoFocusOnShow = !!autoFocusOnShow;\n const autoFocusOnShowProp = useBooleanEvent(autoFocusOnShow);\n const [autoFocusEnabled, setAutoFocusEnabled] = useState(false);\n useEffect(() => {\n if (!open) return;\n if (!mayAutoFocusOnShow) return;\n if (!domReady) return;\n if (!(contentElement == null ? void 0 : contentElement.isConnected)) return;\n const element = getElementFromProp(initialFocus, true) || // If no initial focus is specified, we try to focus the first element\n // with the autofocus attribute. If it's an Ariakit component, the\n // Focusable component will consume the autoFocus prop and add the\n // data-autofocus attribute to the element instead.\n contentElement.querySelector(\n \"[data-autofocus=true],[autofocus]\"\n ) || // We have to fallback to the first focusable element otherwise portaled\n // dialogs with preserveTabOrder set to true will not receive focus\n // properly because the elements aren't tabbable until the dialog receives\n // focus.\n getFirstTabbableIn(contentElement, true, portal && preserveTabOrder) || // Finally, we fallback to the dialog element itself.\n contentElement;\n const isElementFocusable = isFocusable(element);\n if (!autoFocusOnShowProp(isElementFocusable ? element : null)) return;\n setAutoFocusEnabled(true);\n queueMicrotask(() => {\n element.focus();\n if (!isSafariBrowser) return;\n if (!isElementFocusable) return;\n element.scrollIntoView({ block: \"nearest\", inline: \"nearest\" });\n });\n }, [\n open,\n mayAutoFocusOnShow,\n domReady,\n contentElement,\n initialFocus,\n portal,\n preserveTabOrder,\n autoFocusOnShowProp\n ]);\n const mayAutoFocusOnHide = !!autoFocusOnHide;\n const autoFocusOnHideProp = useBooleanEvent(autoFocusOnHide);\n const [hasOpened, setHasOpened] = useState(false);\n useEffect(() => {\n if (!open) return;\n setHasOpened(true);\n return () => setHasOpened(false);\n }, [open]);\n const focusOnHide = useCallback(\n (dialog, retry = true) => {\n const { disclosureElement } = store.getState();\n if (isAlreadyFocusingAnotherElement(dialog)) return;\n let element = getElementFromProp(finalFocus) || disclosureElement;\n if (element == null ? void 0 : element.id) {\n const doc = getDocument(element);\n const selector = `[aria-activedescendant=\"${element.id}\"]`;\n const composite = doc.querySelector(selector);\n if (composite) {\n element = composite;\n }\n }\n if (element && !isFocusable(element)) {\n const maybeParentDialog = element.closest(\"[data-dialog]\");\n if (maybeParentDialog == null ? void 0 : maybeParentDialog.id) {\n const doc = getDocument(maybeParentDialog);\n const selector = `[aria-controls~=\"${maybeParentDialog.id}\"]`;\n const control = doc.querySelector(selector);\n if (control) {\n element = control;\n }\n }\n }\n const isElementFocusable = element && isFocusable(element);\n if (!isElementFocusable && retry) {\n requestAnimationFrame(() => focusOnHide(dialog, false));\n return;\n }\n if (!autoFocusOnHideProp(isElementFocusable ? element : null)) return;\n if (!isElementFocusable) return;\n element == null ? void 0 : element.focus({ preventScroll: true });\n },\n [store, finalFocus, autoFocusOnHideProp]\n );\n const focusedOnHideRef = useRef(false);\n useSafeLayoutEffect(() => {\n if (open) return;\n if (!hasOpened) return;\n if (!mayAutoFocusOnHide) return;\n const dialog = ref.current;\n focusedOnHideRef.current = true;\n focusOnHide(dialog);\n }, [open, hasOpened, domReady, mayAutoFocusOnHide, focusOnHide]);\n useEffect(() => {\n if (!hasOpened) return;\n if (!mayAutoFocusOnHide) return;\n const dialog = ref.current;\n return () => {\n if (focusedOnHideRef.current) {\n focusedOnHideRef.current = false;\n return;\n }\n focusOnHide(dialog);\n };\n }, [hasOpened, mayAutoFocusOnHide, focusOnHide]);\n const hideOnEscapeProp = useBooleanEvent(hideOnEscape);\n useEffect(() => {\n if (!domReady) return;\n if (!mounted) return;\n const onKeyDown = (event) => {\n if (event.key !== \"Escape\") return;\n if (event.defaultPrevented) return;\n const dialog = ref.current;\n if (!dialog) return;\n if (isElementMarked(dialog)) return;\n const target = event.target;\n if (!target) return;\n const { disclosureElement } = store.getState();\n const isValidTarget = () => {\n if (target.tagName === \"BODY\") return true;\n if (contains(dialog, target)) return true;\n if (!disclosureElement) return true;\n if (contains(disclosureElement, target)) return true;\n return false;\n };\n if (!isValidTarget()) return;\n if (!hideOnEscapeProp(event)) return;\n store.hide();\n };\n return addGlobalEventListener(\"keydown\", onKeyDown, true);\n }, [store, domReady, mounted, hideOnEscapeProp]);\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(HeadingLevel, { level: modal ? 1 : void 0, children: element }),\n [modal]\n );\n const hiddenProp = props.hidden;\n const alwaysVisible = props.alwaysVisible;\n props = useWrapElement(\n props,\n (element) => {\n if (!backdrop) return element;\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n DialogBackdrop,\n {\n store,\n backdrop,\n hidden: hiddenProp,\n alwaysVisible\n }\n ),\n element\n ] });\n },\n [store, backdrop, hiddenProp, alwaysVisible]\n );\n const [headingId, setHeadingId] = useState();\n const [descriptionId, setDescriptionId] = useState();\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(DialogScopedContextProvider, { value: store, children: /* @__PURE__ */ jsx(DialogHeadingContext.Provider, { value: setHeadingId, children: /* @__PURE__ */ jsx(DialogDescriptionContext.Provider, { value: setDescriptionId, children: element }) }) }),\n [store]\n );\n props = {\n id,\n \"data-dialog\": \"\",\n role: \"dialog\",\n tabIndex: focusable ? -1 : void 0,\n \"aria-labelledby\": headingId,\n \"aria-describedby\": descriptionId,\n ...props,\n ref: useMergeRefs(ref, props.ref)\n };\n props = useFocusableContainer({\n ...props,\n autoFocusOnShow: autoFocusEnabled\n });\n props = useDisclosureContent({ store, ...props });\n props = useFocusable({ ...props, focusable });\n props = usePortal({ portal, ...props, portalRef, preserveTabOrder });\n return props;\n});\nfunction createDialogComponent(Component, useProviderContext = useDialogProviderContext) {\n return forwardRef(function DialogComponent(props) {\n const context = useProviderContext();\n const store = props.store || context;\n const mounted = useStoreState(\n store,\n (state) => !props.unmountOnHide || (state == null ? void 0 : state.mounted) || !!props.open\n );\n if (!mounted) return null;\n return /* @__PURE__ */ jsx(Component, { ...props });\n });\n}\nvar Dialog = createDialogComponent(\n forwardRef(function Dialog2(props) {\n const htmlProps = useDialog(props);\n return createElement(TagName, htmlProps);\n }),\n useDialogProviderContext\n);\n\nexport {\n useDialog,\n createDialogComponent,\n Dialog\n};\n"],"names":["ctx","createStoreContext","useDisclosureProviderContext","DisclosureContextProvider","DisclosureScopedContextProvider","useDialogScopedContext","useDialogProviderContext","DialogContextProvider","DialogScopedContextProvider","DialogHeadingContext","createContext","DialogDescriptionContext","TagName","afterTimeout","timeoutMs","cb","timeoutId","afterPaint","raf","parseCSSTime","times","longestTime","currentTimeString","multiplier","currentTime","isHidden","mounted","hidden","alwaysVisible","useDisclosureContent","createHook","store","props","context","invariant","ref","useRef","id","useId","transition","setTransition","useState","open","animated","contentElement","otherElement","useStoreState","useSafeLayoutEffect","previousAnimated","animated2","stopAnimation","stopAnimationSync","flushSync","transitionDuration","animationDuration","transitionDelay","animationDelay","transitionDuration2","animationDuration2","transitionDelay2","animationDelay2","delay","duration","timeout","frameRate","maxTimeout","useWrapElement","element","jsx","styleProp","style","useMemo","useMergeRefs","removeUndefinedValues","DisclosureContentImpl","forwardRef","htmlProps","createElement","unmountOnHide","state","createDisclosureStore","mergeStore","omit","throwOnConflictingProps","syncState","defaultValue","initialState","disclosure","createStore","setup","sync","subscribe","value","open2","useDisclosureStoreProps","update","useUpdateEffect","useStoreProps","useDisclosureStore","useStore","Core.createDisclosureStore","PortalContext","useVisuallyHidden","useFocusTrap","FocusTrap","getRootElement","getDocument","getPortalElement","portalElement","getRandomId","prefix","queueFocus","usePortal","preserveTabOrder","preserveTabOrderAnchor","portalRef","portal","refProp","useContext","portalNode","setPortalNode","anchorPortalNode","setAnchorPortalNode","outerBeforeRef","innerBeforeRef","innerAfterRef","outerAfterRef","portalEl","isPortalInDocument","setRef","useEffect","onFocus","event","isFocusEventOutside","focusing","restoreFocusIn","disableFocusIn","jsxs","Fragment","getNextTabbable","getPreviousTabbable","createPortal","preserveTabOrderElement","nextTabbable","_a","HeadingContext","HeadingLevel","level","children","contextLevel","nextLevel","useFocusableContainer","autoFocusOnShow","FocusableContext","prependHiddenDismiss","container","onClick","button","usePreviousMouseDownRef","enabled","previousMouseDownRef","addGlobalEventListener","cleanups","orchestrate","key","elementCleanups","prevCleanup","cleanup","nextCleanup","setAttribute","attr","previousValue","setProperty","property","exists","assignStyle","prevStyle","setCSSProperty","ignoreTags","getSnapshotPropertyName","inSnapshot","doc","propertyName","isValidElement","ignoredElements","enabledElement","contains","walkTreeOutside","elements","callback","ancestorCallback","hasAncestorAlready","maybeAncestor","originalElement","child","createWalkTreeSnapshot","body","chain","isBackdrop","ids","backdrop","getPropertyName","ancestor","markElement","markAncestor","isElementMarked","ancestorProperty","elementProperty","markTreeOutside","el","isInDocument","target","isDisclosure","activeId","activeElement","isMouseEventOnDialog","dialog","rect","useEventOutside","type","listener","capture","domReady","callListener","useEvent","focusedRef","disclosureElement","isSafariFocusAncestor","shouldHideOnInteractOutside","hideOnInteractOutside","useHideOnInteractOutside","previousMouseDown","isVisible","NestedDialogsContext","useNestedDialogs","dialogs","setDialogs","add","useCallback","dialogs2","d","providerValue","useRootDialog","attribute","contentId","updated","retry","useForceUpdate","isRootDialog","observer","getPaddingProperty","documentElement","documentLeft","usePreventBodyScroll","win","getWindow","cssScrollbarWidth","scrollbarWidth","setScrollbarWidthProperty","paddingProperty","setStyle","setIOSStyle","_b","scrollX","scrollY","visualViewport","offsetLeft","offsetTop","restoreStyle","isIOS","isApple","isMac","isFocusTrap","supportsInert","hideElementFromAccessibilityTree","disableTree","noop","enableElements","getAllTabbableIn","element2","restoreFocusMethod","disableTreeOutside","Role","acc","DialogBackdrop","backdrop2","createDialogStore","useDialogStoreProps","useDialogStore","Core.createDialogStore","isSafariBrowser","isSafari","isAlreadyFocusingAnotherElement","getActiveElement","isFocusable","getElementFromProp","prop","focusable","useDialog","storeProp","openProp","onClose","modal","hideOnEscape","getPersistentElements","preventBodyScroll","autoFocusOnHide","initialFocus","finalFocus","unstable_treeSnapshotKey","usePortalRef","preserveTabOrderProp","wrapElement","nestedDialogs","isButton","onMouseDown","receivedFocus","options","queueBeforeEvent","focusIfNeeded","viewport","setViewportHeight","height","canTakeTreeSnapshot","getPersistentElementsProp","persistentElements","allElements","dialog2","mayAutoFocusOnShow","autoFocusOnShowProp","useBooleanEvent","autoFocusEnabled","setAutoFocusEnabled","getFirstTabbableIn","isElementFocusable","mayAutoFocusOnHide","autoFocusOnHideProp","hasOpened","setHasOpened","focusOnHide","selector","composite","maybeParentDialog","control","focusedOnHideRef","hideOnEscapeProp","hiddenProp","headingId","setHeadingId","descriptionId","setDescriptionId","useFocusable","createDialogComponent","Component","useProviderContext","Dialog"],"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,28,29,30]}
|
package/dist/button.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../src/button.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/button.js
ADDED
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import { jsxs as a, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { B as b } from "./HMKTUWOU-DlOdK4rt.js";
|
|
3
|
+
import { c as f, a as h } from "./utils-BZvHF7th.js";
|
|
4
|
+
import { forwardRef as v } from "react";
|
|
5
|
+
const g = h(
|
|
6
|
+
[
|
|
7
|
+
"inline-flex items-center justify-center gap-2",
|
|
8
|
+
"font-medium transition-all duration-200",
|
|
9
|
+
"rounded-lg",
|
|
10
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
|
|
11
|
+
"disabled:opacity-50 disabled:cursor-not-allowed",
|
|
12
|
+
"active:scale-95"
|
|
13
|
+
],
|
|
14
|
+
{
|
|
15
|
+
variants: {
|
|
16
|
+
variant: {
|
|
17
|
+
default: [
|
|
18
|
+
"bg-primary-600 text-black border border-transparent",
|
|
19
|
+
"hover:bg-primary-700",
|
|
20
|
+
"focus-visible:ring-primary-600",
|
|
21
|
+
"shadow-sm hover:shadow"
|
|
22
|
+
],
|
|
23
|
+
secondary: [
|
|
24
|
+
"bg-secondary-600 text-black border border-transparent",
|
|
25
|
+
"hover:bg-secondary-700",
|
|
26
|
+
"focus-visible:ring-secondary-600",
|
|
27
|
+
"shadow-sm hover:shadow"
|
|
28
|
+
],
|
|
29
|
+
outline: [
|
|
30
|
+
"border-2 border-primary-600 text-primary-600 dark:text-primary-400 bg-transparent",
|
|
31
|
+
"hover:bg-primary-50 dark:hover:bg-primary-950",
|
|
32
|
+
"focus-visible:ring-primary-600"
|
|
33
|
+
],
|
|
34
|
+
ghost: [
|
|
35
|
+
"text-primary-600 text-black dark:text-primary-400 bg-transparent border-transparent",
|
|
36
|
+
"hover:bg-primary-50 dark:hover:bg-primary-950",
|
|
37
|
+
"focus-visible:ring-primary-600"
|
|
38
|
+
],
|
|
39
|
+
destructive: [
|
|
40
|
+
"bg-error-600 text-black border border-transparent",
|
|
41
|
+
"hover:bg-error-700",
|
|
42
|
+
"focus-visible:ring-error-600",
|
|
43
|
+
"shadow-sm hover:shadow"
|
|
44
|
+
],
|
|
45
|
+
link: [
|
|
46
|
+
"text-primary-600 text-black dark:text-primary-400 underline-offset-4 bg-transparent border-transparent",
|
|
47
|
+
"hover:underline",
|
|
48
|
+
"focus-visible:ring-primary-600"
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
size: {
|
|
52
|
+
sm: "h-9 px-3 text-sm",
|
|
53
|
+
md: "h-10 px-4 text-base",
|
|
54
|
+
lg: "h-11 px-6 text-lg",
|
|
55
|
+
icon: "h-10 w-10 p-0"
|
|
56
|
+
},
|
|
57
|
+
fullWidth: {
|
|
58
|
+
true: "w-full",
|
|
59
|
+
false: ""
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
defaultVariants: {
|
|
63
|
+
variant: "default",
|
|
64
|
+
size: "md",
|
|
65
|
+
fullWidth: !1
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
), y = v(
|
|
69
|
+
({
|
|
70
|
+
variant: o,
|
|
71
|
+
size: r,
|
|
72
|
+
disabled: s,
|
|
73
|
+
fullWidth: l,
|
|
74
|
+
loading: e,
|
|
75
|
+
loadingIndicator: d,
|
|
76
|
+
startIcon: i,
|
|
77
|
+
endIcon: n,
|
|
78
|
+
className: u,
|
|
79
|
+
children: c,
|
|
80
|
+
...p
|
|
81
|
+
}, m) => /* @__PURE__ */ a(
|
|
82
|
+
b,
|
|
83
|
+
{
|
|
84
|
+
ref: m,
|
|
85
|
+
disabled: s || e,
|
|
86
|
+
className: f(
|
|
87
|
+
g({
|
|
88
|
+
variant: o,
|
|
89
|
+
size: r,
|
|
90
|
+
fullWidth: l,
|
|
91
|
+
className: u
|
|
92
|
+
})
|
|
93
|
+
),
|
|
94
|
+
...p,
|
|
95
|
+
children: [
|
|
96
|
+
e && (d || /* @__PURE__ */ t(B, {})),
|
|
97
|
+
!e && i && /* @__PURE__ */ t("span", { className: "shrink-0", children: i }),
|
|
98
|
+
c,
|
|
99
|
+
!e && n && /* @__PURE__ */ t("span", { className: "shrink-0", children: n })
|
|
100
|
+
]
|
|
101
|
+
}
|
|
102
|
+
)
|
|
103
|
+
);
|
|
104
|
+
y.displayName = "Button";
|
|
105
|
+
function B() {
|
|
106
|
+
return /* @__PURE__ */ a(
|
|
107
|
+
"svg",
|
|
108
|
+
{
|
|
109
|
+
className: "animate-spin h-4 w-4",
|
|
110
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
111
|
+
fill: "none",
|
|
112
|
+
viewBox: "0 0 24 24",
|
|
113
|
+
"aria-label": "Loading",
|
|
114
|
+
children: [
|
|
115
|
+
/* @__PURE__ */ t(
|
|
116
|
+
"circle",
|
|
117
|
+
{
|
|
118
|
+
className: "opacity-25",
|
|
119
|
+
cx: "12",
|
|
120
|
+
cy: "12",
|
|
121
|
+
r: "10",
|
|
122
|
+
stroke: "currentColor",
|
|
123
|
+
strokeWidth: "4"
|
|
124
|
+
}
|
|
125
|
+
),
|
|
126
|
+
/* @__PURE__ */ t(
|
|
127
|
+
"path",
|
|
128
|
+
{
|
|
129
|
+
className: "opacity-75",
|
|
130
|
+
fill: "currentColor",
|
|
131
|
+
d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
|
|
132
|
+
}
|
|
133
|
+
)
|
|
134
|
+
]
|
|
135
|
+
}
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
const N = {
|
|
139
|
+
name: "Button",
|
|
140
|
+
description: "Interactive button with multiple variants and sizes, built on Ariakit for accessibility.",
|
|
141
|
+
category: "Inputs",
|
|
142
|
+
installation: "pnpm add @component-labs/ui",
|
|
143
|
+
usage: `import { Button } from "@component-labs/ui";
|
|
144
|
+
|
|
145
|
+
<Button>Click me</Button>`,
|
|
146
|
+
props: [
|
|
147
|
+
{
|
|
148
|
+
name: "variant",
|
|
149
|
+
type: "'default' | 'secondary' | 'outline' | 'ghost' | 'destructive' | 'link'",
|
|
150
|
+
description: "Visual style variant of the button",
|
|
151
|
+
default: "'default'"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
name: "size",
|
|
155
|
+
type: "'sm' | 'md' | 'lg' | 'icon'",
|
|
156
|
+
description: "Size of the button",
|
|
157
|
+
default: "'md'"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
name: "fullWidth",
|
|
161
|
+
type: "boolean",
|
|
162
|
+
description: "Whether the button should take full width of its container",
|
|
163
|
+
default: "false"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
name: "disabled",
|
|
167
|
+
type: "boolean",
|
|
168
|
+
description: "Whether the button is disabled",
|
|
169
|
+
default: "false"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
name: "loading",
|
|
173
|
+
type: "boolean",
|
|
174
|
+
description: "Loading state - shows loading indicator and disables the button",
|
|
175
|
+
default: "false"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
name: "loadingIndicator",
|
|
179
|
+
type: "ReactNode",
|
|
180
|
+
description: "Custom loading indicator element"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
name: "startIcon",
|
|
184
|
+
type: "ReactNode",
|
|
185
|
+
description: "Icon to display before the button text"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
name: "endIcon",
|
|
189
|
+
type: "ReactNode",
|
|
190
|
+
description: "Icon to display after the button text"
|
|
191
|
+
}
|
|
192
|
+
],
|
|
193
|
+
examples: [
|
|
194
|
+
{
|
|
195
|
+
title: "Default Button",
|
|
196
|
+
code: "<Button>Click me</Button>",
|
|
197
|
+
description: "Basic button with default styling"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
title: "Button Variants",
|
|
201
|
+
code: `<div className="flex flex-wrap gap-2">
|
|
202
|
+
<Button variant="default">Default</Button>
|
|
203
|
+
<Button variant="secondary">Secondary</Button>
|
|
204
|
+
<Button variant="outline">Outline</Button>
|
|
205
|
+
<Button variant="ghost">Ghost</Button>
|
|
206
|
+
<Button variant="destructive">Destructive</Button>
|
|
207
|
+
<Button variant="link">Link</Button>
|
|
208
|
+
</div>`,
|
|
209
|
+
description: "Different visual styles for various use cases"
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
title: "Button Sizes",
|
|
213
|
+
code: `<div className="flex items-center gap-2">
|
|
214
|
+
<Button size="sm">Small</Button>
|
|
215
|
+
<Button size="md">Medium</Button>
|
|
216
|
+
<Button size="lg">Large</Button>
|
|
217
|
+
</div>`,
|
|
218
|
+
description: "Available size options"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
title: "With Icons",
|
|
222
|
+
code: `<div className="flex gap-2">
|
|
223
|
+
<Button startIcon={<Icon />}>Start Icon</Button>
|
|
224
|
+
<Button endIcon={<Icon />}>End Icon</Button>
|
|
225
|
+
<Button size="icon"><Icon /></Button>
|
|
226
|
+
</div>`,
|
|
227
|
+
description: "Buttons with icon support"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
title: "Loading State",
|
|
231
|
+
code: "<Button loading>Loading...</Button>",
|
|
232
|
+
description: "Button with loading spinner"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
title: "Full Width",
|
|
236
|
+
code: "<Button fullWidth>Full Width Button</Button>",
|
|
237
|
+
description: "Button that spans the full width of its container"
|
|
238
|
+
}
|
|
239
|
+
],
|
|
240
|
+
accessibility: [
|
|
241
|
+
"Built on Ariakit's accessible Button component",
|
|
242
|
+
"Keyboard navigation support (Enter and Space keys)",
|
|
243
|
+
"Proper ARIA attributes automatically applied",
|
|
244
|
+
"Focus visible states with ring indicator",
|
|
245
|
+
"Disabled state prevents interaction and updates ARIA"
|
|
246
|
+
]
|
|
247
|
+
};
|
|
248
|
+
export {
|
|
249
|
+
y as Button,
|
|
250
|
+
N as buttonDocs
|
|
251
|
+
};
|
|
252
|
+
//# sourceMappingURL=button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.js","sources":["../src/components/button/Button.tsx","../src/components/button/Button.docs.ts"],"sourcesContent":["import {\n Button as AccessibleButton,\n ButtonProps as AccessibleButtonProps,\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 buttonVariants = 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 \"active:scale-95\",\n ],\n {\n variants: {\n variant: {\n default: [\n \"bg-primary-600 text-black border border-transparent\",\n \"hover:bg-primary-700\",\n \"focus-visible:ring-primary-600\",\n \"shadow-sm hover:shadow\",\n ],\n secondary: [\n \"bg-secondary-600 text-black border border-transparent\",\n \"hover:bg-secondary-700\",\n \"focus-visible:ring-secondary-600\",\n \"shadow-sm hover:shadow\",\n ],\n outline: [\n \"border-2 border-primary-600 text-primary-600 dark:text-primary-400 bg-transparent\",\n \"hover:bg-primary-50 dark:hover:bg-primary-950\",\n \"focus-visible:ring-primary-600\",\n ],\n ghost: [\n \"text-primary-600 text-black dark:text-primary-400 bg-transparent border-transparent\",\n \"hover:bg-primary-50 dark:hover:bg-primary-950\",\n \"focus-visible:ring-primary-600\",\n ],\n destructive: [\n \"bg-error-600 text-black border border-transparent\",\n \"hover:bg-error-700\",\n \"focus-visible:ring-error-600\",\n \"shadow-sm hover:shadow\",\n ],\n link: [\n \"text-primary-600 text-black dark:text-primary-400 underline-offset-4 bg-transparent border-transparent\",\n \"hover:underline\",\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 icon: \"h-10 w-10 p-0\",\n },\n fullWidth: {\n true: \"w-full\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n fullWidth: false,\n },\n },\n);\n\nexport interface ButtonProps\n extends\n Omit<AccessibleButtonProps, \"disabled\">,\n VariantProps<typeof buttonVariants> {\n /** Whether the button is disabled */\n disabled?: boolean;\n /** Whether the button should take full width of its container */\n fullWidth?: boolean;\n /** Loading state - shows loading indicator and disables the button */\n loading?: boolean;\n /** Custom loading indicator element */\n loadingIndicator?: ReactNode;\n /** Icon to display before the button text */\n startIcon?: ReactNode;\n /** Icon to display after the button text */\n endIcon?: ReactNode;\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant,\n size,\n disabled,\n fullWidth,\n loading,\n loadingIndicator,\n startIcon,\n endIcon,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const isDisabled = disabled || loading;\n\n return (\n <AccessibleButton\n ref={ref}\n disabled={isDisabled}\n className={cn(\n buttonVariants({\n variant,\n size,\n fullWidth,\n className,\n }),\n )}\n {...props}\n >\n {loading && (loadingIndicator || <Spinner />)}\n {!loading && startIcon && <span className=\"shrink-0\">{startIcon}</span>}\n {children}\n {!loading && endIcon && <span className=\"shrink-0\">{endIcon}</span>}\n </AccessibleButton>\n );\n },\n);\n\nButton.displayName = \"Button\";\n\n// Default spinner component\nfunction Spinner() {\n return (\n <svg\n className=\"animate-spin h-4 w-4\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n aria-label=\"Loading\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n );\n}\n","import type { ComponentDoc } from \"../../types/docs\";\n\nexport const buttonDocs: ComponentDoc = {\n name: \"Button\",\n description: \"Interactive button with multiple variants and sizes, built on Ariakit for accessibility.\",\n category: \"Inputs\",\n installation: `pnpm add @component-labs/ui`,\n usage: `import { Button } from \"@component-labs/ui\";\n\n<Button>Click me</Button>`,\n props: [\n {\n name: \"variant\",\n type: \"'default' | 'secondary' | 'outline' | 'ghost' | 'destructive' | 'link'\",\n description: \"Visual style variant of the button\",\n default: \"'default'\",\n },\n {\n name: \"size\",\n type: \"'sm' | 'md' | 'lg' | 'icon'\",\n description: \"Size of the button\",\n default: \"'md'\",\n },\n {\n name: \"fullWidth\",\n type: \"boolean\",\n description: \"Whether the button should take full width of its container\",\n default: \"false\",\n },\n {\n name: \"disabled\",\n type: \"boolean\",\n description: \"Whether the button is disabled\",\n default: \"false\",\n },\n {\n name: \"loading\",\n type: \"boolean\",\n description: \"Loading state - shows loading indicator and disables the button\",\n default: \"false\",\n },\n {\n name: \"loadingIndicator\",\n type: \"ReactNode\",\n description: \"Custom loading indicator element\",\n },\n {\n name: \"startIcon\",\n type: \"ReactNode\",\n description: \"Icon to display before the button text\",\n },\n {\n name: \"endIcon\",\n type: \"ReactNode\",\n description: \"Icon to display after the button text\",\n },\n ],\n examples: [\n {\n title: \"Default Button\",\n code: `<Button>Click me</Button>`,\n description: \"Basic button with default styling\",\n },\n {\n title: \"Button Variants\",\n code: `<div className=\"flex flex-wrap gap-2\">\n <Button variant=\"default\">Default</Button>\n <Button variant=\"secondary\">Secondary</Button>\n <Button variant=\"outline\">Outline</Button>\n <Button variant=\"ghost\">Ghost</Button>\n <Button variant=\"destructive\">Destructive</Button>\n <Button variant=\"link\">Link</Button>\n</div>`,\n description: \"Different visual styles for various use cases\",\n },\n {\n title: \"Button Sizes\",\n code: `<div className=\"flex items-center gap-2\">\n <Button size=\"sm\">Small</Button>\n <Button size=\"md\">Medium</Button>\n <Button size=\"lg\">Large</Button>\n</div>`,\n description: \"Available size options\",\n },\n {\n title: \"With Icons\",\n code: `<div className=\"flex gap-2\">\n <Button startIcon={<Icon />}>Start Icon</Button>\n <Button endIcon={<Icon />}>End Icon</Button>\n <Button size=\"icon\"><Icon /></Button>\n</div>`,\n description: \"Buttons with icon support\",\n },\n {\n title: \"Loading State\",\n code: `<Button loading>Loading...</Button>`,\n description: \"Button with loading spinner\",\n },\n {\n title: \"Full Width\",\n code: `<Button fullWidth>Full Width Button</Button>`,\n description: \"Button that spans the full width of its container\",\n },\n ],\n accessibility: [\n \"Built on Ariakit's accessible Button component\",\n \"Keyboard navigation support (Enter and Space keys)\",\n \"Proper ARIA attributes automatically applied\",\n \"Focus visible states with ring indicator\",\n \"Disabled state prevents interaction and updates ARIA\",\n ],\n};\n"],"names":["buttonVariants","cva","Button","forwardRef","variant","size","disabled","fullWidth","loading","loadingIndicator","startIcon","endIcon","className","children","props","ref","jsxs","AccessibleButton","cn","Spinner","jsx","buttonDocs"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../src/checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC"}
|