@telegraph/combobox 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.md +17 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/css/default.css +1 -0
- package/dist/esm/index.mjs +1673 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/types/Combobox/Combobox.d.ts +70 -0
- package/dist/types/Combobox/Combobox.d.ts.map +1 -0
- package/dist/types/Combobox/Combobox.helpers.d.ts +7 -0
- package/dist/types/Combobox/Combobox.helpers.d.ts.map +1 -0
- package/dist/types/Combobox/index.d.ts +2 -0
- package/dist/types/Combobox/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/package.json +69 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# @telegraph/combobox
|
|
2
|
+
|
|
3
|
+
## 0.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#135](https://github.com/knocklabs/telegraph/pull/135) [`7763f43`](https://github.com/knocklabs/telegraph/commit/7763f43a9db615f3dfa958a09dd1cbd6c8c4a906) Thanks [@kylemcd](https://github.com/kylemcd)! - combobox + supporting work
|
|
8
|
+
|
|
9
|
+
- Updated dependencies [[`7763f43`](https://github.com/knocklabs/telegraph/commit/7763f43a9db615f3dfa958a09dd1cbd6c8c4a906)]:
|
|
10
|
+
- @telegraph/menu@0.0.4
|
|
11
|
+
- @telegraph/tag@0.0.25
|
|
12
|
+
- @telegraph/icon@0.0.16
|
|
13
|
+
- @telegraph/input@0.0.10
|
|
14
|
+
- @telegraph/typography@0.0.15
|
package/README.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+

|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@telegraph/combobox)
|
|
4
|
+
|
|
5
|
+
# @telegraph/combobox
|
|
6
|
+
> A styled menu, triggered by a Select, that combines an Input and Single- or Multi-select.
|
|
7
|
+
|
|
8
|
+
## Installation Instructions
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
npm install @telegraph/combobox
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
### Add stylesheet
|
|
15
|
+
```
|
|
16
|
+
@import "@telegraph/combobox"
|
|
17
|
+
```
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),pe=require("@radix-ui/react-use-controllable-state"),de=require("@radix-ui/react-visually-hidden"),k=require("@telegraph/icon"),u=require("react"),P=require("@telegraph/typography"),q=require("@telegraph/compose-refs"),J=require("@telegraph/helpers"),ge=require("@telegraph/input"),D=require("@telegraph/menu"),N=require("@telegraph/tag"),x=require("framer-motion");function Z(r){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const e in r)if(e!=="default"){const a=Object.getOwnPropertyDescriptor(r,e);Object.defineProperty(t,e,a.get?a:{enumerable:!0,get:()=>r[e]})}}return t.default=r,Object.freeze(t)}const be=Z(de),he=Z(u);function ee(r){var t,e,a="";if(typeof r=="string"||typeof r=="number")a+=r;else if(typeof r=="object")if(Array.isArray(r)){var i=r.length;for(t=0;t<i;t++)r[t]&&(e=ee(r[t]))&&(a&&(a+=" "),a+=e)}else for(e in r)r[e]&&(a&&(a+=" "),a+=e);return a}function _(){for(var r,t,e=0,a="",i=arguments.length;e<i;e++)(r=arguments[e])&&(t=ee(r))&&(a&&(a+=" "),a+=t);return a}function ye(r,t){typeof r=="function"?r(t):r!=null&&(r.current=t)}function fe(...r){return t=>r.forEach(e=>ye(e,t))}function te(...r){return he.useCallback(fe(...r),r)}const S=["sm","md","lg","xl","2xl"],me=r=>{const t=[];let e=null;for(let a=0;a<S.length;a++){const i=S[a];if(r[i])e=r[i],t.push(e);else if(e!==null)t.push(e);else{let o=null;for(let n=a+1;n<S.length;n++)if(r[S[n]]){o=r[S[n]];break}if(o!==null){for(let n=0;n<=a;n++)t.push(o);e=o}}}return t},ve=r=>typeof r=="object"&&(r.sm||r.md||r.lg||r.xl||r["2xl"]),y=({value:r,prop:t})=>{if(!r)return"";if(t.valueType==="static")return r.toString();const e=t.type==="color"?"":`-${t.type}`;return r===!0?`var(--tgph${e}-${t.default})`:`var(--tgph${e}-${r})`},$={top:0,right:1,bottom:2,left:3},j={topLeft:0,topRight:1,bottomRight:2,bottomLeft:3},xe=({cssVariables:r,value:t,prop:e,direction:a="all"})=>{const i=r[`--tgph-${e.rule}`]||"",o=i?i.split(" "):[],n=[(o==null?void 0:o[0])||0,(o==null?void 0:o[1])||0,(o==null?void 0:o[2])||0,(o==null?void 0:o[3])||0];return a==="all"?y({value:t,prop:e}):(e.ordering==="clockwise"?(a==="top"&&(n[j.topLeft]=y({value:t,prop:e}),n[j.topRight]=y({value:t,prop:e})),a==="right"&&(n[j.topRight]=y({value:t,prop:e}),n[j.bottomRight]=y({value:t,prop:e})),a==="bottom"&&(n[j.bottomRight]=y({value:t,prop:e}),n[j.bottomLeft]=y({value:t,prop:e})),a==="left"&&(n[j.bottomLeft]=y({value:t,prop:e}),n[j.topLeft]=y({value:t,prop:e})),(a==="topLeft"||a==="topRight"||a==="bottomRight"||a==="bottomLeft")&&(n[j[a]]=y({value:t,prop:e}))):(a==="x"&&(n[$.left]=y({value:t,prop:e}),n[$.right]=y({value:t,prop:e})),a==="y"&&(n[$.top]=y({value:t,prop:e}),n[$.bottom]=y({value:t,prop:e})),(a==="top"||a==="bottom"||a==="left"||a==="right")&&(n[$[a]]=y({value:t,prop:e}))),n.join(" "))},Y=({prop:r,value:t,cssVariables:e})=>r.direction?xe({cssVariables:e,prop:r,value:t,direction:r.direction,type:r.type}):y({value:t,prop:r}),re=({props:r,ref:t,propsMap:e})=>{if(!t.current)return;const a={};Object.entries(r).forEach(([i,o])=>{const n=e[i];n&&(typeof o=="string"||typeof o=="boolean"?a[`--tgph-${n.rule}`]=Y({prop:n,key:i,value:o,cssVariables:a}):ve(o)&&me(o).forEach((l,s)=>{l&&(a[`--tgph-${n.rule}-${S[s]}`]=Y({prop:n,key:i,value:l,cssVariables:a}))})),Object.entries(a).forEach(([l,s])=>{t.current&&t.current.style.setProperty(l,s)})})},K={display:{rule:"display",type:"block-display",valueType:"static"},h:{rule:"height",type:"spacing"},w:{rule:"width",type:"spacing"},maxH:{rule:"max-height",type:"spacing"},maxW:{rule:"max-width",type:"spacing"},p:{rule:"padding",type:"spacing",direction:"all"},m:{rule:"margin",type:"spacing",direction:"all"},pt:{rule:"padding",type:"spacing",direction:"top"},pl:{rule:"padding",type:"spacing",direction:"left"},pb:{rule:"padding",type:"spacing",direction:"bottom"},pr:{rule:"padding",type:"spacing",direction:"right"},px:{rule:"padding",type:"spacing",direction:"x"},py:{rule:"padding",type:"spacing",direction:"y"},mt:{rule:"margin",type:"spacing",direction:"top"},ml:{rule:"margin",type:"spacing",direction:"left"},mb:{rule:"margin",type:"spacing",direction:"bottom"},mr:{rule:"margin",type:"spacing",direction:"right"},mx:{rule:"margin",type:"spacing",direction:"x"},my:{rule:"margin",type:"spacing",direction:"y"},bg:{rule:"background-color",type:"color"},rounded:{rule:"border-radius",type:"rounded",direction:"all"},roundedTopLeft:{rule:"border-radius",type:"rounded",direction:"topLeft",ordering:"clockwise"},roundedBottomLeft:{rule:"border-radius",type:"rounded",direction:"bottomLeft",ordering:"clockwise"},roundedBottomRight:{rule:"border-radius",type:"rounded",direction:"bottomRight",ordering:"clockwise"},roundedTopRight:{rule:"border-radius",type:"rounded",direction:"topRight",ordering:"clockwise"},roundedTop:{rule:"border-radius",type:"rounded",direction:"top",ordering:"clockwise"},roundedBottom:{rule:"border-radius",type:"rounded",direction:"bottom",ordering:"clockwise"},roundedLeft:{rule:"border-radius",type:"rounded",direction:"left",ordering:"clockwise"},roundedRight:{rule:"border-radius",type:"rounded",direction:"right",ordering:"clockwise"},border:{rule:"border-width",type:"spacing",direction:"all",default:"px"},borderTop:{rule:"border-width",type:"spacing",direction:"top",default:"px"},borderLeft:{rule:"border-width",type:"spacing",direction:"left",default:"px"},borderBottom:{rule:"border-width",type:"spacing",direction:"bottom",default:"px"},borderRight:{rule:"border-width",type:"spacing",direction:"right",default:"px"},borderX:{rule:"border-width",type:"spacing",direction:"x",default:"px"},borderY:{rule:"border-width",type:"spacing",direction:"y",default:"px"},borderColor:{rule:"border-color",type:"color",default:"gray-4"},borderStyle:{rule:"border-style",type:"border-style",default:"solid"},shadow:{rule:"box-shadow",type:"shadow"}},we=({as:r,className:t,tgphRef:e,...a})=>{const i=r||"div",o=u.useRef(null),n=te(e,o),l=u.useMemo(()=>{const s={borderColor:!0,...a};return Object.keys(s).reduce((d,p)=>(Object.keys(K).some(g=>g===p)?d.box[p]=s[p]:d.rest[p]=s[p],d),{box:{},rest:{}})},[a]);return u.useLayoutEffect(()=>{re({props:l.box,ref:o,propsMap:K})},[l.box]),c.jsx(i,{className:_("tgph-box",t),ref:n,...l.rest})},X={display:{rule:"display",type:"flex-display",valueType:"static"},direction:{rule:"flex-direction",type:"flex-direction",valueType:"static"},align:{rule:"align-items",type:"align-items",valueType:"static"},justify:{rule:"justify-content",type:"justify-content",valueType:"static"},wrap:{rule:"flex-wrap",type:"flex-wrap",valueType:"static"},gap:{rule:"gap",type:"spacing",valueType:"variable"}},je=({className:r,tgphRef:t,...e})=>{const a=u.useRef(null),i=te(t,a),o=u.useMemo(()=>Object.keys(e).reduce((n,l)=>(Object.keys(X).some(s=>s===l)?n.stack[l]=e[l]:n.rest[l]=e[l],n),{stack:{},rest:{}}),[e]);return u.useLayoutEffect(()=>{re({props:o.stack,ref:a,propsMap:X})},[o.stack,i]),c.jsx(we,{className:_("tgph-stack",r),tgphRef:i,...o.rest})},Re={solid:{gray:"bg-gray-9 hover:bg-gray-10 focus:bg-gray-11 data-[tgph-button-active=true]:!bg-gray-11",red:"bg-red-9 hover:bg-red-10 focus:bg-red-11 data-[tgph-button-active=true]:!bg-red-11",accent:"bg-accent-9 hover:bg-accent-10 focus:bg-accent-11 data-[tgph-button-active=true]:!bg-accent-11",green:"bg-green-9 hover:bg-green-10 focus:bg-green-11 data-[tgph-button-active=true]:!bg-green-11",blue:"bg-blue-9 hover:bg-blue-10 focus:bg-blue-11 data-[tgph-button-active=true]:!bg-blue-11",yellow:"bg-yellow-9 hover:bg-yellow-10 focus:bg-yellow-11 data-[tgph-button-active=true]:!bg-yellow-11",purple:"bg-purple-9 hover:bg-purple-10 focus:bg-purple-11 data-[tgph-button-active=true]:!bg-purple-11",disabled:"bg-gray-2"},soft:{gray:"bg-gray-3 hover:bg-gray-4 focus:bg-gray-5 data-[tgph-button-active=true]:!bg-gray-5",red:"bg-red-3 hover:bg-red-4 focus:bg-red-5 data-[tgph-button-active=true]:!bg-red-5",accent:"bg-accent-3 hover:bg-accent-4 focus:bg-accent-6 data-[tgph-button-active=true]:!bg-accent-6",green:"bg-green-3 hover:bg-green-4 focus:bg-green-5 data-[tgph-button-active=true]:!bg-green-5",blue:"bg-blue-3 hover:bg-blue-4 focus:bg-blue-5 data-[tgph-button-active=true]:!bg-blue-5",yellow:"bg-yellow-3 hover:bg-yellow-4 focus:bg-yellow-5 data-[tgph-button-active=true]:!bg-yellow-5",purple:"bg-purple-3 hover:bg-purple-4 focus:bg-purple-5 data-[tgph-button-active=true]:!bg-purple-5",disabled:"bg-gray-2"},outline:{gray:"bg-transparent 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",red:"bg-transparent 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",accent:"bg-transparent 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",green:"bg-transparent 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",blue:"bg-transparent 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",yellow:"bg-transparent 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",purple:"bg-transparent 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",disabled:"bg-gray-2"},ghost:{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",red:"bg-transparent hover:bg-red-3 focus:bg-red-4 data-[tgph-button-active=true]:!bg-red-4",accent:"bg-transparent hover:bg-accent-3 focus:bg-accent-4 data-[tgph-button-active=true]:!bg-accent-4",green:"bg-transparent hover:bg-green-3 focus:bg-green-4 data-[tgph-button-active=true]:!bg-green-4",blue:"bg-transparent hover:bg-blue-3 focus:bg-blue-4 data-[tgph-button-active=true]:!bg-blue-4",yellow:"bg-transparent hover:bg-yellow-3 focus:bg-yellow-4 data-[tgph-button-active=true]:!bg-yellow-4",purple:"bg-transparent hover:bg-purple-3 focus:bg-purple-4 data-[tgph-button-active=true]:!bg-purple-4",disabled:"bg-transparent"}},E={default:{1:{w:"auto",h:"6",gap:"1",px:"2"},2:{w:"auto",h:"8",gap:"2",px:"3"},3:{w:"auto",h:"10",gap:"3",px:"4"}},"icon-only":{1:{w:"6",h:"6",gap:"0",px:"0"},2:{w:"8",h:"8",gap:"0",px:"0"},3:{w:"10",h:"10",gap:"0",px:"0"}}},ke={1:"1",2:"2",3:"3"},Ce={solid:{gray:"white",red:"white",accent:"white",green:"white",blue:"white",yellow:"white",purple:"white",disabled:"disabled"},soft:{gray:"default",red:"red",accent:"accent",green:"green",blue:"blue",yellow:"yellow",purple:"purple",disabled:"disabled"},outline:{gray:"default",red:"red",accent:"accent",green:"green",blue:"blue",yellow:"yellow",purple:"purple",disabled:"disabled"},ghost:{gray:"gray",red:"red",accent:"accent",green:"green",blue:"blue",yellow:"yellow",purple:"purple",disabled:"disabled"}},Te={1:"1",2:"2",3:"3"},Le={solid:{gray:"white",red:"white",accent:"white",green:"white",blue:"white",yellow:"white",purple:"white",disabled:"disabled"},soft:{accent:"accent",gray:"gray",red:"red",green:"green",blue:"blue",yellow:"yellow",purple:"purple",disabled:"disabled"},outline:{accent:"accent",gray:"gray",red:"red",green:"green",blue:"blue",yellow:"yellow",purple:"purple",disabled:"disabled"},ghost:{accent:"accent",gray:"default",red:"red",green:"green",blue:"blue",yellow:"yellow",purple:"purple",disabled:"disabled"}},Se={default:"secondary","icon-only":"primary"},B=u.createContext({variant:"solid",size:"2",color:"gray",state:"default",layout:"default",active:!1}),oe=({as:r,variant:t="solid",size:e="2",color:a="gray",state:i="default",active:o=!1,disabled:n,className:l,...s})=>{const d=n?"disabled":i,p=d==="disabled"?"disabled":a,g=u.useMemo(()=>{var m;const b=u.Children.toArray(s==null?void 0:s.children);if((b==null?void 0:b.length)===1&&u.isValidElement(b[0])){const h=b[0];if((m=h==null?void 0:h.props)!=null&&m.icon)return"icon-only"}return"default"},[s==null?void 0:s.children]);return c.jsx(B.Provider,{value:{variant:t,size:e,color:p,state:d,layout:g,active:o},children:c.jsx(je,{as:r||"button",className:_("appearance-none border-0 cursor-pointer bg-none box-border [font-family:inherit]","transition-colors no-underline",d==="disabled"&&"cursor-not-allowed",Re[t][p],E[g][e],l),h:E[g][e].h,w:E[g][e].w,gap:E[g][e].gap,px:E[g][e].px,display:"inline-flex",align:"center",justify:"center",rounded:"3","data-tgph-button":!0,"data-tgph-button-layout":g,"data-tgph-button-active":o,disabled:n,...s})})},z=({size:r,color:t,variant:e,icon:a,alt:i,"aria-hidden":o,...n})=>{const l=u.useContext(B),s={size:r??Te[l.size],color:t??Le[l.variant][l.color],variant:e??Se[l.layout]};return c.jsx(k.Icon,{icon:a,"data-button-icon":!0,...i?{alt:i}:{"aria-hidden":o},...s,...n})},ae=({as:r,color:t,size:e,weight:a="medium",className:i,...o})=>{const n=u.useContext(B);return c.jsx(P.Text,{as:r||"span",color:t??Ce[n.variant][n.color],size:e??ke[n.size],weight:a,className:_("no-underline whitespace-nowrap",i),internal_optionalAs:!0,"data-button-text":!0,...o})},ne=({leadingIcon:r,trailingIcon:t,icon:e,children:a,...i})=>{const o=r||e;return c.jsxs(oe,{...i,children:[o&&c.jsx(z,{...o}),a&&c.jsx(ae,{children:a}),t&&c.jsx(z,{...t})]})};Object.assign(ne,{Root:oe,Icon:z,Text:ae});const M=ne,O=["sm","md","lg","xl","2xl"],Oe=r=>{const t=[];let e=null;for(let a=0;a<O.length;a++){const i=O[a];if(r[i])e=r[i],t.push(e);else if(e!==null)t.push(e);else{let o=null;for(let n=a+1;n<O.length;n++)if(r[O[n]]){o=r[O[n]];break}if(o!==null){for(let n=0;n<=a;n++)t.push(o);e=o}}}return t},_e=r=>typeof r=="object"&&(r.sm||r.md||r.lg||r.xl||r["2xl"]),f=({value:r,prop:t})=>{if(!r)return"";if(t.valueType==="static")return r.toString();const e=t.type==="color"?"":`-${t.type}`;return r===!0?`var(--tgph${e}-${t.default})`:`var(--tgph${e}-${r})`},V={top:0,right:1,bottom:2,left:3},R={topLeft:0,topRight:1,bottomRight:2,bottomLeft:3},Ie=({cssVariables:r,value:t,prop:e,direction:a="all"})=>{const i=r[`--tgph-${e.rule}`]||"",o=i?i.split(" "):[],n=[(o==null?void 0:o[0])||0,(o==null?void 0:o[1])||0,(o==null?void 0:o[2])||0,(o==null?void 0:o[3])||0];return a==="all"?f({value:t,prop:e}):(e.ordering==="clockwise"?(a==="top"&&(n[R.topLeft]=f({value:t,prop:e}),n[R.topRight]=f({value:t,prop:e})),a==="right"&&(n[R.topRight]=f({value:t,prop:e}),n[R.bottomRight]=f({value:t,prop:e})),a==="bottom"&&(n[R.bottomRight]=f({value:t,prop:e}),n[R.bottomLeft]=f({value:t,prop:e})),a==="left"&&(n[R.bottomLeft]=f({value:t,prop:e}),n[R.topLeft]=f({value:t,prop:e})),(a==="topLeft"||a==="topRight"||a==="bottomRight"||a==="bottomLeft")&&(n[R[a]]=f({value:t,prop:e}))):(a==="x"&&(n[V.left]=f({value:t,prop:e}),n[V.right]=f({value:t,prop:e})),a==="y"&&(n[V.top]=f({value:t,prop:e}),n[V.bottom]=f({value:t,prop:e})),(a==="top"||a==="bottom"||a==="left"||a==="right")&&(n[V[a]]=f({value:t,prop:e}))),n.join(" "))},U=({prop:r,value:t,cssVariables:e})=>r.direction?Ie({cssVariables:e,prop:r,value:t,direction:r.direction,type:r.type}):f({value:t,prop:r}),ie=({props:r,ref:t,propsMap:e})=>{if(!t.current)return;const a={};Object.entries(r).forEach(([i,o])=>{const n=e[i];n&&(typeof o=="string"||typeof o=="boolean"?a[`--tgph-${n.rule}`]=U({prop:n,key:i,value:o,cssVariables:a}):_e(o)&&Oe(o).forEach((l,s)=>{l&&(a[`--tgph-${n.rule}-${O[s]}`]=U({prop:n,key:i,value:l,cssVariables:a}))})),Object.entries(a).forEach(([l,s])=>{t.current&&t.current.style.setProperty(l,s)})})},W={display:{rule:"display",type:"block-display",valueType:"static"},h:{rule:"height",type:"spacing"},w:{rule:"width",type:"spacing"},maxH:{rule:"max-height",type:"spacing"},maxW:{rule:"max-width",type:"spacing"},p:{rule:"padding",type:"spacing",direction:"all"},m:{rule:"margin",type:"spacing",direction:"all"},pt:{rule:"padding",type:"spacing",direction:"top"},pl:{rule:"padding",type:"spacing",direction:"left"},pb:{rule:"padding",type:"spacing",direction:"bottom"},pr:{rule:"padding",type:"spacing",direction:"right"},px:{rule:"padding",type:"spacing",direction:"x"},py:{rule:"padding",type:"spacing",direction:"y"},mt:{rule:"margin",type:"spacing",direction:"top"},ml:{rule:"margin",type:"spacing",direction:"left"},mb:{rule:"margin",type:"spacing",direction:"bottom"},mr:{rule:"margin",type:"spacing",direction:"right"},mx:{rule:"margin",type:"spacing",direction:"x"},my:{rule:"margin",type:"spacing",direction:"y"},bg:{rule:"background-color",type:"color"},rounded:{rule:"border-radius",type:"rounded",direction:"all"},roundedTopLeft:{rule:"border-radius",type:"rounded",direction:"topLeft",ordering:"clockwise"},roundedBottomLeft:{rule:"border-radius",type:"rounded",direction:"bottomLeft",ordering:"clockwise"},roundedBottomRight:{rule:"border-radius",type:"rounded",direction:"bottomRight",ordering:"clockwise"},roundedTopRight:{rule:"border-radius",type:"rounded",direction:"topRight",ordering:"clockwise"},roundedTop:{rule:"border-radius",type:"rounded",direction:"top",ordering:"clockwise"},roundedBottom:{rule:"border-radius",type:"rounded",direction:"bottom",ordering:"clockwise"},roundedLeft:{rule:"border-radius",type:"rounded",direction:"left",ordering:"clockwise"},roundedRight:{rule:"border-radius",type:"rounded",direction:"right",ordering:"clockwise"},border:{rule:"border-width",type:"spacing",direction:"all",default:"px"},borderTop:{rule:"border-width",type:"spacing",direction:"top",default:"px"},borderLeft:{rule:"border-width",type:"spacing",direction:"left",default:"px"},borderBottom:{rule:"border-width",type:"spacing",direction:"bottom",default:"px"},borderRight:{rule:"border-width",type:"spacing",direction:"right",default:"px"},borderX:{rule:"border-width",type:"spacing",direction:"x",default:"px"},borderY:{rule:"border-width",type:"spacing",direction:"y",default:"px"},borderColor:{rule:"border-color",type:"color",default:"gray-4"},borderStyle:{rule:"border-style",type:"border-style",default:"solid"},shadow:{rule:"box-shadow",type:"shadow"}},F=({as:r,className:t,tgphRef:e,...a})=>{const i=r||"div",o=u.useRef(null),n=q.useComposedRefs(e,o),l=u.useMemo(()=>{const s={borderColor:!0,...a};return Object.keys(s).reduce((d,p)=>(Object.keys(W).some(g=>g===p)?d.box[p]=s[p]:d.rest[p]=s[p],d),{box:{},rest:{}})},[a]);return u.useLayoutEffect(()=>{ie({props:l.box,ref:o,propsMap:W})},[l.box]),c.jsx(i,{className:_("tgph-box",t),ref:n,...l.rest})},G={display:{rule:"display",type:"flex-display",valueType:"static"},direction:{rule:"flex-direction",type:"flex-direction",valueType:"static"},align:{rule:"align-items",type:"align-items",valueType:"static"},justify:{rule:"justify-content",type:"justify-content",valueType:"static"},wrap:{rule:"flex-wrap",type:"flex-wrap",valueType:"static"},gap:{rule:"gap",type:"spacing",valueType:"variable"}},L=({className:r,tgphRef:t,...e})=>{const a=u.useRef(null),i=q.useComposedRefs(t,a),o=u.useMemo(()=>Object.keys(e).reduce((n,l)=>(Object.keys(G).some(s=>s===l)?n.stack[l]=e[l]:n.rest[l]=e[l],n),{stack:{},rest:{}}),[e]);return u.useLayoutEffect(()=>{ie({props:o.stack,ref:a,propsMap:G})},[o.stack,i]),c.jsx(F,{className:_("tgph-stack",r),tgphRef:i,...o.rest})},A=r=>Array.isArray(r),H=r=>typeof r=="object"&&!Array.isArray(r),$e=["ArrowDown","PageUp","Home"],Ee=["ArrowUp","PageDown","End"],w=u.createContext({onValueChange:()=>{},contentId:"",triggerId:"",open:!1,setOpen:()=>{},onOpenToggle:()=>{}}),Ve=({modal:r=!0,closeOnSelect:t=!0,open:e,onOpenChange:a,defaultOpen:i,value:o,onValueChange:n,errored:l,placeholder:s,layout:d,...p})=>{const g=u.useId(),m=u.useId(),b=u.useRef(null),h=u.useRef(null),v=u.useRef(null),[C,I]=u.useState(""),[T=!1,Q]=pe.useControllableState({prop:e,defaultProp:i,onChange:a}),ce=u.useCallback(()=>{Q(ue=>!ue)},[Q]);return u.useEffect(()=>{T||I("")},[T]),c.jsx(w.Provider,{value:{contentId:g,triggerId:m,value:o,onValueChange:n,placeholder:s,open:T,setOpen:Q,onOpenToggle:ce,closeOnSelect:t,searchQuery:C,setSearchQuery:I,triggerRef:b,searchRef:h,contentRef:v,errored:l,layout:d},children:c.jsx(D.Menu.Root,{open:T,onOpenChange:Q,modal:r,...p})})},Ae=({label:r,value:t,...e})=>{const a=u.useContext(w);return c.jsxs(N.Tag.Root,{size:"1",as:x.motion.span,initial:{opacity:0,transform:"scale(0.8)"},animate:{opacity:1,transform:"scale(1)"},exit:{opacity:0,transform:"scale(0.5)"},layout:"position",transition:{duration:.2,type:"spring",bounce:0,layout:{duration:.05,type:"spring",bounce:0}},...e,children:[c.jsx(N.Tag.Text,{children:r||t}),c.jsx(N.Tag.Button,{as:"span",role:"button",icon:{icon:k.Lucide.X,alt:`Remove ${t}`},onClick:i=>{const o=a.onValueChange,l=a.value.filter(s=>s.value!==t);o(l),i.stopPropagation()}})]})},Me=({size:r="1"})=>{var a,i;const t=u.useContext(w),e=r==="1"?"6":r==="2"?"8":"10";if(t.value&&A(t.value)){const o=t.value,n=t.layout||"truncate",l=o.length-2,s=l.toString().split("");return o.length===0?c.jsx(L,{h:e,align:"center",children:c.jsx(M.Text,{color:"gray",children:t.placeholder})}):c.jsxs(L,{gap:"1",w:"full",my:"1",wrap:n==="wrap"?"wrap":"nowrap",align:"center",style:{position:"relative",flexGrow:1},children:[c.jsx(x.AnimatePresence,{initial:!1,mode:"popLayout",children:o.map((d,p)=>{if(n==="truncate"&&p<=1||n==="wrap")return c.jsx(J.RefToTgphRef,{children:c.jsx(Ae,{...d})},d.value)})}),c.jsx(x.AnimatePresence,{children:n==="truncate"&&o.length>2&&c.jsx(L,{as:x.motion.div,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2,type:"spring",bounce:0},h:"full",pr:"1",pl:"8",align:"center","aria-label":`${l} more selected`,style:{position:"absolute",right:0,backgroundImage:"linear-gradient(to left, var(--tgph-surface-1) 0 60%, transparent 90% 100%)"},children:c.jsxs(P.Text,{as:"span",size:"1",style:{whiteSpace:"nowrap"},children:["+",c.jsx(x.AnimatePresence,{mode:"wait",initial:!1,children:s.map(d=>c.jsx(F,{as:x.motion.span,w:"2",display:"inline-block",initial:{opacity:.5},animate:{opacity:1},exit:{opacity:.5},transition:{duration:.1,type:"spring",bounce:0},children:d},d))})," ","more"]})},"truncated text")})]})}return c.jsx(L,{h:e,align:"center",my:"1",children:c.jsx(M.Text,{color:t.value?"default":"gray",children:((a=t==null?void 0:t.value)==null?void 0:a.label)||((i=t==null?void 0:t.value)==null?void 0:i.value)||t.placeholder})})},Qe=({size:r="1",...t})=>{const e=u.useContext(w),a=u.useCallback(()=>{var i,o,n;return e.value?H(e.value)?((i=e.value)==null?void 0:i.label)||((o=e.value)==null?void 0:o.value)||e.placeholder:((n=e.value)==null?void 0:n.map(l=>l.label).join(", "))||e.placeholder:e.placeholder},[e.value,e.placeholder]);return c.jsx(D.Menu.Anchor,{...t,asChild:!0,onClick:i=>{var o,n;i.preventDefault(),e.onOpenToggle(),(n=(o=e.triggerRef)==null?void 0:o.current)==null||n.focus()},onKeyDown:i=>{i.key==="ArrowDown"&&e.onOpenToggle(),(i.key==="Enter"||i.key===" ")&&i.preventDefault()},tgphRef:e.triggerRef,children:c.jsx(J.RefToTgphRef,{children:c.jsxs(M.Root,{id:e.triggerId,variant:"outline",w:"full",h:"full",color:e.errored?"red":"gray",justify:"space-between",role:"combobox","aria-label":a(),"aria-controls":e.contentId,"aria-expanded":e.open,"aria-haspopup":"listbox","data-tgph-combobox-trigger":!0,"data-tgph-comobox-trigger-open":e.open,children:[c.jsx(Me,{size:r}),c.jsx(M.Icon,{as:x.motion.div,icon:k.Lucide.ChevronDown,animate:{rotate:e.open?"180deg":"0deg"},transition:{duration:.2,type:"spring",bounce:0},"aria-hidden":!0})]})})})},Pe=({tgphRef:r,style:t,children:e,...a})=>{const i=u.useContext(w),o=u.useRef(!1),n=q.useComposedRefs(r,i.contentRef),l=u.useRef(null),[s,d]=u.useState(0),[p,g]=u.useState(!1),m=u.useCallback(b=>{const h=b.getBoundingClientRect();h&&d(h.height),p||g(!0)},[p]);return u.useEffect(()=>{const b=new ResizeObserver(h=>{for(const v of h){const C=v.target;m(C)}});return l.current&&p&&b.observe(l.current),()=>b.disconnect()},[p,m]),u.useEffect(()=>{p===!0&&i.open===!1&&g(!1)},[i.open,p]),c.jsx(D.Menu.Content,{as:x.motion.div,mt:"1",initial:{opacity:0,scale:.8,height:"auto"},animate:{opacity:1,scale:1,height:s?`${s}px`:"auto"},exit:{opacity:0,scale:0},transition:{duration:.2,type:"spring",bounce:0},onInteractOutside:()=>{i.setOpen(!1),o.current=!0},onAnimationComplete:()=>{if(!p&&l){const b=l.current;m(b)}},onCloseAutoFocus:b=>{var h,v;o.current||(v=(h=i.triggerRef)==null?void 0:h.current)==null||v.focus(),o.current=!1,b.preventDefault()},onKeyDown:b=>{var v,C,I,T;const h=(C=(v=i.contentRef)==null?void 0:v.current)==null?void 0:C.querySelectorAll("[data-tgph-combobox-option]");document.activeElement===(h==null?void 0:h[0])&&Ee.includes(b.key)&&((T=(I=i.searchRef)==null?void 0:I.current)==null||T.focus()),b.key==="Escape"&&i.setOpen(!1)},style:{width:"var(--tgph-comobobox-trigger-width)",...t,"--tgph-comobobox-content-transform-origin":"var(--radix-popper-transform-origin)","--tgph-combobox-content-available-width":"var(--radix-popper-available-width)","--tgph-combobox-content-available-height":"calc(var(--radix-popper-available-height) - var(--tgph-spacing-8))","--tgph-comobobox-trigger-width":"var(--radix-popper-anchor-width)","--tgph-combobox-trigger-height":"var(--radix-popper-anchor-height)"},...a,tgphRef:n,"data-tgph-combobox-content":!0,"data-tgph-combobox-content-open":p,role:void 0,"aria-orientation":void 0,children:c.jsx(L,{direction:"column",gap:"1",tgphRef:l,children:e})})},qe=({...r})=>{const t=u.useContext(w);return c.jsx(L,{id:t.contentId,direction:"column",gap:"1",style:{overflowY:"auto"},role:"listbox",...r})},le=({value:r,label:t,selected:e,onSelect:a,...i})=>{const o=u.useContext(w),[n,l]=u.useState(!1),s=o.value??[],d=A(s)?!o.searchQuery||r.includes(o.searchQuery.toLowerCase()):!o.searchQuery||r.toLowerCase().includes(o.searchQuery.toLowerCase()),p=A(s)?s.some(g=>g.value===r):s.value===r;if(d)return c.jsx(D.Menu.Button,{onSelect:g=>{var m,b;if(!o.closeOnSelect&&g.preventDefault(),a)return a(g);if(A(s)){const h=o.onValueChange,v=p?s.filter(C=>C.value!==r):[...s,{value:r,label:t}];h(v)}else if(H(s)){const h=o.onValueChange;h({value:r,label:t})}(b=(m=o.triggerRef)==null?void 0:m.current)==null||b.focus()},selected:e===null?null:e??p,onFocus:()=>l(!0),onBlur:()=>l(!1),role:"option","aria-selected":p?"true":"false","data-tgph-combobox-option":!0,"data-tgph-combobox-option-focused":n,"data-tgph-combobox-option-value":r,"data-tgph-combobox-option-label":t,...i,children:t||r})},De=({label:r="Search",placeholder:t="Search",tgphRef:e,...a})=>{var l;const i=u.useId(),o=u.useContext(w),n=q.useComposedRefs(e,o.searchRef);return u.useEffect(()=>{var p;const s=g=>{var m,b;$e.includes(g.key)&&((b=(m=o.contentRef)==null?void 0:m.current)==null||b.focus({preventScroll:!0})),g.key==="Escape"&&o.setOpen(!1),g.stopPropagation()},d=(p=o.searchRef)==null?void 0:p.current;if(d)return d.addEventListener("keydown",s),()=>{d.removeEventListener("keydown",s)}},[o]),c.jsxs(F,{borderBottom:!0,px:"1",pb:"1",children:[c.jsx(be.Root,{children:c.jsx(P.Text,{as:"label",htmlFor:i,children:r})}),c.jsx(ge.Input,{id:i,variant:"ghost",placeholder:t,value:o.searchQuery,onChange:s=>{var d;(d=o==null?void 0:o.setSearchQuery)==null||d.call(o,s.target.value)},LeadingComponent:c.jsx(k.Icon,{icon:k.Lucide.Search,alt:"Search Icon"}),TrailingComponent:o!=null&&o.searchQuery&&((l=o==null?void 0:o.searchQuery)==null?void 0:l.length)>0?c.jsx(M,{as:x.motion.button,initial:{opacity:0},animate:{opacity:1},transition:{duration:.2,type:"spring",bounce:0},variant:"ghost",color:"gray",icon:{icon:k.Lucide.X,alt:"Clear Search Query"},onClick:()=>{var s;return(s=o.setSearchQuery)==null?void 0:s.call(o,"")}}):null,autoFocus:!0,"data-tgph-combobox-search":!0,"aria-controls":o.contentId,...a,tgphRef:n})]})},Ne=({icon:r={icon:k.Lucide.Search,alt:"Search Icon"},message:t="No results found",children:e,...a})=>{const i=u.useContext(w),[o,n]=u.useState(!1);if(u.useEffect(()=>{var s,d;const l=(d=(s=i.contentRef)==null?void 0:s.current)==null?void 0:d.querySelectorAll("[data-tgph-combobox-option]");(l==null?void 0:l.length)===0?n(!0):n(!1)},[i.searchQuery,i.contentRef,e]),o)return c.jsxs(L,{as:x.motion.div,initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},transition:{duration:.2,type:"spring",bounce:0},gap:"1",align:"center",justify:"center",w:"full",my:"8","data-tgph-combobox-empty":!0,...a,children:[r===null?c.jsx(c.Fragment,{}):c.jsx(k.Icon,{...r}),t===null?c.jsx(c.Fragment,{}):c.jsx(P.Text,{as:"span",children:t})]})},ze=({leadingText:r="Create",values:t,onCreate:e,selected:a=null,...i})=>{const o=u.useContext(w),n=u.useCallback(l=>!t||(t==null?void 0:t.length)===0?!1:t.some(s=>s.value===l),[t]);if(o.searchQuery&&!n(o.searchQuery))return c.jsx(le,{leadingIcon:{icon:k.Lucide.Plus,"aria-hidden":!0},mx:"1",value:o.searchQuery,label:`${r} "${o.searchQuery}"`,selected:a,onSelect:()=>{e&&o.value&&o.searchQuery&&(H(o.value)&&e({value:o.searchQuery}),A(o.value)&&e({value:o.searchQuery}))},...i})},se={};Object.assign(se,{Root:Ve,Trigger:Qe,Content:Pe,Options:qe,Option:le,Search:De,Empty:Ne,Create:ze});exports.Combobox=se;
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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\"]), d = ({\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\" ? d({ value: t, prop: e }) : (e.ordering === \"clockwise\" ? (o === \"top\" && (a[s.topLeft] = d({\n value: t,\n prop: e\n }), a[s.topRight] = d({\n value: t,\n prop: e\n })), o === \"right\" && (a[s.topRight] = d({\n value: t,\n prop: e\n }), a[s.bottomRight] = d({\n value: t,\n prop: e\n })), o === \"bottom\" && (a[s.bottomRight] = d({\n value: t,\n prop: e\n }), a[s.bottomLeft] = d({\n value: t,\n prop: e\n })), o === \"left\" && (a[s.bottomLeft] = d({\n value: t,\n prop: e\n }), a[s.topLeft] = d({\n value: t,\n prop: e\n })), (o === \"topLeft\" || o === \"topRight\" || o === \"bottomRight\" || o === \"bottomLeft\") && (a[s[o]] = d({\n value: t,\n prop: e\n }))) : (o === \"x\" && (a[w.left] = d({\n value: t,\n prop: e\n }), a[w.right] = d({\n value: t,\n prop: e\n })), o === \"y\" && (a[w.top] = d({\n value: t,\n prop: e\n }), a[w.bottom] = d({\n value: t,\n prop: e\n })), (o === \"top\" || o === \"bottom\" || o === \"left\" || o === \"right\") && (a[w[o]] = d({\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}) : d({ 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, p) => {\n u && (o[`--tgph-${a.rule}-${y[p]}`] = L({\n prop: a,\n key: n,\n value: u,\n cssVariables: o\n }));\n })), Object.entries(o).forEach(([u, p]) => {\n t.current && t.current.style.setProperty(u, p);\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 p = { borderColor: !0, ...o };\n return Object.keys(p).reduce(\n (b, h) => (Object.keys(j).some((c) => c === h) ? b.box[h] = p[h] : b.rest[h] = p[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((p) => p === 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-transparent 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-transparent 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-transparent 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-transparent 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-transparent 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-transparent 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-transparent 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 ...p\n}) => {\n const b = a ? \"disabled\" : n, h = b === \"disabled\" ? \"disabled\" : o, c = i.useMemo(() => {\n var R;\n const f = i.Children.toArray(p == null ? void 0 : p.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 }, [p == null ? void 0 : p.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 ...p\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), p = {\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 ...p,\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\"];\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 as=\"span\"\n role=\"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 event.stopPropagation();\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\">\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 if (event.key === \"ArrowDown\") {\n context.onOpenToggle();\n }\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n }\n }}\n tgphRef={context.triggerRef}\n >\n <RefToTgphRef>\n <TelegraphButton.Root\n id={context.triggerId}\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 height: height ? `${height}px` : \"auto\",\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 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 }}\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 || value.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 if (isVisible) {\n return (\n <TelegraphMenu.Button\n onSelect={(event: Event) => {\n !context.closeOnSelect && event.preventDefault();\n\n if (onSelect) {\n return onSelect(event);\n }\n\n if (isMultiSelect(contextValue)) {\n const onValueChange = context.onValueChange as (\n v: Array<Option>,\n ) => 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 // 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 }}\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","d","w","s","D","L","C","u","p","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","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","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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ACF,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,KAAM,UACN,UA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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.tgph :is(.absolute){position:absolute}.tgph :is(.relative){position:relative}.tgph :is(.inline-block){display:inline-block}.tgph :is(.transform){transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.tgph :is(.truncate){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tgph :is(.outline){outline-style:solid}.tgph :is(.filter){filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.tgph :is(.transition){transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}
|