@telegraph/combobox 0.0.3 → 0.0.5
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/CHANGELOG.md +12 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.mjs +42 -40
- package/dist/esm/index.mjs.map +1 -1
- package/dist/types/Combobox/Combobox.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../node_modules/clsx/dist/clsx.mjs","../../../button/dist/esm/index.mjs","../../../layout/dist/esm/index.mjs","../../src/Combobox/Combobox.helpers.ts","../../src/Combobox/Combobox.tsx"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { jsx as g, jsxs as V } from \"react/jsx-runtime\";\nimport { Icon as B } from \"@telegraph/icon\";\nimport * as N from \"react\";\nimport i from \"react\";\nimport m from \"clsx\";\nimport { Text as P } from \"@telegraph/typography\";\nfunction S(r, t) {\n typeof r == \"function\" ? r(t) : r != null && (r.current = t);\n}\nfunction z(...r) {\n return (t) => r.forEach((e) => S(e, t));\n}\nfunction M(...r) {\n return N.useCallback(z(...r), r);\n}\nconst y = [\"sm\", \"md\", \"lg\", \"xl\", \"2xl\"], I = (r) => {\n const t = [];\n let e = null;\n for (let o = 0; o < y.length; o++) {\n const n = y[o];\n if (r[n])\n e = r[n], t.push(e);\n else if (e !== null)\n t.push(e);\n else {\n let l = null;\n for (let a = o + 1; a < y.length; a++)\n if (r[y[a]]) {\n l = r[y[a]];\n break;\n }\n if (l !== null) {\n for (let a = 0; a <= o; a++)\n t.push(l);\n e = l;\n }\n }\n }\n return t;\n}, A = (r) => typeof r == \"object\" && (r.sm || r.md || r.lg || r.xl || r[\"2xl\"]), p = ({\n value: r,\n prop: t\n}) => {\n if (!r) return \"\";\n if (t.valueType === \"static\")\n return r.toString();\n const e = t.type === \"color\" ? \"\" : `-${t.type}`;\n return r === !0 ? `var(--tgph${e}-${t.default})` : `var(--tgph${e}-${r})`;\n}, w = {\n top: 0,\n right: 1,\n bottom: 2,\n left: 3\n}, s = {\n topLeft: 0,\n topRight: 1,\n bottomRight: 2,\n bottomLeft: 3\n}, D = ({\n cssVariables: r,\n value: t,\n prop: e,\n direction: o = \"all\"\n}) => {\n const n = r[`--tgph-${e.rule}`] || \"\", l = n ? n.split(\" \") : [], a = [\n (l == null ? void 0 : l[0]) || 0,\n (l == null ? void 0 : l[1]) || 0,\n (l == null ? void 0 : l[2]) || 0,\n (l == null ? void 0 : l[3]) || 0\n ];\n return o === \"all\" ? p({ value: t, prop: e }) : (e.ordering === \"clockwise\" ? (o === \"top\" && (a[s.topLeft] = p({\n value: t,\n prop: e\n }), a[s.topRight] = p({\n value: t,\n prop: e\n })), o === \"right\" && (a[s.topRight] = p({\n value: t,\n prop: e\n }), a[s.bottomRight] = p({\n value: t,\n prop: e\n })), o === \"bottom\" && (a[s.bottomRight] = p({\n value: t,\n prop: e\n }), a[s.bottomLeft] = p({\n value: t,\n prop: e\n })), o === \"left\" && (a[s.bottomLeft] = p({\n value: t,\n prop: e\n }), a[s.topLeft] = p({\n value: t,\n prop: e\n })), (o === \"topLeft\" || o === \"topRight\" || o === \"bottomRight\" || o === \"bottomLeft\") && (a[s[o]] = p({\n value: t,\n prop: e\n }))) : (o === \"x\" && (a[w.left] = p({\n value: t,\n prop: e\n }), a[w.right] = p({\n value: t,\n prop: e\n })), o === \"y\" && (a[w.top] = p({\n value: t,\n prop: e\n }), a[w.bottom] = p({\n value: t,\n prop: e\n })), (o === \"top\" || o === \"bottom\" || o === \"left\" || o === \"right\") && (a[w[o]] = p({\n value: t,\n prop: e\n }))), a.join(\" \"));\n}, L = ({\n prop: r,\n value: t,\n cssVariables: e\n}) => r.direction ? D({\n cssVariables: e,\n prop: r,\n value: t,\n direction: r.direction,\n type: r.type\n}) : p({ value: t, prop: r }), C = ({\n props: r,\n ref: t,\n propsMap: e\n}) => {\n if (!t.current) return;\n const o = {};\n Object.entries(r).forEach(([n, l]) => {\n const a = e[n];\n a && (typeof l == \"string\" || typeof l == \"boolean\" ? o[`--tgph-${a.rule}`] = L({\n prop: a,\n key: n,\n value: l,\n cssVariables: o\n }) : A(l) && I(l).forEach((u, d) => {\n u && (o[`--tgph-${a.rule}-${y[d]}`] = L({\n prop: a,\n key: n,\n value: u,\n cssVariables: o\n }));\n })), Object.entries(o).forEach(([u, d]) => {\n t.current && t.current.style.setProperty(u, d);\n });\n });\n}, j = {\n display: {\n rule: \"display\",\n type: \"block-display\",\n valueType: \"static\"\n },\n h: {\n rule: \"height\",\n type: \"spacing\"\n },\n w: {\n rule: \"width\",\n type: \"spacing\"\n },\n maxH: {\n rule: \"max-height\",\n type: \"spacing\"\n },\n maxW: {\n rule: \"max-width\",\n type: \"spacing\"\n },\n p: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"all\"\n },\n m: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"all\"\n },\n pt: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"top\"\n },\n pl: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"left\"\n },\n pb: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"bottom\"\n },\n pr: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"right\"\n },\n px: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"x\"\n },\n py: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"y\"\n },\n mt: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"top\"\n },\n ml: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"left\"\n },\n mb: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"bottom\"\n },\n mr: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"right\"\n },\n mx: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"x\"\n },\n my: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"y\"\n },\n bg: {\n rule: \"background-color\",\n type: \"color\"\n },\n rounded: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"all\"\n },\n roundedTopLeft: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"topLeft\",\n ordering: \"clockwise\"\n },\n roundedBottomLeft: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"bottomLeft\",\n ordering: \"clockwise\"\n },\n roundedBottomRight: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"bottomRight\",\n ordering: \"clockwise\"\n },\n roundedTopRight: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"topRight\",\n ordering: \"clockwise\"\n },\n roundedTop: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"top\",\n ordering: \"clockwise\"\n },\n roundedBottom: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"bottom\",\n ordering: \"clockwise\"\n },\n roundedLeft: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"left\",\n ordering: \"clockwise\"\n },\n roundedRight: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"right\",\n ordering: \"clockwise\"\n },\n border: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"all\",\n default: \"px\"\n },\n borderTop: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"top\",\n default: \"px\"\n },\n borderLeft: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"left\",\n default: \"px\"\n },\n borderBottom: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"bottom\",\n default: \"px\"\n },\n borderRight: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"right\",\n default: \"px\"\n },\n borderX: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"x\",\n default: \"px\"\n },\n borderY: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"y\",\n default: \"px\"\n },\n borderColor: {\n rule: \"border-color\",\n type: \"color\",\n default: \"gray-4\"\n },\n borderStyle: {\n rule: \"border-style\",\n type: \"border-style\",\n default: \"solid\"\n },\n shadow: {\n rule: \"box-shadow\",\n type: \"shadow\"\n }\n}, H = ({\n as: r,\n className: t,\n tgphRef: e,\n ...o\n}) => {\n const n = r || \"div\", l = i.useRef(null), a = M(e, l), u = i.useMemo(() => {\n const d = { borderColor: !0, ...o };\n return Object.keys(d).reduce(\n (b, h) => (Object.keys(j).some((c) => c === h) ? b.box[h] = d[h] : b.rest[h] = d[h], b),\n { box: {}, rest: {} }\n );\n }, [o]);\n return i.useLayoutEffect(() => {\n C({\n props: u.box,\n ref: l,\n propsMap: j\n });\n }, [u.box]), /* @__PURE__ */ g(\n n,\n {\n className: m(\"tgph-box\", t),\n ref: a,\n ...u.rest\n }\n );\n}, T = {\n display: {\n rule: \"display\",\n type: \"flex-display\",\n valueType: \"static\"\n },\n direction: {\n rule: \"flex-direction\",\n type: \"flex-direction\",\n valueType: \"static\"\n },\n align: {\n rule: \"align-items\",\n type: \"align-items\",\n valueType: \"static\"\n },\n justify: {\n rule: \"justify-content\",\n type: \"justify-content\",\n valueType: \"static\"\n },\n wrap: {\n rule: \"flex-wrap\",\n type: \"flex-wrap\",\n valueType: \"static\"\n },\n gap: {\n rule: \"gap\",\n type: \"spacing\",\n valueType: \"variable\"\n }\n}, W = ({\n className: r,\n tgphRef: t,\n ...e\n}) => {\n const o = i.useRef(null), n = M(t, o), l = i.useMemo(\n () => Object.keys(e).reduce(\n (a, u) => (Object.keys(T).some((d) => d === u) ? a.stack[u] = e[u] : a.rest[u] = e[u], a),\n { stack: {}, rest: {} }\n ),\n [e]\n );\n return i.useLayoutEffect(() => {\n C({\n props: l.stack,\n ref: o,\n propsMap: T\n });\n }, [l.stack, n]), /* @__PURE__ */ g(\n H,\n {\n className: m(\"tgph-stack\", r),\n tgphRef: n,\n ...l.rest\n }\n );\n}, X = {\n solid: {\n gray: \"bg-gray-9 hover:bg-gray-10 focus:bg-gray-11 data-[tgph-button-active=true]:!bg-gray-11\",\n red: \"bg-red-9 hover:bg-red-10 focus:bg-red-11 data-[tgph-button-active=true]:!bg-red-11\",\n accent: \"bg-accent-9 hover:bg-accent-10 focus:bg-accent-11 data-[tgph-button-active=true]:!bg-accent-11\",\n green: \"bg-green-9 hover:bg-green-10 focus:bg-green-11 data-[tgph-button-active=true]:!bg-green-11\",\n blue: \"bg-blue-9 hover:bg-blue-10 focus:bg-blue-11 data-[tgph-button-active=true]:!bg-blue-11\",\n yellow: \"bg-yellow-9 hover:bg-yellow-10 focus:bg-yellow-11 data-[tgph-button-active=true]:!bg-yellow-11\",\n purple: \"bg-purple-9 hover:bg-purple-10 focus:bg-purple-11 data-[tgph-button-active=true]:!bg-purple-11\",\n disabled: \"bg-gray-2\"\n },\n soft: {\n gray: \"bg-gray-3 hover:bg-gray-4 focus:bg-gray-5 data-[tgph-button-active=true]:!bg-gray-5\",\n red: \"bg-red-3 hover:bg-red-4 focus:bg-red-5 data-[tgph-button-active=true]:!bg-red-5\",\n accent: \"bg-accent-3 hover:bg-accent-4 focus:bg-accent-6 data-[tgph-button-active=true]:!bg-accent-6\",\n green: \"bg-green-3 hover:bg-green-4 focus:bg-green-5 data-[tgph-button-active=true]:!bg-green-5\",\n blue: \"bg-blue-3 hover:bg-blue-4 focus:bg-blue-5 data-[tgph-button-active=true]:!bg-blue-5\",\n yellow: \"bg-yellow-3 hover:bg-yellow-4 focus:bg-yellow-5 data-[tgph-button-active=true]:!bg-yellow-5\",\n purple: \"bg-purple-3 hover:bg-purple-4 focus:bg-purple-5 data-[tgph-button-active=true]:!bg-purple-5\",\n disabled: \"bg-gray-2\"\n },\n outline: {\n gray: \"bg-surface-1 shadow-[inset_0_0_0_1px] shadow-gray-6 hover:shadow-gray-7 focus:shadow-gray-8 data-[tgph-button-active=true]:!shadow-gray-8\",\n red: \"bg-surface-1 shadow-[inset_0_0_0_1px] shadow-red-6 hover:shadow-red-7 focus:shadow-red-8 data-[tgph-button-active=true]:!shadow-red-8\",\n accent: \"bg-surface-1 shadow-[inset_0_0_0_1px] shadow-accent-6 hover:shadow-accent-7 focus:shadow-accent-8 data-[tgph-button-active=true]:!shadow-accent-8\",\n green: \"bg-surface-1 shadow-[inset_0_0_0_1px] shadow-green-6 hover:shadow-green-7 focus:shadow-green-8 data-[tgph-button-active=true]:!shadow-green-8\",\n blue: \"bg-surface-1 shadow-[inset_0_0_0_1px] shadow-blue-6 hover:shadow-blue-7 focus:shadow-blue-8 data-[tgph-button-active=true]:!shadow-blue-8\",\n yellow: \"bg-surface-1 shadow-[inset_0_0_0_1px] shadow-yellow-6 hover:shadow-yellow-7 focus:shadow-yellow-8 data-[tgph-button-active=true]:!shadow-yellow-8\",\n purple: \"bg-surface-1 shadow-[inset_0_0_0_1px] shadow-purple-6 hover:shadow-purple-7 focus:shadow-purple-8 data-[tgph-button-active=true]:!shadow-purple-8\",\n disabled: \"bg-gray-2\"\n },\n ghost: {\n gray: \"bg-transparent hover:bg-gray-3 focus:bg-gray-4 data-[tgph-button-active=true]:!bg-gray-4 [&data-[tgph-button-active=true]>span]:!text-gray-12\",\n red: \"bg-transparent hover:bg-red-3 focus:bg-red-4 data-[tgph-button-active=true]:!bg-red-4\",\n accent: \"bg-transparent hover:bg-accent-3 focus:bg-accent-4 data-[tgph-button-active=true]:!bg-accent-4\",\n green: \"bg-transparent hover:bg-green-3 focus:bg-green-4 data-[tgph-button-active=true]:!bg-green-4\",\n blue: \"bg-transparent hover:bg-blue-3 focus:bg-blue-4 data-[tgph-button-active=true]:!bg-blue-4\",\n yellow: \"bg-transparent hover:bg-yellow-3 focus:bg-yellow-4 data-[tgph-button-active=true]:!bg-yellow-4\",\n purple: \"bg-transparent hover:bg-purple-3 focus:bg-purple-4 data-[tgph-button-active=true]:!bg-purple-4\",\n disabled: \"bg-transparent\"\n }\n}, v = {\n default: {\n 1: {\n w: \"auto\",\n h: \"6\",\n gap: \"1\",\n px: \"2\"\n },\n 2: {\n w: \"auto\",\n h: \"8\",\n gap: \"2\",\n px: \"3\"\n },\n 3: {\n w: \"auto\",\n h: \"10\",\n gap: \"3\",\n px: \"4\"\n }\n },\n \"icon-only\": {\n 1: {\n w: \"6\",\n h: \"6\",\n gap: \"0\",\n px: \"0\"\n },\n 2: {\n w: \"8\",\n h: \"8\",\n gap: \"0\",\n px: \"0\"\n },\n 3: {\n w: \"10\",\n h: \"10\",\n gap: \"0\",\n px: \"0\"\n }\n }\n}, Y = {\n 1: \"1\",\n 2: \"2\",\n 3: \"3\"\n}, q = {\n solid: {\n gray: \"white\",\n red: \"white\",\n accent: \"white\",\n green: \"white\",\n blue: \"white\",\n yellow: \"white\",\n purple: \"white\",\n disabled: \"disabled\"\n },\n soft: {\n gray: \"default\",\n red: \"red\",\n accent: \"accent\",\n green: \"green\",\n blue: \"blue\",\n yellow: \"yellow\",\n purple: \"purple\",\n disabled: \"disabled\"\n },\n outline: {\n gray: \"default\",\n red: \"red\",\n accent: \"accent\",\n green: \"green\",\n blue: \"blue\",\n yellow: \"yellow\",\n purple: \"purple\",\n disabled: \"disabled\"\n },\n ghost: {\n gray: \"gray\",\n red: \"red\",\n accent: \"accent\",\n green: \"green\",\n blue: \"blue\",\n yellow: \"yellow\",\n purple: \"purple\",\n disabled: \"disabled\"\n }\n}, F = {\n 1: \"1\",\n 2: \"2\",\n 3: \"3\"\n}, G = {\n solid: {\n gray: \"white\",\n red: \"white\",\n accent: \"white\",\n green: \"white\",\n blue: \"white\",\n yellow: \"white\",\n purple: \"white\",\n disabled: \"disabled\"\n },\n soft: {\n accent: \"accent\",\n gray: \"gray\",\n red: \"red\",\n green: \"green\",\n blue: \"blue\",\n yellow: \"yellow\",\n purple: \"purple\",\n disabled: \"disabled\"\n },\n outline: {\n accent: \"accent\",\n gray: \"gray\",\n red: \"red\",\n green: \"green\",\n blue: \"blue\",\n yellow: \"yellow\",\n purple: \"purple\",\n disabled: \"disabled\"\n },\n ghost: {\n accent: \"accent\",\n gray: \"default\",\n red: \"red\",\n green: \"green\",\n blue: \"blue\",\n yellow: \"yellow\",\n purple: \"purple\",\n disabled: \"disabled\"\n }\n}, J = {\n default: \"secondary\",\n \"icon-only\": \"primary\"\n}, k = i.createContext({\n variant: \"solid\",\n size: \"2\",\n color: \"gray\",\n state: \"default\",\n layout: \"default\",\n active: !1\n}), $ = ({\n as: r,\n variant: t = \"solid\",\n size: e = \"2\",\n color: o = \"gray\",\n state: n = \"default\",\n active: l = !1,\n disabled: a,\n className: u,\n ...d\n}) => {\n const b = a ? \"disabled\" : n, h = b === \"disabled\" ? \"disabled\" : o, c = i.useMemo(() => {\n var R;\n const f = i.Children.toArray(d == null ? void 0 : d.children);\n if ((f == null ? void 0 : f.length) === 1 && i.isValidElement(f[0])) {\n const x = f[0];\n if ((R = x == null ? void 0 : x.props) != null && R.icon)\n return \"icon-only\";\n }\n return \"default\";\n }, [d == null ? void 0 : d.children]);\n return /* @__PURE__ */ g(\n k.Provider,\n {\n value: { variant: t, size: e, color: h, state: b, layout: c, active: l },\n children: /* @__PURE__ */ g(\n W,\n {\n as: r || \"button\",\n className: m(\n \"appearance-none border-0 cursor-pointer bg-none box-border [font-family:inherit]\",\n \"transition-colors no-underline\",\n b === \"disabled\" && \"cursor-not-allowed\",\n X[t][h],\n v[c][e],\n u\n ),\n h: v[c][e].h,\n w: v[c][e].w,\n gap: v[c][e].gap,\n px: v[c][e].px,\n display: \"inline-flex\",\n align: \"center\",\n justify: \"center\",\n rounded: \"3\",\n \"data-tgph-button\": !0,\n \"data-tgph-button-layout\": c,\n \"data-tgph-button-active\": l,\n disabled: a,\n ...d\n }\n )\n }\n );\n}, _ = ({\n size: r,\n color: t,\n variant: e,\n icon: o,\n alt: n,\n \"aria-hidden\": l,\n ...a\n}) => {\n const u = i.useContext(k), d = {\n size: r ?? F[u.size],\n color: t ?? G[u.variant][u.color],\n variant: e ?? J[u.layout]\n };\n return /* @__PURE__ */ g(\n B,\n {\n icon: o,\n \"data-button-icon\": !0,\n ...n ? { alt: n } : { \"aria-hidden\": l },\n ...d,\n ...a\n }\n );\n}, E = ({\n as: r,\n color: t,\n size: e,\n weight: o = \"medium\",\n className: n,\n ...l\n}) => {\n const a = i.useContext(k);\n return /* @__PURE__ */ g(\n P,\n {\n as: r || \"span\",\n color: t ?? q[a.variant][a.color],\n size: e ?? Y[a.size],\n weight: o,\n className: m(\"no-underline whitespace-nowrap\", n),\n internal_optionalAs: !0,\n \"data-button-text\": !0,\n ...l\n }\n );\n}, O = ({\n leadingIcon: r,\n trailingIcon: t,\n icon: e,\n children: o,\n ...n\n}) => {\n const l = r || e;\n return /* @__PURE__ */ V($, { ...n, children: [\n l && /* @__PURE__ */ g(_, { ...l }),\n o && /* @__PURE__ */ g(E, { children: o }),\n t && /* @__PURE__ */ g(_, { ...t })\n ] });\n};\nObject.assign(O, {\n Root: $,\n Icon: _,\n Text: E\n});\nconst te = O;\nexport {\n te as Button\n};\n//# sourceMappingURL=index.mjs.map\n","import { jsx as x } from \"react/jsx-runtime\";\nimport { useComposedRefs as R } from \"@telegraph/compose-refs\";\nimport w from \"clsx\";\nimport u from \"react\";\nconst a = [\"sm\", \"md\", \"lg\", \"xl\", \"2xl\"], j = (i) => {\n const e = [];\n let t = null;\n for (let r = 0; r < a.length; r++) {\n const n = a[r];\n if (i[n])\n t = i[n], e.push(t);\n else if (t !== null)\n e.push(t);\n else {\n let s = null;\n for (let o = r + 1; o < a.length; o++)\n if (i[a[o]]) {\n s = i[a[o]];\n break;\n }\n if (s !== null) {\n for (let o = 0; o <= r; o++)\n e.push(s);\n t = s;\n }\n }\n }\n return e;\n}, k = (i) => typeof i == \"object\" && (i.sm || i.md || i.lg || i.xl || i[\"2xl\"]), d = ({\n value: i,\n prop: e\n}) => {\n if (!i) return \"\";\n if (e.valueType === \"static\")\n return i.toString();\n const t = e.type === \"color\" ? \"\" : `-${e.type}`;\n return i === !0 ? `var(--tgph${t}-${e.default})` : `var(--tgph${t}-${i})`;\n}, b = {\n top: 0,\n right: 1,\n bottom: 2,\n left: 3\n}, p = {\n topLeft: 0,\n topRight: 1,\n bottomRight: 2,\n bottomLeft: 3\n}, O = ({\n cssVariables: i,\n value: e,\n prop: t,\n direction: r = \"all\"\n}) => {\n const n = i[`--tgph-${t.rule}`] || \"\", s = n ? n.split(\" \") : [], o = [\n (s == null ? void 0 : s[0]) || 0,\n (s == null ? void 0 : s[1]) || 0,\n (s == null ? void 0 : s[2]) || 0,\n (s == null ? void 0 : s[3]) || 0\n ];\n return r === \"all\" ? d({ value: e, prop: t }) : (t.ordering === \"clockwise\" ? (r === \"top\" && (o[p.topLeft] = d({\n value: e,\n prop: t\n }), o[p.topRight] = d({\n value: e,\n prop: t\n })), r === \"right\" && (o[p.topRight] = d({\n value: e,\n prop: t\n }), o[p.bottomRight] = d({\n value: e,\n prop: t\n })), r === \"bottom\" && (o[p.bottomRight] = d({\n value: e,\n prop: t\n }), o[p.bottomLeft] = d({\n value: e,\n prop: t\n })), r === \"left\" && (o[p.bottomLeft] = d({\n value: e,\n prop: t\n }), o[p.topLeft] = d({\n value: e,\n prop: t\n })), (r === \"topLeft\" || r === \"topRight\" || r === \"bottomRight\" || r === \"bottomLeft\") && (o[p[r]] = d({\n value: e,\n prop: t\n }))) : (r === \"x\" && (o[b.left] = d({\n value: e,\n prop: t\n }), o[b.right] = d({\n value: e,\n prop: t\n })), r === \"y\" && (o[b.top] = d({\n value: e,\n prop: t\n }), o[b.bottom] = d({\n value: e,\n prop: t\n })), (r === \"top\" || r === \"bottom\" || r === \"left\" || r === \"right\") && (o[b[r]] = d({\n value: e,\n prop: t\n }))), o.join(\" \"));\n}, y = ({\n prop: i,\n value: e,\n cssVariables: t\n}) => i.direction ? O({\n cssVariables: t,\n prop: i,\n value: e,\n direction: i.direction,\n type: i.type\n}) : d({ value: e, prop: i }), L = ({\n props: i,\n ref: e,\n propsMap: t\n}) => {\n if (!e.current) return;\n const r = {};\n Object.entries(i).forEach(([n, s]) => {\n const o = t[n];\n o && (typeof s == \"string\" || typeof s == \"boolean\" ? r[`--tgph-${o.rule}`] = y({\n prop: o,\n key: n,\n value: s,\n cssVariables: r\n }) : k(s) && j(s).forEach((c, f) => {\n c && (r[`--tgph-${o.rule}-${a[f]}`] = y({\n prop: o,\n key: n,\n value: c,\n cssVariables: r\n }));\n })), Object.entries(r).forEach(([l, c]) => {\n e.current && e.current.style.setProperty(l, c);\n });\n });\n}, m = {\n display: {\n rule: \"display\",\n type: \"block-display\",\n valueType: \"static\"\n },\n h: {\n rule: \"height\",\n type: \"spacing\"\n },\n w: {\n rule: \"width\",\n type: \"spacing\"\n },\n maxH: {\n rule: \"max-height\",\n type: \"spacing\"\n },\n maxW: {\n rule: \"max-width\",\n type: \"spacing\"\n },\n p: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"all\"\n },\n m: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"all\"\n },\n pt: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"top\"\n },\n pl: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"left\"\n },\n pb: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"bottom\"\n },\n pr: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"right\"\n },\n px: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"x\"\n },\n py: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"y\"\n },\n mt: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"top\"\n },\n ml: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"left\"\n },\n mb: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"bottom\"\n },\n mr: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"right\"\n },\n mx: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"x\"\n },\n my: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"y\"\n },\n bg: {\n rule: \"background-color\",\n type: \"color\"\n },\n rounded: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"all\"\n },\n roundedTopLeft: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"topLeft\",\n ordering: \"clockwise\"\n },\n roundedBottomLeft: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"bottomLeft\",\n ordering: \"clockwise\"\n },\n roundedBottomRight: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"bottomRight\",\n ordering: \"clockwise\"\n },\n roundedTopRight: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"topRight\",\n ordering: \"clockwise\"\n },\n roundedTop: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"top\",\n ordering: \"clockwise\"\n },\n roundedBottom: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"bottom\",\n ordering: \"clockwise\"\n },\n roundedLeft: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"left\",\n ordering: \"clockwise\"\n },\n roundedRight: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"right\",\n ordering: \"clockwise\"\n },\n border: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"all\",\n default: \"px\"\n },\n borderTop: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"top\",\n default: \"px\"\n },\n borderLeft: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"left\",\n default: \"px\"\n },\n borderBottom: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"bottom\",\n default: \"px\"\n },\n borderRight: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"right\",\n default: \"px\"\n },\n borderX: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"x\",\n default: \"px\"\n },\n borderY: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"y\",\n default: \"px\"\n },\n borderColor: {\n rule: \"border-color\",\n type: \"color\",\n default: \"gray-4\"\n },\n borderStyle: {\n rule: \"border-style\",\n type: \"border-style\",\n default: \"solid\"\n },\n shadow: {\n rule: \"box-shadow\",\n type: \"shadow\"\n }\n}, C = ({\n as: i,\n className: e,\n tgphRef: t,\n ...r\n}) => {\n const n = i || \"div\", s = u.useRef(null), o = R(t, s), l = u.useMemo(() => {\n const c = { borderColor: !0, ...r };\n return Object.keys(c).reduce(\n (f, g) => (Object.keys(m).some((T) => T === g) ? f.box[g] = c[g] : f.rest[g] = c[g], f),\n { box: {}, rest: {} }\n );\n }, [r]);\n return u.useLayoutEffect(() => {\n L({\n props: l.box,\n ref: s,\n propsMap: m\n });\n }, [l.box]), /* @__PURE__ */ x(\n n,\n {\n className: w(\"tgph-box\", e),\n ref: o,\n ...l.rest\n }\n );\n}, h = {\n display: {\n rule: \"display\",\n type: \"flex-display\",\n valueType: \"static\"\n },\n direction: {\n rule: \"flex-direction\",\n type: \"flex-direction\",\n valueType: \"static\"\n },\n align: {\n rule: \"align-items\",\n type: \"align-items\",\n valueType: \"static\"\n },\n justify: {\n rule: \"justify-content\",\n type: \"justify-content\",\n valueType: \"static\"\n },\n wrap: {\n rule: \"flex-wrap\",\n type: \"flex-wrap\",\n valueType: \"static\"\n },\n gap: {\n rule: \"gap\",\n type: \"spacing\",\n valueType: \"variable\"\n }\n}, E = ({\n className: i,\n tgphRef: e,\n ...t\n}) => {\n const r = u.useRef(null), n = R(e, r), s = u.useMemo(\n () => Object.keys(t).reduce(\n (o, l) => (Object.keys(h).some((c) => c === l) ? o.stack[l] = t[l] : o.rest[l] = t[l], o),\n { stack: {}, rest: {} }\n ),\n [t]\n );\n return u.useLayoutEffect(() => {\n L({\n props: s.stack,\n ref: r,\n propsMap: h\n });\n }, [s.stack, n]), /* @__PURE__ */ x(\n C,\n {\n className: w(\"tgph-stack\", i),\n tgphRef: n,\n ...s.rest\n }\n );\n};\nexport {\n C as Box,\n E as Stack\n};\n//# sourceMappingURL=index.mjs.map\n","export type Option = { value: string; label?: string };\nexport const isMultiSelect = (\n value: Option | Array<Option>,\n): value is Array<Option> => {\n return Array.isArray(value);\n};\n\nexport const isSingleSelect = (\n value: Option | Array<Option>,\n): value is Option => {\n return typeof value === \"object\" && !Array.isArray(value);\n};\n","import { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHidden from \"@radix-ui/react-visually-hidden\";\nimport { Button as TelegraphButton } from \"@telegraph/button\";\nimport { useComposedRefs } from \"@telegraph/compose-refs\";\nimport {\n RefToTgphRef,\n type TgphComponentProps,\n type TgphElement,\n} from \"@telegraph/helpers\";\nimport { Icon, Lucide } from \"@telegraph/icon\";\nimport { Input as TelegraphInput } from \"@telegraph/input\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport { Menu as TelegraphMenu } from \"@telegraph/menu\";\nimport { Tag } from \"@telegraph/tag\";\nimport { Text } from \"@telegraph/typography\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport React from \"react\";\n\nimport { type Option, isMultiSelect, isSingleSelect } from \"./Combobox.helpers\";\n\nconst FIRST_KEYS = [\"ArrowDown\", \"PageUp\", \"Home\"];\nconst LAST_KEYS = [\"ArrowUp\", \"PageDown\", \"End\"];\nconst SELECT_KEYS = [\"Enter\", \" \"];\n\ntype RootProps = (\n | {\n value?: Array<Option>;\n onValueChange?: (value: Array<Option>) => void;\n layout?: \"truncate\" | \"wrap\";\n }\n | {\n value?: Option;\n onValueChange?: (value: Option) => void;\n layout?: never;\n }\n) & {\n open?: boolean;\n defaultOpen?: boolean;\n errored?: boolean;\n placeholder?: string;\n onOpenChange?: (open: boolean) => void;\n modal?: boolean;\n closeOnSelect?: boolean;\n children?: React.ReactNode;\n};\n\nconst ComboboxContext = React.createContext<\n Omit<RootProps, \"children\"> & {\n contentId: string;\n triggerId: string;\n open: boolean;\n setOpen: (open: boolean) => void;\n onOpenToggle: () => void;\n searchQuery?: string;\n setSearchQuery?: (query: string) => void;\n triggerRef?: React.RefObject<HTMLDivElement>;\n searchRef?: React.RefObject<HTMLInputElement>;\n contentRef?: React.RefObject<HTMLDivElement>;\n }\n>({\n onValueChange: () => {},\n contentId: \"\",\n triggerId: \"\",\n open: false,\n setOpen: () => {},\n onOpenToggle: () => {},\n});\n\nconst Root = ({\n modal = true,\n closeOnSelect = true,\n open: openProp,\n onOpenChange: onOpenChangeProp,\n defaultOpen: defaultOpenProp,\n value,\n onValueChange,\n errored,\n placeholder,\n layout,\n ...props\n}: RootProps) => {\n const contentId = React.useId();\n const triggerId = React.useId();\n const triggerRef = React.useRef(null);\n const searchRef = React.useRef(null);\n const contentRef = React.useRef<HTMLDivElement>(null);\n\n const [searchQuery, setSearchQuery] = React.useState<string>(\"\");\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpenProp,\n onChange: onOpenChangeProp,\n });\n\n const onOpenToggle = React.useCallback(() => {\n setOpen((prevOpen) => !prevOpen);\n }, [setOpen]);\n\n React.useEffect(() => {\n // If the combobox is closed clear\n // the search query\n if (!open) {\n setSearchQuery(\"\");\n }\n }, [open]);\n\n return (\n <ComboboxContext.Provider\n value={{\n contentId,\n triggerId,\n value,\n onValueChange,\n placeholder,\n open,\n setOpen,\n onOpenToggle,\n closeOnSelect,\n searchQuery,\n setSearchQuery,\n triggerRef,\n searchRef,\n contentRef,\n errored,\n layout,\n }}\n >\n <TelegraphMenu.Root\n open={open}\n onOpenChange={setOpen}\n modal={modal}\n {...props}\n />\n </ComboboxContext.Provider>\n );\n};\n\ntype TriggerTagProps = {\n value: string;\n label?: string;\n};\n\nconst TriggerTag = ({ label, value, ...props }: TriggerTagProps) => {\n const context = React.useContext(ComboboxContext);\n\n return (\n <Tag.Root\n size=\"1\"\n as={motion.span}\n initial={{ opacity: 0, transform: \"scale(0.8)\" }}\n animate={{ opacity: 1, transform: \"scale(1)\" }}\n exit={{ opacity: 0, transform: \"scale(0.5)\" }}\n layout=\"position\"\n transition={{\n duration: 0.2,\n type: \"spring\",\n bounce: 0,\n layout: {\n duration: 0.05,\n type: \"spring\",\n bounce: 0,\n },\n }}\n {...props}\n >\n <Tag.Text>{label || value}</Tag.Text>\n <Tag.Button\n icon={{ icon: Lucide.X, alt: `Remove ${value}` }}\n onClick={(event: React.MouseEvent) => {\n const onValueChange = context.onValueChange as (\n v: Array<Option>,\n ) => void;\n const contextValue = context.value as Array<Option>;\n const newValue = contextValue.filter((v) => v.value !== value);\n onValueChange(newValue);\n // Stop click event from bubbling up\n event.stopPropagation();\n // Stop the button \"submit\" action from triggering\n event.preventDefault();\n }}\n />\n </Tag.Root>\n );\n};\n\ntype TriggerValueProps<T extends TgphElement> = {\n size?: TgphComponentProps<typeof TelegraphButton.Root<T>>[\"size\"];\n};\n\nconst TriggerValue = <T extends TgphElement>({\n size = \"1\",\n}: TriggerValueProps<T>) => {\n const context = React.useContext(ComboboxContext);\n\n const height = size === \"1\" ? \"6\" : size === \"2\" ? \"8\" : \"10\";\n\n if (context.value && isMultiSelect(context.value)) {\n const contextValue = context.value as Array<Option>;\n const layout = context.layout || \"truncate\";\n const truncatedLength = contextValue.length - 2;\n const truncatedLengthStringArray = truncatedLength.toString().split(\"\");\n\n if (contextValue.length === 0) {\n return (\n <Stack h={height} align=\"center\" my=\"1\">\n <TelegraphButton.Text color=\"gray\">\n {context.placeholder}\n </TelegraphButton.Text>\n </Stack>\n );\n }\n\n return (\n <Stack\n gap=\"1\"\n w=\"full\"\n my=\"1\"\n wrap={layout === \"wrap\" ? \"wrap\" : \"nowrap\"}\n align=\"center\"\n style={{\n position: \"relative\",\n flexGrow: 1,\n }}\n >\n <AnimatePresence initial={false} mode=\"popLayout\">\n {contextValue.map((v, i) => {\n if ((layout === \"truncate\" && i <= 1) || layout === \"wrap\") {\n return (\n <RefToTgphRef key={v.value}>\n <TriggerTag {...v} />\n </RefToTgphRef>\n );\n }\n })}\n </AnimatePresence>\n <AnimatePresence>\n {layout === \"truncate\" && contextValue.length > 2 && (\n <Stack\n as={motion.div}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n h=\"full\"\n pr=\"1\"\n pl=\"8\"\n align=\"center\"\n aria-label={`${truncatedLength} more selected`}\n style={{\n position: \"absolute\",\n right: 0,\n backgroundImage:\n \"linear-gradient(to left, var(--tgph-surface-1) 0 60%, transparent 90% 100%)\",\n }}\n key=\"truncated text\"\n >\n <Text as=\"span\" size=\"1\" style={{ whiteSpace: \"nowrap\" }}>\n +\n <AnimatePresence mode=\"wait\" initial={false}>\n {truncatedLengthStringArray.map((n) => (\n <Box\n as={motion.span}\n w=\"2\"\n display=\"inline-block\"\n initial={{\n opacity: 0.5,\n }}\n animate={{\n opacity: 1,\n }}\n exit={{\n opacity: 0.5,\n }}\n transition={{ duration: 0.1, type: \"spring\", bounce: 0 }}\n key={n}\n >\n {n}\n </Box>\n ))}\n </AnimatePresence>{\" \"}\n more\n </Text>\n </Stack>\n )}\n </AnimatePresence>\n </Stack>\n );\n }\n\n return (\n <Stack h={height} align=\"center\" my=\"1\">\n <TelegraphButton.Text color={!context.value ? \"gray\" : \"default\"}>\n {context?.value?.label || context?.value?.value || context.placeholder}\n </TelegraphButton.Text>\n </Stack>\n );\n};\n\ntype TriggerProps = React.ComponentProps<typeof TelegraphMenu.Anchor> & {\n placeholder?: string;\n size?: TgphComponentProps<typeof TelegraphButton.Root>[\"size\"];\n};\n\nconst Trigger = ({ size = \"1\", ...props }: TriggerProps) => {\n const context = React.useContext(ComboboxContext);\n\n const getAriaLabelString = React.useCallback(() => {\n if (!context.value) return context.placeholder;\n if (isSingleSelect(context.value)) {\n return (\n context.value?.label || context.value?.value || context.placeholder\n );\n } else {\n return (\n context.value?.map((v) => v.label).join(\", \") || context.placeholder\n );\n }\n }, [context.value, context.placeholder]);\n\n return (\n <TelegraphMenu.Anchor\n {...props}\n asChild\n onClick={(event: React.MouseEvent) => {\n event.preventDefault();\n context.onOpenToggle();\n context.triggerRef?.current?.focus();\n }}\n onKeyDown={(event: React.KeyboardEvent) => {\n // Lets the user tab in and out of the combobox as usual\n if (event.key === \"Tab\") {\n event.stopPropagation();\n return;\n }\n if (SELECT_KEYS.includes(event.key)) {\n event.preventDefault();\n return;\n }\n\n if (event.key === \"ArrowDown\") {\n context.onOpenToggle();\n return;\n }\n }}\n tgphRef={context.triggerRef}\n >\n <RefToTgphRef>\n <TelegraphButton.Root\n id={context.triggerId}\n bg=\"surface-1\"\n variant=\"outline\"\n w=\"full\"\n h=\"full\"\n color={context.errored ? \"red\" : \"gray\"}\n justify=\"space-between\"\n // Accessibility attributes\n role=\"combobox\"\n aria-label={getAriaLabelString()}\n aria-controls={context.contentId}\n aria-expanded={context.open}\n aria-haspopup=\"listbox\"\n // Custom attributes\n data-tgph-combobox-trigger\n data-tgph-comobox-trigger-open={context.open}\n >\n <TriggerValue size={size} />\n <TelegraphButton.Icon\n as={motion.div}\n icon={Lucide.ChevronDown}\n animate={{ rotate: context.open ? \"180deg\" : \"0deg\" }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n aria-hidden\n />\n </TelegraphButton.Root>\n </RefToTgphRef>\n </TelegraphMenu.Anchor>\n );\n};\n\ntype ContentProps<T extends TgphElement> = TgphComponentProps<\n typeof TelegraphMenu.Content<T>\n>;\n\nconst Content = <T extends TgphElement>({\n tgphRef,\n style,\n children,\n ...props\n}: ContentProps<T>) => {\n const context = React.useContext(ComboboxContext);\n const hasInteractedOutside = React.useRef(false);\n const composedRef = useComposedRefs<unknown>(tgphRef, context.contentRef);\n\n const internalContentRef = React.useRef(null);\n\n const [height, setHeight] = React.useState(0);\n const [initialAnimationComplete, setInitialAnimationComplete] =\n React.useState(false);\n\n const setHeightFromContent = React.useCallback(\n (element: Element) => {\n // Set the initial height of the content after the animation completes\n const rect = element.getBoundingClientRect();\n if (rect) {\n setHeight(rect.height);\n }\n\n if (!initialAnimationComplete) {\n setInitialAnimationComplete(true);\n }\n },\n [initialAnimationComplete],\n );\n\n React.useEffect(() => {\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const element = entry.target;\n setHeightFromContent(element);\n }\n });\n // Attatch the observer once the initial animation completes\n // and the content ref is available\n if (internalContentRef.current && initialAnimationComplete) {\n observer.observe(internalContentRef.current);\n }\n\n return () => observer.disconnect();\n }, [initialAnimationComplete, setHeightFromContent]);\n\n // Reset the animation complete state when the combobox is closed\n React.useEffect(() => {\n if (initialAnimationComplete === true && context.open === false) {\n setInitialAnimationComplete(false);\n }\n }, [context.open, initialAnimationComplete]);\n\n return (\n <TelegraphMenu.Content\n as={motion.div}\n mt=\"1\"\n initial={{\n opacity: 0,\n scale: 0.8,\n height: \"auto\",\n }}\n animate={{\n opacity: 1,\n scale: 1,\n // Set height based on the internalContentRef so that\n // we get smooth animations when the content changes\n minHeight: height ? `${height}px` : \"0\",\n }}\n exit={{ opacity: 0, scale: 0 }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n onInteractOutside={() => {\n context.setOpen(false);\n hasInteractedOutside.current = true;\n }}\n onAnimationComplete={() => {\n // Set height when the initial animation for\n // displaying the content completes\n if (!initialAnimationComplete && internalContentRef) {\n const element = internalContentRef.current as unknown as Element;\n setHeightFromContent(element);\n }\n }}\n onCloseAutoFocus={(event: Event) => {\n if (!hasInteractedOutside.current) context.triggerRef?.current?.focus();\n hasInteractedOutside.current = false;\n\n event.preventDefault();\n }}\n onKeyDown={(event: React.KeyboardEvent) => {\n // If the first option is focused and the user presses the up\n // arrow key, focus the search input\n const options = context.contentRef?.current?.querySelectorAll(\n \"[data-tgph-combobox-option]\",\n );\n\n if (\n document.activeElement === options?.[0] &&\n LAST_KEYS.includes(event.key)\n ) {\n context.searchRef?.current?.focus();\n }\n\n // Close the combobox if the user presses the escape key\n if (event.key === \"Escape\") {\n context.setOpen(false);\n }\n\n event.stopPropagation();\n }}\n bg=\"surface-1\"\n style={{\n width: \"var(--tgph-comobobox-trigger-width)\",\n ...style,\n ...{\n \"--tgph-comobobox-content-transform-origin\":\n \"var(--radix-popper-transform-origin)\",\n \"--tgph-combobox-content-available-width\":\n \"var(--radix-popper-available-width)\",\n \"--tgph-combobox-content-available-height\":\n \"calc(var(--radix-popper-available-height) - var(--tgph-spacing-8))\",\n \"--tgph-comobobox-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--tgph-combobox-trigger-height\": \"var(--radix-popper-anchor-height)\",\n },\n }}\n {...props}\n tgphRef={composedRef}\n data-tgph-combobox-content\n data-tgph-combobox-content-open={initialAnimationComplete}\n // Cancel out accessibility attirbutes related to aria menu\n role={undefined}\n aria-orientation={undefined}\n >\n <Stack direction=\"column\" gap=\"1\" tgphRef={internalContentRef}>\n {children}\n </Stack>\n </TelegraphMenu.Content>\n );\n};\n\ntype OptionsProps<T extends TgphElement> = TgphComponentProps<typeof Stack<T>>;\n\nconst Options = <T extends TgphElement>({ ...props }: OptionsProps<T>) => {\n const context = React.useContext(ComboboxContext);\n return (\n <Stack\n id={context.contentId}\n direction=\"column\"\n gap=\"1\"\n style={{\n overflowY: \"auto\",\n // Available Height - Padding from edge of screen\n maxHeight:\n \"calc(var(--tgph-combobox-content-available-height) - var(--tgph-spacing-12))\",\n }}\n // Accessibility attributes\n role=\"listbox\"\n {...props}\n />\n );\n};\n\ntype OptionProps<T extends TgphElement> = TgphComponentProps<\n typeof TelegraphMenu.Button<T>\n> & {\n value: string;\n label?: string;\n selected?: boolean | null;\n};\n\nconst Option = <T extends TgphElement>({\n value,\n label,\n selected,\n onSelect,\n ...props\n}: OptionProps<T>) => {\n const context = React.useContext(ComboboxContext);\n const [isFocused, setIsFocused] = React.useState(false);\n const contextValue = context.value ?? [];\n\n const isVisible = isMultiSelect(contextValue)\n ? !context.searchQuery ||\n value.toLowerCase().includes(context.searchQuery.toLowerCase())\n : !context.searchQuery ||\n value.toLowerCase().includes(context.searchQuery.toLowerCase());\n\n const isSelected = isMultiSelect(contextValue)\n ? contextValue.some((v) => v.value === value)\n : contextValue.value === value;\n\n const handleSelection = (event: React.KeyboardEvent) => {\n // Don't do anything if the key isn't a selection key\n if (event.key && !SELECT_KEYS.includes(event.key)) return;\n\n // Don't bubble up the event\n event.stopPropagation();\n event.preventDefault();\n\n if (context.closeOnSelect === true) {\n context.setOpen(false);\n }\n\n if (onSelect) {\n // Need to convert to non keyboard type event\n // since onSelect is expecting a mouse event\n // and we've handled the keyboard event already\n const onSelectEvent = event as unknown as Event;\n return onSelect(onSelectEvent);\n }\n\n if (isMultiSelect(contextValue)) {\n const onValueChange = context.onValueChange as (v: Array<Option>) => void;\n\n const newValue = isSelected\n ? contextValue.filter((v) => v.value !== value)\n : [...contextValue, { value, label }];\n\n onValueChange(newValue);\n } else if (isSingleSelect(contextValue)) {\n const onValueChange = context.onValueChange as (v: Option) => void;\n onValueChange({ value, label });\n }\n\n context.triggerRef?.current?.focus();\n };\n\n if (isVisible) {\n return (\n <TelegraphMenu.Button\n onSelect={handleSelection}\n // Force null if selected equals null so we\n // can override the icon of the button\n selected={selected === null ? null : selected ?? isSelected}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n // Accessibility attributes\n role=\"option\"\n aria-selected={isSelected ? \"true\" : \"false\"}\n // Custom attributes\n data-tgph-combobox-option\n data-tgph-combobox-option-focused={isFocused}\n data-tgph-combobox-option-value={value}\n data-tgph-combobox-option-label={label}\n {...props}\n >\n {label || value}\n </TelegraphMenu.Button>\n );\n }\n};\n\ntype SearchProps = TgphComponentProps<typeof TelegraphInput> & {\n label?: string;\n};\n\nconst Search = ({\n label = \"Search\",\n placeholder = \"Search\",\n tgphRef,\n ...props\n}: SearchProps) => {\n const id = React.useId();\n const context = React.useContext(ComboboxContext);\n const composedRef = useComposedRefs(tgphRef, context.searchRef);\n\n React.useEffect(() => {\n const handleSearchKeyDown = (event: KeyboardEvent) => {\n if (FIRST_KEYS.includes(event.key)) {\n context.contentRef?.current?.focus({ preventScroll: true });\n }\n\n if (event.key === \"Escape\") {\n context.setOpen(false);\n }\n\n event.stopPropagation();\n };\n\n const searchInput = context.searchRef?.current;\n\n if (searchInput) {\n searchInput.addEventListener(\"keydown\", handleSearchKeyDown);\n return () => {\n searchInput.removeEventListener(\"keydown\", handleSearchKeyDown);\n };\n }\n }, [context]);\n\n return (\n <Box borderBottom px=\"1\" pb=\"1\">\n <VisuallyHidden.Root>\n <Text as=\"label\" htmlFor={id}>\n {label}\n </Text>\n </VisuallyHidden.Root>\n <TelegraphInput\n id={id}\n variant=\"ghost\"\n placeholder={placeholder}\n value={context.searchQuery}\n onChange={(event: React.ChangeEvent<HTMLInputElement>) => {\n context?.setSearchQuery?.(event.target.value);\n }}\n LeadingComponent={<Icon icon={Lucide.Search} alt=\"Search Icon\" />}\n TrailingComponent={\n context?.searchQuery && context?.searchQuery?.length > 0 ? (\n <TelegraphButton\n as={motion.button}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n variant=\"ghost\"\n color=\"gray\"\n icon={{ icon: Lucide.X, alt: \"Clear Search Query\" }}\n onClick={() => context.setSearchQuery?.(\"\")}\n />\n ) : null\n }\n autoFocus\n data-tgph-combobox-search\n aria-controls={context.contentId}\n {...props}\n tgphRef={composedRef}\n />\n </Box>\n );\n};\n\ntype EmptyProps<T extends TgphElement> = TgphComponentProps<typeof Stack<T>> & {\n icon?: TgphComponentProps<typeof Icon> | null;\n message?: string | null;\n};\n\nconst Empty = <T extends TgphElement>({\n icon = { icon: Lucide.Search, alt: \"Search Icon\" },\n message = \"No results found\",\n children,\n ...props\n}: EmptyProps<T>) => {\n const context = React.useContext(ComboboxContext);\n const [isVisible, setIsVisible] = React.useState(false);\n\n React.useEffect(() => {\n const options = context.contentRef?.current?.querySelectorAll(\n \"[data-tgph-combobox-option]\",\n );\n\n if (options?.length === 0) {\n setIsVisible(true);\n } else {\n setIsVisible(false);\n }\n }, [context.searchQuery, context.contentRef, children]);\n\n if (isVisible) {\n return (\n <Stack\n as={motion.div}\n initial={{ opacity: 0, scale: 0.8 }}\n animate={{ opacity: 1, scale: 1 }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n gap=\"1\"\n align=\"center\"\n justify=\"center\"\n w=\"full\"\n my=\"8\"\n data-tgph-combobox-empty\n {...props}\n >\n {icon === null ? <></> : <Icon {...icon} />}\n {message === null ? <></> : <Text as=\"span\">{message}</Text>}\n </Stack>\n );\n }\n};\n\ntype CreateProps<T extends TgphElement> = TgphComponentProps<\n typeof TelegraphMenu.Button<T>\n> & {\n leadingText?: string;\n values?: Array<Option>;\n onCreate?: (value: Option) => void;\n};\n\nconst Create = <T extends TgphElement>({\n leadingText = \"Create\",\n values,\n onCreate,\n selected = null,\n ...props\n}: CreateProps<T>) => {\n const context = React.useContext(ComboboxContext);\n\n const variableAlreadyExists = React.useCallback(\n (searchQuery: string | undefined) => {\n if (!values || values?.length === 0) return false;\n return values.some((v) => v.value === searchQuery);\n },\n [values],\n );\n\n if (context.searchQuery && !variableAlreadyExists(context.searchQuery)) {\n return (\n <Option\n leadingIcon={{ icon: Lucide.Plus, \"aria-hidden\": true }}\n mx=\"1\"\n value={context.searchQuery}\n label={`${leadingText} \"${context.searchQuery}\"`}\n selected={selected}\n onSelect={() => {\n if (onCreate && context.value && context.searchQuery) {\n if (isSingleSelect(context.value)) {\n onCreate({ value: context.searchQuery });\n }\n\n if (isMultiSelect(context.value)) {\n onCreate({ value: context.searchQuery });\n }\n\n context.setSearchQuery?.(\"\");\n }\n }}\n {...props}\n />\n );\n }\n};\n\nconst Combobox = {} as {\n Root: typeof Root;\n Trigger: typeof Trigger;\n Content: typeof Content;\n Options: typeof Options;\n Option: typeof Option;\n Search: typeof Search;\n Empty: typeof Empty;\n Create: typeof Create;\n};\n\nObject.assign(Combobox, {\n Root,\n Trigger,\n Content,\n Options,\n Option,\n Search,\n Empty,\n Create,\n});\n\nexport { Combobox };\n"],"names":["r","e","f","n","o","clsx","S","z","M","N","y","I","l","a","A","p","w","s","D","L","C","u","d","j","H","i","b","h","c","g","m","T","W","X","v","Y","q","F","G","J","k","$","R","x","_","B","E","P","O","V","te","t","isMultiSelect","value","isSingleSelect","FIRST_KEYS","LAST_KEYS","SELECT_KEYS","ComboboxContext","React","Root","modal","closeOnSelect","openProp","onOpenChangeProp","defaultOpenProp","onValueChange","errored","placeholder","layout","props","contentId","triggerId","triggerRef","searchRef","contentRef","searchQuery","setSearchQuery","open","setOpen","useControllableState","onOpenToggle","prevOpen","jsx","TelegraphMenu","TriggerTag","label","context","jsxs","Tag","motion","Lucide","event","newValue","TriggerValue","size","height","contextValue","truncatedLength","truncatedLengthStringArray","Stack","TelegraphButton","AnimatePresence","RefToTgphRef","Text","Box","_a","_b","Trigger","getAriaLabelString","_c","Content","tgphRef","style","children","hasInteractedOutside","composedRef","useComposedRefs","internalContentRef","setHeight","initialAnimationComplete","setInitialAnimationComplete","setHeightFromContent","element","rect","observer","entries","entry","options","_d","Options","Option","selected","onSelect","isFocused","setIsFocused","isVisible","isSelected","handleSelection","Search","id","handleSearchKeyDown","searchInput","VisuallyHidden","TelegraphInput","Icon","Empty","icon","message","setIsVisible","Fragment","Create","leadingText","values","onCreate","variableAlreadyExists","Combobox"],"mappings":"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ACN,UAAW,OACZ,EACD,GAAI,CACF,KAAM,SACN,KAAM,UACN,UAAW,GACZ,EACD,GAAI,CACF,KAAM,SACN,KAAM,UACN,UAAW,GACZ,EACD,GAAI,CACF,KAAM,mBACN,KAAM,OACP,EACD,QAAS,CACP,KAAM,gBACN,KAAM,UACN,UAAW,KACZ,EACD,eAAgB,CACd,KAAM,gBACN,KAAM,UACN,UAAW,UACX,SAAU,WACX,EACD,kBAAmB,CACjB,KAAM,gBACN,KAAM,UACN,UAAW,aACX,SAAU,WACX,EACD,mBAAoB,CAClB,KAAM,gBACN,KAAM,UACN,UAAW,cACX,SAAU,WACX,EACD,gBAAiB,CACf,KAAM,gBACN,KAAM,UACN,UAAW,WACX,SAAU,WACX,EACD,WAAY,CACV,KAAM,gBACN,KAAM,UACN,UAAW,MACX,SAAU,WACX,EACD,cAAe,CACb,KAAM,gBACN,KAAM,UACN,UAAW,SACX,SAAU,WACX,EACD,YAAa,CACX,KAAM,gBACN,KAAM,UACN,UAAW,OACX,SAAU,WACX,EACD,aAAc,CACZ,KAAM,gBACN,KAAM,UACN,UAAW,QACX,SAAU,WACX,EACD,OAAQ,CACN,KAAM,eACN,KAAM,UACN,UAAW,MACX,QAAS,IACV,EACD,UAAW,CACT,KAAM,eACN,KAAM,UACN,UAAW,MACX,QAAS,IACV,EACD,WAAY,CACV,KAAM,eACN,KAAM,UACN,UAAW,OACX,QAAS,IACV,EACD,aAAc,CACZ,KAAM,eACN,KAAM,UACN,UAAW,SACX,QAAS,IACV,EACD,YAAa,CACX,KAAM,eACN,KAAM,UACN,UAAW,QACX,QAAS,IACV,EACD,QAAS,CACP,KAAM,eACN,KAAM,UACN,UAAW,IACX,QAAS,IACV,EACD,QAAS,CACP,KAAM,eACN,KAAM,UACN,UAAW,IACX,QAAS,IACV,EACD,YAAa,CACX,KAAM,eACN,KAAM,QACN,QAAS,QACV,EACD,YAAa,CACX,KAAM,eACN,KAAM,eACN,QAAS,OACV,EACD,OAAQ,CACN,KAAM,aACN,KAAM,QACP,CACH,EAAGC,GAAI,CAAC,CACN,GAAI,EACJ,UAAW,EACX,Q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CD,GAAI,CACF,KAAM,UACN,KAAM,UACN,UAAW,GACZ,EACD,GAAI,CACF,KAAM,UACN,KAAM,UACN,UAAW,GACZ,EACD,GAAI,CACF,KAAM,SACN,KAAM,UACN,UAAW,KACZ,EACD,GAAI,CACF,KAAM,SACN,KAAM,UACN,UAAW,MACZ,EACD,GAAI,CACF,KAAM,SACN,KAAM,UACN,UAAW,QACZ,EACD,GAAI,CACF,KAAM,SACN,KAAM,UACN,UAAW,OACZ,EACD,GAAI,CACF,KAAM,SACN,KAAM,UACN,UAAW,GACZ,EACD,GAAI,CACF,KAAM,SACN,KAAM,UACN,UAAW,GACZ,EACD,GAAI,CACF,KAAM,mBACN,KAAM,OACP,EACD,QAAS,CACP,KAAM,gBACN,KAAM,UACN,UAAW,KACZ,EACD,eAAgB,CACd,KAAM,gBACN,KAAM,UACN,UAAW,UACX,SAAU,WACX,EACD,kBAAmB,CACjB,KAAM,gBACN,KAAM,UACN,UAAW,aACX,SAAU,WACX,EACD,mBAAoB,CAClB,KAAM,gBACN,KAAM,UACN,UAAW,cACX,SAAU,WACX,EACD,gBAAiB,CACf,KAAM,gBACN,KAAM,UACN,UAAW,WACX,SAAU,WACX,EACD,WAAY,CACV,KAAM,gBACN,KAAM,UACN,UAAW,MACX,SAAU,WACX,EACD,cAAe,CACb,KAAM,gBACN,KAAM,UACN,UAAW,SACX,SAAU,WACX,EACD,YAAa,CACX,KAAM,gBACN,KAAM,UACN,UAAW,OACX,SAAU,WACX,EACD,aAAc,CACZ,KAAM,gBACN,KAAM,UACN,UAAW,QACX,SAAU,WACX,EACD,OAAQ,CACN,KAAM,eACN,KAAM,UACN,UAAW,MACX,QAAS,IACV,EACD,UAAW,CACT,KAAM,eACN,KAAM,UACN,UAAW,MACX,QAAS,IACV,EACD,WAAY,CACV,KAAM,eACN,KAAM,UACN,UAAW,OACX,QAAS,IACV,EACD,aAAc,CACZ,KAAM,eACN,KAAM,UACN,UAAW,SACX,QAAS,IACV,EACD,YAAa,CACX,KAAM,eACN,KAAM,UACN,UAAW,QACX,QAAS,IACV,EACD,QAAS,CACP,KAAM,eACN,KAA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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../node_modules/clsx/dist/clsx.mjs","../../../button/dist/esm/index.mjs","../../../layout/dist/esm/index.mjs","../../src/Combobox/Combobox.helpers.ts","../../src/Combobox/Combobox.tsx"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { jsx as g, jsxs as V } from \"react/jsx-runtime\";\nimport { Icon as B } from \"@telegraph/icon\";\nimport * as N from \"react\";\nimport i from \"react\";\nimport m from \"clsx\";\nimport { Text as P } from \"@telegraph/typography\";\nfunction S(r, t) {\n typeof r == \"function\" ? r(t) : r != null && (r.current = t);\n}\nfunction z(...r) {\n return (t) => r.forEach((e) => S(e, t));\n}\nfunction M(...r) {\n return N.useCallback(z(...r), r);\n}\nconst y = [\"sm\", \"md\", \"lg\", \"xl\", \"2xl\"], I = (r) => {\n const t = [];\n let e = null;\n for (let o = 0; o < y.length; o++) {\n const n = y[o];\n if (r[n])\n e = r[n], t.push(e);\n else if (e !== null)\n t.push(e);\n else {\n let l = null;\n for (let a = o + 1; a < y.length; a++)\n if (r[y[a]]) {\n l = r[y[a]];\n break;\n }\n if (l !== null) {\n for (let a = 0; a <= o; a++)\n t.push(l);\n e = l;\n }\n }\n }\n return t;\n}, A = (r) => typeof r == \"object\" && (r.sm || r.md || r.lg || r.xl || r[\"2xl\"]), p = ({\n value: r,\n prop: t\n}) => {\n if (!r) return \"\";\n if (t.valueType === \"static\")\n return r.toString();\n const e = t.type === \"color\" ? \"\" : `-${t.type}`;\n return r === !0 ? `var(--tgph${e}-${t.default})` : `var(--tgph${e}-${r})`;\n}, w = {\n top: 0,\n right: 1,\n bottom: 2,\n left: 3\n}, s = {\n topLeft: 0,\n topRight: 1,\n bottomRight: 2,\n bottomLeft: 3\n}, D = ({\n cssVariables: r,\n value: t,\n prop: e,\n direction: o = \"all\"\n}) => {\n const n = r[`--tgph-${e.rule}`] || \"\", l = n ? n.split(\" \") : [], a = [\n (l == null ? void 0 : l[0]) || 0,\n (l == null ? void 0 : l[1]) || 0,\n (l == null ? void 0 : l[2]) || 0,\n (l == null ? void 0 : l[3]) || 0\n ];\n return o === \"all\" ? p({ value: t, prop: e }) : (e.ordering === \"clockwise\" ? (o === \"top\" && (a[s.topLeft] = p({\n value: t,\n prop: e\n }), a[s.topRight] = p({\n value: t,\n prop: e\n })), o === \"right\" && (a[s.topRight] = p({\n value: t,\n prop: e\n }), a[s.bottomRight] = p({\n value: t,\n prop: e\n })), o === \"bottom\" && (a[s.bottomRight] = p({\n value: t,\n prop: e\n }), a[s.bottomLeft] = p({\n value: t,\n prop: e\n })), o === \"left\" && (a[s.bottomLeft] = p({\n value: t,\n prop: e\n }), a[s.topLeft] = p({\n value: t,\n prop: e\n })), (o === \"topLeft\" || o === \"topRight\" || o === \"bottomRight\" || o === \"bottomLeft\") && (a[s[o]] = p({\n value: t,\n prop: e\n }))) : (o === \"x\" && (a[w.left] = p({\n value: t,\n prop: e\n }), a[w.right] = p({\n value: t,\n prop: e\n })), o === \"y\" && (a[w.top] = p({\n value: t,\n prop: e\n }), a[w.bottom] = p({\n value: t,\n prop: e\n })), (o === \"top\" || o === \"bottom\" || o === \"left\" || o === \"right\") && (a[w[o]] = p({\n value: t,\n prop: e\n }))), a.join(\" \"));\n}, L = ({\n prop: r,\n value: t,\n cssVariables: e\n}) => r.direction ? D({\n cssVariables: e,\n prop: r,\n value: t,\n direction: r.direction,\n type: r.type\n}) : p({ value: t, prop: r }), C = ({\n props: r,\n ref: t,\n propsMap: e\n}) => {\n if (!t.current) return;\n const o = {};\n Object.entries(r).forEach(([n, l]) => {\n const a = e[n];\n a && (typeof l == \"string\" || typeof l == \"boolean\" ? o[`--tgph-${a.rule}`] = L({\n prop: a,\n key: n,\n value: l,\n cssVariables: o\n }) : A(l) && I(l).forEach((u, d) => {\n u && (o[`--tgph-${a.rule}-${y[d]}`] = L({\n prop: a,\n key: n,\n value: u,\n cssVariables: o\n }));\n })), Object.entries(o).forEach(([u, d]) => {\n t.current && t.current.style.setProperty(u, d);\n });\n });\n}, j = {\n display: {\n rule: \"display\",\n type: \"block-display\",\n valueType: \"static\"\n },\n h: {\n rule: \"height\",\n type: \"spacing\"\n },\n w: {\n rule: \"width\",\n type: \"spacing\"\n },\n maxH: {\n rule: \"max-height\",\n type: \"spacing\"\n },\n maxW: {\n rule: \"max-width\",\n type: \"spacing\"\n },\n p: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"all\"\n },\n m: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"all\"\n },\n pt: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"top\"\n },\n pl: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"left\"\n },\n pb: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"bottom\"\n },\n pr: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"right\"\n },\n px: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"x\"\n },\n py: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"y\"\n },\n mt: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"top\"\n },\n ml: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"left\"\n },\n mb: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"bottom\"\n },\n mr: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"right\"\n },\n mx: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"x\"\n },\n my: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"y\"\n },\n bg: {\n rule: \"background-color\",\n type: \"color\"\n },\n rounded: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"all\"\n },\n roundedTopLeft: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"topLeft\",\n ordering: \"clockwise\"\n },\n roundedBottomLeft: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"bottomLeft\",\n ordering: \"clockwise\"\n },\n roundedBottomRight: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"bottomRight\",\n ordering: \"clockwise\"\n },\n roundedTopRight: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"topRight\",\n ordering: \"clockwise\"\n },\n roundedTop: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"top\",\n ordering: \"clockwise\"\n },\n roundedBottom: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"bottom\",\n ordering: \"clockwise\"\n },\n roundedLeft: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"left\",\n ordering: \"clockwise\"\n },\n roundedRight: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"right\",\n ordering: \"clockwise\"\n },\n border: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"all\",\n default: \"px\"\n },\n borderTop: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"top\",\n default: \"px\"\n },\n borderLeft: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"left\",\n default: \"px\"\n },\n borderBottom: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"bottom\",\n default: \"px\"\n },\n borderRight: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"right\",\n default: \"px\"\n },\n borderX: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"x\",\n default: \"px\"\n },\n borderY: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"y\",\n default: \"px\"\n },\n borderColor: {\n rule: \"border-color\",\n type: \"color\",\n default: \"gray-4\"\n },\n borderStyle: {\n rule: \"border-style\",\n type: \"border-style\",\n default: \"solid\"\n },\n shadow: {\n rule: \"box-shadow\",\n type: \"shadow\"\n }\n}, H = ({\n as: r,\n className: t,\n tgphRef: e,\n ...o\n}) => {\n const n = r || \"div\", l = i.useRef(null), a = M(e, l), u = i.useMemo(() => {\n const d = { borderColor: !0, ...o };\n return Object.keys(d).reduce(\n (b, h) => (Object.keys(j).some((c) => c === h) ? b.box[h] = d[h] : b.rest[h] = d[h], b),\n { box: {}, rest: {} }\n );\n }, [o]);\n return i.useLayoutEffect(() => {\n C({\n props: u.box,\n ref: l,\n propsMap: j\n });\n }, [u.box]), /* @__PURE__ */ g(\n n,\n {\n className: m(\"tgph-box\", t),\n ref: a,\n ...u.rest\n }\n );\n}, T = {\n display: {\n rule: \"display\",\n type: \"flex-display\",\n valueType: \"static\"\n },\n direction: {\n rule: \"flex-direction\",\n type: \"flex-direction\",\n valueType: \"static\"\n },\n align: {\n rule: \"align-items\",\n type: \"align-items\",\n valueType: \"static\"\n },\n justify: {\n rule: \"justify-content\",\n type: \"justify-content\",\n valueType: \"static\"\n },\n wrap: {\n rule: \"flex-wrap\",\n type: \"flex-wrap\",\n valueType: \"static\"\n },\n gap: {\n rule: \"gap\",\n type: \"spacing\",\n valueType: \"variable\"\n }\n}, W = ({\n className: r,\n tgphRef: t,\n ...e\n}) => {\n const o = i.useRef(null), n = M(t, o), l = i.useMemo(\n () => Object.keys(e).reduce(\n (a, u) => (Object.keys(T).some((d) => d === u) ? a.stack[u] = e[u] : a.rest[u] = e[u], a),\n { stack: {}, rest: {} }\n ),\n [e]\n );\n return i.useLayoutEffect(() => {\n C({\n props: l.stack,\n ref: o,\n propsMap: T\n });\n }, [l.stack, n]), /* @__PURE__ */ g(\n H,\n {\n className: m(\"tgph-stack\", r),\n tgphRef: n,\n ...l.rest\n }\n );\n}, X = {\n solid: {\n gray: \"bg-gray-9 hover:bg-gray-10 focus:bg-gray-11 data-[tgph-button-active=true]:!bg-gray-11\",\n red: \"bg-red-9 hover:bg-red-10 focus:bg-red-11 data-[tgph-button-active=true]:!bg-red-11\",\n accent: \"bg-accent-9 hover:bg-accent-10 focus:bg-accent-11 data-[tgph-button-active=true]:!bg-accent-11\",\n green: \"bg-green-9 hover:bg-green-10 focus:bg-green-11 data-[tgph-button-active=true]:!bg-green-11\",\n blue: \"bg-blue-9 hover:bg-blue-10 focus:bg-blue-11 data-[tgph-button-active=true]:!bg-blue-11\",\n yellow: \"bg-yellow-9 hover:bg-yellow-10 focus:bg-yellow-11 data-[tgph-button-active=true]:!bg-yellow-11\",\n purple: \"bg-purple-9 hover:bg-purple-10 focus:bg-purple-11 data-[tgph-button-active=true]:!bg-purple-11\",\n disabled: \"bg-gray-2\"\n },\n soft: {\n gray: \"bg-gray-3 hover:bg-gray-4 focus:bg-gray-5 data-[tgph-button-active=true]:!bg-gray-5\",\n red: \"bg-red-3 hover:bg-red-4 focus:bg-red-5 data-[tgph-button-active=true]:!bg-red-5\",\n accent: \"bg-accent-3 hover:bg-accent-4 focus:bg-accent-6 data-[tgph-button-active=true]:!bg-accent-6\",\n green: \"bg-green-3 hover:bg-green-4 focus:bg-green-5 data-[tgph-button-active=true]:!bg-green-5\",\n blue: \"bg-blue-3 hover:bg-blue-4 focus:bg-blue-5 data-[tgph-button-active=true]:!bg-blue-5\",\n yellow: \"bg-yellow-3 hover:bg-yellow-4 focus:bg-yellow-5 data-[tgph-button-active=true]:!bg-yellow-5\",\n purple: \"bg-purple-3 hover:bg-purple-4 focus:bg-purple-5 data-[tgph-button-active=true]:!bg-purple-5\",\n disabled: \"bg-gray-2\"\n },\n outline: {\n gray: \"bg-surface-1 shadow-[inset_0_0_0_1px] shadow-gray-6 hover:shadow-gray-7 focus:shadow-gray-8 data-[tgph-button-active=true]:!shadow-gray-8\",\n red: \"bg-surface-1 shadow-[inset_0_0_0_1px] shadow-red-6 hover:shadow-red-7 focus:shadow-red-8 data-[tgph-button-active=true]:!shadow-red-8\",\n accent: \"bg-surface-1 shadow-[inset_0_0_0_1px] shadow-accent-6 hover:shadow-accent-7 focus:shadow-accent-8 data-[tgph-button-active=true]:!shadow-accent-8\",\n green: \"bg-surface-1 shadow-[inset_0_0_0_1px] shadow-green-6 hover:shadow-green-7 focus:shadow-green-8 data-[tgph-button-active=true]:!shadow-green-8\",\n blue: \"bg-surface-1 shadow-[inset_0_0_0_1px] shadow-blue-6 hover:shadow-blue-7 focus:shadow-blue-8 data-[tgph-button-active=true]:!shadow-blue-8\",\n yellow: \"bg-surface-1 shadow-[inset_0_0_0_1px] shadow-yellow-6 hover:shadow-yellow-7 focus:shadow-yellow-8 data-[tgph-button-active=true]:!shadow-yellow-8\",\n purple: \"bg-surface-1 shadow-[inset_0_0_0_1px] shadow-purple-6 hover:shadow-purple-7 focus:shadow-purple-8 data-[tgph-button-active=true]:!shadow-purple-8\",\n disabled: \"bg-gray-2\"\n },\n ghost: {\n gray: \"bg-transparent hover:bg-gray-3 focus:bg-gray-4 data-[tgph-button-active=true]:!bg-gray-4 [&data-[tgph-button-active=true]>span]:!text-gray-12\",\n red: \"bg-transparent hover:bg-red-3 focus:bg-red-4 data-[tgph-button-active=true]:!bg-red-4\",\n accent: \"bg-transparent hover:bg-accent-3 focus:bg-accent-4 data-[tgph-button-active=true]:!bg-accent-4\",\n green: \"bg-transparent hover:bg-green-3 focus:bg-green-4 data-[tgph-button-active=true]:!bg-green-4\",\n blue: \"bg-transparent hover:bg-blue-3 focus:bg-blue-4 data-[tgph-button-active=true]:!bg-blue-4\",\n yellow: \"bg-transparent hover:bg-yellow-3 focus:bg-yellow-4 data-[tgph-button-active=true]:!bg-yellow-4\",\n purple: \"bg-transparent hover:bg-purple-3 focus:bg-purple-4 data-[tgph-button-active=true]:!bg-purple-4\",\n disabled: \"bg-transparent\"\n }\n}, v = {\n default: {\n 1: {\n w: \"auto\",\n h: \"6\",\n gap: \"1\",\n px: \"2\"\n },\n 2: {\n w: \"auto\",\n h: \"8\",\n gap: \"2\",\n px: \"3\"\n },\n 3: {\n w: \"auto\",\n h: \"10\",\n gap: \"3\",\n px: \"4\"\n }\n },\n \"icon-only\": {\n 1: {\n w: \"6\",\n h: \"6\",\n gap: \"0\",\n px: \"0\"\n },\n 2: {\n w: \"8\",\n h: \"8\",\n gap: \"0\",\n px: \"0\"\n },\n 3: {\n w: \"10\",\n h: \"10\",\n gap: \"0\",\n px: \"0\"\n }\n }\n}, Y = {\n 1: \"1\",\n 2: \"2\",\n 3: \"3\"\n}, q = {\n solid: {\n gray: \"white\",\n red: \"white\",\n accent: \"white\",\n green: \"white\",\n blue: \"white\",\n yellow: \"white\",\n purple: \"white\",\n disabled: \"disabled\"\n },\n soft: {\n gray: \"default\",\n red: \"red\",\n accent: \"accent\",\n green: \"green\",\n blue: \"blue\",\n yellow: \"yellow\",\n purple: \"purple\",\n disabled: \"disabled\"\n },\n outline: {\n gray: \"default\",\n red: \"red\",\n accent: \"accent\",\n green: \"green\",\n blue: \"blue\",\n yellow: \"yellow\",\n purple: \"purple\",\n disabled: \"disabled\"\n },\n ghost: {\n gray: \"gray\",\n red: \"red\",\n accent: \"accent\",\n green: \"green\",\n blue: \"blue\",\n yellow: \"yellow\",\n purple: \"purple\",\n disabled: \"disabled\"\n }\n}, F = {\n 1: \"1\",\n 2: \"2\",\n 3: \"3\"\n}, G = {\n solid: {\n gray: \"white\",\n red: \"white\",\n accent: \"white\",\n green: \"white\",\n blue: \"white\",\n yellow: \"white\",\n purple: \"white\",\n disabled: \"disabled\"\n },\n soft: {\n accent: \"accent\",\n gray: \"gray\",\n red: \"red\",\n green: \"green\",\n blue: \"blue\",\n yellow: \"yellow\",\n purple: \"purple\",\n disabled: \"disabled\"\n },\n outline: {\n accent: \"accent\",\n gray: \"gray\",\n red: \"red\",\n green: \"green\",\n blue: \"blue\",\n yellow: \"yellow\",\n purple: \"purple\",\n disabled: \"disabled\"\n },\n ghost: {\n accent: \"accent\",\n gray: \"default\",\n red: \"red\",\n green: \"green\",\n blue: \"blue\",\n yellow: \"yellow\",\n purple: \"purple\",\n disabled: \"disabled\"\n }\n}, J = {\n default: \"secondary\",\n \"icon-only\": \"primary\"\n}, k = i.createContext({\n variant: \"solid\",\n size: \"2\",\n color: \"gray\",\n state: \"default\",\n layout: \"default\",\n active: !1\n}), $ = ({\n as: r,\n variant: t = \"solid\",\n size: e = \"2\",\n color: o = \"gray\",\n state: n = \"default\",\n active: l = !1,\n disabled: a,\n className: u,\n ...d\n}) => {\n const b = a ? \"disabled\" : n, h = b === \"disabled\" ? \"disabled\" : o, c = i.useMemo(() => {\n var R;\n const f = i.Children.toArray(d == null ? void 0 : d.children);\n if ((f == null ? void 0 : f.length) === 1 && i.isValidElement(f[0])) {\n const x = f[0];\n if ((R = x == null ? void 0 : x.props) != null && R.icon)\n return \"icon-only\";\n }\n return \"default\";\n }, [d == null ? void 0 : d.children]);\n return /* @__PURE__ */ g(\n k.Provider,\n {\n value: { variant: t, size: e, color: h, state: b, layout: c, active: l },\n children: /* @__PURE__ */ g(\n W,\n {\n as: r || \"button\",\n className: m(\n \"appearance-none border-0 cursor-pointer bg-none box-border [font-family:inherit]\",\n \"transition-colors no-underline\",\n b === \"disabled\" && \"cursor-not-allowed\",\n X[t][h],\n v[c][e],\n u\n ),\n h: v[c][e].h,\n w: v[c][e].w,\n gap: v[c][e].gap,\n px: v[c][e].px,\n display: \"inline-flex\",\n align: \"center\",\n justify: \"center\",\n rounded: \"3\",\n \"data-tgph-button\": !0,\n \"data-tgph-button-layout\": c,\n \"data-tgph-button-active\": l,\n disabled: a,\n ...d\n }\n )\n }\n );\n}, _ = ({\n size: r,\n color: t,\n variant: e,\n icon: o,\n alt: n,\n \"aria-hidden\": l,\n ...a\n}) => {\n const u = i.useContext(k), d = {\n size: r ?? F[u.size],\n color: t ?? G[u.variant][u.color],\n variant: e ?? J[u.layout]\n };\n return /* @__PURE__ */ g(\n B,\n {\n icon: o,\n \"data-button-icon\": !0,\n ...n ? { alt: n } : { \"aria-hidden\": l },\n ...d,\n ...a\n }\n );\n}, E = ({\n as: r,\n color: t,\n size: e,\n weight: o = \"medium\",\n className: n,\n ...l\n}) => {\n const a = i.useContext(k);\n return /* @__PURE__ */ g(\n P,\n {\n as: r || \"span\",\n color: t ?? q[a.variant][a.color],\n size: e ?? Y[a.size],\n weight: o,\n className: m(\"no-underline whitespace-nowrap\", n),\n internal_optionalAs: !0,\n \"data-button-text\": !0,\n ...l\n }\n );\n}, O = ({\n leadingIcon: r,\n trailingIcon: t,\n icon: e,\n children: o,\n ...n\n}) => {\n const l = r || e;\n return /* @__PURE__ */ V($, { ...n, children: [\n l && /* @__PURE__ */ g(_, { ...l }),\n o && /* @__PURE__ */ g(E, { children: o }),\n t && /* @__PURE__ */ g(_, { ...t })\n ] });\n};\nObject.assign(O, {\n Root: $,\n Icon: _,\n Text: E\n});\nconst te = O;\nexport {\n te as Button\n};\n//# sourceMappingURL=index.mjs.map\n","import { jsx as x } from \"react/jsx-runtime\";\nimport { useComposedRefs as R } from \"@telegraph/compose-refs\";\nimport w from \"clsx\";\nimport u from \"react\";\nconst a = [\"sm\", \"md\", \"lg\", \"xl\", \"2xl\"], j = (i) => {\n const e = [];\n let t = null;\n for (let r = 0; r < a.length; r++) {\n const n = a[r];\n if (i[n])\n t = i[n], e.push(t);\n else if (t !== null)\n e.push(t);\n else {\n let s = null;\n for (let o = r + 1; o < a.length; o++)\n if (i[a[o]]) {\n s = i[a[o]];\n break;\n }\n if (s !== null) {\n for (let o = 0; o <= r; o++)\n e.push(s);\n t = s;\n }\n }\n }\n return e;\n}, k = (i) => typeof i == \"object\" && (i.sm || i.md || i.lg || i.xl || i[\"2xl\"]), d = ({\n value: i,\n prop: e\n}) => {\n if (!i) return \"\";\n if (e.valueType === \"static\")\n return i.toString();\n const t = e.type === \"color\" ? \"\" : `-${e.type}`;\n return i === !0 ? `var(--tgph${t}-${e.default})` : `var(--tgph${t}-${i})`;\n}, b = {\n top: 0,\n right: 1,\n bottom: 2,\n left: 3\n}, p = {\n topLeft: 0,\n topRight: 1,\n bottomRight: 2,\n bottomLeft: 3\n}, O = ({\n cssVariables: i,\n value: e,\n prop: t,\n direction: r = \"all\"\n}) => {\n const n = i[`--tgph-${t.rule}`] || \"\", s = n ? n.split(\" \") : [], o = [\n (s == null ? void 0 : s[0]) || 0,\n (s == null ? void 0 : s[1]) || 0,\n (s == null ? void 0 : s[2]) || 0,\n (s == null ? void 0 : s[3]) || 0\n ];\n return r === \"all\" ? d({ value: e, prop: t }) : (t.ordering === \"clockwise\" ? (r === \"top\" && (o[p.topLeft] = d({\n value: e,\n prop: t\n }), o[p.topRight] = d({\n value: e,\n prop: t\n })), r === \"right\" && (o[p.topRight] = d({\n value: e,\n prop: t\n }), o[p.bottomRight] = d({\n value: e,\n prop: t\n })), r === \"bottom\" && (o[p.bottomRight] = d({\n value: e,\n prop: t\n }), o[p.bottomLeft] = d({\n value: e,\n prop: t\n })), r === \"left\" && (o[p.bottomLeft] = d({\n value: e,\n prop: t\n }), o[p.topLeft] = d({\n value: e,\n prop: t\n })), (r === \"topLeft\" || r === \"topRight\" || r === \"bottomRight\" || r === \"bottomLeft\") && (o[p[r]] = d({\n value: e,\n prop: t\n }))) : (r === \"x\" && (o[b.left] = d({\n value: e,\n prop: t\n }), o[b.right] = d({\n value: e,\n prop: t\n })), r === \"y\" && (o[b.top] = d({\n value: e,\n prop: t\n }), o[b.bottom] = d({\n value: e,\n prop: t\n })), (r === \"top\" || r === \"bottom\" || r === \"left\" || r === \"right\") && (o[b[r]] = d({\n value: e,\n prop: t\n }))), o.join(\" \"));\n}, y = ({\n prop: i,\n value: e,\n cssVariables: t\n}) => i.direction ? O({\n cssVariables: t,\n prop: i,\n value: e,\n direction: i.direction,\n type: i.type\n}) : d({ value: e, prop: i }), L = ({\n props: i,\n ref: e,\n propsMap: t\n}) => {\n if (!e.current) return;\n const r = {};\n Object.entries(i).forEach(([n, s]) => {\n const o = t[n];\n o && (typeof s == \"string\" || typeof s == \"boolean\" ? r[`--tgph-${o.rule}`] = y({\n prop: o,\n key: n,\n value: s,\n cssVariables: r\n }) : k(s) && j(s).forEach((c, f) => {\n c && (r[`--tgph-${o.rule}-${a[f]}`] = y({\n prop: o,\n key: n,\n value: c,\n cssVariables: r\n }));\n })), Object.entries(r).forEach(([l, c]) => {\n e.current && e.current.style.setProperty(l, c);\n });\n });\n}, m = {\n display: {\n rule: \"display\",\n type: \"block-display\",\n valueType: \"static\"\n },\n h: {\n rule: \"height\",\n type: \"spacing\"\n },\n w: {\n rule: \"width\",\n type: \"spacing\"\n },\n maxH: {\n rule: \"max-height\",\n type: \"spacing\"\n },\n maxW: {\n rule: \"max-width\",\n type: \"spacing\"\n },\n p: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"all\"\n },\n m: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"all\"\n },\n pt: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"top\"\n },\n pl: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"left\"\n },\n pb: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"bottom\"\n },\n pr: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"right\"\n },\n px: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"x\"\n },\n py: {\n rule: \"padding\",\n type: \"spacing\",\n direction: \"y\"\n },\n mt: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"top\"\n },\n ml: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"left\"\n },\n mb: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"bottom\"\n },\n mr: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"right\"\n },\n mx: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"x\"\n },\n my: {\n rule: \"margin\",\n type: \"spacing\",\n direction: \"y\"\n },\n bg: {\n rule: \"background-color\",\n type: \"color\"\n },\n rounded: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"all\"\n },\n roundedTopLeft: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"topLeft\",\n ordering: \"clockwise\"\n },\n roundedBottomLeft: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"bottomLeft\",\n ordering: \"clockwise\"\n },\n roundedBottomRight: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"bottomRight\",\n ordering: \"clockwise\"\n },\n roundedTopRight: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"topRight\",\n ordering: \"clockwise\"\n },\n roundedTop: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"top\",\n ordering: \"clockwise\"\n },\n roundedBottom: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"bottom\",\n ordering: \"clockwise\"\n },\n roundedLeft: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"left\",\n ordering: \"clockwise\"\n },\n roundedRight: {\n rule: \"border-radius\",\n type: \"rounded\",\n direction: \"right\",\n ordering: \"clockwise\"\n },\n border: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"all\",\n default: \"px\"\n },\n borderTop: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"top\",\n default: \"px\"\n },\n borderLeft: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"left\",\n default: \"px\"\n },\n borderBottom: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"bottom\",\n default: \"px\"\n },\n borderRight: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"right\",\n default: \"px\"\n },\n borderX: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"x\",\n default: \"px\"\n },\n borderY: {\n rule: \"border-width\",\n type: \"spacing\",\n direction: \"y\",\n default: \"px\"\n },\n borderColor: {\n rule: \"border-color\",\n type: \"color\",\n default: \"gray-4\"\n },\n borderStyle: {\n rule: \"border-style\",\n type: \"border-style\",\n default: \"solid\"\n },\n shadow: {\n rule: \"box-shadow\",\n type: \"shadow\"\n }\n}, C = ({\n as: i,\n className: e,\n tgphRef: t,\n ...r\n}) => {\n const n = i || \"div\", s = u.useRef(null), o = R(t, s), l = u.useMemo(() => {\n const c = { borderColor: !0, ...r };\n return Object.keys(c).reduce(\n (f, g) => (Object.keys(m).some((T) => T === g) ? f.box[g] = c[g] : f.rest[g] = c[g], f),\n { box: {}, rest: {} }\n );\n }, [r]);\n return u.useLayoutEffect(() => {\n L({\n props: l.box,\n ref: s,\n propsMap: m\n });\n }, [l.box]), /* @__PURE__ */ x(\n n,\n {\n className: w(\"tgph-box\", e),\n ref: o,\n ...l.rest\n }\n );\n}, h = {\n display: {\n rule: \"display\",\n type: \"flex-display\",\n valueType: \"static\"\n },\n direction: {\n rule: \"flex-direction\",\n type: \"flex-direction\",\n valueType: \"static\"\n },\n align: {\n rule: \"align-items\",\n type: \"align-items\",\n valueType: \"static\"\n },\n justify: {\n rule: \"justify-content\",\n type: \"justify-content\",\n valueType: \"static\"\n },\n wrap: {\n rule: \"flex-wrap\",\n type: \"flex-wrap\",\n valueType: \"static\"\n },\n gap: {\n rule: \"gap\",\n type: \"spacing\",\n valueType: \"variable\"\n }\n}, E = ({\n className: i,\n tgphRef: e,\n ...t\n}) => {\n const r = u.useRef(null), n = R(e, r), s = u.useMemo(\n () => Object.keys(t).reduce(\n (o, l) => (Object.keys(h).some((c) => c === l) ? o.stack[l] = t[l] : o.rest[l] = t[l], o),\n { stack: {}, rest: {} }\n ),\n [t]\n );\n return u.useLayoutEffect(() => {\n L({\n props: s.stack,\n ref: r,\n propsMap: h\n });\n }, [s.stack, n]), /* @__PURE__ */ x(\n C,\n {\n className: w(\"tgph-stack\", i),\n tgphRef: n,\n ...s.rest\n }\n );\n};\nexport {\n C as Box,\n E as Stack\n};\n//# sourceMappingURL=index.mjs.map\n","export type Option = { value: string; label?: string };\nexport const isMultiSelect = (\n value: Option | Array<Option>,\n): value is Array<Option> => {\n return Array.isArray(value);\n};\n\nexport const isSingleSelect = (\n value: Option | Array<Option>,\n): value is Option => {\n return typeof value === \"object\" && !Array.isArray(value);\n};\n","import { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHidden from \"@radix-ui/react-visually-hidden\";\nimport { Button as TelegraphButton } from \"@telegraph/button\";\nimport { useComposedRefs } from \"@telegraph/compose-refs\";\nimport {\n RefToTgphRef,\n type TgphComponentProps,\n type TgphElement,\n} from \"@telegraph/helpers\";\nimport { Icon, Lucide } from \"@telegraph/icon\";\nimport { Input as TelegraphInput } from \"@telegraph/input\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport { Menu as TelegraphMenu } from \"@telegraph/menu\";\nimport { Tag } from \"@telegraph/tag\";\nimport { Text } from \"@telegraph/typography\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport React from \"react\";\n\nimport { type Option, isMultiSelect, isSingleSelect } from \"./Combobox.helpers\";\n\nconst FIRST_KEYS = [\"ArrowDown\", \"PageUp\", \"Home\"];\nconst LAST_KEYS = [\"ArrowUp\", \"PageDown\", \"End\"];\nconst SELECT_KEYS = [\"Enter\", \" \"];\n\ntype RootProps = (\n | {\n value?: Array<Option>;\n onValueChange?: (value: Array<Option>) => void;\n layout?: \"truncate\" | \"wrap\";\n }\n | {\n value?: Option;\n onValueChange?: (value: Option) => void;\n layout?: never;\n }\n) & {\n open?: boolean;\n defaultOpen?: boolean;\n errored?: boolean;\n placeholder?: string;\n onOpenChange?: (open: boolean) => void;\n modal?: boolean;\n closeOnSelect?: boolean;\n children?: React.ReactNode;\n};\n\nconst ComboboxContext = React.createContext<\n Omit<RootProps, \"children\"> & {\n contentId: string;\n triggerId: string;\n open: boolean;\n setOpen: (open: boolean) => void;\n onOpenToggle: () => void;\n searchQuery?: string;\n setSearchQuery?: (query: string) => void;\n triggerRef?: React.RefObject<HTMLDivElement>;\n searchRef?: React.RefObject<HTMLInputElement>;\n contentRef?: React.RefObject<HTMLDivElement>;\n }\n>({\n onValueChange: () => {},\n contentId: \"\",\n triggerId: \"\",\n open: false,\n setOpen: () => {},\n onOpenToggle: () => {},\n});\n\nconst Root = ({\n modal = true,\n closeOnSelect = true,\n open: openProp,\n onOpenChange: onOpenChangeProp,\n defaultOpen: defaultOpenProp,\n value,\n onValueChange,\n errored,\n placeholder,\n layout,\n ...props\n}: RootProps) => {\n const contentId = React.useId();\n const triggerId = React.useId();\n const triggerRef = React.useRef(null);\n const searchRef = React.useRef(null);\n const contentRef = React.useRef<HTMLDivElement>(null);\n\n const [searchQuery, setSearchQuery] = React.useState<string>(\"\");\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpenProp,\n onChange: onOpenChangeProp,\n });\n\n const onOpenToggle = React.useCallback(() => {\n setOpen((prevOpen) => !prevOpen);\n }, [setOpen]);\n\n React.useEffect(() => {\n // If the combobox is closed clear\n // the search query\n if (!open) {\n setSearchQuery(\"\");\n }\n }, [open]);\n\n return (\n <ComboboxContext.Provider\n value={{\n contentId,\n triggerId,\n value,\n onValueChange,\n placeholder,\n open,\n setOpen,\n onOpenToggle,\n closeOnSelect,\n searchQuery,\n setSearchQuery,\n triggerRef,\n searchRef,\n contentRef,\n errored,\n layout,\n }}\n >\n <TelegraphMenu.Root\n open={open}\n onOpenChange={setOpen}\n modal={modal}\n {...props}\n />\n </ComboboxContext.Provider>\n );\n};\n\ntype TriggerTagProps = {\n value: string;\n label?: string;\n};\n\nconst TriggerTag = ({ label, value, ...props }: TriggerTagProps) => {\n const context = React.useContext(ComboboxContext);\n\n return (\n <Tag.Root\n size=\"1\"\n as={motion.span}\n initial={{ opacity: 0, transform: \"scale(0.8)\" }}\n animate={{ opacity: 1, transform: \"scale(1)\" }}\n exit={{ opacity: 0, transform: \"scale(0.5)\" }}\n layout=\"position\"\n transition={{\n duration: 0.2,\n type: \"spring\",\n bounce: 0,\n layout: {\n duration: 0.05,\n type: \"spring\",\n bounce: 0,\n },\n }}\n {...props}\n >\n <Tag.Text>{label || value}</Tag.Text>\n <Tag.Button\n icon={{ icon: Lucide.X, alt: `Remove ${value}` }}\n onClick={(event: React.MouseEvent) => {\n const onValueChange = context.onValueChange as (\n v: Array<Option>,\n ) => void;\n const contextValue = context.value as Array<Option>;\n const newValue = contextValue.filter((v) => v.value !== value);\n onValueChange(newValue);\n // Stop click event from bubbling up\n event.stopPropagation();\n // Stop the button \"submit\" action from triggering\n event.preventDefault();\n }}\n />\n </Tag.Root>\n );\n};\n\ntype TriggerValueProps<T extends TgphElement> = {\n size?: TgphComponentProps<typeof TelegraphButton.Root<T>>[\"size\"];\n};\n\nconst TriggerValue = <T extends TgphElement>({\n size = \"1\",\n}: TriggerValueProps<T>) => {\n const context = React.useContext(ComboboxContext);\n\n const height = size === \"1\" ? \"6\" : size === \"2\" ? \"8\" : \"10\";\n\n if (context.value && isMultiSelect(context.value)) {\n const contextValue = context.value as Array<Option>;\n const layout = context.layout || \"truncate\";\n const truncatedLength = contextValue.length - 2;\n const truncatedLengthStringArray = truncatedLength.toString().split(\"\");\n\n if (contextValue.length === 0) {\n return (\n <Stack h={height} align=\"center\" my=\"1\">\n <TelegraphButton.Text color=\"gray\">\n {context.placeholder}\n </TelegraphButton.Text>\n </Stack>\n );\n }\n\n return (\n <Stack\n gap=\"1\"\n w=\"full\"\n my=\"1\"\n wrap={layout === \"wrap\" ? \"wrap\" : \"nowrap\"}\n align=\"center\"\n style={{\n position: \"relative\",\n flexGrow: 1,\n }}\n >\n <AnimatePresence initial={false} mode=\"popLayout\">\n {contextValue.map((v, i) => {\n if ((layout === \"truncate\" && i <= 1) || layout === \"wrap\") {\n return (\n <RefToTgphRef key={v.value}>\n <TriggerTag {...v} />\n </RefToTgphRef>\n );\n }\n })}\n </AnimatePresence>\n <AnimatePresence>\n {layout === \"truncate\" && contextValue.length > 2 && (\n <Stack\n as={motion.div}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n h=\"full\"\n pr=\"1\"\n pl=\"8\"\n align=\"center\"\n aria-label={`${truncatedLength} more selected`}\n style={{\n position: \"absolute\",\n right: 0,\n backgroundImage:\n \"linear-gradient(to left, var(--tgph-surface-1) 0 60%, transparent 90% 100%)\",\n }}\n key=\"truncated text\"\n >\n <Text as=\"span\" size=\"1\" style={{ whiteSpace: \"nowrap\" }}>\n +\n <AnimatePresence mode=\"wait\" initial={false}>\n {truncatedLengthStringArray.map((n) => (\n <Box\n as={motion.span}\n w=\"2\"\n display=\"inline-block\"\n initial={{\n opacity: 0.5,\n }}\n animate={{\n opacity: 1,\n }}\n exit={{\n opacity: 0.5,\n }}\n transition={{ duration: 0.1, type: \"spring\", bounce: 0 }}\n key={n}\n >\n {n}\n </Box>\n ))}\n </AnimatePresence>{\" \"}\n more\n </Text>\n </Stack>\n )}\n </AnimatePresence>\n </Stack>\n );\n }\n\n return (\n <Stack h={height} align=\"center\" my=\"1\">\n <TelegraphButton.Text color={!context.value ? \"gray\" : \"default\"}>\n {context?.value?.label || context?.value?.value || context.placeholder}\n </TelegraphButton.Text>\n </Stack>\n );\n};\n\ntype TriggerProps = React.ComponentProps<typeof TelegraphMenu.Anchor> & {\n placeholder?: string;\n size?: TgphComponentProps<typeof TelegraphButton.Root>[\"size\"];\n};\n\nconst Trigger = ({ size = \"1\", ...props }: TriggerProps) => {\n const context = React.useContext(ComboboxContext);\n\n const getAriaLabelString = React.useCallback(() => {\n if (!context.value) return context.placeholder;\n if (isSingleSelect(context.value)) {\n return (\n context.value?.label || context.value?.value || context.placeholder\n );\n } else {\n return (\n context.value?.map((v) => v.label).join(\", \") || context.placeholder\n );\n }\n }, [context.value, context.placeholder]);\n\n return (\n <TelegraphMenu.Anchor\n {...props}\n asChild\n onClick={(event: React.MouseEvent) => {\n event.preventDefault();\n context.onOpenToggle();\n context.triggerRef?.current?.focus();\n }}\n onKeyDown={(event: React.KeyboardEvent) => {\n // Lets the user tab in and out of the combobox as usual\n if (event.key === \"Tab\") {\n event.stopPropagation();\n return;\n }\n if (SELECT_KEYS.includes(event.key)) {\n event.preventDefault();\n return;\n }\n\n if (event.key === \"ArrowDown\") {\n context.onOpenToggle();\n return;\n }\n }}\n tgphRef={context.triggerRef}\n >\n <RefToTgphRef>\n <TelegraphButton.Root\n id={context.triggerId}\n bg=\"surface-1\"\n variant=\"outline\"\n w=\"full\"\n h=\"full\"\n color={context.errored ? \"red\" : \"gray\"}\n justify=\"space-between\"\n // Accessibility attributes\n role=\"combobox\"\n aria-label={getAriaLabelString()}\n aria-controls={context.contentId}\n aria-expanded={context.open}\n aria-haspopup=\"listbox\"\n // Custom attributes\n data-tgph-combobox-trigger\n data-tgph-comobox-trigger-open={context.open}\n >\n <TriggerValue size={size} />\n <TelegraphButton.Icon\n as={motion.div}\n icon={Lucide.ChevronDown}\n animate={{ rotate: context.open ? \"180deg\" : \"0deg\" }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n aria-hidden\n />\n </TelegraphButton.Root>\n </RefToTgphRef>\n </TelegraphMenu.Anchor>\n );\n};\n\ntype ContentProps<T extends TgphElement> = TgphComponentProps<\n typeof TelegraphMenu.Content<T>\n>;\n\nconst Content = <T extends TgphElement>({\n tgphRef,\n style,\n children,\n ...props\n}: ContentProps<T>) => {\n const context = React.useContext(ComboboxContext);\n const hasInteractedOutside = React.useRef(false);\n const composedRef = useComposedRefs<unknown>(tgphRef, context.contentRef);\n\n const internalContentRef = React.useRef(null);\n\n const [height, setHeight] = React.useState(0);\n const [initialAnimationComplete, setInitialAnimationComplete] =\n React.useState(false);\n\n const setHeightFromContent = React.useCallback(\n (element: Element) => {\n // Set the initial height of the content after the animation completes\n const rect = element.getBoundingClientRect();\n if (rect) {\n setHeight(rect.height);\n }\n\n if (!initialAnimationComplete) {\n setInitialAnimationComplete(true);\n }\n },\n [initialAnimationComplete],\n );\n\n React.useEffect(() => {\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const element = entry.target;\n setHeightFromContent(element);\n }\n });\n // Attatch the observer once the initial animation completes\n // and the content ref is available\n if (internalContentRef.current && initialAnimationComplete) {\n observer.observe(internalContentRef.current);\n }\n\n return () => observer.disconnect();\n }, [initialAnimationComplete, setHeightFromContent]);\n\n // Reset the animation complete state when the combobox is closed\n React.useEffect(() => {\n if (initialAnimationComplete === true && context.open === false) {\n setInitialAnimationComplete(false);\n }\n }, [context.open, initialAnimationComplete]);\n\n return (\n <TelegraphMenu.Content\n as={motion.div}\n mt=\"1\"\n initial={{\n opacity: 0,\n scale: 0.8,\n height: \"auto\",\n }}\n animate={{\n opacity: 1,\n scale: 1,\n // Set height based on the internalContentRef so that\n // we get smooth animations when the content changes\n minHeight: height ? `${height}px` : \"0\",\n }}\n exit={{ opacity: 0, scale: 0 }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n onInteractOutside={() => {\n context.setOpen(false);\n hasInteractedOutside.current = true;\n }}\n onAnimationComplete={() => {\n // Set height when the initial animation for\n // displaying the content completes\n if (!initialAnimationComplete && internalContentRef) {\n const element = internalContentRef.current as unknown as Element;\n setHeightFromContent(element);\n }\n }}\n onCloseAutoFocus={(event: Event) => {\n if (!hasInteractedOutside.current) context.triggerRef?.current?.focus();\n hasInteractedOutside.current = false;\n\n event.preventDefault();\n }}\n onKeyDown={(event: React.KeyboardEvent) => {\n // If the first option is focused and the user presses the up\n // arrow key, focus the search input\n const options = context.contentRef?.current?.querySelectorAll(\n \"[data-tgph-combobox-option]\",\n );\n\n if (\n document.activeElement === options?.[0] &&\n LAST_KEYS.includes(event.key)\n ) {\n context.searchRef?.current?.focus();\n }\n\n // Close the combobox if the user presses the escape key\n if (event.key === \"Escape\") {\n context.setOpen(false);\n }\n\n event.stopPropagation();\n }}\n bg=\"surface-1\"\n style={{\n width: \"var(--tgph-comobobox-trigger-width)\",\n ...style,\n ...{\n \"--tgph-comobobox-content-transform-origin\":\n \"var(--radix-popper-transform-origin)\",\n \"--tgph-combobox-content-available-width\":\n \"var(--radix-popper-available-width)\",\n \"--tgph-combobox-content-available-height\":\n \"calc(var(--radix-popper-available-height) - var(--tgph-spacing-8))\",\n \"--tgph-comobobox-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--tgph-combobox-trigger-height\": \"var(--radix-popper-anchor-height)\",\n },\n }}\n {...props}\n tgphRef={composedRef}\n data-tgph-combobox-content\n data-tgph-combobox-content-open={initialAnimationComplete}\n // Cancel out accessibility attirbutes related to aria menu\n role={undefined}\n aria-orientation={undefined}\n >\n <Stack direction=\"column\" gap=\"1\" tgphRef={internalContentRef}>\n {children}\n </Stack>\n </TelegraphMenu.Content>\n );\n};\n\ntype OptionsProps<T extends TgphElement> = TgphComponentProps<typeof Stack<T>>;\n\nconst Options = <T extends TgphElement>({ ...props }: OptionsProps<T>) => {\n const context = React.useContext(ComboboxContext);\n return (\n <Stack\n id={context.contentId}\n direction=\"column\"\n gap=\"1\"\n style={{\n overflowY: \"auto\",\n // Available Height - Padding from edge of screen\n maxHeight:\n \"calc(var(--tgph-combobox-content-available-height) - var(--tgph-spacing-12))\",\n }}\n // Accessibility attributes\n role=\"listbox\"\n {...props}\n />\n );\n};\n\ntype OptionProps<T extends TgphElement> = TgphComponentProps<\n typeof TelegraphMenu.Button<T>\n> & {\n value: string;\n label?: string;\n selected?: boolean | null;\n};\n\nconst Option = <T extends TgphElement>({\n value,\n label,\n selected,\n onSelect,\n ...props\n}: OptionProps<T>) => {\n const context = React.useContext(ComboboxContext);\n const [isFocused, setIsFocused] = React.useState(false);\n const contextValue = context.value ?? [];\n\n const isVisible = isMultiSelect(contextValue)\n ? !context.searchQuery ||\n value.toLowerCase().includes(context.searchQuery.toLowerCase())\n : !context.searchQuery ||\n value.toLowerCase().includes(context.searchQuery.toLowerCase());\n\n const isSelected = isMultiSelect(contextValue)\n ? contextValue.some((v) => v.value === value)\n : contextValue.value === value;\n\n const handleSelection = (event: React.KeyboardEvent) => {\n // Don't do anything if the key isn't a selection key\n if (event.key && !SELECT_KEYS.includes(event.key)) return;\n\n // Don't bubble up the event\n event.stopPropagation();\n event.preventDefault();\n\n if (context.closeOnSelect === true) {\n context.setOpen(false);\n }\n\n if (onSelect) {\n // Need to convert to non keyboard type event\n // since onSelect is expecting a mouse event\n // and we've handled the keyboard event already\n const onSelectEvent = event as unknown as Event;\n return onSelect(onSelectEvent);\n }\n\n if (isMultiSelect(contextValue)) {\n const onValueChange = context.onValueChange as (v: Array<Option>) => void;\n\n const newValue = isSelected\n ? contextValue.filter((v) => v.value !== value)\n : [...contextValue, { value, label }];\n\n onValueChange(newValue);\n } else if (isSingleSelect(contextValue)) {\n const onValueChange = context.onValueChange as (v: Option) => void;\n onValueChange({ value, label });\n }\n\n context.triggerRef?.current?.focus();\n };\n\n if (isVisible) {\n return (\n <TelegraphMenu.Button\n type=\"button\"\n onSelect={handleSelection}\n onKeyDown={handleSelection}\n // Force null if selected equals null so we\n // can override the icon of the button\n selected={selected === null ? null : selected ?? isSelected}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n // Accessibility attributes\n role=\"option\"\n aria-selected={isSelected ? \"true\" : \"false\"}\n // Custom attributes\n data-tgph-combobox-option\n data-tgph-combobox-option-focused={isFocused}\n data-tgph-combobox-option-value={value}\n data-tgph-combobox-option-label={label}\n {...props}\n >\n {label || value}\n </TelegraphMenu.Button>\n );\n }\n};\n\ntype SearchProps = TgphComponentProps<typeof TelegraphInput> & {\n label?: string;\n};\n\nconst Search = ({\n label = \"Search\",\n placeholder = \"Search\",\n tgphRef,\n ...props\n}: SearchProps) => {\n const id = React.useId();\n const context = React.useContext(ComboboxContext);\n const composedRef = useComposedRefs(tgphRef, context.searchRef);\n\n React.useEffect(() => {\n const handleSearchKeyDown = (event: KeyboardEvent) => {\n if (FIRST_KEYS.includes(event.key)) {\n context.contentRef?.current?.focus({ preventScroll: true });\n }\n\n if (event.key === \"Escape\") {\n context.setOpen(false);\n }\n\n event.stopPropagation();\n };\n\n const searchInput = context.searchRef?.current;\n\n if (searchInput) {\n searchInput.addEventListener(\"keydown\", handleSearchKeyDown);\n return () => {\n searchInput.removeEventListener(\"keydown\", handleSearchKeyDown);\n };\n }\n }, [context]);\n\n return (\n <Box borderBottom px=\"1\" pb=\"1\">\n <VisuallyHidden.Root>\n <Text as=\"label\" htmlFor={id}>\n {label}\n </Text>\n </VisuallyHidden.Root>\n <TelegraphInput\n id={id}\n variant=\"ghost\"\n placeholder={placeholder}\n value={context.searchQuery}\n onChange={(event: React.ChangeEvent<HTMLInputElement>) => {\n context?.setSearchQuery?.(event.target.value);\n }}\n LeadingComponent={<Icon icon={Lucide.Search} alt=\"Search Icon\" />}\n TrailingComponent={\n context?.searchQuery && context?.searchQuery?.length > 0 ? (\n <TelegraphButton\n as={motion.button}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n variant=\"ghost\"\n color=\"gray\"\n icon={{ icon: Lucide.X, alt: \"Clear Search Query\" }}\n onClick={() => context.setSearchQuery?.(\"\")}\n />\n ) : null\n }\n autoFocus\n data-tgph-combobox-search\n aria-controls={context.contentId}\n {...props}\n tgphRef={composedRef}\n />\n </Box>\n );\n};\n\ntype EmptyProps<T extends TgphElement> = TgphComponentProps<typeof Stack<T>> & {\n icon?: TgphComponentProps<typeof Icon> | null;\n message?: string | null;\n};\n\nconst Empty = <T extends TgphElement>({\n icon = { icon: Lucide.Search, alt: \"Search Icon\" },\n message = \"No results found\",\n children,\n ...props\n}: EmptyProps<T>) => {\n const context = React.useContext(ComboboxContext);\n const [isVisible, setIsVisible] = React.useState(false);\n\n React.useEffect(() => {\n const options = context.contentRef?.current?.querySelectorAll(\n \"[data-tgph-combobox-option]\",\n );\n\n if (options?.length === 0) {\n setIsVisible(true);\n } else {\n setIsVisible(false);\n }\n }, [context.searchQuery, context.contentRef, children]);\n\n if (isVisible) {\n return (\n <Stack\n as={motion.div}\n initial={{ opacity: 0, scale: 0.8 }}\n animate={{ opacity: 1, scale: 1 }}\n transition={{ duration: 0.2, type: \"spring\", bounce: 0 }}\n gap=\"1\"\n align=\"center\"\n justify=\"center\"\n w=\"full\"\n my=\"8\"\n data-tgph-combobox-empty\n {...props}\n >\n {icon === null ? <></> : <Icon {...icon} />}\n {message === null ? <></> : <Text as=\"span\">{message}</Text>}\n </Stack>\n );\n }\n};\n\ntype CreateProps<T extends TgphElement> = TgphComponentProps<\n typeof TelegraphMenu.Button<T>\n> & {\n leadingText?: string;\n values?: Array<Option>;\n onCreate?: (value: Option) => void;\n};\n\nconst Create = <T extends TgphElement>({\n leadingText = \"Create\",\n values,\n onCreate,\n selected = null,\n ...props\n}: CreateProps<T>) => {\n const context = React.useContext(ComboboxContext);\n\n const variableAlreadyExists = React.useCallback(\n (searchQuery: string | undefined) => {\n if (!values || values?.length === 0) return false;\n return values.some((v) => v.value === searchQuery);\n },\n [values],\n );\n\n if (context.searchQuery && !variableAlreadyExists(context.searchQuery)) {\n return (\n <Option\n leadingIcon={{ icon: Lucide.Plus, \"aria-hidden\": true }}\n mx=\"1\"\n value={context.searchQuery}\n label={`${leadingText} \"${context.searchQuery}\"`}\n selected={selected}\n onSelect={() => {\n if (onCreate && context.value && context.searchQuery) {\n if (isSingleSelect(context.value)) {\n onCreate({ value: context.searchQuery });\n }\n\n if (isMultiSelect(context.value)) {\n onCreate({ value: context.searchQuery });\n }\n\n context.setSearchQuery?.(\"\");\n }\n }}\n {...props}\n />\n );\n }\n};\n\nconst Combobox = {} as {\n Root: typeof Root;\n Trigger: typeof Trigger;\n Content: typeof Content;\n Options: typeof Options;\n Option: typeof Option;\n Search: typeof Search;\n Empty: typeof Empty;\n Create: typeof Create;\n};\n\nObject.assign(Combobox, {\n Root,\n Trigger,\n Content,\n Options,\n Option,\n Search,\n Empty,\n Create,\n});\n\nexport { Combobox };\n"],"names":["r","e","f","n","o","clsx","S","z","M","N","y","I","l","a","A","p","w","s","D","L","C","u","d","j","H","i","b","h","c","g","m","T","W","X","v","Y","q","F","G","J","k","$","R","x","_","B","E","P","O","V","te","t","isMultiSelect","value","isSingleSelect","FIRST_KEYS","LAST_KEYS","SELECT_KEYS","ComboboxContext","React","Root","modal","closeOnSelect","openProp","onOpenChangeProp","defaultOpenProp","onValueChange","errored","placeholder","layout","props","contentId","triggerId","triggerRef","searchRef","contentRef","searchQuery","setSearchQuery","open","setOpen","useControllableState","onOpenToggle","prevOpen","jsx","TelegraphMenu","TriggerTag","label","context","jsxs","Tag","motion","Lucide","event","newValue","TriggerValue","size","height","contextValue","truncatedLength","truncatedLengthStringArray","Stack","TelegraphButton","AnimatePresence","RefToTgphRef","Text","Box","_a","_b","Trigger","getAriaLabelString","_c","Content","tgphRef","style","children","hasInteractedOutside","composedRef","useComposedRefs","internalContentRef","setHeight","initialAnimationComplete","setInitialAnimationComplete","setHeightFromContent","element","rect","observer","entries","entry","options","_d","Options","Option","selected","onSelect","isFocused","setIsFocused","isVisible","isSelected","handleSelection","Search","id","handleSearchKeyDown","searchInput","VisuallyHidden","TelegraphInput","Icon","Empty","icon","message","setIsVisible","Fragment","Create","leadingText","values","onCreate","variableAlreadyExists","Combobox"],"mappings":"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ACN,UAAW,OACZ,EACD,GAAI,CACF,KAAM,SACN,KAAM,UACN,UAAW,GACZ,EACD,GAAI,CACF,KAAM,SACN,KAAM,UACN,UAAW,GACZ,EACD,GAAI,CACF,KAAM,mBACN,KAAM,OACP,EACD,QAAS,CACP,KAAM,gBACN,KAAM,UACN,UAAW,KACZ,EACD,eAAgB,CACd,KAAM,gBACN,KAAM,UACN,UAAW,UACX,SAAU,WACX,EACD,kBAAmB,CACjB,KAAM,gBACN,KAAM,UACN,UAAW,aACX,SAAU,WACX,EACD,mBAAoB,CAClB,KAAM,gBACN,KAAM,UACN,UAAW,cACX,SAAU,WACX,EACD,gBAAiB,CACf,KAAM,gBACN,KAAM,UACN,UAAW,WACX,SAAU,WACX,EACD,WAAY,CACV,KAAM,gBACN,KAAM,UACN,UAAW,MACX,SAAU,WACX,EACD,cAAe,CACb,KAAM,gBACN,KAAM,UACN,UAAW,SACX,SAAU,WACX,EACD,YAAa,CACX,KAAM,gBACN,KAAM,UACN,UAAW,OACX,SAAU,WACX,EACD,aAAc,CACZ,KAAM,gBACN,KAAM,UACN,UAAW,QACX,SAAU,WACX,EACD,OAAQ,CACN,KAAM,eACN,KAAM,UACN,UAAW,MACX,QAAS,IACV,EACD,UAAW,CACT,KAAM,eACN,KAAM,UACN,UAAW,MACX,QAAS,IACV,EACD,WAAY,CACV,KAAM,eACN,KAAM,UACN,UAAW,OACX,QAAS,IACV,EACD,aAAc,CACZ,KAAM,eACN,KAAM,UACN,UAAW,SACX,QAAS,IACV,EACD,YAAa,CACX,KAAM,eACN,KAAM,UACN,UAAW,QACX,QAAS,IACV,EACD,QAAS,CACP,KAAM,eACN,KAAM,UACN,UAAW,IACX,QAAS,IACV,EACD,QAAS,CACP,KAAM,eACN,KAAM,UACN,UAAW,IACX,QAAS,IACV,EACD,YAAa,CACX,KAAM,eACN,KAAM,QACN,QAAS,QACV,EACD,YAAa,CACX,KAAM,eACN,KAAM,eACN,QAAS,OACV,EACD,OAAQ,CACN,KAAM,aACN,KAAM,QACP,CACH,EAAGC,GAAI,CAAC,CACN,GAAI,EACJ,UAAW,EACX,Q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CD,GAAI,CACF,KAAM,UACN,KAAM,UACN,UAAW,GACZ,EACD,GAAI,CACF,KAAM,UACN,KAAM,UACN,UAAW,GACZ,EACD,GAAI,CACF,KAAM,SACN,KAAM,UACN,UAAW,KACZ,EACD,GAAI,CACF,KAAM,SACN,KAAM,UACN,UAAW,MACZ,EACD,GAAI,CACF,KAAM,SACN,KAAM,UACN,UAAW,QACZ,EACD,GAAI,CACF,KAAM,SACN,KAAM,UACN,UAAW,OACZ,EACD,GAAI,CACF,KAAM,SACN,KAAM,UACN,UAAW,GACZ,EACD,GAAI,CACF,KAAM,SACN,KAAM,UACN,UAAW,GACZ,EACD,GAAI,CACF,KAAM,mBACN,KAAM,OACP,EACD,QAAS,CACP,KAAM,gBACN,KAAM,UACN,UAAW,KACZ,EACD,eAAgB,CACd,KAAM,gBACN,KAAM,UACN,UAAW,UACX,SAAU,WACX,EACD,kBAAmB,CACjB,KAAM,gBACN,KAAM,UACN,UAAW,aACX,SAAU,WACX,EACD,mBAAoB,CAClB,KAAM,gBACN,KAAM,UACN,UAAW,cACX,SAAU,WACX,EACD,gBAAiB,CACf,KAAM,gBACN,KAAM,UACN,UAAW,WACX,SAAU,WACX,EACD,WAAY,CACV,KAAM,gBACN,KAAM,UACN,UAAW,MACX,SAAU,WACX,EACD,cAAe,CACb,KAAM,gBACN,KAAM,UACN,UAAW,SACX,SAAU,WACX,EACD,YAAa,CACX,KAAM,gBACN,KAAM,UACN,UAAW,OACX,SAAU,WACX,EACD,aAAc,CACZ,KAAM,gBACN,KAAM,UACN,UAAW,QACX,SAAU,WACX,EACD,OAAQ,CACN,KAAM,eACN,KAAM,UACN,UAAW,MACX,QAAS,IACV,EACD,UAAW,CACT,KAAM,eACN,KAAM,UACN,UAAW,MACX,QAAS,IACV,EACD,WAAY,CACV,KAAM,eACN,KAAM,UACN,UAAW,OACX,QAAS,IACV,EACD,aAAc,CACZ,KAAM,eACN,KAAM,UACN,UAAW,SACX,QAAS,IACV,EACD,YAAa,CACX,KAAM,eACN,KAAM,UACN,UAAW,QACX,QAAS,IACV,EACD,QAAS,CACP,KAAM,eACN,KAA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","x_google_ignoreList":[0]}
|