@purpurds/toggle 7.6.0 → 7.7.0
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/LICENSE.txt +3 -3
- package/dist/toggle.cjs.js +5 -5
- package/dist/toggle.cjs.js.map +1 -1
- package/dist/toggle.d.ts +3 -57
- package/dist/toggle.d.ts.map +1 -1
- package/dist/toggle.es.js +340 -376
- package/dist/toggle.es.js.map +1 -1
- package/package.json +6 -5
- package/src/toggle.tsx +73 -81
package/dist/toggle.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle.es.js","sources":["../../icon/dist/icon.es.js","../../icon/dist/assets/checkmark-bold.es.js","../../label/dist/label.es.js","../../paragraph/dist/paragraph.es.js","../../../common/temp/node_modules/.pnpm/@radix-ui+primitive@1.1.1/node_modules/@radix-ui/primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-context@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-context/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-controllable-state@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-previous@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-previous/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-size@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-size/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-slot@1.1.2_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-slot/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-primitive@2.0.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-switch@1.1.3_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-switch/dist/index.mjs","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js","../src/DraggableX.tsx","../src/hooks/useResizeObserver.ts","../src/hooks/useToggleDrag.ts","../src/toggle.tsx"],"sourcesContent":["import { jsx as a } from \"react/jsx-runtime\";\nfunction f(r) {\n return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, \"default\") ? r.default : r;\n}\nvar c = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar p;\nfunction m() {\n return p || (p = 1, function(r) {\n (function() {\n var e = {}.hasOwnProperty;\n function s() {\n for (var t = \"\", n = 0; n < arguments.length; n++) {\n var o = arguments[n];\n o && (t = i(t, u.call(this, o)));\n }\n return t;\n }\n function u(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return this && this[t] || t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return s.apply(this, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var n = \"\";\n for (var o in t)\n e.call(t, o) && t[o] && (n = i(n, this && this[o] || o));\n return n;\n }\n function i(t, n) {\n return n ? t ? t + \" \" + n : t + n : t;\n }\n r.exports ? (s.default = s, r.exports = s) : window.classNames = s;\n })();\n }(c)), c.exports;\n}\nvar _ = m();\nconst d = /* @__PURE__ */ f(_), v = {\n \"purpur-icon\": \"_purpur-icon_8u1lq_1\",\n \"purpur-icon--xxs\": \"_purpur-icon--xxs_8u1lq_4\",\n \"purpur-icon--xs\": \"_purpur-icon--xs_8u1lq_8\",\n \"purpur-icon--sm\": \"_purpur-icon--sm_8u1lq_12\",\n \"purpur-icon--md\": \"_purpur-icon--md_8u1lq_16\",\n \"purpur-icon--lg\": \"_purpur-icon--lg_8u1lq_20\",\n \"purpur-icon--xl\": \"_purpur-icon--xl_8u1lq_24\"\n}, x = d.bind(v), l = \"purpur-icon\", w = [\"xxs\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\"], g = \"md\", h = (r) => r.filter((e) => Object.keys(e).length >= 1).map((e) => `${e.name}=\"${e.value}\"`).join(\" \"), y = ({ content: r = \"\", title: e } = {}) => {\n const s = [\n { name: \"xmlns\", value: \"http://www.w3.org/2000/svg\" },\n { name: \"fill\", value: \"currentColor\" },\n { name: \"viewBox\", value: \"0 0 24 24\" },\n e ? { name: \"role\", value: \"img\" } : { name: \"aria-hidden\", value: \"true\" }\n ], u = e ? `<title>${e}</title>` : \"\";\n return `<svg ${h(s)}>${u}${r}</svg>`;\n}, S = (r) => r.replace(/<(\\/?)svg([^>]*)>/g, \"\").trim(), b = ({\n [\"data-testid\"]: r,\n svg: e,\n allyTitle: s,\n className: u,\n size: i = g,\n ...t\n}) => {\n const n = y({\n content: S(e.svg),\n title: s\n }), o = x(u, l, `${l}--${i}`);\n return /* @__PURE__ */ a(\n \"span\",\n {\n className: o,\n \"data-testid\": r,\n dangerouslySetInnerHTML: { __html: n },\n ...t\n }\n );\n};\nb.displayName = \"Icon\";\nexport {\n g as DEFAULT_SIZE,\n b as Icon,\n w as sizes\n};\n//# sourceMappingURL=icon.es.js.map\n","const l = {\n name: \"checkmark-bold\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M21.243 4.176a2 2 0 0 1 .324 2.81l-10.45 13.176a2.092 2.092 0 0 1-3.118.18l-5.413-5.413A2 2 0 1 1 5.414 12.1l3.9 3.9 9.118-11.5a2 2 0 0 1 2.81-.324Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"checkmark-bold\"],\n category: \"utility\"\n};\nexport {\n l as checkmarkBold\n};\n//# sourceMappingURL=checkmark-bold.es.js.map\n","import { jsx as u, Fragment as g } from \"react/jsx-runtime\";\nimport * as s from \"react\";\nimport \"react-dom\";\nfunction y(e, n) {\n if (typeof e == \"function\")\n return e(n);\n e != null && (e.current = n);\n}\nfunction w(...e) {\n return (n) => {\n let t = !1;\n const l = e.map((o) => {\n const r = y(o, n);\n return !t && typeof r == \"function\" && (t = !0), r;\n });\n if (t)\n return () => {\n for (let o = 0; o < l.length; o++) {\n const r = l[o];\n typeof r == \"function\" ? r() : y(e[o], null);\n }\n };\n };\n}\nvar v = s.forwardRef((e, n) => {\n const { children: t, ...l } = e, o = s.Children.toArray(t), r = o.find(N);\n if (r) {\n const i = r.props.children, a = o.map((m) => m === r ? s.Children.count(i) > 1 ? s.Children.only(null) : s.isValidElement(i) ? i.props.children : null : m);\n return /* @__PURE__ */ u(d, { ...l, ref: n, children: s.isValidElement(i) ? s.cloneElement(i, void 0, a) : null });\n }\n return /* @__PURE__ */ u(d, { ...l, ref: n, children: t });\n});\nv.displayName = \"Slot\";\nvar d = s.forwardRef((e, n) => {\n const { children: t, ...l } = e;\n if (s.isValidElement(t)) {\n const o = S(t), r = R(l, t.props);\n return t.type !== s.Fragment && (r.ref = n ? w(n, o) : o), s.cloneElement(t, r);\n }\n return s.Children.count(t) > 1 ? s.Children.only(null) : null;\n});\nd.displayName = \"SlotClone\";\nvar C = ({ children: e }) => /* @__PURE__ */ u(g, { children: e });\nfunction N(e) {\n return s.isValidElement(e) && e.type === C;\n}\nfunction R(e, n) {\n const t = { ...n };\n for (const l in n) {\n const o = e[l], r = n[l];\n /^on[A-Z]/.test(l) ? o && r ? t[l] = (...a) => {\n r(...a), o(...a);\n } : o && (t[l] = o) : l === \"style\" ? t[l] = { ...o, ...r } : l === \"className\" && (t[l] = [o, r].filter(Boolean).join(\" \"));\n }\n return { ...e, ...t };\n}\nfunction S(e) {\n var l, o;\n let n = (l = Object.getOwnPropertyDescriptor(e.props, \"ref\")) == null ? void 0 : l.get, t = n && \"isReactWarning\" in n && n.isReactWarning;\n return t ? e.ref : (n = (o = Object.getOwnPropertyDescriptor(e, \"ref\")) == null ? void 0 : o.get, t = n && \"isReactWarning\" in n && n.isReactWarning, t ? e.props.ref : e.props.ref || e.ref);\n}\nvar E = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n], j = E.reduce((e, n) => {\n const t = s.forwardRef((l, o) => {\n const { asChild: r, ...i } = l, a = r ? v : n;\n return typeof window < \"u\" && (window[Symbol.for(\"radix-ui\")] = !0), /* @__PURE__ */ u(a, { ...i, ref: o });\n });\n return t.displayName = `Primitive.${n}`, { ...e, [n]: t };\n}, {}), P = \"Label\", h = s.forwardRef((e, n) => /* @__PURE__ */ u(\n j.label,\n {\n ...e,\n ref: n,\n onMouseDown: (t) => {\n var o;\n t.target.closest(\"button, input, select, textarea\") || ((o = e.onMouseDown) == null || o.call(e, t), !t.defaultPrevented && t.detail > 1 && t.preventDefault());\n }\n }\n));\nh.displayName = P;\nvar _ = h;\nfunction O(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar f = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar b;\nfunction x() {\n return b || (b = 1, function(e) {\n (function() {\n var n = {}.hasOwnProperty;\n function t() {\n for (var r = \"\", i = 0; i < arguments.length; i++) {\n var a = arguments[i];\n a && (r = o(r, l(a)));\n }\n return r;\n }\n function l(r) {\n if (typeof r == \"string\" || typeof r == \"number\")\n return r;\n if (typeof r != \"object\")\n return \"\";\n if (Array.isArray(r))\n return t.apply(null, r);\n if (r.toString !== Object.prototype.toString && !r.toString.toString().includes(\"[native code]\"))\n return r.toString();\n var i = \"\";\n for (var a in r)\n n.call(r, a) && r[a] && (i = o(i, a));\n return i;\n }\n function o(r, i) {\n return i ? r ? r + \" \" + i : r + i : r;\n }\n e.exports ? (t.default = t, e.exports = t) : window.classNames = t;\n })();\n }(f)), f.exports;\n}\nvar D = x();\nconst V = /* @__PURE__ */ O(D), c = {\n \"purpur-label\": \"_purpur-label_1jndl_1\",\n \"purpur-label--negative\": \"_purpur-label--negative_1jndl_8\",\n \"purpur-label--disabled\": \"_purpur-label--disabled_1jndl_11\"\n}, p = \"purpur-label\", M = ({\n children: e,\n className: n,\n disabled: t,\n negative: l = !1,\n ...o\n}) => {\n const r = V([\n n,\n c[p],\n {\n [c[`${p}--disabled`]]: t,\n [c[`${p}--negative`]]: l\n }\n ]);\n return /* @__PURE__ */ u(_, { className: r, ...o, children: e });\n};\nexport {\n M as Label\n};\n//# sourceMappingURL=label.es.js.map\n","import { jsx as _ } from \"react/jsx-runtime\";\nfunction d(p) {\n return p && p.__esModule && Object.prototype.hasOwnProperty.call(p, \"default\") ? p.default : p;\n}\nvar o = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar l;\nfunction m() {\n return l || (l = 1, function(p) {\n (function() {\n var s = {}.hasOwnProperty;\n function u() {\n for (var r = \"\", a = 0; a < arguments.length; a++) {\n var e = arguments[a];\n e && (r = h(r, i(e)));\n }\n return r;\n }\n function i(r) {\n if (typeof r == \"string\" || typeof r == \"number\")\n return r;\n if (typeof r != \"object\")\n return \"\";\n if (Array.isArray(r))\n return u.apply(null, r);\n if (r.toString !== Object.prototype.toString && !r.toString.toString().includes(\"[native code]\"))\n return r.toString();\n var a = \"\";\n for (var e in r)\n s.call(r, e) && r[e] && (a = h(a, e));\n return a;\n }\n function h(r, a) {\n return a ? r ? r + \" \" + a : r + a : r;\n }\n p.exports ? (u.default = u, p.exports = u) : window.classNames = u;\n })();\n }(o)), o.exports;\n}\nvar c = m();\nconst f = /* @__PURE__ */ d(c), t = {\n \"purpur-paragraph\": \"_purpur-paragraph_1rh57_1\",\n \"purpur-paragraph--disabled\": \"_purpur-paragraph--disabled_1rh57_7\",\n \"purpur-paragraph--hyphens\": \"_purpur-paragraph--hyphens_1rh57_10\",\n \"purpur-paragraph--negative\": \"_purpur-paragraph--negative_1rh57_13\",\n \"purpur-paragraph--paragraph-100\": \"_purpur-paragraph--paragraph-100_1rh57_16\",\n \"purpur-paragraph--paragraph-100-medium\": \"_purpur-paragraph--paragraph-100-medium_1rh57_22\",\n \"purpur-paragraph--paragraph-100-bold\": \"_purpur-paragraph--paragraph-100-bold_1rh57_29\",\n \"purpur-paragraph--paragraph-200\": \"_purpur-paragraph--paragraph-200_1rh57_36\",\n \"purpur-paragraph--preamble-100\": \"_purpur-paragraph--preamble-100_1rh57_42\",\n \"purpur-paragraph--preamble-200\": \"_purpur-paragraph--preamble-200_1rh57_48\",\n \"purpur-paragraph--additional-100\": \"_purpur-paragraph--additional-100_1rh57_54\",\n \"purpur-paragraph--additional-100-medium\": \"_purpur-paragraph--additional-100-medium_1rh57_60\",\n \"purpur-paragraph--overline-100\": \"_purpur-paragraph--overline-100_1rh57_67\",\n \"purpur-paragraph--overline-200\": \"_purpur-paragraph--overline-200_1rh57_75\"\n}, A = {\n PARAGRAPH100: \"paragraph-100\",\n PARAGRAPH100MEDIUM: \"paragraph-100-medium\",\n PARAGRAPH100BOLD: \"paragraph-100-bold\",\n PARAGRAPH200: \"paragraph-200\",\n PREAMBLE100: \"preamble-100\",\n PREAMBLE200: \"preamble-200\",\n ADDITIONAL100: \"additional-100\",\n ADDITIONAL100MEDIUM: \"additional-100-medium\",\n OVERLINE100: \"overline-100\",\n OVERLINE200: \"overline-200\"\n}, n = \"purpur-paragraph\", P = ({\n [\"data-testid\"]: p,\n children: s,\n className: u,\n disabled: i,\n enableHyphenation: h = !1,\n negative: r = !1,\n variant: a = A.PARAGRAPH100,\n ...e\n}) => {\n const g = f([\n u,\n t[n],\n t[`${n}--${a}`],\n {\n [t[`${n}--hyphens`]]: h,\n [t[`${n}--disabled`]]: i,\n [t[`${n}--negative`]]: r\n }\n ]);\n return /* @__PURE__ */ _(\"p\", { ...e, className: g, \"data-testid\": p, children: s });\n};\nP.displayName = \"Paragraph\";\nexport {\n P as Paragraph,\n A as ParagraphVariant\n};\n//# sourceMappingURL=paragraph.es.js.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/useSize.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/switch/src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProvider, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nvar Switch = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n return /* @__PURE__ */ jsxs(SwitchProvider, { scope: __scopeSwitch, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nSwitch.displayName = SWITCH_NAME;\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }\n);\nSwitchThumb.displayName = THUMB_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Switch;\nvar Thumb = SwitchThumb;\nexport {\n Root,\n Switch,\n SwitchThumb,\n Thumb,\n createSwitchScope\n};\n//# sourceMappingURL=index.mjs.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import {\n cloneElement,\n type CSSProperties,\n isValidElement,\n type ReactElement,\n useCallback,\n useEffect,\n useState,\n} from \"react\";\nimport { type SwitchThumbProps } from \"@radix-ui/react-switch\";\n\nexport type DraggableXProps = {\n children?: ReactElement<SwitchThumbProps>;\n disabled?: boolean;\n position: number;\n bounds: { left: number; right: number };\n onStart?: () => void;\n onDrag?: (args: { x: number }) => void;\n onStop?: () => void;\n style?: CSSProperties;\n};\n\nconst isTouchEvent = (e: MouseEvent | TouchEvent): e is TouchEvent => e && \"touches\" in e;\n\n/**\n * Bare minimum to make the toggle draggable.\n * It is created for usage in the toggle only but could easily be extracted and used elsewhere.\n *\n * It is called `DraggableX` since it's only for dragging along the x-axis.\n */\nexport const DraggableX = ({\n children,\n disabled,\n onStart,\n onDrag,\n onStop,\n bounds,\n position,\n style,\n}: DraggableXProps) => {\n const [dragX, setDragX] = useState<number | undefined>(undefined);\n const [dragStartX, setDragStartX] = useState<number | undefined>(undefined);\n const [isDragging, setIsDragging] = useState(false);\n\n const startDrag = (e: React.MouseEvent | React.TouchEvent) => {\n if (!disabled) {\n e.preventDefault();\n const clientX = isTouchEvent(e.nativeEvent)\n ? e.nativeEvent.touches[0].clientX\n : e.nativeEvent.clientX;\n setDragStartX(clientX);\n onStart?.();\n }\n };\n\n const onMouseMove = useCallback(\n (e: MouseEvent | TouchEvent) => {\n if (typeof dragStartX !== \"number\") {\n return;\n }\n\n const clientX = isTouchEvent(e) ? e.touches[0].clientX : e.clientX;\n const dragDelta = clientX - dragStartX;\n\n if (!dragDelta) {\n return;\n }\n\n const nextDragX = position + dragDelta;\n if (!isDragging && Math.abs(nextDragX)) {\n setIsDragging(true);\n }\n\n const nextDragXBounded = (() => {\n if (nextDragX > bounds.right) {\n return bounds.right;\n }\n\n if (nextDragX < bounds.left) {\n return bounds.left;\n }\n\n return nextDragX;\n })();\n\n setDragX(nextDragXBounded);\n onDrag?.({ x: nextDragXBounded });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onDrag, setDragX, isDragging, dragStartX]\n );\n\n const onMouseUp = useCallback(() => {\n setDragStartX(undefined);\n setDragX(undefined);\n setIsDragging(false);\n onStop?.();\n }, [onStop, setDragStartX]);\n\n useEffect(() => {\n window.addEventListener(\"mousemove\", onMouseMove);\n window.addEventListener(\"touchmove\", onMouseMove);\n\n return () => {\n window.removeEventListener(\"mousemove\", onMouseMove);\n window.removeEventListener(\"touchmove\", onMouseMove);\n };\n }, [onMouseMove]);\n\n useEffect(() => {\n window.addEventListener(\"mouseup\", onMouseUp);\n window.addEventListener(\"touchend\", onMouseUp);\n\n return () => {\n window.removeEventListener(\"mouseup\", onMouseUp);\n window.removeEventListener(\"touchend\", onMouseUp);\n };\n }, [onMouseUp]);\n\n return isValidElement(children)\n ? cloneElement<SwitchThumbProps>(children, {\n onMouseDown: startDrag,\n onTouchStart: startDrag,\n style: { ...style, transform: `translateX(${isDragging ? dragX : position}px)` },\n })\n : null;\n};\n","import type { RefObject } from \"react\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\n// This hook is a clone of useResizeObserver in b2c-sales/hooks\n\ntype Size = {\n width: number | undefined;\n height: number | undefined;\n};\n\ntype UseResizeObserverOptions<T extends HTMLElement = HTMLElement> = {\n ref: RefObject<T | null>;\n onResize?: (size: Size) => void;\n box?: \"border-box\" | \"content-box\" | \"device-pixel-content-box\";\n round?: boolean;\n};\n\nconst initialSize: Size = {\n width: undefined,\n height: undefined,\n};\n\nexport function useResizeObserver<T extends HTMLElement = HTMLElement>(\n options: UseResizeObserverOptions<T>\n): Size {\n const { ref, box = \"content-box\", round } = options;\n const [{ width, height }, setSize] = useState<Size>(initialSize);\n const isMounted = useIsMounted();\n const previousSize = useRef<Size>({ ...initialSize });\n const onResize = useRef<((size: Size) => void) | undefined>(undefined);\n onResize.current = options.onResize;\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (typeof window === \"undefined\" || !(\"ResizeObserver\" in window)) {\n return;\n }\n\n const observer = new ResizeObserver(([entry]) => {\n const boxProp =\n\n box === \"border-box\"\n ? \"borderBoxSize\"\n : box === \"device-pixel-content-box\"\n ? \"devicePixelContentBoxSize\"\n : \"contentBoxSize\";\n\n const newWidth = extractSize(entry, boxProp, \"inlineSize\");\n const newHeight = extractSize(entry, boxProp, \"blockSize\");\n\n const hasChanged =\n previousSize.current.width !== newWidth || previousSize.current.height !== newHeight;\n\n if (hasChanged) {\n const newSize: Size = {\n width: newWidth && round ? Math.round(newWidth) : newWidth,\n height: newHeight && round ? Math.round(newHeight) : newHeight,\n };\n previousSize.current.width = newWidth;\n previousSize.current.height = newHeight;\n\n if (onResize.current) {\n onResize.current(newSize);\n } else {\n if (isMounted()) {\n setSize(newSize);\n }\n }\n }\n });\n\n observer.observe(ref.current, { box });\n\n return () => {\n observer.disconnect();\n };\n }, [box, ref, isMounted, round]);\n\n return { width, height };\n}\n\ntype BoxSizesKey = keyof Pick<\n ResizeObserverEntry,\n \"borderBoxSize\" | \"contentBoxSize\" | \"devicePixelContentBoxSize\"\n>;\n\nfunction extractSize(\n entry: ResizeObserverEntry,\n box: BoxSizesKey,\n sizeType: keyof ResizeObserverSize\n): number | undefined {\n if (!entry[box]) {\n if (box === \"contentBoxSize\") {\n return entry.contentRect[sizeType === \"inlineSize\" ? \"width\" : \"height\"];\n }\n return undefined;\n }\n\n return Array.isArray(entry[box])\n ? entry[box][0][sizeType]\n : // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore Support Firefox's non-standard behavior\n (entry[box][sizeType] as number);\n}\n\nfunction useIsMounted() {\n const isMounted = useRef(false);\n\n useEffect(() => {\n isMounted.current = true;\n\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n return useCallback(() => isMounted.current, []);\n}\n","import { type RefObject, useRef, useState } from \"react\";\n\nimport { useResizeObserver } from \"./useResizeObserver\";\n\ntype UseToggleDragProps = {\n checked: boolean;\n onChange: ((checked: boolean) => void) | undefined;\n};\n\nexport const useToggleDrag = ({ checked, onChange }: UseToggleDragProps) => {\n const trackRef: RefObject<HTMLDivElement | null> = useRef(null);\n const thumbRef = useRef<HTMLSpanElement>(null);\n const [dragX, setDragX] = useState<number | undefined>(undefined);\n const [isDragging, setIsDragging] = useState(false);\n const [dragStopped, setDragStopped] = useState(0);\n\n const { height: thumbHeight = 0 } = useResizeObserver({ ref: thumbRef, round: true });\n const { height: switchHeight = 0 } = useResizeObserver({ ref: trackRef, round: true });\n\n const switchThumbHeightDelta = (switchHeight || 0) - thumbHeight;\n const maxDragRange = thumbHeight + switchThumbHeightDelta;\n const minDragRange = switchThumbHeightDelta / 2;\n const halfMaxDragRange = maxDragRange / 2;\n const isDraggedHalfway =\n typeof dragX === \"number\" && (checked ? dragX < halfMaxDragRange : dragX > halfMaxDragRange);\n\n const onDrag = ({ x }: { x: number }) => {\n setDragX(x);\n const dragDelta = Math.abs((checked ? maxDragRange : minDragRange) - x);\n\n // Add a threshold here for then accidentally dragging when clicking/touching\n dragDelta > 2 && setIsDragging(true);\n };\n\n const onStop = () => {\n setIsDragging(false);\n isDragging && setDragStopped(Date.now());\n if (isDraggedHalfway) {\n onChange?.(!checked);\n }\n };\n\n const onChangeWithDrag = () => {\n if (Date.now() - dragStopped > 50) {\n onChange?.(!checked);\n }\n setDragX(undefined);\n };\n\n return {\n trackRef,\n thumbRef,\n isDragging,\n bounds: { left: minDragRange, right: maxDragRange },\n position: checked ? maxDragRange : minDragRange,\n onDrag,\n onStop,\n onChangeWithDrag,\n };\n};\n","import React, { type ForwardedRef, forwardRef, useState } from \"react\";\nimport { Icon } from \"@purpurds/icon\";\nimport { checkmarkBold } from \"@purpurds/icon/assets/checkmark-bold\";\nimport { Label } from \"@purpurds/label\";\nimport { Paragraph } from \"@purpurds/paragraph\";\nimport * as Switch from \"@radix-ui/react-switch\";\nimport c from \"classnames\";\n\nimport { DraggableX } from \"./DraggableX\";\nimport { useToggleDrag } from \"./hooks/useToggleDrag\";\nimport styles from \"./toggle.module.scss\";\n\nexport type ToggleProps = Omit<React.HTMLAttributes<HTMLElement>, \"onChange\"> & {\n /**\n * To use when no label is given.\n * */\n [\"aria-label\"]?: string;\n /**\n * To use with custom label (not recommended).\n * */\n [\"aria-labelledby\"]?: string;\n [\"data-testid\"]?: string;\n /**\n * The controlled state of the toggle. Must be used in conjunction with `onChange`.\n * */\n checked?: boolean;\n /**\n * The state of the toggle when it is initially rendered. Use when you do not need to control its state.\n * */\n defaultChecked?: boolean;\n /**\n * When `true`, prevents the user from interacting with the toggle.\n * */\n disabled?: boolean;\n /**\n * When `true`, the toggle isn't draggable.\n * */\n disableDrag?: boolean;\n /**\n * ID of the toggle.\n * */\n id: string;\n /**\n * The label of the toggle.\n * */\n label?: string;\n /**\n * Set to decide which side of the toggle the label should be rendered.\n * */\n labelPosition?: \"left\" | \"right\";\n /**\n * The name of the toggle. Submitted with its owning form as part of a name/value pair, when wrapped in a form.\n * */\n name?: string;\n /**\n * Event handler called when the toggle is toggled.\n * */\n onChange?: (checked: boolean) => void;\n /**\n * When `true`, indicates that the user must check the toggle before the owning form can be submitted..\n * */\n required?: boolean;\n /**\n * The value given as data when wrapped with a form and submitted with a name.\n * */\n value?: string;\n};\n\nconst rootClassName = \"purpur-toggle\";\n\nconst ToggleComponent = (\n {\n [\"data-testid\"]: dataTestId,\n className,\n label,\n onChange,\n labelPosition = \"right\",\n checked,\n disableDrag,\n defaultChecked,\n ...props\n }: ToggleProps,\n ref: ForwardedRef<HTMLButtonElement>\n) => {\n const [internalChecked, setInternalChecked] = useState(\n typeof checked === \"boolean\" ? checked : !!defaultChecked\n );\n const isChecked = Boolean(typeof checked === \"boolean\" ? checked : internalChecked);\n const { thumbRef, trackRef, isDragging, onChangeWithDrag, ...draggableXProps } = useToggleDrag({\n checked: isChecked,\n onChange: (value) => {\n if (!props.disabled) {\n onChange?.(value);\n setInternalChecked(value);\n }\n },\n });\n\n const renderLabel = () => (\n <Label\n htmlFor={props.id}\n data-testid={dataTestId && `${dataTestId}-label`}\n disabled={props.disabled}\n className={c(\n styles[`${rootClassName}__label`],\n styles[`${rootClassName}__label--${labelPosition}`]\n )}\n >\n <Paragraph disabled={props.disabled}>{label}</Paragraph>\n </Label>\n );\n\n return (\n <div className={c([className, styles[`${rootClassName}__container`]])}>\n {label && labelPosition === \"left\" && renderLabel()}\n <Switch.Root\n {...props}\n ref={ref}\n id={props.id}\n data-testid={dataTestId}\n className={styles[rootClassName]}\n onCheckedChange={onChangeWithDrag}\n checked={isChecked}\n >\n <span ref={trackRef} className={styles[`${rootClassName}__track`]}>\n <span className={styles[`${rootClassName}__checkmark-container`]}>\n <Icon\n className={styles[`${rootClassName}__checkmark`]}\n svg={checkmarkBold}\n size=\"xxs\"\n />\n </span>\n <DraggableX disabled={disableDrag} {...draggableXProps}>\n <Switch.Thumb\n ref={thumbRef}\n data-testid={dataTestId && `${dataTestId}-thumb`}\n className={c([\n styles[`${rootClassName}__thumb`],\n {\n [styles[`${rootClassName}__thumb--dragging`]]: isDragging,\n },\n ])}\n />\n </DraggableX>\n </span>\n </Switch.Root>\n {label && labelPosition === \"right\" && renderLabel()}\n </div>\n );\n};\n\nexport const Toggle = forwardRef(ToggleComponent);\nToggle.displayName = \"Toggle\";\n"],"names":["f","r","c","p","m","e","s","t","n","o","i","u","_","d","v","x","l","g","h","y","S","b","a","w","N","R","C","E","j","P","O","D","V","M","A","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","setRef","ref","value","composeRefs","refs","node","hasCleanup","cleanups","cleanup","useComposedRefs","React","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","rootComponentName","defaultContext","BaseContext","index","Provider","props","scope","children","context","Context","_a","jsx","useContext2","consumerName","createScope","scopeContexts","contexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","useCallbackRef","callback","callbackRef","args","useControllableState","prop","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","useUncontrolledState","isControlled","handleChange","setValue","nextValue","value2","uncontrolledState","prevValueRef","usePrevious","useLayoutEffect2","useSize","element","size","setSize","useLayoutEffect","resizeObserver","entries","entry","width","height","borderSizeEntry","borderSize","Slot","forwardedRef","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","SlotClone","childrenRef","getElementRef","props2","mergeProps","Slottable","Fragment2","childProps","overrideProps","propName","slotPropValue","childPropValue","getter","mayWarn","_b","NODES","Primitive","primitive","Node","asChild","primitiveProps","Comp","SWITCH_NAME","createSwitchContext","createSwitchScope","SwitchProvider","useSwitchContext","Switch","__scopeSwitch","name","checkedProp","defaultChecked","required","disabled","onCheckedChange","form","switchProps","button","setButton","composedRefs","hasConsumerStoppedPropagationRef","isFormControl","checked","setChecked","jsxs","getState","prevChecked","BubbleInput","THUMB_NAME","SwitchThumb","thumbProps","control","bubbles","inputProps","controlSize","input","inputProto","Root","Thumb","hasOwn","classNames","classes","arg","appendClass","parseValue","key","newClass","module","isTouchEvent","DraggableX","onStart","onDrag","onStop","bounds","position","style","dragX","setDragX","useState","dragStartX","setDragStartX","isDragging","setIsDragging","startDrag","clientX","onMouseMove","useCallback","dragDelta","nextDragX","nextDragXBounded","onMouseUp","useEffect","isValidElement","cloneElement","initialSize","useResizeObserver","options","box","round","isMounted","useIsMounted","previousSize","useRef","onResize","observer","boxProp","newWidth","extractSize","newHeight","newSize","sizeType","useToggleDrag","trackRef","thumbRef","dragStopped","setDragStopped","thumbHeight","switchHeight","switchThumbHeightDelta","maxDragRange","minDragRange","halfMaxDragRange","isDraggedHalfway","rootClassName","ToggleComponent","dataTestId","className","label","labelPosition","disableDrag","internalChecked","setInternalChecked","isChecked","onChangeWithDrag","draggableXProps","renderLabel","Label","styles","Paragraph","Switch.Root","Icon","checkmarkBold","Switch.Thumb","Toggle","forwardRef"],"mappings":"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","x_google_ignoreList":[4,5,6,7,8,9,10,11,12,13,14,15]}
|
|
1
|
+
{"version":3,"file":"toggle.es.js","sources":["../../icon/dist/icon.es.js","../../icon/dist/assets/checkmark-bold.es.js","../../label/dist/label.es.js","../../paragraph/dist/paragraph.es.js","../../../common/temp/node_modules/.pnpm/@radix-ui+primitive@1.1.1/node_modules/@radix-ui/primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-context@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-context/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-controllable-state@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-previous@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-previous/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-size@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-size/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-slot@1.1.2_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-slot/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-primitive@2.0.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-switch@1.1.3_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-switch/dist/index.mjs","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/bind.js","../src/DraggableX.tsx","../src/hooks/useResizeObserver.ts","../src/hooks/useToggleDrag.ts","../src/toggle.tsx"],"sourcesContent":["import { jsx as a } from \"react/jsx-runtime\";\nfunction f(r) {\n return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, \"default\") ? r.default : r;\n}\nvar c = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar p;\nfunction m() {\n return p || (p = 1, function(r) {\n (function() {\n var e = {}.hasOwnProperty;\n function s() {\n for (var t = \"\", n = 0; n < arguments.length; n++) {\n var o = arguments[n];\n o && (t = i(t, u.call(this, o)));\n }\n return t;\n }\n function u(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return this && this[t] || t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return s.apply(this, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var n = \"\";\n for (var o in t)\n e.call(t, o) && t[o] && (n = i(n, this && this[o] || o));\n return n;\n }\n function i(t, n) {\n return n ? t ? t + \" \" + n : t + n : t;\n }\n r.exports ? (s.default = s, r.exports = s) : window.classNames = s;\n })();\n }(c)), c.exports;\n}\nvar _ = m();\nconst v = /* @__PURE__ */ f(_), d = {\n \"purpur-icon\": \"_purpur-icon_8u1lq_1\",\n \"purpur-icon--xxs\": \"_purpur-icon--xxs_8u1lq_4\",\n \"purpur-icon--xs\": \"_purpur-icon--xs_8u1lq_8\",\n \"purpur-icon--sm\": \"_purpur-icon--sm_8u1lq_12\",\n \"purpur-icon--md\": \"_purpur-icon--md_8u1lq_16\",\n \"purpur-icon--lg\": \"_purpur-icon--lg_8u1lq_20\",\n \"purpur-icon--xl\": \"_purpur-icon--xl_8u1lq_24\"\n}, x = v.bind(d), l = \"purpur-icon\", w = [\"xxs\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\"], g = \"md\", h = (r) => r.filter((e) => Object.keys(e).length >= 1).map((e) => `${e.name}=\"${e.value}\"`).join(\" \"), y = ({ content: r = \"\", title: e } = {}) => {\n const s = [\n { name: \"xmlns\", value: \"http://www.w3.org/2000/svg\" },\n { name: \"fill\", value: \"currentColor\" },\n { name: \"viewBox\", value: \"0 0 24 24\" },\n e ? { name: \"role\", value: \"img\" } : { name: \"aria-hidden\", value: \"true\" }\n ], u = e ? `<title>${e}</title>` : \"\";\n return `<svg ${h(s)}>${u}${r}</svg>`;\n}, S = (r) => r.replace(/<(\\/?)svg([^>]*)>/g, \"\").trim(), b = ({ svg: r, allyTitle: e, className: s, size: u = g, ...i }) => {\n const t = y({\n content: S(r.svg),\n title: e\n }), n = x(s, l, `${l}--${u}`);\n return /* @__PURE__ */ a(\"span\", { className: n, dangerouslySetInnerHTML: { __html: t }, ...i });\n};\nb.displayName = \"Icon\";\nexport {\n g as DEFAULT_SIZE,\n b as Icon,\n w as sizes\n};\n//# sourceMappingURL=icon.es.js.map\n","const l = {\n name: \"checkmark-bold\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M21.243 4.176a2 2 0 0 1 .324 2.81l-10.45 13.176a2.092 2.092 0 0 1-3.118.18l-5.413-5.413A2 2 0 1 1 5.414 12.1l3.9 3.9 9.118-11.5a2 2 0 0 1 2.81-.324Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"checkmark-bold\"],\n category: \"utility\"\n};\nexport {\n l as checkmarkBold\n};\n//# sourceMappingURL=checkmark-bold.es.js.map\n","import { jsx as u, Fragment as v } from \"react/jsx-runtime\";\nimport * as s from \"react\";\nimport \"react-dom\";\nfunction m(e, n) {\n if (typeof e == \"function\")\n return e(n);\n e != null && (e.current = n);\n}\nfunction g(...e) {\n return (n) => {\n let r = !1;\n const o = e.map((i) => {\n const t = m(i, n);\n return !r && typeof t == \"function\" && (r = !0), t;\n });\n if (r)\n return () => {\n for (let i = 0; i < o.length; i++) {\n const t = o[i];\n typeof t == \"function\" ? t() : m(e[i], null);\n }\n };\n };\n}\nvar y = s.forwardRef((e, n) => {\n const { children: r, ...o } = e, i = s.Children.toArray(r), t = i.find(N);\n if (t) {\n const l = t.props.children, a = i.map((d) => d === t ? s.Children.count(l) > 1 ? s.Children.only(null) : s.isValidElement(l) ? l.props.children : null : d);\n return /* @__PURE__ */ u(p, { ...o, ref: n, children: s.isValidElement(l) ? s.cloneElement(l, void 0, a) : null });\n }\n return /* @__PURE__ */ u(p, { ...o, ref: n, children: r });\n});\ny.displayName = \"Slot\";\nvar p = s.forwardRef((e, n) => {\n const { children: r, ...o } = e;\n if (s.isValidElement(r)) {\n const i = S(r), t = R(o, r.props);\n return r.type !== s.Fragment && (t.ref = n ? g(n, i) : i), s.cloneElement(r, t);\n }\n return s.Children.count(r) > 1 ? s.Children.only(null) : null;\n});\np.displayName = \"SlotClone\";\nvar w = ({ children: e }) => /* @__PURE__ */ u(v, { children: e });\nfunction N(e) {\n return s.isValidElement(e) && e.type === w;\n}\nfunction R(e, n) {\n const r = { ...n };\n for (const o in n) {\n const i = e[o], t = n[o];\n /^on[A-Z]/.test(o) ? i && t ? r[o] = (...a) => {\n t(...a), i(...a);\n } : i && (r[o] = i) : o === \"style\" ? r[o] = { ...i, ...t } : o === \"className\" && (r[o] = [i, t].filter(Boolean).join(\" \"));\n }\n return { ...e, ...r };\n}\nfunction S(e) {\n var o, i;\n let n = (o = Object.getOwnPropertyDescriptor(e.props, \"ref\")) == null ? void 0 : o.get, r = n && \"isReactWarning\" in n && n.isReactWarning;\n return r ? e.ref : (n = (i = Object.getOwnPropertyDescriptor(e, \"ref\")) == null ? void 0 : i.get, r = n && \"isReactWarning\" in n && n.isReactWarning, r ? e.props.ref : e.props.ref || e.ref);\n}\nvar C = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n], E = C.reduce((e, n) => {\n const r = s.forwardRef((o, i) => {\n const { asChild: t, ...l } = o, a = t ? y : n;\n return typeof window < \"u\" && (window[Symbol.for(\"radix-ui\")] = !0), /* @__PURE__ */ u(a, { ...l, ref: i });\n });\n return r.displayName = `Primitive.${n}`, { ...e, [n]: r };\n}, {}), j = \"Label\", h = s.forwardRef((e, n) => /* @__PURE__ */ u(\n E.label,\n {\n ...e,\n ref: n,\n onMouseDown: (r) => {\n var i;\n r.target.closest(\"button, input, select, textarea\") || ((i = e.onMouseDown) == null || i.call(e, r), !r.defaultPrevented && r.detail > 1 && r.preventDefault());\n }\n }\n));\nh.displayName = j;\nvar P = h;\nfunction _(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar f = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar b;\nfunction O() {\n return b || (b = 1, function(e) {\n (function() {\n var n = {}.hasOwnProperty;\n function r() {\n for (var t = \"\", l = 0; l < arguments.length; l++) {\n var a = arguments[l];\n a && (t = i(t, o.call(this, a)));\n }\n return t;\n }\n function o(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return this && this[t] || t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return r.apply(this, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var l = \"\";\n for (var a in t)\n n.call(t, a) && t[a] && (l = i(l, this && this[a] || a));\n return l;\n }\n function i(t, l) {\n return l ? t ? t + \" \" + l : t + l : t;\n }\n e.exports ? (r.default = r, e.exports = r) : window.classNames = r;\n })();\n }(f)), f.exports;\n}\nvar x = O();\nconst D = /* @__PURE__ */ _(x), V = {\n \"purpur-label\": \"_purpur-label_1jndl_1\",\n \"purpur-label--negative\": \"_purpur-label--negative_1jndl_8\",\n \"purpur-label--disabled\": \"_purpur-label--disabled_1jndl_11\"\n}, A = D.bind(V), c = \"purpur-label\", $ = ({\n children: e,\n className: n,\n disabled: r,\n negative: o = !1,\n ...i\n}) => {\n const t = A(n, c, {\n [`${c}--disabled`]: r,\n [`${c}--negative`]: o\n });\n return /* @__PURE__ */ u(P, { className: t, ...i, children: e });\n};\nexport {\n $ as Label\n};\n//# sourceMappingURL=label.es.js.map\n","import { jsx as l } from \"react/jsx-runtime\";\nfunction g(p) {\n return p && p.__esModule && Object.prototype.hasOwnProperty.call(p, \"default\") ? p.default : p;\n}\nvar o = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar s;\nfunction _() {\n return s || (s = 1, function(p) {\n (function() {\n var n = {}.hasOwnProperty;\n function u() {\n for (var r = \"\", a = 0; a < arguments.length; a++) {\n var e = arguments[a];\n e && (r = h(r, i.call(this, e)));\n }\n return r;\n }\n function i(r) {\n if (typeof r == \"string\" || typeof r == \"number\")\n return this && this[r] || r;\n if (typeof r != \"object\")\n return \"\";\n if (Array.isArray(r))\n return u.apply(this, r);\n if (r.toString !== Object.prototype.toString && !r.toString.toString().includes(\"[native code]\"))\n return r.toString();\n var a = \"\";\n for (var e in r)\n n.call(r, e) && r[e] && (a = h(a, this && this[e] || e));\n return a;\n }\n function h(r, a) {\n return a ? r ? r + \" \" + a : r + a : r;\n }\n p.exports ? (u.default = u, p.exports = u) : window.classNames = u;\n })();\n }(o)), o.exports;\n}\nvar d = _();\nconst c = /* @__PURE__ */ g(d), f = {\n \"purpur-paragraph\": \"_purpur-paragraph_1rh57_1\",\n \"purpur-paragraph--disabled\": \"_purpur-paragraph--disabled_1rh57_7\",\n \"purpur-paragraph--hyphens\": \"_purpur-paragraph--hyphens_1rh57_10\",\n \"purpur-paragraph--negative\": \"_purpur-paragraph--negative_1rh57_13\",\n \"purpur-paragraph--paragraph-100\": \"_purpur-paragraph--paragraph-100_1rh57_16\",\n \"purpur-paragraph--paragraph-100-medium\": \"_purpur-paragraph--paragraph-100-medium_1rh57_22\",\n \"purpur-paragraph--paragraph-100-bold\": \"_purpur-paragraph--paragraph-100-bold_1rh57_29\",\n \"purpur-paragraph--paragraph-200\": \"_purpur-paragraph--paragraph-200_1rh57_36\",\n \"purpur-paragraph--preamble-100\": \"_purpur-paragraph--preamble-100_1rh57_42\",\n \"purpur-paragraph--preamble-200\": \"_purpur-paragraph--preamble-200_1rh57_48\",\n \"purpur-paragraph--additional-100\": \"_purpur-paragraph--additional-100_1rh57_54\",\n \"purpur-paragraph--additional-100-medium\": \"_purpur-paragraph--additional-100-medium_1rh57_60\",\n \"purpur-paragraph--overline-100\": \"_purpur-paragraph--overline-100_1rh57_67\",\n \"purpur-paragraph--overline-200\": \"_purpur-paragraph--overline-200_1rh57_75\"\n}, m = c.bind(f), A = {\n PARAGRAPH100: \"paragraph-100\",\n PARAGRAPH100MEDIUM: \"paragraph-100-medium\",\n PARAGRAPH100BOLD: \"paragraph-100-bold\",\n PARAGRAPH200: \"paragraph-200\",\n PREAMBLE100: \"preamble-100\",\n PREAMBLE200: \"preamble-200\",\n ADDITIONAL100: \"additional-100\",\n ADDITIONAL100MEDIUM: \"additional-100-medium\",\n OVERLINE100: \"overline-100\",\n OVERLINE200: \"overline-200\"\n}, t = \"purpur-paragraph\", b = ({\n children: p,\n className: n,\n disabled: u,\n enableHyphenation: i = !1,\n negative: h = !1,\n variant: r = A.PARAGRAPH100,\n ...a\n}) => {\n const e = m(n, t, `${t}--${r}`, {\n [`${t}--hyphens`]: i,\n [`${t}--disabled`]: u,\n [`${t}--negative`]: h\n });\n return /* @__PURE__ */ l(\"p\", { ...a, className: e, children: p });\n};\nb.displayName = \"Paragraph\";\nexport {\n b as Paragraph,\n A as ParagraphVariant\n};\n//# sourceMappingURL=paragraph.es.js.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/useSize.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/switch/src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProvider, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nvar Switch = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n return /* @__PURE__ */ jsxs(SwitchProvider, { scope: __scopeSwitch, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nSwitch.displayName = SWITCH_NAME;\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }\n);\nSwitchThumb.displayName = THUMB_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Switch;\nvar Thumb = SwitchThumb;\nexport {\n Root,\n Switch,\n SwitchThumb,\n Thumb,\n createSwitchScope\n};\n//# sourceMappingURL=index.mjs.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue.call(this, arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn this && this[arg] || arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(this, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, this && this[key] || key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import {\n cloneElement,\n type CSSProperties,\n isValidElement,\n type ReactElement,\n useCallback,\n useEffect,\n useState,\n} from \"react\";\nimport { type SwitchThumbProps } from \"@radix-ui/react-switch\";\n\nexport type DraggableXProps = {\n children?: ReactElement<SwitchThumbProps>;\n disabled?: boolean;\n position: number;\n bounds: { left: number; right: number };\n onStart?: () => void;\n onDrag?: (args: { x: number }) => void;\n onStop?: () => void;\n style?: CSSProperties;\n};\n\nconst isTouchEvent = (e: MouseEvent | TouchEvent): e is TouchEvent => e && \"touches\" in e;\n\n/**\n * Bare minimum to make the toggle draggable.\n * It is created for usage in the toggle only but could easily be extracted and used elsewhere.\n *\n * It is called `DraggableX` since it's only for dragging along the x-axis.\n */\nexport const DraggableX = ({\n children,\n disabled,\n onStart,\n onDrag,\n onStop,\n bounds,\n position,\n style,\n}: DraggableXProps) => {\n const [dragX, setDragX] = useState<number | undefined>(undefined);\n const [dragStartX, setDragStartX] = useState<number | undefined>(undefined);\n const [isDragging, setIsDragging] = useState(false);\n\n const startDrag = (e: React.MouseEvent | React.TouchEvent) => {\n if (!disabled) {\n e.preventDefault();\n const clientX = isTouchEvent(e.nativeEvent)\n ? e.nativeEvent.touches[0].clientX\n : e.nativeEvent.clientX;\n setDragStartX(clientX);\n onStart?.();\n }\n };\n\n const onMouseMove = useCallback(\n (e: MouseEvent | TouchEvent) => {\n if (typeof dragStartX !== \"number\") {\n return;\n }\n\n const clientX = isTouchEvent(e) ? e.touches[0].clientX : e.clientX;\n const dragDelta = clientX - dragStartX;\n\n if (!dragDelta) {\n return;\n }\n\n const nextDragX = position + dragDelta;\n if (!isDragging && Math.abs(nextDragX)) {\n setIsDragging(true);\n }\n\n const nextDragXBounded = (() => {\n if (nextDragX > bounds.right) {\n return bounds.right;\n }\n\n if (nextDragX < bounds.left) {\n return bounds.left;\n }\n\n return nextDragX;\n })();\n\n setDragX(nextDragXBounded);\n onDrag?.({ x: nextDragXBounded });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onDrag, setDragX, isDragging, dragStartX]\n );\n\n const onMouseUp = useCallback(() => {\n setDragStartX(undefined);\n setDragX(undefined);\n setIsDragging(false);\n onStop?.();\n }, [onStop, setDragStartX]);\n\n useEffect(() => {\n window.addEventListener(\"mousemove\", onMouseMove);\n window.addEventListener(\"touchmove\", onMouseMove);\n\n return () => {\n window.removeEventListener(\"mousemove\", onMouseMove);\n window.removeEventListener(\"touchmove\", onMouseMove);\n };\n }, [onMouseMove]);\n\n useEffect(() => {\n window.addEventListener(\"mouseup\", onMouseUp);\n window.addEventListener(\"touchend\", onMouseUp);\n\n return () => {\n window.removeEventListener(\"mouseup\", onMouseUp);\n window.removeEventListener(\"touchend\", onMouseUp);\n };\n }, [onMouseUp]);\n\n return isValidElement(children)\n ? cloneElement<SwitchThumbProps>(children, {\n onMouseDown: startDrag,\n onTouchStart: startDrag,\n style: { ...style, transform: `translateX(${isDragging ? dragX : position}px)` },\n })\n : null;\n};\n","import type { RefObject } from \"react\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\n// This hook is a clone of useResizeObserver in b2c-sales/hooks\n\ntype Size = {\n width: number | undefined;\n height: number | undefined;\n};\n\ntype UseResizeObserverOptions<T extends HTMLElement = HTMLElement> = {\n ref: RefObject<T | null>;\n onResize?: (size: Size) => void;\n box?: \"border-box\" | \"content-box\" | \"device-pixel-content-box\";\n round?: boolean;\n};\n\nconst initialSize: Size = {\n width: undefined,\n height: undefined,\n};\n\nexport function useResizeObserver<T extends HTMLElement = HTMLElement>(\n options: UseResizeObserverOptions<T>\n): Size {\n const { ref, box = \"content-box\", round } = options;\n const [{ width, height }, setSize] = useState<Size>(initialSize);\n const isMounted = useIsMounted();\n const previousSize = useRef<Size>({ ...initialSize });\n const onResize = useRef<((size: Size) => void) | undefined>(undefined);\n onResize.current = options.onResize;\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (typeof window === \"undefined\" || !(\"ResizeObserver\" in window)) {\n return;\n }\n\n const observer = new ResizeObserver(([entry]) => {\n const boxProp =\n\n box === \"border-box\"\n ? \"borderBoxSize\"\n : box === \"device-pixel-content-box\"\n ? \"devicePixelContentBoxSize\"\n : \"contentBoxSize\";\n\n const newWidth = extractSize(entry, boxProp, \"inlineSize\");\n const newHeight = extractSize(entry, boxProp, \"blockSize\");\n\n const hasChanged =\n previousSize.current.width !== newWidth || previousSize.current.height !== newHeight;\n\n if (hasChanged) {\n const newSize: Size = {\n width: newWidth && round ? Math.round(newWidth) : newWidth,\n height: newHeight && round ? Math.round(newHeight) : newHeight,\n };\n previousSize.current.width = newWidth;\n previousSize.current.height = newHeight;\n\n if (onResize.current) {\n onResize.current(newSize);\n } else {\n if (isMounted()) {\n setSize(newSize);\n }\n }\n }\n });\n\n observer.observe(ref.current, { box });\n\n return () => {\n observer.disconnect();\n };\n }, [box, ref, isMounted, round]);\n\n return { width, height };\n}\n\ntype BoxSizesKey = keyof Pick<\n ResizeObserverEntry,\n \"borderBoxSize\" | \"contentBoxSize\" | \"devicePixelContentBoxSize\"\n>;\n\nfunction extractSize(\n entry: ResizeObserverEntry,\n box: BoxSizesKey,\n sizeType: keyof ResizeObserverSize\n): number | undefined {\n if (!entry[box]) {\n if (box === \"contentBoxSize\") {\n return entry.contentRect[sizeType === \"inlineSize\" ? \"width\" : \"height\"];\n }\n return undefined;\n }\n\n return Array.isArray(entry[box])\n ? entry[box][0][sizeType]\n : // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore Support Firefox's non-standard behavior\n (entry[box][sizeType] as number);\n}\n\nfunction useIsMounted() {\n const isMounted = useRef(false);\n\n useEffect(() => {\n isMounted.current = true;\n\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n return useCallback(() => isMounted.current, []);\n}\n","import { type RefObject, useRef, useState } from \"react\";\n\nimport { useResizeObserver } from \"./useResizeObserver\";\n\ntype UseToggleDragProps = {\n checked: boolean;\n onChange: ((checked: boolean) => void) | undefined;\n};\n\nexport const useToggleDrag = ({ checked, onChange }: UseToggleDragProps) => {\n const trackRef: RefObject<HTMLDivElement | null> = useRef(null);\n const thumbRef = useRef<HTMLSpanElement>(null);\n const [dragX, setDragX] = useState<number | undefined>(undefined);\n const [isDragging, setIsDragging] = useState(false);\n const [dragStopped, setDragStopped] = useState(0);\n\n const { height: thumbHeight = 0 } = useResizeObserver({ ref: thumbRef, round: true });\n const { height: switchHeight = 0 } = useResizeObserver({ ref: trackRef, round: true });\n\n const switchThumbHeightDelta = (switchHeight || 0) - thumbHeight;\n const maxDragRange = thumbHeight + switchThumbHeightDelta;\n const minDragRange = switchThumbHeightDelta / 2;\n const halfMaxDragRange = maxDragRange / 2;\n const isDraggedHalfway =\n typeof dragX === \"number\" && (checked ? dragX < halfMaxDragRange : dragX > halfMaxDragRange);\n\n const onDrag = ({ x }: { x: number }) => {\n setDragX(x);\n const dragDelta = Math.abs((checked ? maxDragRange : minDragRange) - x);\n\n // Add a threshold here for then accidentally dragging when clicking/touching\n dragDelta > 2 && setIsDragging(true);\n };\n\n const onStop = () => {\n setIsDragging(false);\n isDragging && setDragStopped(Date.now());\n if (isDraggedHalfway) {\n onChange?.(!checked);\n }\n };\n\n const onChangeWithDrag = () => {\n if (Date.now() - dragStopped > 50) {\n onChange?.(!checked);\n }\n setDragX(undefined);\n };\n\n return {\n trackRef,\n thumbRef,\n isDragging,\n bounds: { left: minDragRange, right: maxDragRange },\n position: checked ? maxDragRange : minDragRange,\n onDrag,\n onStop,\n onChangeWithDrag,\n };\n};\n","import React, { forwardRef, useState } from \"react\";\nimport type { BaseProps } from \"@purpurds/common-types\";\nimport { Icon } from \"@purpurds/icon\";\nimport { checkmarkBold } from \"@purpurds/icon/assets/checkmark-bold\";\nimport { Label } from \"@purpurds/label\";\nimport { Paragraph } from \"@purpurds/paragraph\";\nimport * as Switch from \"@radix-ui/react-switch\";\nimport c from \"classnames/bind\";\n\nimport { DraggableX } from \"./DraggableX\";\nimport { useToggleDrag } from \"./hooks/useToggleDrag\";\nimport styles from \"./toggle.module.scss\";\n\nexport type ToggleProps = Omit<BaseProps<\"button\">, \"onChange\" | \"children\" | \"id\"> & {\n /**\n * To use when no label is given.\n * */\n [\"aria-label\"]?: string;\n /**\n * To use with custom label (not recommended).\n * */\n [\"aria-labelledby\"]?: string;\n /**\n * The controlled state of the toggle. Must be used in conjunction with `onChange`.\n * */\n checked?: boolean;\n /**\n * The state of the toggle when it is initially rendered. Use when you do not need to control its state.\n * */\n defaultChecked?: boolean;\n /**\n * When `true`, prevents the user from interacting with the toggle.\n * */\n disabled?: boolean;\n /**\n * When `true`, the toggle isn't draggable.\n * */\n disableDrag?: boolean;\n /**\n * ID of the toggle.\n * */\n id: string;\n /**\n * The label of the toggle.\n * */\n label?: string;\n /**\n * Set to decide which side of the toggle the label should be rendered.\n * */\n labelPosition?: \"left\" | \"right\";\n /**\n * The name of the toggle. Submitted with its owning form as part of a name/value pair, when wrapped in a form.\n * */\n name?: string;\n /**\n * Event handler called when the toggle is toggled.\n * */\n onChange?: (checked: boolean) => void;\n /**\n * When `true`, indicates that the user must check the toggle before the owning form can be submitted..\n * */\n required?: boolean;\n /**\n * The value given as data when wrapped with a form and submitted with a name.\n * */\n value?: string;\n};\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-toggle\";\n\nexport const Toggle = forwardRef<HTMLButtonElement, ToggleProps>(\n (\n {\n [\"data-testid\"]: dataTestId,\n className,\n label,\n onChange,\n labelPosition = \"right\",\n checked,\n disableDrag,\n defaultChecked,\n ...props\n },\n ref\n ) => {\n const [internalChecked, setInternalChecked] = useState(\n typeof checked === \"boolean\" ? checked : !!defaultChecked\n );\n const isChecked = Boolean(typeof checked === \"boolean\" ? checked : internalChecked);\n const { thumbRef, trackRef, isDragging, onChangeWithDrag, ...draggableXProps } = useToggleDrag({\n checked: isChecked,\n onChange: (value) => {\n if (!props.disabled) {\n onChange?.(value);\n setInternalChecked(value);\n }\n },\n });\n\n const renderLabel = () => (\n <Label\n htmlFor={props.id}\n data-testid={dataTestId && `${dataTestId}-label`}\n disabled={props.disabled}\n className={cx(`${rootClassName}__label`, `${rootClassName}__label--${labelPosition}`)}\n >\n <Paragraph disabled={props.disabled}>{label}</Paragraph>\n </Label>\n );\n\n return (\n <div className={cx(className, `${rootClassName}__container`)}>\n {label && labelPosition === \"left\" && renderLabel()}\n <Switch.Root\n {...props}\n ref={ref}\n id={props.id}\n data-testid={dataTestId}\n className={cx(rootClassName)}\n onCheckedChange={onChangeWithDrag}\n checked={isChecked}\n >\n <span ref={trackRef} className={cx(`${rootClassName}__track`)}>\n <span className={cx(`${rootClassName}__checkmark-container`)}>\n <Icon className={cx(`${rootClassName}__checkmark`)} svg={checkmarkBold} size=\"xxs\" />\n </span>\n <DraggableX disabled={disableDrag} {...draggableXProps}>\n <Switch.Thumb\n ref={thumbRef}\n data-testid={dataTestId && `${dataTestId}-thumb`}\n className={cx(`${rootClassName}__thumb`, {\n [`${rootClassName}__thumb--dragging`]: isDragging,\n })}\n />\n </DraggableX>\n </span>\n </Switch.Root>\n {label && labelPosition === \"right\" && renderLabel()}\n </div>\n );\n }\n);\n\nToggle.displayName = \"Toggle\";\n"],"names":["f","r","c","p","m","e","s","t","n","o","i","u","_","v","d","x","l","g","h","y","S","b","a","N","R","w","C","E","j","P","O","D","V","A","$","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","setRef","ref","value","composeRefs","refs","node","hasCleanup","cleanups","cleanup","useComposedRefs","React","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","rootComponentName","defaultContext","BaseContext","index","Provider","props","scope","children","context","Context","_a","jsx","useContext2","consumerName","createScope","scopeContexts","contexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","useCallbackRef","callback","callbackRef","args","useControllableState","prop","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","useUncontrolledState","isControlled","handleChange","setValue","nextValue","value2","uncontrolledState","prevValueRef","usePrevious","useLayoutEffect2","useSize","element","size","setSize","useLayoutEffect","resizeObserver","entries","entry","width","height","borderSizeEntry","borderSize","Slot","forwardedRef","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","SlotClone","childrenRef","getElementRef","props2","mergeProps","Slottable","Fragment2","childProps","overrideProps","propName","slotPropValue","childPropValue","getter","mayWarn","_b","NODES","Primitive","primitive","Node","asChild","primitiveProps","Comp","SWITCH_NAME","createSwitchContext","createSwitchScope","SwitchProvider","useSwitchContext","Switch","__scopeSwitch","name","checkedProp","defaultChecked","required","disabled","onCheckedChange","form","switchProps","button","setButton","composedRefs","hasConsumerStoppedPropagationRef","isFormControl","checked","setChecked","jsxs","getState","prevChecked","BubbleInput","THUMB_NAME","SwitchThumb","thumbProps","control","bubbles","inputProps","controlSize","input","inputProto","Root","Thumb","hasOwn","classNames","classes","arg","appendClass","parseValue","key","newClass","module","isTouchEvent","DraggableX","onStart","onDrag","onStop","bounds","position","style","dragX","setDragX","useState","dragStartX","setDragStartX","isDragging","setIsDragging","startDrag","clientX","onMouseMove","useCallback","dragDelta","nextDragX","nextDragXBounded","onMouseUp","useEffect","isValidElement","cloneElement","initialSize","useResizeObserver","options","box","round","isMounted","useIsMounted","previousSize","useRef","onResize","observer","boxProp","newWidth","extractSize","newHeight","newSize","sizeType","useToggleDrag","trackRef","thumbRef","dragStopped","setDragStopped","thumbHeight","switchHeight","switchThumbHeightDelta","maxDragRange","minDragRange","halfMaxDragRange","isDraggedHalfway","cx","styles","rootClassName","Toggle","forwardRef","dataTestId","className","label","labelPosition","disableDrag","internalChecked","setInternalChecked","isChecked","onChangeWithDrag","draggableXProps","renderLabel","Label","Paragraph","Switch.Root","Icon","checkmarkBold","Switch.Thumb"],"mappings":"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","x_google_ignoreList":[4,5,6,7,8,9,10,11,12,13,14,15]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@purpurds/toggle",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.7.0",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"main": "./dist/toggle.cjs.js",
|
|
6
6
|
"types": "./dist/toggle.d.ts",
|
|
@@ -17,10 +17,11 @@
|
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"@radix-ui/react-switch": "~1.1.3",
|
|
19
19
|
"classnames": "~2.5.0",
|
|
20
|
-
"@purpurds/icon": "7.
|
|
21
|
-
"@purpurds/
|
|
22
|
-
"@purpurds/
|
|
23
|
-
"@purpurds/
|
|
20
|
+
"@purpurds/icon": "7.7.0",
|
|
21
|
+
"@purpurds/tokens": "7.7.0",
|
|
22
|
+
"@purpurds/common-types": "7.7.0",
|
|
23
|
+
"@purpurds/paragraph": "7.7.0",
|
|
24
|
+
"@purpurds/label": "7.7.0"
|
|
24
25
|
},
|
|
25
26
|
"devDependencies": {
|
|
26
27
|
"@storybook/preview-api": "^8.6.4",
|
package/src/toggle.tsx
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { forwardRef, useState } from "react";
|
|
2
|
+
import type { BaseProps } from "@purpurds/common-types";
|
|
2
3
|
import { Icon } from "@purpurds/icon";
|
|
3
4
|
import { checkmarkBold } from "@purpurds/icon/assets/checkmark-bold";
|
|
4
5
|
import { Label } from "@purpurds/label";
|
|
5
6
|
import { Paragraph } from "@purpurds/paragraph";
|
|
6
7
|
import * as Switch from "@radix-ui/react-switch";
|
|
7
|
-
import c from "classnames";
|
|
8
|
+
import c from "classnames/bind";
|
|
8
9
|
|
|
9
10
|
import { DraggableX } from "./DraggableX";
|
|
10
11
|
import { useToggleDrag } from "./hooks/useToggleDrag";
|
|
11
12
|
import styles from "./toggle.module.scss";
|
|
12
13
|
|
|
13
|
-
export type ToggleProps = Omit<
|
|
14
|
+
export type ToggleProps = Omit<BaseProps<"button">, "onChange" | "children" | "id"> & {
|
|
14
15
|
/**
|
|
15
16
|
* To use when no label is given.
|
|
16
17
|
* */
|
|
@@ -19,7 +20,6 @@ export type ToggleProps = Omit<React.HTMLAttributes<HTMLElement>, "onChange"> &
|
|
|
19
20
|
* To use with custom label (not recommended).
|
|
20
21
|
* */
|
|
21
22
|
["aria-labelledby"]?: string;
|
|
22
|
-
["data-testid"]?: string;
|
|
23
23
|
/**
|
|
24
24
|
* The controlled state of the toggle. Must be used in conjunction with `onChange`.
|
|
25
25
|
* */
|
|
@@ -66,88 +66,80 @@ export type ToggleProps = Omit<React.HTMLAttributes<HTMLElement>, "onChange"> &
|
|
|
66
66
|
value?: string;
|
|
67
67
|
};
|
|
68
68
|
|
|
69
|
+
const cx = c.bind(styles);
|
|
69
70
|
const rootClassName = "purpur-toggle";
|
|
70
71
|
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
ref: ForwardedRef<HTMLButtonElement>
|
|
84
|
-
) => {
|
|
85
|
-
const [internalChecked, setInternalChecked] = useState(
|
|
86
|
-
typeof checked === "boolean" ? checked : !!defaultChecked
|
|
87
|
-
);
|
|
88
|
-
const isChecked = Boolean(typeof checked === "boolean" ? checked : internalChecked);
|
|
89
|
-
const { thumbRef, trackRef, isDragging, onChangeWithDrag, ...draggableXProps } = useToggleDrag({
|
|
90
|
-
checked: isChecked,
|
|
91
|
-
onChange: (value) => {
|
|
92
|
-
if (!props.disabled) {
|
|
93
|
-
onChange?.(value);
|
|
94
|
-
setInternalChecked(value);
|
|
95
|
-
}
|
|
72
|
+
export const Toggle = forwardRef<HTMLButtonElement, ToggleProps>(
|
|
73
|
+
(
|
|
74
|
+
{
|
|
75
|
+
["data-testid"]: dataTestId,
|
|
76
|
+
className,
|
|
77
|
+
label,
|
|
78
|
+
onChange,
|
|
79
|
+
labelPosition = "right",
|
|
80
|
+
checked,
|
|
81
|
+
disableDrag,
|
|
82
|
+
defaultChecked,
|
|
83
|
+
...props
|
|
96
84
|
},
|
|
97
|
-
|
|
85
|
+
ref
|
|
86
|
+
) => {
|
|
87
|
+
const [internalChecked, setInternalChecked] = useState(
|
|
88
|
+
typeof checked === "boolean" ? checked : !!defaultChecked
|
|
89
|
+
);
|
|
90
|
+
const isChecked = Boolean(typeof checked === "boolean" ? checked : internalChecked);
|
|
91
|
+
const { thumbRef, trackRef, isDragging, onChangeWithDrag, ...draggableXProps } = useToggleDrag({
|
|
92
|
+
checked: isChecked,
|
|
93
|
+
onChange: (value) => {
|
|
94
|
+
if (!props.disabled) {
|
|
95
|
+
onChange?.(value);
|
|
96
|
+
setInternalChecked(value);
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
});
|
|
98
100
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
styles[`${rootClassName}__label`],
|
|
106
|
-
styles[`${rootClassName}__label--${labelPosition}`]
|
|
107
|
-
)}
|
|
108
|
-
>
|
|
109
|
-
<Paragraph disabled={props.disabled}>{label}</Paragraph>
|
|
110
|
-
</Label>
|
|
111
|
-
);
|
|
112
|
-
|
|
113
|
-
return (
|
|
114
|
-
<div className={c([className, styles[`${rootClassName}__container`]])}>
|
|
115
|
-
{label && labelPosition === "left" && renderLabel()}
|
|
116
|
-
<Switch.Root
|
|
117
|
-
{...props}
|
|
118
|
-
ref={ref}
|
|
119
|
-
id={props.id}
|
|
120
|
-
data-testid={dataTestId}
|
|
121
|
-
className={styles[rootClassName]}
|
|
122
|
-
onCheckedChange={onChangeWithDrag}
|
|
123
|
-
checked={isChecked}
|
|
101
|
+
const renderLabel = () => (
|
|
102
|
+
<Label
|
|
103
|
+
htmlFor={props.id}
|
|
104
|
+
data-testid={dataTestId && `${dataTestId}-label`}
|
|
105
|
+
disabled={props.disabled}
|
|
106
|
+
className={cx(`${rootClassName}__label`, `${rootClassName}__label--${labelPosition}`)}
|
|
124
107
|
>
|
|
125
|
-
<
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
108
|
+
<Paragraph disabled={props.disabled}>{label}</Paragraph>
|
|
109
|
+
</Label>
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
return (
|
|
113
|
+
<div className={cx(className, `${rootClassName}__container`)}>
|
|
114
|
+
{label && labelPosition === "left" && renderLabel()}
|
|
115
|
+
<Switch.Root
|
|
116
|
+
{...props}
|
|
117
|
+
ref={ref}
|
|
118
|
+
id={props.id}
|
|
119
|
+
data-testid={dataTestId}
|
|
120
|
+
className={cx(rootClassName)}
|
|
121
|
+
onCheckedChange={onChangeWithDrag}
|
|
122
|
+
checked={isChecked}
|
|
123
|
+
>
|
|
124
|
+
<span ref={trackRef} className={cx(`${rootClassName}__track`)}>
|
|
125
|
+
<span className={cx(`${rootClassName}__checkmark-container`)}>
|
|
126
|
+
<Icon className={cx(`${rootClassName}__checkmark`)} svg={checkmarkBold} size="xxs" />
|
|
127
|
+
</span>
|
|
128
|
+
<DraggableX disabled={disableDrag} {...draggableXProps}>
|
|
129
|
+
<Switch.Thumb
|
|
130
|
+
ref={thumbRef}
|
|
131
|
+
data-testid={dataTestId && `${dataTestId}-thumb`}
|
|
132
|
+
className={cx(`${rootClassName}__thumb`, {
|
|
133
|
+
[`${rootClassName}__thumb--dragging`]: isDragging,
|
|
134
|
+
})}
|
|
135
|
+
/>
|
|
136
|
+
</DraggableX>
|
|
132
137
|
</span>
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
{
|
|
140
|
-
[styles[`${rootClassName}__thumb--dragging`]]: isDragging,
|
|
141
|
-
},
|
|
142
|
-
])}
|
|
143
|
-
/>
|
|
144
|
-
</DraggableX>
|
|
145
|
-
</span>
|
|
146
|
-
</Switch.Root>
|
|
147
|
-
{label && labelPosition === "right" && renderLabel()}
|
|
148
|
-
</div>
|
|
149
|
-
);
|
|
150
|
-
};
|
|
138
|
+
</Switch.Root>
|
|
139
|
+
{label && labelPosition === "right" && renderLabel()}
|
|
140
|
+
</div>
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
);
|
|
151
144
|
|
|
152
|
-
export const Toggle = forwardRef(ToggleComponent);
|
|
153
145
|
Toggle.displayName = "Toggle";
|