@xploreu/components 0.4.55 → 0.4.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-JJ23STM3.js → chunk-2KFFDZ5P.js} +3 -3
- package/dist/chunk-2KFFDZ5P.js.map +1 -0
- package/dist/chunk-2NCBTTWM.js +3 -0
- package/dist/chunk-2NCBTTWM.js.map +1 -0
- package/dist/chunk-2NNIC4NB.js +3 -0
- package/dist/chunk-2NNIC4NB.js.map +1 -0
- package/dist/chunk-43I5P7JB.js +3 -0
- package/dist/chunk-43I5P7JB.js.map +1 -0
- package/dist/chunk-5Q4R6Z5M.js +3 -0
- package/dist/chunk-5Q4R6Z5M.js.map +1 -0
- package/dist/chunk-6LQPHTO2.js +3 -0
- package/dist/chunk-6LQPHTO2.js.map +1 -0
- package/dist/chunk-6WSQSOV4.js +3 -0
- package/dist/chunk-6WSQSOV4.js.map +1 -0
- package/dist/{chunk-DINAPZUE.js → chunk-BQZZUPER.js} +2 -2
- package/dist/{chunk-DINAPZUE.js.map → chunk-BQZZUPER.js.map} +1 -1
- package/dist/chunk-E4BOBDGV.js +2 -0
- package/dist/chunk-E4BOBDGV.js.map +1 -0
- package/dist/chunk-EBGYML7W.js +2 -0
- package/dist/chunk-EBGYML7W.js.map +1 -0
- package/dist/{chunk-K6RSBXYF.js → chunk-F2ZGZ6G3.js} +2 -2
- package/dist/{chunk-K6RSBXYF.js.map → chunk-F2ZGZ6G3.js.map} +1 -1
- package/dist/{chunk-WTXZCA45.js → chunk-FGSBKFYJ.js} +3 -3
- package/dist/chunk-FGSBKFYJ.js.map +1 -0
- package/dist/chunk-G7HNLKCH.js +3 -0
- package/dist/chunk-G7HNLKCH.js.map +1 -0
- package/dist/chunk-GCIZYR72.js +3 -0
- package/dist/chunk-GCIZYR72.js.map +1 -0
- package/dist/chunk-GHTUBHIO.js +3 -0
- package/dist/chunk-GHTUBHIO.js.map +1 -0
- package/dist/{chunk-66IVKVY6.js → chunk-GOIEA34W.js} +2 -2
- package/dist/{chunk-66IVKVY6.js.map → chunk-GOIEA34W.js.map} +1 -1
- package/dist/{chunk-AL3ZVYUH.js → chunk-GZUWVJP7.js} +3 -3
- package/dist/chunk-GZUWVJP7.js.map +1 -0
- package/dist/chunk-I3TGZ7DI.js +3 -0
- package/dist/chunk-I3TGZ7DI.js.map +1 -0
- package/dist/chunk-JYCPIQKW.js +3 -0
- package/dist/chunk-JYCPIQKW.js.map +1 -0
- package/dist/{chunk-A35CEYDA.js → chunk-K5FYVXYR.js} +3 -3
- package/dist/chunk-K5FYVXYR.js.map +1 -0
- package/dist/chunk-KEX7OQZ2.js +2 -0
- package/dist/chunk-KEX7OQZ2.js.map +1 -0
- package/dist/chunk-KJDNMKKV.js +3 -0
- package/dist/chunk-KJDNMKKV.js.map +1 -0
- package/dist/{chunk-KF67QB2G.js → chunk-KZYTU5SV.js} +3 -3
- package/dist/chunk-KZYTU5SV.js.map +1 -0
- package/dist/{chunk-USRR7WFK.js → chunk-LSSSYICX.js} +3 -3
- package/dist/chunk-LSSSYICX.js.map +1 -0
- package/dist/{chunk-FZ4LL3XX.js → chunk-MOA55NPA.js} +3 -3
- package/dist/chunk-MOA55NPA.js.map +1 -0
- package/dist/{chunk-HRY64DNE.js → chunk-NWJ533YH.js} +2 -2
- package/dist/{chunk-HRY64DNE.js.map → chunk-NWJ533YH.js.map} +1 -1
- package/dist/{chunk-EIL73MRY.js → chunk-OIZP7H2K.js} +3 -3
- package/dist/chunk-OIZP7H2K.js.map +1 -0
- package/dist/{chunk-INX5NJJQ.js → chunk-QTBUHGVG.js} +3 -3
- package/dist/chunk-QTBUHGVG.js.map +1 -0
- package/dist/chunk-RETLPK5Y.js +2 -0
- package/dist/chunk-RETLPK5Y.js.map +1 -0
- package/dist/{chunk-BRWBF2EN.js → chunk-RH7BQGTL.js} +2 -2
- package/dist/{chunk-BRWBF2EN.js.map → chunk-RH7BQGTL.js.map} +1 -1
- package/dist/{chunk-HBP2YXVK.js → chunk-RL4LUMA6.js} +3 -3
- package/dist/chunk-RL4LUMA6.js.map +1 -0
- package/dist/chunk-SOTX2VBK.js +3 -0
- package/dist/chunk-SOTX2VBK.js.map +1 -0
- package/dist/{chunk-HLURRIE7.js → chunk-U7ER42QP.js} +2 -2
- package/dist/{chunk-HLURRIE7.js.map → chunk-U7ER42QP.js.map} +1 -1
- package/dist/{chunk-DCZZMMUP.js → chunk-XQ5TVORG.js} +3 -3
- package/dist/chunk-XQ5TVORG.js.map +1 -0
- package/dist/{chunk-TZ2Y35UH.js → chunk-XTBQ4NE3.js} +3 -3
- package/dist/chunk-XTBQ4NE3.js.map +1 -0
- package/dist/{chunk-G7V3RGOH.js → chunk-YOJIU2AM.js} +3 -3
- package/dist/chunk-YOJIU2AM.js.map +1 -0
- package/dist/chunk-YQ5PPSZY.js +3 -0
- package/dist/chunk-YQ5PPSZY.js.map +1 -0
- package/dist/chunk-YSNZ2GGV.js +2 -0
- package/dist/chunk-YSNZ2GGV.js.map +1 -0
- package/dist/{chunk-2HXZTLBL.js → chunk-ZNYLSNDI.js} +3 -3
- package/dist/chunk-ZNYLSNDI.js.map +1 -0
- package/dist/composites/combobox-chip-outside.d.ts +4 -1
- package/dist/composites/combobox-chip-outside.js +1 -1
- package/dist/composites/combobox-chip.d.ts +4 -1
- package/dist/composites/combobox-chip.js +1 -1
- package/dist/composites/combobox-simple.js +1 -1
- package/dist/composites/filter-combobox.js +1 -1
- package/dist/composites/index.d.ts +2 -1
- package/dist/composites/index.js +1 -1
- package/dist/composites/index.js.map +1 -1
- package/dist/composites/phone-input.js +1 -1
- package/dist/composites/profile-avatar.js +1 -1
- package/dist/form/form-input.js +1 -1
- package/dist/form/index.js +1 -1
- package/dist/icons/accept-rate-filled-icon.d.ts +6 -0
- package/dist/icons/accept-rate-filled-icon.js +2 -0
- package/dist/icons/accept-rate-filled-icon.js.map +1 -0
- package/dist/icons/accept-rate-icon.d.ts +6 -0
- package/dist/icons/accept-rate-icon.js +2 -0
- package/dist/icons/accept-rate-icon.js.map +1 -0
- package/dist/icons/apply-online-filled-icon.d.ts +6 -0
- package/dist/icons/apply-online-filled-icon.js +2 -0
- package/dist/icons/apply-online-filled-icon.js.map +1 -0
- package/dist/icons/apply-online-icon.d.ts +6 -0
- package/dist/icons/apply-online-icon.js +2 -0
- package/dist/icons/apply-online-icon.js.map +1 -0
- package/dist/icons/apply-qr-filled-icon.d.ts +6 -0
- package/dist/icons/apply-qr-filled-icon.js +2 -0
- package/dist/icons/apply-qr-filled-icon.js.map +1 -0
- package/dist/icons/apply-qr-icon.d.ts +6 -0
- package/dist/icons/apply-qr-icon.js +2 -0
- package/dist/icons/apply-qr-icon.js.map +1 -0
- package/dist/icons/call-filled-icon.d.ts +6 -0
- package/dist/icons/call-filled-icon.js +2 -0
- package/dist/icons/call-filled-icon.js.map +1 -0
- package/dist/icons/call-icon.d.ts +6 -0
- package/dist/icons/call-icon.js +2 -0
- package/dist/icons/call-icon.js.map +1 -0
- package/dist/icons/connections-filled-icon.js +1 -1
- package/dist/icons/connections-icon.js +1 -1
- package/dist/icons/face-data-icon.d.ts +6 -0
- package/dist/icons/face-data-icon.js +2 -0
- package/dist/icons/face-data-icon.js.map +1 -0
- package/dist/icons/home-filled-icon.js +1 -1
- package/dist/icons/home-icon.js +1 -1
- package/dist/icons/index.d.ts +10 -0
- package/dist/icons/index.js +1 -1
- package/dist/icons/key-icon.js +1 -1
- package/dist/icons/lanyard-icon.d.ts +6 -0
- package/dist/icons/lanyard-icon.js +2 -0
- package/dist/icons/lanyard-icon.js.map +1 -0
- package/dist/icons/messages-filled-icon.js +1 -1
- package/dist/icons/messages-icon.js +1 -1
- package/dist/icons/news-filled-icon.js +1 -1
- package/dist/icons/news-icon.js +1 -1
- package/dist/icons/notifications-filled-icon.js +1 -1
- package/dist/icons/notifications-icon.js +1 -1
- package/dist/icons/search-filled-icon.js +1 -1
- package/dist/icons/search-icon.js +1 -1
- package/dist/icons/swords-icon.js +1 -1
- package/dist/icons/workspace-filled-icon.js +1 -1
- package/dist/icons/workspace-icon.js +1 -1
- package/dist/icons/xplore-jobs-filled-icon.js +1 -1
- package/dist/icons/xplore-jobs-icon.js +1 -1
- package/dist/primitives/alert-dialog.d.ts +2 -5
- package/dist/primitives/alert-dialog.js +1 -1
- package/dist/primitives/dialog.d.ts +3 -6
- package/dist/primitives/dialog.js +1 -1
- package/dist/primitives/index.d.ts +1 -1
- package/dist/primitives/index.js +1 -1
- package/dist/primitives/sheet.js +1 -1
- package/dist/ui/alert-dialog.js +1 -1
- package/dist/ui/alerter.js +1 -1
- package/dist/ui/combobox.js +1 -1
- package/dist/ui/date-multiple-picker.js +1 -1
- package/dist/ui/date-picker.js +1 -1
- package/dist/ui/date-range-picker.js +1 -1
- package/dist/ui/dialog.js +1 -1
- package/dist/ui/index.js +1 -1
- package/dist/ui/input.js +1 -1
- package/dist/ui/pagination.js +1 -1
- package/dist/ui/sheet.js +1 -1
- package/dist/ui/table.js +1 -1
- package/dist/ui/toast.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-2HXZTLBL.js.map +0 -1
- package/dist/chunk-5FIOROTI.js +0 -3
- package/dist/chunk-5FIOROTI.js.map +0 -1
- package/dist/chunk-6WWKP7KX.js +0 -2
- package/dist/chunk-6WWKP7KX.js.map +0 -1
- package/dist/chunk-A2IRFPYM.js +0 -2
- package/dist/chunk-A2IRFPYM.js.map +0 -1
- package/dist/chunk-A35CEYDA.js.map +0 -1
- package/dist/chunk-AL3ZVYUH.js.map +0 -1
- package/dist/chunk-DCZZMMUP.js.map +0 -1
- package/dist/chunk-DS246N6L.js +0 -3
- package/dist/chunk-DS246N6L.js.map +0 -1
- package/dist/chunk-EIL73MRY.js.map +0 -1
- package/dist/chunk-EIYPBVAD.js +0 -2
- package/dist/chunk-EIYPBVAD.js.map +0 -1
- package/dist/chunk-FZ4LL3XX.js.map +0 -1
- package/dist/chunk-G7V3RGOH.js.map +0 -1
- package/dist/chunk-H56Z2DPY.js +0 -3
- package/dist/chunk-H56Z2DPY.js.map +0 -1
- package/dist/chunk-HBP2YXVK.js.map +0 -1
- package/dist/chunk-INX5NJJQ.js.map +0 -1
- package/dist/chunk-JJ23STM3.js.map +0 -1
- package/dist/chunk-KF67QB2G.js.map +0 -1
- package/dist/chunk-MPT2GZBB.js +0 -2
- package/dist/chunk-MPT2GZBB.js.map +0 -1
- package/dist/chunk-TZ2Y35UH.js.map +0 -1
- package/dist/chunk-U2TLQBAL.js +0 -3
- package/dist/chunk-U2TLQBAL.js.map +0 -1
- package/dist/chunk-USRR7WFK.js.map +0 -1
- package/dist/chunk-WTXZCA45.js.map +0 -1
- package/dist/chunk-WYVGUIHL.js +0 -2
- package/dist/chunk-WYVGUIHL.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {a,j,i,k,l,m,q,s,w,A,x,H}from'./chunk-C5UISTOE.js';import {f,g}from'./chunk-HHG7BSWN.js';import {a as a$1}from'./chunk-Y6TKCAAJ.js';import*as u from'react';import {cn}from'@xploreu/lib/cn';import {useControlledState}from'@xploreu/hooks/use-controlled-state';import {jsxs,jsx,Fragment}from'react/jsx-runtime';function oe({multiple:G=true,inputPlaceholder:j$1="Search...",container:q$1,items:s$1,infiniteScroll:z,isPending:B,taggable:c=false,maxVisible:m$1,className:O,triggerClassName:F,contentClassName:H$1,...b}){let[J,K]=useControlledState({value:b?.inputValue?.toString(),defaultValue:b?.defaultInputValue?.toString(),onChange:b?.onInputValueChange}),[i$1,h]=useControlledState({value:b?.value??[],defaultValue:b?.defaultValue??[],onChange:b?.onValueChange}),[V,I]=u.useState([]),p=u.useRef(new Set);u.useEffect(()=>{let e=new Set(i$1.map(a=>a.value));I(a=>{let l=a.filter(o=>e.has(o.value));return l.length===a.length?a:(p.current=new Set(l.map(o=>o.value)),l)});},[i$1]);let t=J?.toString().trim()??"",v=u.useMemo(()=>t?i$1.some(e=>e.value.toLowerCase()===t.toLowerCase()):false,[t,i$1]),C=u.useMemo(()=>!c||!t?false:!s$1?.some(e=>e.label.toLowerCase()===t.toLowerCase()),[c,t,s$1]),Q=u.useMemo(()=>{let e=[...s$1??[],...V];return C?[...e,{label:t,value:t,tag:true}]:e},[s$1,V,C,t]);return jsxs(a,{...b,behavior:"chip-outside",multiple:true,items:c?Q:s$1,isItemEqualToValue:(e,a)=>e.value===a.value,onValueChange:(e,a)=>{if(c){let l=e.filter(o=>o?.tag===true&&!p.current.has(o.value));if(l.length>0){for(let o of l)p.current.add(o.value);I(o=>[...o,...l]);}}h(G?e:[e[e.length-1]],a);},onInputValueChange:K,children:[jsx(f,{className:cn(a$1(),"h-auto min-h-13 flex flex-wrap items-center gap-1.5 px-3 py-1.5 cursor-text",F,O),children:jsxs(j,{className:cn("contents",m$1!==void 0&&"flex-nowrap overflow-hidden"),children:[jsx(i,{children:e=>{let a=m$1!==void 0?e.slice(0,m$1):e,l$1=m$1!==void 0?e.length-m$1:0;return jsxs(Fragment,{children:[a?.map(o=>jsxs(k,{className:cn("max-w-full min-w-0",m$1!==void 0&&"shrink"),children:[o?.image&&jsx("img",{src:o.image,alt:o?.label||"",className:"size-4 rounded-full object-cover shrink-0 mr-1"}),jsx("span",{className:"truncate",title:o?.label||"",children:o?.label||""}),jsx(l,{})]},o?.value||"")),l$1>0&&jsxs(k,{className:"shrink-0",children:["+",l$1]})]})}}),jsx(g,{render:jsx("input",{className:"flex-1 min-w-[80px] bg-transparent outline-none text-body-regular-1 text-text-primary placeholder:text-text-placeholder",placeholder:i$1.length===0?j$1:void 0})})]})}),jsxs(m,{container:q$1,className:H$1,children:[jsx(q,{status:B||s$1===void 0?"pending":s$1?.length===0&&!C?"empty":null}),jsxs(s,{children:[s$1?.map(e=>jsxs(w,{value:e,children:[e.image!==void 0&&jsx(A,{src:e.image,fallbackText:[e.label?.[0],e.label?.split(" ")?.[1]?.[0]].filter(Boolean).join(""),imageAlt:e.label}),jsx(x,{children:e.label})]},e.value)),C&&jsxs(w,{value:{label:t,value:t,tag:true},children:[!v&&jsxs("span",{className:"text-text-secondary text-body-medium-3 col-start-2",children:["Create: ",t]}),v&&jsx(x,{children:t})]}),jsx(H,{...z})]})]})]})}export{oe as a};//# sourceMappingURL=chunk-RETLPK5Y.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-RETLPK5Y.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/composites/combobox-chip.tsx"],"names":["ComboboxChip","multiple","inputPlaceholder","container","items","infiniteScroll","isPending","taggable","maxVisible","className","triggerClassName","contentClassName","props","inputValue","setInputValue","useControlledState","value","setValue","createdItems","setCreatedItems","createdValuesRef","currentValues","v","prev","next","item","trimmedInput","isInputSelected","isCreatingItem","combinedItems","base","jsxs","Combobox","a","b","eventDetails","newTags","tag","jsx","ComboboxInputGroup","cn","inputVariants","ComboboxChips","ComboboxValue","visible","overflow","Fragment","ComboboxChipRemove","ComboboxInput","ComboboxPopup","ComboboxStatus","ComboboxList","ComboboxItem","ComboboxItemAvatar","ComboboxItemTitle","ComboboxInfiniteScroll"],"mappings":"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","file":"chunk-RETLPK5Y.js","sourcesContent":["import * as React from \"react\"\r\n\r\nimport { cn } from \"@xploreu/lib/cn\"\r\nimport {\r\n ComboboxInput as ComboboxInputPrimitive,\r\n ComboboxInputGroup,\r\n} from \"../primitives/combobox\"\r\nimport {\r\n Combobox,\r\n ComboboxChip as ComboboxChipUI,\r\n ComboboxChipRemove,\r\n ComboboxChips,\r\n ComboboxInfiniteScroll,\r\n ComboboxItem,\r\n ComboboxList,\r\n ComboboxPortal,\r\n ComboboxPopup,\r\n ComboboxStatus,\r\n ComboboxValue,\r\n type ComboboxProps,\r\n ComboboxItemTitle,\r\n ComboboxItemAvatar\r\n} from \"../ui/combobox\"\r\nimport { useControlledState } from \"@xploreu/hooks/use-controlled-state\"\r\nimport { inputVariants } from \"../ui/input\"\r\n\r\ntype ComboboxChipProps<Value extends { label: string; value: string; image?: string; tag?: true }> = Omit<ComboboxProps<Value, true>, \"multiple\" | \"items\"> & {\r\n multiple?: boolean\r\n inputPlaceholder?: string\r\n container?: React.ComponentProps<typeof ComboboxPortal>[\"container\"]\r\n items?: Value[] | undefined\r\n infiniteScroll?: React.ComponentProps<typeof ComboboxInfiniteScroll>\r\n isPending?: boolean\r\n /**\r\n * When true, enables creatable / taggable mode.\r\n * If the typed value has no exact match in the current item list,\r\n * a \"Create \\\"…\\\"\" option is shown at the top of the dropdown.\r\n * Created items are appended to the value with `{ label, value, tag: true }`.\r\n */\r\n taggable?: boolean\r\n /**\r\n * Maximum number of chips to show before collapsing the rest into a \"+N\" chip.\r\n * When undefined, all chips are shown.\r\n */\r\n maxVisible?: number\r\n className?: string\r\n triggerClassName?: string\r\n contentClassName?: string\r\n}\r\n\r\nfunction ComboboxChip<Value extends { label: string; value: string; image?: string; tag?: true }>({\r\n multiple = true,\r\n inputPlaceholder = \"Search...\",\r\n container,\r\n items,\r\n infiniteScroll,\r\n isPending,\r\n taggable = false,\r\n maxVisible,\r\n className,\r\n triggerClassName,\r\n contentClassName,\r\n ...props\r\n}: ComboboxChipProps<Value>) {\r\n const [inputValue, setInputValue] = useControlledState({\r\n value: props?.inputValue?.toString(),\r\n defaultValue: props?.defaultInputValue?.toString(),\r\n onChange: props?.onInputValueChange,\r\n })\r\n\r\n const [value, setValue] = useControlledState({\r\n value: props?.value ?? [],\r\n defaultValue: props?.defaultValue ?? [],\r\n onChange: props?.onValueChange,\r\n })\r\n\r\n // Track items created via taggable mode\r\n // Sync with value to avoid stale tags when controlled value is reset from outside\r\n const [createdItems, setCreatedItems] = React.useState<Value[]>([])\r\n const createdValuesRef = React.useRef<Set<string>>(new Set())\r\n\r\n React.useEffect(() => {\r\n const currentValues = new Set(value.map((v) => v.value))\r\n setCreatedItems((prev) => {\r\n const next = prev.filter((item) => currentValues.has(item.value))\r\n if (next.length === prev.length) return prev\r\n createdValuesRef.current = new Set(next.map((v) => v.value))\r\n return next\r\n })\r\n }, [value])\r\n\r\n const trimmedInput = inputValue?.toString().trim() ?? \"\"\r\n const isInputSelected = React.useMemo(() => {\r\n if (!trimmedInput) return false\r\n return value.some(\r\n (item) => item.value.toLowerCase() === trimmedInput.toLowerCase()\r\n )\r\n }, [trimmedInput, value])\r\n\r\n // true = show the taggable item in dropdown (either as \"Create:\" or as checked item)\r\n const isCreatingItem = React.useMemo(() => {\r\n if (!taggable || !trimmedInput) return false\r\n return !items?.some(\r\n (item) => item.label.toLowerCase() === trimmedInput.toLowerCase()\r\n )\r\n }, [taggable, trimmedInput, items])\r\n\r\n // Merge server items with locally created tags + the \"Create\" placeholder\r\n const combinedItems = React.useMemo(() => {\r\n const base: Value[] = [\r\n ...items ?? [],\r\n ...createdItems,\r\n ]\r\n\r\n if (isCreatingItem) {\r\n return [...base, { label: trimmedInput, value: trimmedInput, tag: true } as unknown as Value]\r\n }\r\n\r\n return base\r\n }, [items, createdItems, isCreatingItem, trimmedInput])\r\n\r\n const handleValueChange: ComboboxProps<Value, true>[\"onValueChange\"] = (value, eventDetails) => {\r\n if (taggable) {\r\n const newTags = value.filter(\r\n (v) => v?.tag === true && !createdValuesRef.current.has(v.value)\r\n )\r\n if (newTags.length > 0) {\r\n for (const tag of newTags) {\r\n createdValuesRef.current.add(tag.value)\r\n }\r\n setCreatedItems((prev) => [...prev, ...newTags])\r\n }\r\n }\r\n\r\n if (!multiple) {\r\n setValue([value[value.length - 1]], eventDetails)\r\n } else {\r\n setValue(value, eventDetails)\r\n }\r\n }\r\n\r\n return (\r\n <Combobox\r\n {...props}\r\n behavior=\"chip-outside\"\r\n multiple\r\n items={taggable ? combinedItems : items}\r\n isItemEqualToValue={(a, b) => a.value === b.value}\r\n onValueChange={handleValueChange}\r\n onInputValueChange={setInputValue}\r\n >\r\n {/* Input box with chips inside */}\r\n <ComboboxInputGroup\r\n className={cn(\r\n inputVariants(),\r\n \"h-auto min-h-13 flex flex-wrap items-center gap-1.5 px-3 py-1.5 cursor-text\",\r\n triggerClassName,\r\n className\r\n )}\r\n >\r\n {/* Chips inside the input box */}\r\n <ComboboxChips\r\n className={cn(\r\n \"contents\",\r\n maxVisible !== undefined && \"flex-nowrap overflow-hidden\"\r\n )}\r\n >\r\n <ComboboxValue>\r\n {(value: Value[]) => {\r\n const visible = maxVisible !== undefined ? value.slice(0, maxVisible) : value\r\n const overflow = maxVisible !== undefined ? value.length - maxVisible : 0\r\n return (\r\n <>\r\n {visible?.map((item) => (\r\n <ComboboxChipUI\r\n key={item?.value || \"\"}\r\n className={cn(\r\n \"max-w-full min-w-0\",\r\n maxVisible !== undefined && \"shrink\"\r\n )}\r\n >\r\n {item?.image && (\r\n <img\r\n src={item.image}\r\n alt={item?.label || \"\"}\r\n className=\"size-4 rounded-full object-cover shrink-0 mr-1\"\r\n />\r\n )}\r\n <span className=\"truncate\" title={item?.label || \"\"}>\r\n {item?.label || \"\"}\r\n </span>\r\n <ComboboxChipRemove />\r\n </ComboboxChipUI>\r\n ))}\r\n {overflow > 0 && (\r\n <ComboboxChipUI className=\"shrink-0\">\r\n +{overflow}\r\n </ComboboxChipUI>\r\n )}\r\n </>\r\n )\r\n }}\r\n </ComboboxValue>\r\n {/* Text input — shrinks to fit remaining space (inside Chips so backspace works) */}\r\n <ComboboxInputPrimitive\r\n render={\r\n <input\r\n className=\"flex-1 min-w-[80px] bg-transparent outline-none text-body-regular-1 text-text-primary placeholder:text-text-placeholder\"\r\n placeholder={value.length === 0 ? inputPlaceholder : undefined}\r\n />\r\n }\r\n />\r\n </ComboboxChips>\r\n </ComboboxInputGroup>\r\n\r\n <ComboboxPopup container={container} className={contentClassName}>\r\n <ComboboxStatus\r\n status={\r\n isPending || items === undefined\r\n ? \"pending\"\r\n : items?.length === 0 && !isCreatingItem\r\n ? \"empty\"\r\n : null\r\n }\r\n />\r\n <ComboboxList>\r\n {items?.map((item) => (\r\n <ComboboxItem\r\n key={item.value}\r\n value={item as Value}\r\n >\r\n {(item.image !== undefined) && (\r\n <ComboboxItemAvatar\r\n src={item.image}\r\n fallbackText={[item.label?.[0], item.label?.split(\" \")?.[1]?.[0]].filter(Boolean).join(\"\")}\r\n imageAlt={item.label}\r\n />\r\n )}\r\n <ComboboxItemTitle>{item.label}</ComboboxItemTitle>\r\n </ComboboxItem>\r\n ))}\r\n {isCreatingItem && (\r\n <ComboboxItem\r\n value={{ label: trimmedInput, value: trimmedInput, tag: true }}\r\n >\r\n {!isInputSelected && (\r\n <span className=\"text-text-secondary text-body-medium-3 col-start-2\">Create: {trimmedInput}</span>\r\n )}\r\n {isInputSelected && (\r\n <ComboboxItemTitle>{trimmedInput}</ComboboxItemTitle>\r\n )}\r\n </ComboboxItem>\r\n )}\r\n <ComboboxInfiniteScroll {...infiniteScroll} />\r\n </ComboboxList>\r\n </ComboboxPopup>\r\n </Combobox>\r\n )\r\n}\r\n\r\nexport { ComboboxChip }\r\nexport type { ComboboxChipProps }\r\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a as a$1,b,c}from'./chunk-2RHSXF3X.js';import {a}from'./chunk-7P4PFMCM.js';import {a as a$
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a as a$1,b,c}from'./chunk-2RHSXF3X.js';import {a}from'./chunk-7P4PFMCM.js';import {a as a$2}from'./chunk-UCCQUPMT.js';import {a as a$4}from'./chunk-5ETIHFSE.js';import {a as a$3}from'./chunk-XJTOYNCA.js';import'react';import {InfoIcon}from'lucide-react';import {cn}from'@xploreu/lib/cn';import {jsx,jsxs,Fragment}from'react/jsx-runtime';function E({className:t,containerClassName:a$1,...n}){return jsx(a,{className:cn("relative w-full rounded-xl border border-border-primary bg-bg-primary",a$1),"data-slot":"table-container",children:jsx("table",{className:cn("w-full caption-bottom text-body-regular-2",t),"data-slot":"table",...n})})}function j(t){return jsx("thead",{"data-slot":"table-header",...t})}function q({className:t,...a}){return jsx("tbody",{className:cn("[&_tr:last-child_td:after]:h-0",t),"data-slot":"table-body",...a})}function B({className:t,...a}){return jsx("tfoot",{className:cn("border-t border-border-primary bg-bg-secondary font-medium [&>tr]:last:border-b-0",t),"data-slot":"table-footer",...a})}function D({className:t,...a}){return jsx("tr",{className:cn("transition-colors hover:bg-bg-secondary data-[state=selected]:bg-bg-brand-primary/40",t),"data-slot":"table-row",...a})}function O({className:t,align:a,variant:n="string",tooltip:l,sortable:o,sortDirection:p,onSort:b$1,children:N,...C}){let i=a||(n==="number"?"end":"start"),c$1=!!(l||o),R=i==="end",m=l?jsxs(a$1,{children:[jsx(b,{render:jsx("button",{type:"button",className:"inline-flex items-center justify-center text-fg-quaternary hover:text-text-primary"}),children:jsx(InfoIcon,{className:"size-3.5"})}),jsx(c,{side:"top",children:l})]}):null,f=o?jsx("button",{type:"button",onClick:b$1,className:"inline-flex items-center text-fg-quaternary hover:text-text-primary focus:outline-none","aria-label":"Sort column",children:p==="asc"?jsx(a$2,{size:12}):p==="desc"?jsx(a$3,{size:12}):jsx(a$4,{size:12})}):null,d=jsx("span",{className:cn("truncate",o&&"cursor-pointer select-none"),onClick:o?b$1:void 0,children:N});return jsx("th",{className:cn("relative after:absolute after:inset-x-0 after:bottom-0 after:h-px after:bg-border-tertiary bg-bg-tertiary text-label-bold-3 text-text-tertiary h-10 px-4 py-3 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0",!c$1&&i==="end"&&"text-right",!c$1&&i==="start"&&"text-left",!c$1&&i==="center"&&"text-center",t),"data-slot":"table-head",...C,children:c$1?jsx("div",{className:"flex w-full items-center justify-between gap-2",children:R?jsxs(Fragment,{children:[jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[m,f]}),jsx("div",{className:"flex items-center shrink-0 justify-end",children:d})]}):jsxs(Fragment,{children:[d,jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[m,f]})]})}):d})}function _({className:t,align:a,variant:n="string",...l}){let o=a||(n==="number"?"end":"start");return jsx("td",{className:cn("relative after:absolute after:inset-x-0 after:bottom-0 after:h-px after:bg-border-tertiary bg-bg-primary text-text-primary px-4 py-3 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0",o==="end"&&"text-right",o==="start"&&"text-left",o==="center"&&"text-center",t),"data-slot":"table-cell",...l})}function F({className:t,...a}){return jsx("caption",{className:cn("text-text-secondary mt-4 text-body-regular-2",t),"data-slot":"table-caption",...a})}export{E as a,j as b,q as c,B as d,D as e,O as f,_ as g,F as h};//# sourceMappingURL=chunk-RH7BQGTL.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-RH7BQGTL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/table.tsx"],"names":["Table","className","containerClassName","props","jsx","ScrollArea","cn","TableHeader","TableBody","TableFooter","TableRow","TableHead","align","variant","tooltip","sortable","sortDirection","onSort","children","effectiveAlign","hasControls","isEnd","tooltipElement","jsxs","Tooltip","TooltipTrigger","InfoIcon","TooltipPopup","sortElement","sort_ascending_icon_default","sort_descending_icon_default","sort_default_icon_default","titleElement","Fragment","TableCell","TableCaption"],"mappings":"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","file":"chunk-BRWBF2EN.js","sourcesContent":["import * as React from \"react\"\r\nimport { InfoIcon } from \"lucide-react\"\r\n\r\nimport { cn } from \"@xploreu/lib/cn\"\r\nimport { SortAscendingIcon, SortDefaultIcon, SortDescendingIcon } from \"../icons\"\r\nimport {\r\n Tooltip,\r\n TooltipPopup,\r\n TooltipTrigger,\r\n} from \"./tooltip\"\r\nimport { ScrollArea } from \"./scroll-area\"\r\n\r\ninterface TableProps extends React.ComponentProps<\"table\"> {\r\n containerClassName?: string\r\n}\r\n\r\nfunction Table({ className, containerClassName, ...props }: TableProps) {\r\n return (\r\n <ScrollArea\r\n className={cn(\r\n \"relative w-full rounded-xl border border-border-primary bg-bg-primary\",\r\n containerClassName\r\n )}\r\n data-slot=\"table-container\"\r\n >\r\n <table\r\n className={cn(\"w-full caption-bottom text-body-regular-2\", className)}\r\n data-slot=\"table\"\r\n {...props}\r\n />\r\n </ScrollArea>\r\n )\r\n}\r\n\r\nfunction TableHeader(props: React.ComponentProps<\"thead\">) {\r\n return (\r\n <thead\r\n data-slot=\"table-header\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\r\n return (\r\n <tbody\r\n className={cn(\"[&_tr:last-child_td:after]:h-0\", className)}\r\n data-slot=\"table-body\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\r\n return (\r\n <tfoot\r\n className={cn(\r\n \"border-t border-border-primary bg-bg-secondary font-medium [&>tr]:last:border-b-0\",\r\n className\r\n )}\r\n data-slot=\"table-footer\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\r\n return (\r\n <tr\r\n className={cn(\r\n \"transition-colors hover:bg-bg-secondary data-[state=selected]:bg-bg-brand-primary/40\",\r\n className\r\n )}\r\n data-slot=\"table-row\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\ninterface TableHeadProps extends Omit<React.ComponentProps<\"th\">, \"align\"> {\r\n align?: \"start\" | \"end\" | \"center\"\r\n variant?: \"string\" | \"number\"\r\n tooltip?: React.ReactNode\r\n sortable?: boolean\r\n sortDirection?: \"asc\" | \"desc\" | false | null\r\n onSort?: () => void\r\n}\r\n\r\nfunction TableHead({\r\n className,\r\n align,\r\n variant = \"string\",\r\n tooltip,\r\n sortable,\r\n sortDirection,\r\n onSort,\r\n children,\r\n ...props\r\n}: TableHeadProps) {\r\n const effectiveAlign = align || (variant === \"number\" ? \"end\" : \"start\")\r\n const hasControls = Boolean(tooltip || sortable)\r\n const isEnd = effectiveAlign === \"end\"\r\n\r\n const tooltipElement = tooltip ? (\r\n <Tooltip>\r\n <TooltipTrigger\r\n render={\r\n <button\r\n type=\"button\"\r\n className=\"inline-flex items-center justify-center text-fg-quaternary hover:text-text-primary\"\r\n />\r\n }\r\n >\r\n <InfoIcon className=\"size-3.5\" />\r\n </TooltipTrigger>\r\n <TooltipPopup side=\"top\">{tooltip}</TooltipPopup>\r\n </Tooltip>\r\n ) : null\r\n\r\n const sortElement = sortable ? (\r\n <button\r\n type=\"button\"\r\n onClick={onSort}\r\n className=\"inline-flex items-center text-fg-quaternary hover:text-text-primary focus:outline-none\"\r\n aria-label=\"Sort column\"\r\n >\r\n {sortDirection === \"asc\" ? (\r\n <SortAscendingIcon size={12} />\r\n ) : sortDirection === \"desc\" ? (\r\n <SortDescendingIcon size={12} />\r\n ) : (\r\n <SortDefaultIcon size={12} />\r\n )}\r\n </button>\r\n ) : null\r\n\r\n const titleElement = (\r\n <span\r\n className={cn(\"truncate\", sortable && \"cursor-pointer select-none\")}\r\n onClick={sortable ? onSort : undefined}\r\n >\r\n {children}\r\n </span>\r\n )\r\n\r\n return (\r\n <th\r\n className={cn(\r\n \"relative after:absolute after:inset-x-0 after:bottom-0 after:h-px after:bg-border-tertiary bg-bg-tertiary text-label-bold-3 text-text-tertiary h-10 px-4 py-3 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0\",\r\n !hasControls && effectiveAlign === \"end\" && \"text-right\",\r\n !hasControls && effectiveAlign === \"start\" && \"text-left\",\r\n !hasControls && effectiveAlign === \"center\" && \"text-center\",\r\n className\r\n )}\r\n data-slot=\"table-head\"\r\n {...props}\r\n >\r\n {hasControls ? (\r\n <div className=\"flex w-full items-center justify-between gap-2\">\r\n {isEnd ? (\r\n <>\r\n <div className=\"flex items-center gap-1.5 shrink-0\">\r\n {tooltipElement}\r\n {sortElement}\r\n </div>\r\n <div className=\"flex items-center shrink-0 justify-end\">\r\n {titleElement}\r\n </div>\r\n </>\r\n ) : (\r\n <>\r\n {titleElement}\r\n <div className=\"flex items-center gap-1.5 shrink-0\">\r\n {tooltipElement}\r\n {sortElement}\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n ) : (\r\n titleElement\r\n )}\r\n </th>\r\n )\r\n}\r\n\r\ninterface TableCellProps extends Omit<React.ComponentProps<\"td\">, \"align\"> {\r\n align?: \"start\" | \"end\" | \"center\"\r\n variant?: \"string\" | \"number\"\r\n}\r\n\r\nfunction TableCell({\r\n className,\r\n align,\r\n variant = \"string\",\r\n ...props\r\n}: TableCellProps) {\r\n const effectiveAlign = align || (variant === \"number\" ? \"end\" : \"start\")\r\n\r\n return (\r\n <td\r\n className={cn(\r\n \"relative after:absolute after:inset-x-0 after:bottom-0 after:h-px after:bg-border-tertiary bg-bg-primary text-text-primary px-4 py-3 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0\",\r\n effectiveAlign === \"end\" && \"text-right\",\r\n effectiveAlign === \"start\" && \"text-left\",\r\n effectiveAlign === \"center\" && \"text-center\",\r\n className\r\n )}\r\n data-slot=\"table-cell\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction TableCaption({\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"caption\">) {\r\n return (\r\n <caption\r\n className={cn(\"text-text-secondary mt-4 text-body-regular-2\", className)}\r\n data-slot=\"table-caption\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport {\r\n Table,\r\n TableBody,\r\n TableCaption,\r\n TableCell,\r\n TableFooter,\r\n TableHead,\r\n TableHeader,\r\n TableRow,\r\n type TableCellProps,\r\n type TableHeadProps,\r\n type TableProps,\r\n}"]}
|
|
1
|
+
{"version":3,"sources":["../src/ui/table.tsx"],"names":["Table","className","containerClassName","props","jsx","ScrollArea","cn","TableHeader","TableBody","TableFooter","TableRow","TableHead","align","variant","tooltip","sortable","sortDirection","onSort","children","effectiveAlign","hasControls","isEnd","tooltipElement","jsxs","Tooltip","TooltipTrigger","InfoIcon","TooltipPopup","sortElement","sort_ascending_icon_default","sort_descending_icon_default","sort_default_icon_default","titleElement","Fragment","TableCell","TableCaption"],"mappings":"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","file":"chunk-RH7BQGTL.js","sourcesContent":["import * as React from \"react\"\r\nimport { InfoIcon } from \"lucide-react\"\r\n\r\nimport { cn } from \"@xploreu/lib/cn\"\r\nimport { SortAscendingIcon, SortDefaultIcon, SortDescendingIcon } from \"../icons\"\r\nimport {\r\n Tooltip,\r\n TooltipPopup,\r\n TooltipTrigger,\r\n} from \"./tooltip\"\r\nimport { ScrollArea } from \"./scroll-area\"\r\n\r\ninterface TableProps extends React.ComponentProps<\"table\"> {\r\n containerClassName?: string\r\n}\r\n\r\nfunction Table({ className, containerClassName, ...props }: TableProps) {\r\n return (\r\n <ScrollArea\r\n className={cn(\r\n \"relative w-full rounded-xl border border-border-primary bg-bg-primary\",\r\n containerClassName\r\n )}\r\n data-slot=\"table-container\"\r\n >\r\n <table\r\n className={cn(\"w-full caption-bottom text-body-regular-2\", className)}\r\n data-slot=\"table\"\r\n {...props}\r\n />\r\n </ScrollArea>\r\n )\r\n}\r\n\r\nfunction TableHeader(props: React.ComponentProps<\"thead\">) {\r\n return (\r\n <thead\r\n data-slot=\"table-header\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\r\n return (\r\n <tbody\r\n className={cn(\"[&_tr:last-child_td:after]:h-0\", className)}\r\n data-slot=\"table-body\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\r\n return (\r\n <tfoot\r\n className={cn(\r\n \"border-t border-border-primary bg-bg-secondary font-medium [&>tr]:last:border-b-0\",\r\n className\r\n )}\r\n data-slot=\"table-footer\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\r\n return (\r\n <tr\r\n className={cn(\r\n \"transition-colors hover:bg-bg-secondary data-[state=selected]:bg-bg-brand-primary/40\",\r\n className\r\n )}\r\n data-slot=\"table-row\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\ninterface TableHeadProps extends Omit<React.ComponentProps<\"th\">, \"align\"> {\r\n align?: \"start\" | \"end\" | \"center\"\r\n variant?: \"string\" | \"number\"\r\n tooltip?: React.ReactNode\r\n sortable?: boolean\r\n sortDirection?: \"asc\" | \"desc\" | false | null\r\n onSort?: () => void\r\n}\r\n\r\nfunction TableHead({\r\n className,\r\n align,\r\n variant = \"string\",\r\n tooltip,\r\n sortable,\r\n sortDirection,\r\n onSort,\r\n children,\r\n ...props\r\n}: TableHeadProps) {\r\n const effectiveAlign = align || (variant === \"number\" ? \"end\" : \"start\")\r\n const hasControls = Boolean(tooltip || sortable)\r\n const isEnd = effectiveAlign === \"end\"\r\n\r\n const tooltipElement = tooltip ? (\r\n <Tooltip>\r\n <TooltipTrigger\r\n render={\r\n <button\r\n type=\"button\"\r\n className=\"inline-flex items-center justify-center text-fg-quaternary hover:text-text-primary\"\r\n />\r\n }\r\n >\r\n <InfoIcon className=\"size-3.5\" />\r\n </TooltipTrigger>\r\n <TooltipPopup side=\"top\">{tooltip}</TooltipPopup>\r\n </Tooltip>\r\n ) : null\r\n\r\n const sortElement = sortable ? (\r\n <button\r\n type=\"button\"\r\n onClick={onSort}\r\n className=\"inline-flex items-center text-fg-quaternary hover:text-text-primary focus:outline-none\"\r\n aria-label=\"Sort column\"\r\n >\r\n {sortDirection === \"asc\" ? (\r\n <SortAscendingIcon size={12} />\r\n ) : sortDirection === \"desc\" ? (\r\n <SortDescendingIcon size={12} />\r\n ) : (\r\n <SortDefaultIcon size={12} />\r\n )}\r\n </button>\r\n ) : null\r\n\r\n const titleElement = (\r\n <span\r\n className={cn(\"truncate\", sortable && \"cursor-pointer select-none\")}\r\n onClick={sortable ? onSort : undefined}\r\n >\r\n {children}\r\n </span>\r\n )\r\n\r\n return (\r\n <th\r\n className={cn(\r\n \"relative after:absolute after:inset-x-0 after:bottom-0 after:h-px after:bg-border-tertiary bg-bg-tertiary text-label-bold-3 text-text-tertiary h-10 px-4 py-3 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0\",\r\n !hasControls && effectiveAlign === \"end\" && \"text-right\",\r\n !hasControls && effectiveAlign === \"start\" && \"text-left\",\r\n !hasControls && effectiveAlign === \"center\" && \"text-center\",\r\n className\r\n )}\r\n data-slot=\"table-head\"\r\n {...props}\r\n >\r\n {hasControls ? (\r\n <div className=\"flex w-full items-center justify-between gap-2\">\r\n {isEnd ? (\r\n <>\r\n <div className=\"flex items-center gap-1.5 shrink-0\">\r\n {tooltipElement}\r\n {sortElement}\r\n </div>\r\n <div className=\"flex items-center shrink-0 justify-end\">\r\n {titleElement}\r\n </div>\r\n </>\r\n ) : (\r\n <>\r\n {titleElement}\r\n <div className=\"flex items-center gap-1.5 shrink-0\">\r\n {tooltipElement}\r\n {sortElement}\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n ) : (\r\n titleElement\r\n )}\r\n </th>\r\n )\r\n}\r\n\r\ninterface TableCellProps extends Omit<React.ComponentProps<\"td\">, \"align\"> {\r\n align?: \"start\" | \"end\" | \"center\"\r\n variant?: \"string\" | \"number\"\r\n}\r\n\r\nfunction TableCell({\r\n className,\r\n align,\r\n variant = \"string\",\r\n ...props\r\n}: TableCellProps) {\r\n const effectiveAlign = align || (variant === \"number\" ? \"end\" : \"start\")\r\n\r\n return (\r\n <td\r\n className={cn(\r\n \"relative after:absolute after:inset-x-0 after:bottom-0 after:h-px after:bg-border-tertiary bg-bg-primary text-text-primary px-4 py-3 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0\",\r\n effectiveAlign === \"end\" && \"text-right\",\r\n effectiveAlign === \"start\" && \"text-left\",\r\n effectiveAlign === \"center\" && \"text-center\",\r\n className\r\n )}\r\n data-slot=\"table-cell\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction TableCaption({\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"caption\">) {\r\n return (\r\n <caption\r\n className={cn(\"text-text-secondary mt-4 text-body-regular-2\", className)}\r\n data-slot=\"table-caption\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport {\r\n Table,\r\n TableBody,\r\n TableCaption,\r\n TableCell,\r\n TableFooter,\r\n TableHead,\r\n TableHeader,\r\n TableRow,\r\n type TableCellProps,\r\n type TableHeadProps,\r\n type TableProps,\r\n}"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {cn}from'@xploreu/lib/cn';import {useAnimation,useReducedMotion,LazyMotion,domMin,m}from'motion/react';import {forwardRef,useCallback,useImperativeHandle}from'react';import {jsx,jsxs}from'react/jsx-runtime';var p=forwardRef(({onMouseEnter:l,onMouseLeave:c,className:f,size:
|
|
2
|
-
export{p as a,
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {cn}from'@xploreu/lib/cn';import {useAnimation,useReducedMotion,LazyMotion,domMin,m}from'motion/react';import {forwardRef,useCallback,useImperativeHandle}from'react';import {jsx,jsxs}from'react/jsx-runtime';var p=forwardRef(({onMouseEnter:l,onMouseLeave:c,className:f,size:u=24,duration:v=1,isAnimated:n=true,color:H,strokeWidth:g=2,...d},M)=>{let t=useAnimation(),o=useReducedMotion(),r=useCallback(()=>{if(o){t.start("normal");return}t.set("normal"),t.start("animate");},[t,o]),i=useCallback(()=>{t.start("normal");},[t]);useImperativeHandle(M,()=>({startAnimation:r,stopAnimation:i}),[r,i]);let y=useCallback(s=>{l?.(s),!(!n||o)&&r();},[l,n,o,r]),L=useCallback(s=>{c?.(s),!(!n||o)&&i();},[c,n,o,i]),h={normal:{y:0,scaleY:1},animate:{y:[0,1,-3,.5,0],scaleY:[1,.93,1.04,.98,1],transition:{duration:.52*v,times:[0,.22,.52,.78,1],ease:[.34,1.32,.64,1]}}};return jsx(LazyMotion,{features:domMin,strict:true,children:jsx(m.div,{className:cn("group/icon inline-flex items-center justify-center",f),onMouseEnter:y,onMouseLeave:L,...d,style:{color:H,...d.style},children:jsx(m.svg,{className:"group-[&[class*='size-']]/icon:size-full",xmlns:"http://www.w3.org/2000/svg",width:u,height:u,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:g,strokeLinecap:"round",strokeLinejoin:"round",animate:t,initial:"normal",style:{overflow:"visible"},children:jsxs(m.g,{variants:h,style:{transformOrigin:"12px 21px",transformBox:"view-box"},children:[jsx("path",{d:"M3 10.2L12 3L21 10.2V20C21 20.2652 20.8946 20.5196 20.7071 20.7071C20.5196 20.8946 20.2652 21 20 21H4C3.73478 21 3.48043 20.8946 3.29289 20.7071C3.10536 20.5196 3 20.2652 3 20V10.2Z"}),jsx("path",{d:"M9.5 21V14.5H14.5V21"})]})})})})});p.displayName="HomeIcon";var z=p;
|
|
2
|
+
export{p as a,z as b};//# sourceMappingURL=chunk-RL4LUMA6.js.map
|
|
3
|
+
//# sourceMappingURL=chunk-RL4LUMA6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/icons/home-icon.tsx"],"names":["HomeIcon","forwardRef","onMouseEnter","onMouseLeave","className","size","duration","isAnimated","color","strokeWidth","props","ref","controls","useAnimation","reduced","useReducedMotion","startAnimation","useCallback","stopAnimation","useImperativeHandle","handleEnter","e","handleLeave","homeVariants","jsx","LazyMotion","domMin","cn","jsxs","home_icon_default"],"mappings":"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","file":"chunk-RL4LUMA6.js","sourcesContent":["\"use client\";\n\nimport { cn } from \"@xploreu/lib/cn\";\nimport type { Variants } from \"motion/react\";\nimport {\n LazyMotion,\n domMin,\n m,\n useAnimation,\n useReducedMotion,\n} from \"motion/react\";\nimport {\n forwardRef,\n useCallback,\n useImperativeHandle,\n type HTMLAttributes,\n} from \"react\";\n\nexport interface HomeIconHandle {\n startAnimation: () => void;\n stopAnimation: () => void;\n}\n\nexport interface HomeIconProps\n extends Omit<\n HTMLAttributes<HTMLDivElement>,\n | \"color\"\n | \"onDrag\"\n | \"onDragStart\"\n | \"onDragEnd\"\n | \"onAnimationStart\"\n | \"onAnimationEnd\"\n | \"onAnimationIteration\"\n > {\n size?: number;\n duration?: number;\n isAnimated?: boolean;\n color?: string;\n strokeWidth?: number | string;\n}\n\nconst HomeIcon = forwardRef<HomeIconHandle, HomeIconProps>(\n (\n {\n onMouseEnter,\n onMouseLeave,\n className,\n size = 24,\n duration = 1,\n isAnimated = true,\n color,\n strokeWidth = 2,\n ...props\n },\n ref,\n ) => {\n const controls = useAnimation();\n const reduced = useReducedMotion();\n\n const startAnimation = useCallback(() => {\n if (reduced) {\n controls.start(\"normal\");\n return;\n }\n controls.set(\"normal\");\n controls.start(\"animate\");\n }, [controls, reduced]);\n\n const stopAnimation = useCallback(() => {\n controls.start(\"normal\");\n }, [controls]);\n\n useImperativeHandle(\n ref,\n () => ({\n startAnimation,\n stopAnimation,\n }),\n [startAnimation, stopAnimation],\n );\n\n const handleEnter = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n onMouseEnter?.(e);\n if (!isAnimated || reduced) return;\n startAnimation();\n },\n [onMouseEnter, isAnimated, reduced, startAnimation],\n );\n\n const handleLeave = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(e);\n if (!isAnimated || reduced) return;\n stopAnimation();\n },\n [onMouseLeave, isAnimated, reduced, stopAnimation],\n );\n\n const homeVariants: Variants = {\n normal: { y: 0, scaleY: 1 },\n animate: {\n y: [0, 1, -3, 0.5, 0],\n scaleY: [1, 0.93, 1.04, 0.98, 1],\n transition: {\n duration: 0.52 * duration,\n times: [0, 0.22, 0.52, 0.78, 1],\n ease: [0.34, 1.32, 0.64, 1],\n },\n },\n };\n\n return (\n <LazyMotion features={domMin} strict>\n <m.div\n className={cn(\"group/icon inline-flex items-center justify-center\", className)}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n {...props}\n style={{ color, ...props.style }}\n >\n <m.svg\n className=\"group-[&[class*='size-']]/icon:size-full\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n animate={controls}\n initial=\"normal\"\n style={{ overflow: \"visible\" }}\n >\n <m.g\n variants={homeVariants}\n style={{ transformOrigin: \"12px 21px\", transformBox: \"view-box\" }}\n >\n <path d=\"M3 10.2L12 3L21 10.2V20C21 20.2652 20.8946 20.5196 20.7071 20.7071C20.5196 20.8946 20.2652 21 20 21H4C3.73478 21 3.48043 20.8946 3.29289 20.7071C3.10536 20.5196 3 20.2652 3 20V10.2Z\" />\n <path d=\"M9.5 21V14.5H14.5V21\" />\n </m.g>\n </m.svg>\n </m.div>\n </LazyMotion>\n );\n },\n);\n\nHomeIcon.displayName = \"HomeIcon\";\n\nexport default HomeIcon;\nexport { HomeIcon };\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import {jsxs,jsx}from'react/jsx-runtime';function h({color:C="currentColor",size:l=24,strokeWidth:p=0,absoluteStrokeWidth:d,...i}){return jsxs("svg",{fill:"none",height:l,viewBox:"0 0 24 24",width:l,xmlns:"http://www.w3.org/2000/svg",...i,children:[jsx("path",{d:"M13.4988 6.99953C14.051 6.99965 14.4981 7.44776 14.4981 7.99997C14.4981 8.55219 14.051 9.0003 13.4988 9.00041H10.4985C9.94624 9.00041 9.49809 8.55226 9.49809 7.99997C9.49809 7.44768 9.94624 6.99953 10.4985 6.99953H13.4988Z",fill:C}),jsx("path",{d:"M3.99805 20.0003V5.99953C3.99816 5.20403 4.31445 4.44071 4.87696 3.8782C5.43951 3.3157 6.20276 3.00043 6.99829 3.00037H9.99852C10.5507 3.00037 10.9988 3.44754 10.999 3.99973C10.999 4.55202 10.5508 5.00017 9.99852 5.00017H6.99829C6.7332 5.00023 6.47938 5.10572 6.2919 5.29314C6.10447 5.48058 5.99904 5.73446 5.99893 5.99953V20.0003C5.99899 20.2654 6.10441 20.5192 6.2919 20.7067C6.47939 20.8941 6.73315 20.9996 6.99829 20.9996H16.9984C17.2636 20.9996 17.5183 20.8942 17.7058 20.7067C17.8931 20.5192 17.9987 20.2653 17.9988 20.0003V5.99953C17.9987 5.73457 17.8931 5.48055 17.7058 5.29314C17.5183 5.1056 17.2636 5.00017 16.9984 5.00017H13.9981C13.6517 5.00002 13.3296 4.82068 13.1474 4.52599C12.9652 4.23117 12.949 3.86267 13.104 3.55268L14.1045 1.55288C14.3514 1.0589 14.9516 0.858835 15.4456 1.10583C15.9396 1.35282 16.1397 1.953 15.8927 2.44698L15.616 3.00037H16.9984C17.7939 3.00037 18.5571 3.31579 19.1197 3.8782C19.6822 4.44071 19.9985 5.20403 19.9986 5.99953V20.0003C19.9985 20.7959 19.6822 21.559 19.1197 22.1216C18.5571 22.6841 17.7939 23.0005 16.9984 23.0005H6.99829C6.20271 23.0005 5.43952 22.6842 4.87696 22.1216C4.3144 21.559 3.9981 20.7959 3.99805 20.0003Z",fill:C}),jsx("path",{d:"M14.9983 21.9996C14.9982 21.2041 14.6819 20.4408 14.1194 19.8783C13.5569 19.316 12.7936 19.0005 11.9981 19.0005C11.2026 19.0006 10.4393 19.3158 9.87678 19.8783C9.31427 20.4408 8.99907 21.2041 8.99895 21.9996C8.99895 22.5519 8.5508 23.0001 7.99851 23.0001C7.44622 23.0001 6.99807 22.5519 6.99807 21.9996C6.99818 20.6737 7.52534 19.402 8.46292 18.4645C9.40051 17.5269 10.6722 16.9997 11.9981 16.9996C13.3242 16.9996 14.5967 17.5268 15.5344 18.4645C16.4719 19.402 16.998 20.6738 16.9981 21.9996C16.9981 22.5519 16.551 23 15.9988 23.0001C15.4465 23.0001 14.9983 22.5519 14.9983 21.9996Z",fill:C}),jsx("path",{d:"M14.1045 1.55288C14.3514 1.0589 14.9516 0.858835 15.4456 1.10583C15.9396 1.35282 16.1397 1.953 15.8927 2.44698L12.8929 8.44746C12.7235 8.78603 12.3773 8.99968 11.9988 8.99976C11.62 8.99976 11.273 8.78625 11.1036 8.44746L8.10441 2.44698C7.85742 1.953 8.05748 1.35282 8.55147 1.10583C9.04545 0.858835 9.64563 1.0589 9.89262 1.55288L11.9977 5.76298L14.1045 1.55288Z",fill:C}),jsx("path",{d:"M13.9986 15.0002C13.9986 13.8957 13.1032 13.0006 11.9988 13.0004C10.8942 13.0004 9.99896 13.8957 9.99896 15.0002C9.99908 16.1047 10.8936 16.9996 11.9981 16.9996C13.1025 16.9995 13.9984 16.1046 13.9986 15.0002ZM15.9984 15.0002C15.9982 17.2092 14.2071 19.0004 11.9981 19.0005C9.78902 19.0005 7.99819 17.2093 7.99808 15.0002C7.99808 12.7911 9.7896 10.9996 11.9988 10.9996C14.2078 10.9997 15.9984 12.7912 15.9984 15.0002Z",fill:C})]})}var e=h;
|
|
2
|
+
export{e as a};//# sourceMappingURL=chunk-SOTX2VBK.js.map
|
|
3
|
+
//# sourceMappingURL=chunk-SOTX2VBK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/icons/lanyard-icon.tsx"],"names":["LanyardIcon","color","size","strokeWidth","absoluteStrokeWidth","props","jsxs","jsx","lanyard_icon_default"],"mappings":"yCAIA,SAASA,CAAAA,CAAY,CACnB,KAAA,CAAAC,CAAAA,CAAQ,eACR,IAAA,CAAAC,CAAAA,CAAO,EAAA,CACP,WAAA,CAAAC,EAAc,CAAA,CACd,mBAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAAc,CACZ,OACEC,IAAAA,CAAC,OACC,IAAA,CAAK,MAAA,CACL,MAAA,CAAQJ,CAAAA,CACR,QAAQ,WAAA,CACR,KAAA,CAAOA,CAAAA,CACP,KAAA,CAAM,6BACL,GAAGG,CAAAA,CAEJ,QAAA,CAAA,CAAAE,GAAAA,CAAC,QACC,CAAA,CAAE,gOAAA,CACF,IAAA,CAAMN,CAAAA,CACR,EACAM,GAAAA,CAAC,MAAA,CAAA,CACC,CAAA,CAAE,ipCAAA,CACF,KAAMN,CAAAA,CACR,CAAA,CACAM,GAAAA,CAAC,MAAA,CAAA,CACC,EAAE,wkBAAA,CACF,IAAA,CAAMN,CAAAA,CACR,CAAA,CACAM,IAAC,MAAA,CAAA,CACC,CAAA,CAAE,4WAAA,CACF,IAAA,CAAMN,EACR,CAAA,CACAM,GAAAA,CAAC,MAAA,CAAA,CACC,CAAA,CAAE,oaACF,IAAA,CAAMN,CAAAA,CACR,GACF,CAEJ,KAEOO,CAAAA,CAAQR","file":"chunk-SOTX2VBK.js","sourcesContent":["\"use client\";\r\n\r\nimport { type IconProps } from \"../types\";\r\n\r\nfunction LanyardIcon({\r\n color = \"currentColor\",\r\n size = 24,\r\n strokeWidth = 0,\r\n absoluteStrokeWidth,\r\n ...props\r\n}: IconProps) {\r\n return (\r\n <svg\r\n fill=\"none\"\r\n height={size}\r\n viewBox=\"0 0 24 24\"\r\n width={size}\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M13.4988 6.99953C14.051 6.99965 14.4981 7.44776 14.4981 7.99997C14.4981 8.55219 14.051 9.0003 13.4988 9.00041H10.4985C9.94624 9.00041 9.49809 8.55226 9.49809 7.99997C9.49809 7.44768 9.94624 6.99953 10.4985 6.99953H13.4988Z\"\r\n fill={color}\r\n />\r\n <path\r\n d=\"M3.99805 20.0003V5.99953C3.99816 5.20403 4.31445 4.44071 4.87696 3.8782C5.43951 3.3157 6.20276 3.00043 6.99829 3.00037H9.99852C10.5507 3.00037 10.9988 3.44754 10.999 3.99973C10.999 4.55202 10.5508 5.00017 9.99852 5.00017H6.99829C6.7332 5.00023 6.47938 5.10572 6.2919 5.29314C6.10447 5.48058 5.99904 5.73446 5.99893 5.99953V20.0003C5.99899 20.2654 6.10441 20.5192 6.2919 20.7067C6.47939 20.8941 6.73315 20.9996 6.99829 20.9996H16.9984C17.2636 20.9996 17.5183 20.8942 17.7058 20.7067C17.8931 20.5192 17.9987 20.2653 17.9988 20.0003V5.99953C17.9987 5.73457 17.8931 5.48055 17.7058 5.29314C17.5183 5.1056 17.2636 5.00017 16.9984 5.00017H13.9981C13.6517 5.00002 13.3296 4.82068 13.1474 4.52599C12.9652 4.23117 12.949 3.86267 13.104 3.55268L14.1045 1.55288C14.3514 1.0589 14.9516 0.858835 15.4456 1.10583C15.9396 1.35282 16.1397 1.953 15.8927 2.44698L15.616 3.00037H16.9984C17.7939 3.00037 18.5571 3.31579 19.1197 3.8782C19.6822 4.44071 19.9985 5.20403 19.9986 5.99953V20.0003C19.9985 20.7959 19.6822 21.559 19.1197 22.1216C18.5571 22.6841 17.7939 23.0005 16.9984 23.0005H6.99829C6.20271 23.0005 5.43952 22.6842 4.87696 22.1216C4.3144 21.559 3.9981 20.7959 3.99805 20.0003Z\"\r\n fill={color}\r\n />\r\n <path\r\n d=\"M14.9983 21.9996C14.9982 21.2041 14.6819 20.4408 14.1194 19.8783C13.5569 19.316 12.7936 19.0005 11.9981 19.0005C11.2026 19.0006 10.4393 19.3158 9.87678 19.8783C9.31427 20.4408 8.99907 21.2041 8.99895 21.9996C8.99895 22.5519 8.5508 23.0001 7.99851 23.0001C7.44622 23.0001 6.99807 22.5519 6.99807 21.9996C6.99818 20.6737 7.52534 19.402 8.46292 18.4645C9.40051 17.5269 10.6722 16.9997 11.9981 16.9996C13.3242 16.9996 14.5967 17.5268 15.5344 18.4645C16.4719 19.402 16.998 20.6738 16.9981 21.9996C16.9981 22.5519 16.551 23 15.9988 23.0001C15.4465 23.0001 14.9983 22.5519 14.9983 21.9996Z\"\r\n fill={color}\r\n />\r\n <path\r\n d=\"M14.1045 1.55288C14.3514 1.0589 14.9516 0.858835 15.4456 1.10583C15.9396 1.35282 16.1397 1.953 15.8927 2.44698L12.8929 8.44746C12.7235 8.78603 12.3773 8.99968 11.9988 8.99976C11.62 8.99976 11.273 8.78625 11.1036 8.44746L8.10441 2.44698C7.85742 1.953 8.05748 1.35282 8.55147 1.10583C9.04545 0.858835 9.64563 1.0589 9.89262 1.55288L11.9977 5.76298L14.1045 1.55288Z\"\r\n fill={color}\r\n />\r\n <path\r\n d=\"M13.9986 15.0002C13.9986 13.8957 13.1032 13.0006 11.9988 13.0004C10.8942 13.0004 9.99896 13.8957 9.99896 15.0002C9.99908 16.1047 10.8936 16.9996 11.9981 16.9996C13.1025 16.9995 13.9984 16.1046 13.9986 15.0002ZM15.9984 15.0002C15.9982 17.2092 14.2071 19.0004 11.9981 19.0005C9.78902 19.0005 7.99819 17.2093 7.99808 15.0002C7.99808 12.7911 9.7896 10.9996 11.9988 10.9996C14.2078 10.9997 15.9984 12.7912 15.9984 15.0002Z\"\r\n fill={color}\r\n />\r\n </svg>\r\n );\r\n}\r\n\r\nexport default LanyardIcon;\r\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'./chunk-QZAMUYJE.js';import {b,c,g,d,f,h as h$1,i,j as j$1,k,e}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a}from'./chunk-QZAMUYJE.js';import {b,c,g,d,f,h as h$1,i,j as j$1,k,e}from'./chunk-E4BOBDGV.js';import'react';import {XIcon}from'lucide-react';import {cn}from'@xploreu/lib/cn';import {jsx,jsxs}from'react/jsx-runtime';function A(o){return jsx(b,{...o})}function H(o){return jsx(c,{...o})}function z(o){return jsx(g,{...o})}function h({className:o,...r}){return jsx(e,{className:cn("fixed inset-0 z-50 bg-black/50 backdrop-blur-sm",o),...r})}function B({className:o,children:r,showCloseButton:e=true,closeClassName:t,...p}){return jsxs(d,{children:[jsx(h,{}),jsxs(f,{className:cn("group/dialog-popup fixed left-[50%] top-[50%] z-50 grid w-[calc(100%-2rem)] max-w-lg translate-x-[-50%] translate-y-[-50%] bg-bg-primary shadow-xp-lg rounded-xl overflow-hidden",o),...p,children:[r,e&&jsxs(g,{className:cn("absolute top-3 right-4 rounded-xs transition-colors text-fg-quaternary hover:text-text-primary disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-5 mt-px p-2",t),children:[jsx(XIcon,{}),jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function F({className:o,...r}){return jsx(h$1,{className:cn("px-4 py-3 grid grid-cols-[auto_1fr] items-start bg-bg-primary border-b border-border-tertiary bg-radial-[100%_200%_at_0%_0%] from-modal-dialog-stop-0 to-bg-primary group-has-[>[data-slot=dialog-close]]/dialog-popup:pr-15",o),...r})}function R({className:o,...r}){return jsx("div",{"data-slot":"dialog-content",className:cn("px-4 py-4 max-h-[60vh] overflow-y-auto",o),...r})}function j({className:o,...r}){return jsx(i,{className:cn("flex gap-2 items-center justify-end bg-bg-primary border-t border-border-tertiary px-4 py-3 shadow-[0px_-1px_24px_0px_var(--color-shadow-xs)]",o),...r})}function I({className:o,...r}){return jsx(j$1,{className:cn("col-start-2 [&:not(:has(~_[data-slot=dialog-description]))]:row-span-2 [&:not(:has(~_[data-slot=dialog-description]))]:self-center text-label-bold-2 text-text-primary",o),...r})}function L({className:o,...r}){return jsx(k,{className:cn("col-start-2 mt-0.5 text-body-regular-3 text-text-secondary",o),...r})}function M({className:o,variant:r="brand",...e}){return jsx("div",{"data-slot":"dialog-icon","data-variant":r,className:cn("row-span-2 flex items-center justify-center rounded-lg mt-px mr-3 p-2.5 [&_svg]:size-4 text-fg-white",r==="brand"&&"bg-bg-brand-solid shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-focus-ring-secondary)]",r==="error"&&"bg-bg-error-solid shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-utility-error-100)]",o),...e})}function V({src:o,imageSrc:r,className:e,avatarClassName:t,avatarImageClassName:p,imageAlt:y,variant:_="profile",...f}){return jsx("div",{"data-slot":"dialog-avatar",className:cn("row-span-2 flex items-center justify-center size-9 rounded-lg mr-3 overflow-hidden bg-bg-primary shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-focus-ring-secondary)]",e),children:jsx(a,{imageSrc:o??r,imageAlt:y,variant:_,bordered:false,badged:false,className:"size-full shrink-0",avatarClassName:cn("size-full shrink-0 rounded-lg",t),avatarImageClassName:cn("size-full object-cover",p),...f})})}export{A as a,H as b,z as c,B as d,F as e,R as f,j as g,I as h,L as i,M as j,V as k};//# sourceMappingURL=chunk-U7ER42QP.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-U7ER42QP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/dialog.tsx"],"names":["Dialog","props","jsx","DialogTrigger","DialogClose","DialogBackdrop","className","cn","DialogPopup","children","showCloseButton","closeClassName","jsxs","DialogPortal","XIcon","DialogHeader","DialogContent","DialogFooter","DialogTitle","DialogDescription","DialogIcon","variant","DialogAvatar","src","imageSrc","avatarClassName","avatarImageClassName","imageAlt","ProfileAvatar"],"mappings":"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","file":"chunk-HLURRIE7.js","sourcesContent":["import * as React from 'react';\r\nimport { XIcon } from 'lucide-react';\r\n\r\nimport {\r\n Dialog as DialogPrimitive,\r\n DialogPopup as DialogPopupPrimitive,\r\n DialogDescription as DialogDescriptionPrimitive,\r\n DialogFooter as DialogFooterPrimitive,\r\n DialogHeader as DialogHeaderPrimitive,\r\n DialogTitle as DialogTitlePrimitive,\r\n DialogTrigger as DialogTriggerPrimitive,\r\n DialogPortal as DialogPortalPrimitive,\r\n DialogBackdrop as DialogBackdropPrimitive,\r\n DialogClose as DialogClosePrimitive,\r\n type DialogProps as DialogPrimitiveProps,\r\n type DialogPopupProps as DialogPopupPrimitiveProps,\r\n type DialogDescriptionProps as DialogDescriptionPrimitiveProps,\r\n type DialogFooterProps as DialogFooterPrimitiveProps,\r\n type DialogHeaderProps as DialogHeaderPrimitiveProps,\r\n type DialogTitleProps as DialogTitlePrimitiveProps,\r\n type DialogTriggerProps as DialogTriggerPrimitiveProps,\r\n type DialogBackdropProps as DialogBackdropPrimitiveProps,\r\n type DialogCloseProps as DialogClosePrimitiveProps,\r\n} from '../primitives/dialog';\r\nimport { ProfileAvatar, type ProfileAvatarVariant } from '../composites/profile-avatar';\r\nimport { cn } from '@xploreu/lib/cn';\r\n\r\ntype DialogProps = DialogPrimitiveProps;\r\n\r\nfunction Dialog(props: DialogProps) {\r\n return <DialogPrimitive {...props} />;\r\n}\r\n\r\ntype DialogTriggerProps = DialogTriggerPrimitiveProps;\r\n\r\nfunction DialogTrigger(props: DialogTriggerProps) {\r\n return <DialogTriggerPrimitive {...props} />;\r\n}\r\n\r\ntype DialogCloseProps = DialogClosePrimitiveProps;\r\n\r\nfunction DialogClose(props: DialogCloseProps) {\r\n return <DialogClosePrimitive {...props} />;\r\n}\r\n\r\ntype DialogBackdropProps = DialogBackdropPrimitiveProps;\r\n\r\nfunction DialogBackdrop({ className, ...props }: DialogBackdropProps) {\r\n return (\r\n <DialogBackdropPrimitive\r\n className={cn('fixed inset-0 z-50 bg-black/50 backdrop-blur-sm', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogPopupProps = DialogPopupPrimitiveProps & {\r\n showCloseButton?: boolean;\r\n closeClassName?: string;\r\n};\r\n\r\nfunction DialogPopup({\r\n className,\r\n children,\r\n showCloseButton = true,\r\n closeClassName,\r\n ...props\r\n}: DialogPopupProps) {\r\n return (\r\n <DialogPortalPrimitive>\r\n <DialogBackdrop />\r\n <DialogPopupPrimitive\r\n className={cn(\r\n \"group/dialog-popup fixed left-[50%] top-[50%] z-50 grid w-[calc(100%-2rem)] max-w-lg translate-x-[-50%] translate-y-[-50%] bg-bg-primary shadow-xp-lg rounded-xl overflow-hidden\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n {showCloseButton && (\r\n <DialogClosePrimitive\r\n className={cn(\r\n \"absolute top-3 right-4 rounded-xs transition-colors text-fg-quaternary hover:text-text-primary disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-5 mt-px p-2\",\r\n closeClassName\r\n )}\r\n >\r\n <XIcon />\r\n <span className=\"sr-only\">Close</span>\r\n </DialogClosePrimitive>\r\n )}\r\n </DialogPopupPrimitive>\r\n </DialogPortalPrimitive>\r\n );\r\n}\r\n\r\ntype DialogHeaderProps = DialogHeaderPrimitiveProps;\r\n\r\nfunction DialogHeader({ className, ...props }: DialogHeaderProps) {\r\n return (\r\n <DialogHeaderPrimitive\r\n className={cn(\r\n \"px-4 py-3 grid grid-cols-[auto_1fr] items-start bg-bg-primary border-b border-border-tertiary bg-radial-[100%_200%_at_0%_0%] from-modal-dialog-stop-0 to-bg-primary group-has-[>[data-slot=dialog-close]]/dialog-popup:pr-15\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogContentProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nfunction DialogContent({ className, ...props }: DialogContentProps) {\r\n return (\r\n <div\r\n data-slot=\"dialog-content\"\r\n className={cn(\"px-4 py-4 max-h-[60vh] overflow-y-auto\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogFooterProps = DialogFooterPrimitiveProps;\r\n\r\nfunction DialogFooter({ className, ...props }: DialogFooterProps) {\r\n return (\r\n <DialogFooterPrimitive\r\n className={cn(\r\n \"flex gap-2 items-center justify-end bg-bg-primary border-t border-border-tertiary px-4 py-3 shadow-[0px_-1px_24px_0px_var(--color-shadow-xs)]\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogTitleProps = DialogTitlePrimitiveProps;\r\n\r\nfunction DialogTitle({ className, ...props }: DialogTitleProps) {\r\n return (\r\n <DialogTitlePrimitive\r\n className={cn(\"col-start-2 [&:not(:has(~_[data-slot=dialog-description]))]:row-span-2 [&:not(:has(~_[data-slot=dialog-description]))]:self-center text-label-bold-2 text-text-primary\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogDescriptionProps = DialogDescriptionPrimitiveProps;\r\n\r\nfunction DialogDescription({ className, ...props }: DialogDescriptionProps) {\r\n return (\r\n <DialogDescriptionPrimitive\r\n className={cn(\"col-start-2 mt-0.5 text-body-regular-3 text-text-secondary\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DialogIcon({\r\n className,\r\n variant = \"brand\",\r\n ...props\r\n}: React.ComponentProps<\"div\"> & {\r\n variant?: \"brand\" | \"error\"\r\n}) {\r\n return (\r\n <div\r\n data-slot=\"dialog-icon\"\r\n data-variant={variant}\r\n className={cn(\r\n \"row-span-2 flex items-center justify-center rounded-lg mt-px mr-3 p-2.5 [&_svg]:size-4 text-fg-white\",\r\n variant === \"brand\" && \"bg-bg-brand-solid shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-focus-ring-secondary)]\",\r\n variant === \"error\" && \"bg-bg-error-solid shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-utility-error-100)]\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogAvatarProps = Omit<React.ComponentProps<typeof ProfileAvatar>, \"size\" | \"bordered\" | \"badged\"> & {\r\n src?: string;\r\n imageAlt?: string;\r\n variant?: ProfileAvatarVariant;\r\n};\r\n\r\nfunction DialogAvatar({\r\n src,\r\n imageSrc,\r\n className,\r\n avatarClassName,\r\n avatarImageClassName,\r\n imageAlt,\r\n variant = \"profile\",\r\n ...props\r\n}: DialogAvatarProps) {\r\n return (\r\n <div\r\n data-slot=\"dialog-avatar\"\r\n className={cn(\r\n \"row-span-2 flex items-center justify-center size-9 rounded-lg mr-3 overflow-hidden bg-bg-primary shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-focus-ring-secondary)]\",\r\n className,\r\n )}\r\n >\r\n <ProfileAvatar\r\n imageSrc={src ?? imageSrc}\r\n imageAlt={imageAlt}\r\n variant={variant}\r\n bordered={false}\r\n badged={false}\r\n className=\"size-full shrink-0\"\r\n avatarClassName={cn(\"size-full shrink-0 rounded-lg\", avatarClassName)}\r\n avatarImageClassName={cn(\"size-full object-cover\", avatarImageClassName)}\r\n {...props}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport {\r\n Dialog,\r\n DialogTrigger,\r\n DialogClose,\r\n DialogPopup,\r\n DialogHeader,\r\n DialogContent,\r\n DialogFooter,\r\n DialogTitle,\r\n DialogDescription,\r\n DialogIcon,\r\n DialogAvatar,\r\n type DialogProps,\r\n type DialogTriggerProps,\r\n type DialogCloseProps,\r\n type DialogPopupProps,\r\n type DialogHeaderProps,\r\n type DialogContentProps,\r\n type DialogFooterProps,\r\n type DialogTitleProps,\r\n type DialogDescriptionProps,\r\n type DialogAvatarProps,\r\n};"]}
|
|
1
|
+
{"version":3,"sources":["../src/ui/dialog.tsx"],"names":["Dialog","props","jsx","DialogTrigger","DialogClose","DialogBackdrop","className","cn","DialogPopup","children","showCloseButton","closeClassName","jsxs","DialogPortal","XIcon","DialogHeader","DialogContent","DialogFooter","DialogTitle","DialogDescription","DialogIcon","variant","DialogAvatar","src","imageSrc","avatarClassName","avatarImageClassName","imageAlt","ProfileAvatar"],"mappings":"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","file":"chunk-U7ER42QP.js","sourcesContent":["import * as React from 'react';\r\nimport { XIcon } from 'lucide-react';\r\n\r\nimport {\r\n Dialog as DialogPrimitive,\r\n DialogPopup as DialogPopupPrimitive,\r\n DialogDescription as DialogDescriptionPrimitive,\r\n DialogFooter as DialogFooterPrimitive,\r\n DialogHeader as DialogHeaderPrimitive,\r\n DialogTitle as DialogTitlePrimitive,\r\n DialogTrigger as DialogTriggerPrimitive,\r\n DialogPortal as DialogPortalPrimitive,\r\n DialogBackdrop as DialogBackdropPrimitive,\r\n DialogClose as DialogClosePrimitive,\r\n type DialogProps as DialogPrimitiveProps,\r\n type DialogPopupProps as DialogPopupPrimitiveProps,\r\n type DialogDescriptionProps as DialogDescriptionPrimitiveProps,\r\n type DialogFooterProps as DialogFooterPrimitiveProps,\r\n type DialogHeaderProps as DialogHeaderPrimitiveProps,\r\n type DialogTitleProps as DialogTitlePrimitiveProps,\r\n type DialogTriggerProps as DialogTriggerPrimitiveProps,\r\n type DialogBackdropProps as DialogBackdropPrimitiveProps,\r\n type DialogCloseProps as DialogClosePrimitiveProps,\r\n} from '../primitives/dialog';\r\nimport { ProfileAvatar, type ProfileAvatarVariant } from '../composites/profile-avatar';\r\nimport { cn } from '@xploreu/lib/cn';\r\n\r\ntype DialogProps = DialogPrimitiveProps;\r\n\r\nfunction Dialog(props: DialogProps) {\r\n return <DialogPrimitive {...props} />;\r\n}\r\n\r\ntype DialogTriggerProps = DialogTriggerPrimitiveProps;\r\n\r\nfunction DialogTrigger(props: DialogTriggerProps) {\r\n return <DialogTriggerPrimitive {...props} />;\r\n}\r\n\r\ntype DialogCloseProps = DialogClosePrimitiveProps;\r\n\r\nfunction DialogClose(props: DialogCloseProps) {\r\n return <DialogClosePrimitive {...props} />;\r\n}\r\n\r\ntype DialogBackdropProps = DialogBackdropPrimitiveProps;\r\n\r\nfunction DialogBackdrop({ className, ...props }: DialogBackdropProps) {\r\n return (\r\n <DialogBackdropPrimitive\r\n className={cn('fixed inset-0 z-50 bg-black/50 backdrop-blur-sm', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogPopupProps = DialogPopupPrimitiveProps & {\r\n showCloseButton?: boolean;\r\n closeClassName?: string;\r\n};\r\n\r\nfunction DialogPopup({\r\n className,\r\n children,\r\n showCloseButton = true,\r\n closeClassName,\r\n ...props\r\n}: DialogPopupProps) {\r\n return (\r\n <DialogPortalPrimitive>\r\n <DialogBackdrop />\r\n <DialogPopupPrimitive\r\n className={cn(\r\n \"group/dialog-popup fixed left-[50%] top-[50%] z-50 grid w-[calc(100%-2rem)] max-w-lg translate-x-[-50%] translate-y-[-50%] bg-bg-primary shadow-xp-lg rounded-xl overflow-hidden\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n {showCloseButton && (\r\n <DialogClosePrimitive\r\n className={cn(\r\n \"absolute top-3 right-4 rounded-xs transition-colors text-fg-quaternary hover:text-text-primary disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-5 mt-px p-2\",\r\n closeClassName\r\n )}\r\n >\r\n <XIcon />\r\n <span className=\"sr-only\">Close</span>\r\n </DialogClosePrimitive>\r\n )}\r\n </DialogPopupPrimitive>\r\n </DialogPortalPrimitive>\r\n );\r\n}\r\n\r\ntype DialogHeaderProps = DialogHeaderPrimitiveProps;\r\n\r\nfunction DialogHeader({ className, ...props }: DialogHeaderProps) {\r\n return (\r\n <DialogHeaderPrimitive\r\n className={cn(\r\n \"px-4 py-3 grid grid-cols-[auto_1fr] items-start bg-bg-primary border-b border-border-tertiary bg-radial-[100%_200%_at_0%_0%] from-modal-dialog-stop-0 to-bg-primary group-has-[>[data-slot=dialog-close]]/dialog-popup:pr-15\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogContentProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nfunction DialogContent({ className, ...props }: DialogContentProps) {\r\n return (\r\n <div\r\n data-slot=\"dialog-content\"\r\n className={cn(\"px-4 py-4 max-h-[60vh] overflow-y-auto\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogFooterProps = DialogFooterPrimitiveProps;\r\n\r\nfunction DialogFooter({ className, ...props }: DialogFooterProps) {\r\n return (\r\n <DialogFooterPrimitive\r\n className={cn(\r\n \"flex gap-2 items-center justify-end bg-bg-primary border-t border-border-tertiary px-4 py-3 shadow-[0px_-1px_24px_0px_var(--color-shadow-xs)]\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogTitleProps = DialogTitlePrimitiveProps;\r\n\r\nfunction DialogTitle({ className, ...props }: DialogTitleProps) {\r\n return (\r\n <DialogTitlePrimitive\r\n className={cn(\"col-start-2 [&:not(:has(~_[data-slot=dialog-description]))]:row-span-2 [&:not(:has(~_[data-slot=dialog-description]))]:self-center text-label-bold-2 text-text-primary\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogDescriptionProps = DialogDescriptionPrimitiveProps;\r\n\r\nfunction DialogDescription({ className, ...props }: DialogDescriptionProps) {\r\n return (\r\n <DialogDescriptionPrimitive\r\n className={cn(\"col-start-2 mt-0.5 text-body-regular-3 text-text-secondary\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DialogIcon({\r\n className,\r\n variant = \"brand\",\r\n ...props\r\n}: React.ComponentProps<\"div\"> & {\r\n variant?: \"brand\" | \"error\"\r\n}) {\r\n return (\r\n <div\r\n data-slot=\"dialog-icon\"\r\n data-variant={variant}\r\n className={cn(\r\n \"row-span-2 flex items-center justify-center rounded-lg mt-px mr-3 p-2.5 [&_svg]:size-4 text-fg-white\",\r\n variant === \"brand\" && \"bg-bg-brand-solid shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-focus-ring-secondary)]\",\r\n variant === \"error\" && \"bg-bg-error-solid shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-utility-error-100)]\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogAvatarProps = Omit<React.ComponentProps<typeof ProfileAvatar>, \"size\" | \"bordered\" | \"badged\"> & {\r\n src?: string;\r\n imageAlt?: string;\r\n variant?: ProfileAvatarVariant;\r\n};\r\n\r\nfunction DialogAvatar({\r\n src,\r\n imageSrc,\r\n className,\r\n avatarClassName,\r\n avatarImageClassName,\r\n imageAlt,\r\n variant = \"profile\",\r\n ...props\r\n}: DialogAvatarProps) {\r\n return (\r\n <div\r\n data-slot=\"dialog-avatar\"\r\n className={cn(\r\n \"row-span-2 flex items-center justify-center size-9 rounded-lg mr-3 overflow-hidden bg-bg-primary shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-focus-ring-secondary)]\",\r\n className,\r\n )}\r\n >\r\n <ProfileAvatar\r\n imageSrc={src ?? imageSrc}\r\n imageAlt={imageAlt}\r\n variant={variant}\r\n bordered={false}\r\n badged={false}\r\n className=\"size-full shrink-0\"\r\n avatarClassName={cn(\"size-full shrink-0 rounded-lg\", avatarClassName)}\r\n avatarImageClassName={cn(\"size-full object-cover\", avatarImageClassName)}\r\n {...props}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport {\r\n Dialog,\r\n DialogTrigger,\r\n DialogClose,\r\n DialogPopup,\r\n DialogHeader,\r\n DialogContent,\r\n DialogFooter,\r\n DialogTitle,\r\n DialogDescription,\r\n DialogIcon,\r\n DialogAvatar,\r\n type DialogProps,\r\n type DialogTriggerProps,\r\n type DialogCloseProps,\r\n type DialogPopupProps,\r\n type DialogHeaderProps,\r\n type DialogContentProps,\r\n type DialogFooterProps,\r\n type DialogTitleProps,\r\n type DialogDescriptionProps,\r\n type DialogAvatarProps,\r\n};"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {cn}from'@xploreu/lib/cn';import {useAnimation,useReducedMotion,LazyMotion,domMin,m}from'motion/react';import {forwardRef,useCallback,useImperativeHandle}from'react';import {jsx,jsxs}from'react/jsx-runtime';var p=forwardRef(({onMouseEnter:c,onMouseLeave:m$1,className:u,size:L=24,duration:f=1,isAnimated:n=true,color:v,strokeWidth:M=2,...d},
|
|
2
|
-
export{p as a,T as b};//# sourceMappingURL=chunk-
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {cn}from'@xploreu/lib/cn';import {useAnimation,useReducedMotion,LazyMotion,domMin,m}from'motion/react';import {forwardRef,useCallback,useImperativeHandle}from'react';import {jsx,jsxs}from'react/jsx-runtime';var p=forwardRef(({onMouseEnter:c,onMouseLeave:m$1,className:u,size:L=24,duration:f=1,isAnimated:n=true,color:v,strokeWidth:M=2,...d},g)=>{let e=useAnimation(),o=useReducedMotion(),r=useCallback(()=>{if(o){e.start("normal");return}e.set("normal"),e.start("animate");},[e,o]),i=useCallback(()=>{e.start("normal");},[e]);useImperativeHandle(g,()=>({startAnimation:r,stopAnimation:i}),[r,i]);let h=useCallback(s=>{c?.(s),!(!n||o)&&r();},[c,n,o,r]),k=useCallback(s=>{m$1?.(s),!(!n||o)&&i();},[m$1,n,o,i]),x={normal:{rotate:0,scale:1},animate:{rotate:[0,90,0],scale:[1,1.05,1],transition:{duration:.52*f,times:[0,.5,1],ease:[.34,1.3,.64,1]}}};return jsx(LazyMotion,{features:domMin,strict:true,children:jsx(m.div,{className:cn("group/icon inline-flex items-center justify-center",u),onMouseEnter:h,onMouseLeave:k,...d,style:{color:v,...d.style},children:jsx(m.svg,{className:"group-[&[class*='size-']]/icon:size-full",xmlns:"http://www.w3.org/2000/svg",width:L,height:L,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:M,strokeLinecap:"round",strokeLinejoin:"round",animate:e,initial:"normal",style:{overflow:"visible"},children:jsxs(m.g,{variants:x,style:{transformOrigin:"12px 12px",transformBox:"view-box"},children:[jsx("path",{d:"M12 2.14999L15.45 5.59999L12 9.04999L8.55 5.59999L12 2.14999ZM18.4 8.54999L21.85 12L18.4 15.45L14.95 12L18.4 8.54999ZM12 14.95L15.45 18.4L12 21.85L8.55 18.4L12 14.95Z",fill:"currentColor",stroke:"none"}),jsx("path",{d:"M5.6 8.54999L9.05 12L5.6 15.45L2.15 12L5.6 8.54999Z",fill:"currentColor",stroke:"none"}),jsx("path",{d:"M12 2.14999L15.45 5.59999L12 9.04999L8.55 5.59999L12 2.14999Z"}),jsx("path",{d:"M18.4 8.54999L21.85 12L18.4 15.45L14.95 12L18.4 8.54999Z"}),jsx("path",{d:"M12 14.95L15.45 18.4L12 21.85L8.55 18.4L12 14.95Z"}),jsx("path",{d:"M5.6 8.54999L9.05 12L5.6 15.45L2.15 12L5.6 8.54999Z"})]})})})})});p.displayName="WorkspaceFilledIcon";var T=p;
|
|
2
|
+
export{p as a,T as b};//# sourceMappingURL=chunk-XQ5TVORG.js.map
|
|
3
|
+
//# sourceMappingURL=chunk-XQ5TVORG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/icons/workspace-filled-icon.tsx"],"names":["WorkspaceFilledIcon","forwardRef","onMouseEnter","onMouseLeave","className","size","duration","isAnimated","color","strokeWidth","props","ref","controls","useAnimation","reduced","useReducedMotion","startAnimation","useCallback","stopAnimation","useImperativeHandle","handleEnter","e","handleLeave","spinVariants","jsx","LazyMotion","domMin","m","cn","jsxs","workspace_filled_icon_default"],"mappings":"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","file":"chunk-XQ5TVORG.js","sourcesContent":["\"use client\";\n\nimport { cn } from \"@xploreu/lib/cn\";\nimport type { Variants } from \"motion/react\";\nimport {\n LazyMotion,\n domMin,\n m,\n useAnimation,\n useReducedMotion,\n} from \"motion/react\";\nimport {\n forwardRef,\n useCallback,\n useImperativeHandle,\n type HTMLAttributes,\n} from \"react\";\n\nexport interface WorkspaceFilledIconHandle {\n startAnimation: () => void;\n stopAnimation: () => void;\n}\n\nexport interface WorkspaceFilledIconProps\n extends Omit<\n HTMLAttributes<HTMLDivElement>,\n | \"color\"\n | \"onDrag\"\n | \"onDragStart\"\n | \"onDragEnd\"\n | \"onAnimationStart\"\n | \"onAnimationEnd\"\n | \"onAnimationIteration\"\n > {\n size?: number;\n duration?: number;\n isAnimated?: boolean;\n color?: string;\n strokeWidth?: number | string;\n}\n\nconst WorkspaceFilledIcon = forwardRef<\n WorkspaceFilledIconHandle,\n WorkspaceFilledIconProps\n>(\n (\n {\n onMouseEnter,\n onMouseLeave,\n className,\n size = 24,\n duration = 1,\n isAnimated = true,\n color,\n strokeWidth = 2,\n ...props\n },\n ref,\n ) => {\n const controls = useAnimation();\n const reduced = useReducedMotion();\n\n const startAnimation = useCallback(() => {\n if (reduced) {\n controls.start(\"normal\");\n return;\n }\n controls.set(\"normal\");\n controls.start(\"animate\");\n }, [controls, reduced]);\n\n const stopAnimation = useCallback(() => {\n controls.start(\"normal\");\n }, [controls]);\n\n useImperativeHandle(\n ref,\n () => ({\n startAnimation,\n stopAnimation,\n }),\n [startAnimation, stopAnimation],\n );\n\n const handleEnter = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n onMouseEnter?.(e);\n if (!isAnimated || reduced) return;\n startAnimation();\n },\n [onMouseEnter, isAnimated, reduced, startAnimation],\n );\n\n const handleLeave = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(e);\n if (!isAnimated || reduced) return;\n stopAnimation();\n },\n [onMouseLeave, isAnimated, reduced, stopAnimation],\n );\n\n const spinVariants: Variants = {\n normal: { rotate: 0, scale: 1 },\n animate: {\n rotate: [0, 90, 0],\n scale: [1, 1.05, 1],\n transition: {\n duration: 0.52 * duration,\n times: [0, 0.5, 1],\n ease: [0.34, 1.3, 0.64, 1],\n },\n },\n };\n\n return (\n <LazyMotion features={domMin} strict>\n <m.div\n className={cn(\"group/icon inline-flex items-center justify-center\", className)}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n {...props}\n style={{ color, ...props.style }}\n >\n <m.svg\n className=\"group-[&[class*='size-']]/icon:size-full\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n animate={controls}\n initial=\"normal\"\n style={{ overflow: \"visible\" }}\n >\n <m.g\n variants={spinVariants}\n style={{\n transformOrigin: \"12px 12px\",\n transformBox: \"view-box\",\n }}\n >\n <path\n d=\"M12 2.14999L15.45 5.59999L12 9.04999L8.55 5.59999L12 2.14999ZM18.4 8.54999L21.85 12L18.4 15.45L14.95 12L18.4 8.54999ZM12 14.95L15.45 18.4L12 21.85L8.55 18.4L12 14.95Z\"\n fill=\"currentColor\"\n stroke=\"none\"\n />\n <path\n d=\"M5.6 8.54999L9.05 12L5.6 15.45L2.15 12L5.6 8.54999Z\"\n fill=\"currentColor\"\n stroke=\"none\"\n />\n <path d=\"M12 2.14999L15.45 5.59999L12 9.04999L8.55 5.59999L12 2.14999Z\" />\n <path d=\"M18.4 8.54999L21.85 12L18.4 15.45L14.95 12L18.4 8.54999Z\" />\n <path d=\"M12 14.95L15.45 18.4L12 21.85L8.55 18.4L12 14.95Z\" />\n <path d=\"M5.6 8.54999L9.05 12L5.6 15.45L2.15 12L5.6 8.54999Z\" />\n </m.g>\n </m.svg>\n </m.div>\n </LazyMotion>\n );\n },\n);\n\nWorkspaceFilledIcon.displayName = \"WorkspaceFilledIcon\";\n\nexport default WorkspaceFilledIcon;\nexport { WorkspaceFilledIcon };\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {cn}from'@xploreu/lib/cn';import {useAnimation,useReducedMotion,LazyMotion,domMin,m}from'motion/react';import {forwardRef,useCallback,useImperativeHandle}from'react';import {jsx,jsxs}from'react/jsx-runtime';var p=forwardRef(({onMouseEnter:l,onMouseLeave:c,className:f,size:d=24,duration:v=1,isAnimated:o=true,color:w,strokeWidth:M=2,...u},
|
|
2
|
-
export{p as a,T as b};//# sourceMappingURL=chunk-
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {cn}from'@xploreu/lib/cn';import {useAnimation,useReducedMotion,LazyMotion,domMin,m}from'motion/react';import {forwardRef,useCallback,useImperativeHandle}from'react';import {jsx,jsxs}from'react/jsx-runtime';var p=forwardRef(({onMouseEnter:l,onMouseLeave:c,className:f,size:d=24,duration:v=1,isAnimated:o=true,color:w,strokeWidth:M=2,...u},g)=>{let n=useAnimation(),e=useReducedMotion(),r=useCallback(()=>{if(e){n.start("normal");return}n.set("normal"),n.start("animate");},[n,e]),i=useCallback(()=>{n.start("normal");},[n]);useImperativeHandle(g,()=>({startAnimation:r,stopAnimation:i}),[r,i]);let H=useCallback(s=>{l?.(s),!(!o||e)&&r();},[l,o,e,r]),h=useCallback(s=>{c?.(s),!(!o||e)&&i();},[c,o,e,i]),x={normal:{x:0,rotate:0},animate:{x:[0,2.2,0],rotate:[0,9,0],transition:{duration:.52*v,times:[0,.45,1],ease:[.34,1.32,.64,1]}}};return jsx(LazyMotion,{features:domMin,strict:true,children:jsx(m.div,{className:cn("group/icon inline-flex items-center justify-center",f),onMouseEnter:H,onMouseLeave:h,...u,style:{color:w,...u.style},children:jsxs(m.svg,{className:"group-[&[class*='size-']]/icon:size-full",xmlns:"http://www.w3.org/2000/svg",width:d,height:d,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:M,strokeLinecap:"round",strokeLinejoin:"round",animate:n,initial:"normal",style:{overflow:"visible"},children:[jsx("path",{d:"M4 4H17C17.2652 4 17.5196 4.10536 17.7071 4.29289C17.8946 4.48043 18 4.73478 18 5V20C18 20.2652 18.1054 20.5196 18.2929 20.7071C18.4804 20.8946 18.7348 21 19 21H5C4.73478 21 4.48043 20.8946 4.29289 20.7071C4.10536 20.5196 4 20.2652 4 20V4Z"}),jsx("path",{d:"M7 8H14"}),jsx("path",{d:"M7 12H14"}),jsx("path",{d:"M7 16H11"}),jsx(m.g,{variants:x,style:{transformOrigin:"18px 21px",transformBox:"view-box"},children:jsx("path",{d:"M18 8H21C21.2652 8 21.5196 8.10536 21.7071 8.29289C21.8946 8.48043 22 8.73478 22 9V20C22 20.2652 21.8946 20.5196 21.7071 20.7071C21.5196 20.8946 21.2652 21 21 21H19"})})]})})})});p.displayName="NewsIcon";var T=p;
|
|
2
|
+
export{p as a,T as b};//# sourceMappingURL=chunk-XTBQ4NE3.js.map
|
|
3
|
+
//# sourceMappingURL=chunk-XTBQ4NE3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/icons/news-icon.tsx"],"names":["NewsIcon","forwardRef","onMouseEnter","onMouseLeave","className","size","duration","isAnimated","color","strokeWidth","props","ref","controls","useAnimation","reduced","useReducedMotion","startAnimation","useCallback","stopAnimation","useImperativeHandle","handleEnter","e","handleLeave","newsBackVariants","jsx","LazyMotion","domMin","cn","jsxs","news_icon_default"],"mappings":"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","file":"chunk-XTBQ4NE3.js","sourcesContent":["\"use client\";\n\nimport { cn } from \"@xploreu/lib/cn\";\nimport type { Variants } from \"motion/react\";\nimport {\n LazyMotion,\n domMin,\n m,\n useAnimation,\n useReducedMotion,\n} from \"motion/react\";\nimport {\n forwardRef,\n useCallback,\n useImperativeHandle,\n type HTMLAttributes,\n} from \"react\";\n\nexport interface NewsIconHandle {\n startAnimation: () => void;\n stopAnimation: () => void;\n}\n\nexport interface NewsIconProps\n extends Omit<\n HTMLAttributes<HTMLDivElement>,\n | \"color\"\n | \"onDrag\"\n | \"onDragStart\"\n | \"onDragEnd\"\n | \"onAnimationStart\"\n | \"onAnimationEnd\"\n | \"onAnimationIteration\"\n > {\n size?: number;\n duration?: number;\n isAnimated?: boolean;\n color?: string;\n strokeWidth?: number | string;\n}\n\nconst NewsIcon = forwardRef<NewsIconHandle, NewsIconProps>(\n (\n {\n onMouseEnter,\n onMouseLeave,\n className,\n size = 24,\n duration = 1,\n isAnimated = true,\n color,\n strokeWidth = 2,\n ...props\n },\n ref,\n ) => {\n const controls = useAnimation();\n const reduced = useReducedMotion();\n\n const startAnimation = useCallback(() => {\n if (reduced) {\n controls.start(\"normal\");\n return;\n }\n controls.set(\"normal\");\n controls.start(\"animate\");\n }, [controls, reduced]);\n\n const stopAnimation = useCallback(() => {\n controls.start(\"normal\");\n }, [controls]);\n\n useImperativeHandle(\n ref,\n () => ({\n startAnimation,\n stopAnimation,\n }),\n [startAnimation, stopAnimation],\n );\n\n const handleEnter = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n onMouseEnter?.(e);\n if (!isAnimated || reduced) return;\n startAnimation();\n },\n [onMouseEnter, isAnimated, reduced, startAnimation],\n );\n\n const handleLeave = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(e);\n if (!isAnimated || reduced) return;\n stopAnimation();\n },\n [onMouseLeave, isAnimated, reduced, stopAnimation],\n );\n\n const newsBackVariants: Variants = {\n normal: { x: 0, rotate: 0 },\n animate: {\n x: [0, 2.2, 0],\n rotate: [0, 9, 0],\n transition: {\n duration: 0.52 * duration,\n times: [0, 0.45, 1],\n ease: [0.34, 1.32, 0.64, 1],\n },\n },\n };\n\n return (\n <LazyMotion features={domMin} strict>\n <m.div\n className={cn(\"group/icon inline-flex items-center justify-center\", className)}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n {...props}\n style={{ color, ...props.style }}\n >\n <m.svg\n className=\"group-[&[class*='size-']]/icon:size-full\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n animate={controls}\n initial=\"normal\"\n style={{ overflow: \"visible\" }}\n >\n <path d=\"M4 4H17C17.2652 4 17.5196 4.10536 17.7071 4.29289C17.8946 4.48043 18 4.73478 18 5V20C18 20.2652 18.1054 20.5196 18.2929 20.7071C18.4804 20.8946 18.7348 21 19 21H5C4.73478 21 4.48043 20.8946 4.29289 20.7071C4.10536 20.5196 4 20.2652 4 20V4Z\" />\n <path d=\"M7 8H14\" />\n <path d=\"M7 12H14\" />\n <path d=\"M7 16H11\" />\n <m.g\n variants={newsBackVariants}\n style={{ transformOrigin: \"18px 21px\", transformBox: \"view-box\" }}\n >\n <path d=\"M18 8H21C21.2652 8 21.5196 8.10536 21.7071 8.29289C21.8946 8.48043 22 8.73478 22 9V20C22 20.2652 21.8946 20.5196 21.7071 20.7071C21.5196 20.8946 21.2652 21 21 21H19\" />\n </m.g>\n </m.svg>\n </m.div>\n </LazyMotion>\n );\n },\n);\n\nNewsIcon.displayName = \"NewsIcon\";\n\nexport default NewsIcon;\nexport { NewsIcon };\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {cn}from'@xploreu/lib/cn';import {useAnimation,useReducedMotion,LazyMotion,domMin,m}from'motion/react';import {forwardRef,useCallback,useImperativeHandle}from'react';import {jsx,jsxs}from'react/jsx-runtime';var
|
|
2
|
-
export{
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {cn}from'@xploreu/lib/cn';import {useAnimation,useReducedMotion,LazyMotion,domMin,m}from'motion/react';import {forwardRef,useCallback,useImperativeHandle}from'react';import {jsx,jsxs}from'react/jsx-runtime';var p=forwardRef(({onMouseEnter:C,onMouseLeave:m$1,className:M,size:c=24,duration:f=1,isAnimated:o=true,color:g,strokeWidth:v=2,...d},H)=>{let e=useAnimation(),t=useReducedMotion(),i=useCallback(()=>{if(t){e.start("normal");return}e.set("normal"),e.start("animate");},[e,t]),r=useCallback(()=>{e.start("normal");},[e]);useImperativeHandle(H,()=>({startAnimation:i,stopAnimation:r}),[i,r]);let L=useCallback(a=>{C?.(a),!(!o||t)&&i();},[C,o,t,i]),b=useCallback(a=>{m$1?.(a),!(!o||t)&&r();},[m$1,o,t,r]),V={normal:{scale:1},animate:{scale:[1,.82,1.11,1],transition:{duration:.52*f,times:[0,.32,.72,1],ease:[.34,1.35,.64,1]}}};return jsx(LazyMotion,{features:domMin,strict:true,children:jsx(m.div,{className:cn("group/icon inline-flex items-center justify-center",M),onMouseEnter:L,onMouseLeave:b,...d,style:{color:g,...d.style},children:jsxs(m.svg,{className:"group-[&[class*='size-']]/icon:size-full",xmlns:"http://www.w3.org/2000/svg",width:c,height:c,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:v,strokeLinecap:"round",strokeLinejoin:"round",animate:e,initial:"normal",style:{overflow:"visible"},children:[jsx("path",{d:"M16 8V4C16 3.73478 15.8946 3.48043 15.7071 3.29289C15.5196 3.10536 15.2652 3 15 3H3C2.73478 3 2.48043 3.10536 2.29289 3.29289C2.10536 3.48043 2 3.73478 2 4V12C2 12.2652 2.10536 12.5196 2.29289 12.7071C2.48043 12.8946 2.73478 13 3 13H5V16L8 13H9"}),jsxs(m.g,{variants:V,style:{transformOrigin:"16.5px 12px",transformBox:"view-box"},children:[jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M11 8H21C21.2652 8 21.5196 8.10536 21.7071 8.29289C21.8946 8.48043 22 8.73478 22 9V15C22 15.2652 21.8946 15.5196 21.7071 15.7071C21.5196 15.8946 21.2652 16 21 16H19V19L16 16H11C10.7348 16 10.4804 15.8946 10.2929 15.7071C10.1054 15.5196 10 15.2652 10 15V9C10 8.73478 10.1054 8.48043 10.2929 8.29289C10.4804 8.10536 10.7348 8 11 8ZM13 11C12.7348 11 12.4804 11.1054 12.2929 11.2929C12.1054 11.4804 12 11.7348 12 12C12 12.2652 12.1054 12.5196 12.2929 12.7071C12.4804 12.8946 12.7348 13 13 13C13.2652 13 13.5196 12.8946 13.7071 12.7071C13.8946 12.5196 14 12.2652 14 12C14 11.7348 13.8946 11.4804 13.7071 11.2929C13.5196 11.1054 13.2652 11 13 11ZM16 11C15.7348 11 15.4804 11.1054 15.2929 11.2929C15.1054 11.4804 15 11.7348 15 12C15 12.2652 15.1054 12.5196 15.2929 12.7071C15.4804 12.8946 15.7348 13 16 13C16.2652 13 16.5196 12.8946 16.7071 12.7071C16.8946 12.5196 17 12.2652 17 12C17 11.7348 16.8946 11.4804 16.7071 11.2929C16.5196 11.1054 16.2652 11 16 11ZM19 11C18.7348 11 18.4804 11.1054 18.2929 11.2929C18.1054 11.4804 18 11.7348 18 12C18 12.2652 18.1054 12.5196 18.2929 12.7071C18.4804 12.8946 18.7348 13 19 13C19.2652 13 19.5196 12.8946 19.7071 12.7071C19.8946 12.5196 20 12.2652 20 12C20 11.7348 19.8946 11.4804 19.7071 11.2929C19.5196 11.1054 19.2652 11 19 11Z",fill:"currentColor",stroke:"none"}),jsx("path",{d:"M11 8H21C21.2652 8 21.5196 8.10536 21.7071 8.29289C21.8946 8.48043 22 8.73478 22 9V15C22 15.2652 21.8946 15.5196 21.7071 15.7071C21.5196 15.8946 21.2652 16 21 16H19V19L16 16H11C10.7348 16 10.4804 15.8946 10.2929 15.7071C10.1054 15.5196 10 15.2652 10 15V9C10 8.73478 10.1054 8.48043 10.2929 8.29289C10.4804 8.10536 10.7348 8 11 8Z"})]})]})})})});p.displayName="MessagesFilledIcon";var R=p;
|
|
2
|
+
export{p as a,R as b};//# sourceMappingURL=chunk-YOJIU2AM.js.map
|
|
3
|
+
//# sourceMappingURL=chunk-YOJIU2AM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/icons/messages-filled-icon.tsx"],"names":["MessagesFilledIcon","forwardRef","onMouseEnter","onMouseLeave","className","size","duration","isAnimated","color","strokeWidth","props","ref","controls","useAnimation","reduced","useReducedMotion","startAnimation","useCallback","stopAnimation","useImperativeHandle","handleEnter","e","handleLeave","bubbleVariants","jsx","LazyMotion","domMin","m","cn","jsxs","messages_filled_icon_default"],"mappings":"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","file":"chunk-YOJIU2AM.js","sourcesContent":["\"use client\";\n\nimport { cn } from \"@xploreu/lib/cn\";\nimport type { Variants } from \"motion/react\";\nimport {\n LazyMotion,\n domMin,\n m,\n useAnimation,\n useReducedMotion,\n} from \"motion/react\";\nimport {\n forwardRef,\n useCallback,\n useImperativeHandle,\n type HTMLAttributes,\n} from \"react\";\n\nexport interface MessagesFilledIconHandle {\n startAnimation: () => void;\n stopAnimation: () => void;\n}\n\nexport interface MessagesFilledIconProps\n extends Omit<\n HTMLAttributes<HTMLDivElement>,\n | \"color\"\n | \"onDrag\"\n | \"onDragStart\"\n | \"onDragEnd\"\n | \"onAnimationStart\"\n | \"onAnimationEnd\"\n | \"onAnimationIteration\"\n > {\n size?: number;\n duration?: number;\n isAnimated?: boolean;\n color?: string;\n strokeWidth?: number | string;\n}\n\nconst MessagesFilledIcon = forwardRef<\n MessagesFilledIconHandle,\n MessagesFilledIconProps\n>(\n (\n {\n onMouseEnter,\n onMouseLeave,\n className,\n size = 24,\n duration = 1,\n isAnimated = true,\n color,\n strokeWidth = 2,\n ...props\n },\n ref,\n ) => {\n const controls = useAnimation();\n const reduced = useReducedMotion();\n\n const startAnimation = useCallback(() => {\n if (reduced) {\n controls.start(\"normal\");\n return;\n }\n controls.set(\"normal\");\n controls.start(\"animate\");\n }, [controls, reduced]);\n\n const stopAnimation = useCallback(() => {\n controls.start(\"normal\");\n }, [controls]);\n\n useImperativeHandle(\n ref,\n () => ({\n startAnimation,\n stopAnimation,\n }),\n [startAnimation, stopAnimation],\n );\n\n const handleEnter = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n onMouseEnter?.(e);\n if (!isAnimated || reduced) return;\n startAnimation();\n },\n [onMouseEnter, isAnimated, reduced, startAnimation],\n );\n\n const handleLeave = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(e);\n if (!isAnimated || reduced) return;\n stopAnimation();\n },\n [onMouseLeave, isAnimated, reduced, stopAnimation],\n );\n\n const bubbleVariants: Variants = {\n normal: { scale: 1 },\n animate: {\n scale: [1, 0.82, 1.11, 1],\n transition: {\n duration: 0.52 * duration,\n times: [0, 0.32, 0.72, 1],\n ease: [0.34, 1.35, 0.64, 1],\n },\n },\n };\n\n return (\n <LazyMotion features={domMin} strict>\n <m.div\n className={cn(\"group/icon inline-flex items-center justify-center\", className)}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n {...props}\n style={{ color, ...props.style }}\n >\n <m.svg\n className=\"group-[&[class*='size-']]/icon:size-full\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n animate={controls}\n initial=\"normal\"\n style={{ overflow: \"visible\" }}\n >\n <path d=\"M16 8V4C16 3.73478 15.8946 3.48043 15.7071 3.29289C15.5196 3.10536 15.2652 3 15 3H3C2.73478 3 2.48043 3.10536 2.29289 3.29289C2.10536 3.48043 2 3.73478 2 4V12C2 12.2652 2.10536 12.5196 2.29289 12.7071C2.48043 12.8946 2.73478 13 3 13H5V16L8 13H9\" />\n <m.g\n variants={bubbleVariants}\n style={{\n transformOrigin: \"16.5px 12px\",\n transformBox: \"view-box\",\n }}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11 8H21C21.2652 8 21.5196 8.10536 21.7071 8.29289C21.8946 8.48043 22 8.73478 22 9V15C22 15.2652 21.8946 15.5196 21.7071 15.7071C21.5196 15.8946 21.2652 16 21 16H19V19L16 16H11C10.7348 16 10.4804 15.8946 10.2929 15.7071C10.1054 15.5196 10 15.2652 10 15V9C10 8.73478 10.1054 8.48043 10.2929 8.29289C10.4804 8.10536 10.7348 8 11 8ZM13 11C12.7348 11 12.4804 11.1054 12.2929 11.2929C12.1054 11.4804 12 11.7348 12 12C12 12.2652 12.1054 12.5196 12.2929 12.7071C12.4804 12.8946 12.7348 13 13 13C13.2652 13 13.5196 12.8946 13.7071 12.7071C13.8946 12.5196 14 12.2652 14 12C14 11.7348 13.8946 11.4804 13.7071 11.2929C13.5196 11.1054 13.2652 11 13 11ZM16 11C15.7348 11 15.4804 11.1054 15.2929 11.2929C15.1054 11.4804 15 11.7348 15 12C15 12.2652 15.1054 12.5196 15.2929 12.7071C15.4804 12.8946 15.7348 13 16 13C16.2652 13 16.5196 12.8946 16.7071 12.7071C16.8946 12.5196 17 12.2652 17 12C17 11.7348 16.8946 11.4804 16.7071 11.2929C16.5196 11.1054 16.2652 11 16 11ZM19 11C18.7348 11 18.4804 11.1054 18.2929 11.2929C18.1054 11.4804 18 11.7348 18 12C18 12.2652 18.1054 12.5196 18.2929 12.7071C18.4804 12.8946 18.7348 13 19 13C19.2652 13 19.5196 12.8946 19.7071 12.7071C19.8946 12.5196 20 12.2652 20 12C20 11.7348 19.8946 11.4804 19.7071 11.2929C19.5196 11.1054 19.2652 11 19 11Z\"\n fill=\"currentColor\"\n stroke=\"none\"\n />\n <path d=\"M11 8H21C21.2652 8 21.5196 8.10536 21.7071 8.29289C21.8946 8.48043 22 8.73478 22 9V15C22 15.2652 21.8946 15.5196 21.7071 15.7071C21.5196 15.8946 21.2652 16 21 16H19V19L16 16H11C10.7348 16 10.4804 15.8946 10.2929 15.7071C10.1054 15.5196 10 15.2652 10 15V9C10 8.73478 10.1054 8.48043 10.2929 8.29289C10.4804 8.10536 10.7348 8 11 8Z\" />\n </m.g>\n </m.svg>\n </m.div>\n </LazyMotion>\n );\n },\n);\n\nMessagesFilledIcon.displayName = \"MessagesFilledIcon\";\n\nexport default MessagesFilledIcon;\nexport { MessagesFilledIcon };\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import {jsxs,jsx}from'react/jsx-runtime';function n({color:C="currentColor",size:l=24,strokeWidth:e=0,absoluteStrokeWidth:o,...i}){return jsxs("svg",{fill:"none",height:l,viewBox:"0 0 24 24",width:l,xmlns:"http://www.w3.org/2000/svg",...i,children:[jsx("path",{d:"M4 20V4C4 3.46957 4.21087 2.96101 4.58594 2.58594C4.96101 2.21086 5.46957 2 6 2H14C14.2652 2 14.5195 2.10543 14.707 2.29297L19.707 7.29297C19.8946 7.4805 20 7.73478 20 8V20C20 20.5304 19.7891 21.039 19.4141 21.4141C19.039 21.7891 18.5304 22 18 22H6C5.46957 22 4.96101 21.7891 4.58594 21.4141C4.21087 21.039 4 20.5304 4 20ZM6 20H18V8.41406L13.5859 4H6V20Z",fill:C}),jsx("path",{d:"M13 3C13 2.44772 13.4477 2 14 2C14.5523 2 15 2.44772 15 3V7H19C19.5523 7 20 7.44772 20 8C20 8.55228 19.5523 9 19 9H14C13.4477 9 13 8.55228 13 8V3Z",fill:C}),jsx("path",{d:"M11 8C11.5523 8 12 8.44772 12 9C12 9.55228 11.5523 10 11 10H9C8.44772 10 8 9.55228 8 9C8 8.44772 8.44772 8 9 8H11Z",fill:C}),jsx("path",{d:"M14.885 12.8008C15.2711 12.406 15.9042 12.3991 16.299 12.7852C16.6938 13.1714 16.7009 13.8044 16.3146 14.1992L11.8146 18.7988C11.6279 18.9897 11.3727 19.0981 11.1057 19.0996C10.8385 19.1011 10.5817 18.9955 10.3928 18.8066L8.09297 16.5068C7.70254 16.1163 7.70248 15.4833 8.09297 15.0928C8.48347 14.7024 9.11653 14.7024 9.50703 15.0928L11.091 16.6768L14.885 12.8008Z",fill:C})]})}var h=n;
|
|
2
|
+
export{h as a};//# sourceMappingURL=chunk-YQ5PPSZY.js.map
|
|
3
|
+
//# sourceMappingURL=chunk-YQ5PPSZY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/icons/apply-online-icon.tsx"],"names":["ApplyOnlineIcon","color","size","strokeWidth","absoluteStrokeWidth","props","jsxs","jsx","apply_online_icon_default"],"mappings":"yCAIA,SAASA,CAAAA,CAAgB,CACvB,KAAA,CAAAC,CAAAA,CAAQ,cAAA,CACR,IAAA,CAAAC,CAAAA,CAAO,GACP,WAAA,CAAAC,CAAAA,CAAc,CAAA,CACd,mBAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAAc,CACZ,OACEC,IAAAA,CAAC,KAAA,CAAA,CACC,IAAA,CAAK,OACL,MAAA,CAAQJ,CAAAA,CACR,OAAA,CAAQ,WAAA,CACR,MAAOA,CAAAA,CACP,KAAA,CAAM,4BAAA,CACL,GAAGG,CAAAA,CAEJ,QAAA,CAAA,CAAAE,GAAAA,CAAC,MAAA,CAAA,CACC,EAAE,oWAAA,CACF,IAAA,CAAMN,CAAAA,CACR,CAAA,CACAM,GAAAA,CAAC,MAAA,CAAA,CACC,CAAA,CAAE,oJAAA,CACF,KAAMN,CAAAA,CACR,CAAA,CACAM,GAAAA,CAAC,MAAA,CAAA,CACC,CAAA,CAAE,oHAAA,CACF,IAAA,CAAMN,CAAAA,CACR,EACAM,GAAAA,CAAC,MAAA,CAAA,CACC,CAAA,CAAE,8WAAA,CACF,KAAMN,CAAAA,CACR,CAAA,CAAA,CACF,CAEJ,KAEOO,CAAAA,CAAQR","file":"chunk-YQ5PPSZY.js","sourcesContent":["\"use client\";\r\n\r\nimport { type IconProps } from \"../types\";\r\n\r\nfunction ApplyOnlineIcon({\r\n color = \"currentColor\",\r\n size = 24,\r\n strokeWidth = 0,\r\n absoluteStrokeWidth,\r\n ...props\r\n}: IconProps) {\r\n return (\r\n <svg\r\n fill=\"none\"\r\n height={size}\r\n viewBox=\"0 0 24 24\"\r\n width={size}\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M4 20V4C4 3.46957 4.21087 2.96101 4.58594 2.58594C4.96101 2.21086 5.46957 2 6 2H14C14.2652 2 14.5195 2.10543 14.707 2.29297L19.707 7.29297C19.8946 7.4805 20 7.73478 20 8V20C20 20.5304 19.7891 21.039 19.4141 21.4141C19.039 21.7891 18.5304 22 18 22H6C5.46957 22 4.96101 21.7891 4.58594 21.4141C4.21087 21.039 4 20.5304 4 20ZM6 20H18V8.41406L13.5859 4H6V20Z\"\r\n fill={color}\r\n />\r\n <path\r\n d=\"M13 3C13 2.44772 13.4477 2 14 2C14.5523 2 15 2.44772 15 3V7H19C19.5523 7 20 7.44772 20 8C20 8.55228 19.5523 9 19 9H14C13.4477 9 13 8.55228 13 8V3Z\"\r\n fill={color}\r\n />\r\n <path\r\n d=\"M11 8C11.5523 8 12 8.44772 12 9C12 9.55228 11.5523 10 11 10H9C8.44772 10 8 9.55228 8 9C8 8.44772 8.44772 8 9 8H11Z\"\r\n fill={color}\r\n />\r\n <path\r\n d=\"M14.885 12.8008C15.2711 12.406 15.9042 12.3991 16.299 12.7852C16.6938 13.1714 16.7009 13.8044 16.3146 14.1992L11.8146 18.7988C11.6279 18.9897 11.3727 19.0981 11.1057 19.0996C10.8385 19.1011 10.5817 18.9955 10.3928 18.8066L8.09297 16.5068C7.70254 16.1163 7.70248 15.4833 8.09297 15.0928C8.48347 14.7024 9.11653 14.7024 9.50703 15.0928L11.091 16.6768L14.885 12.8008Z\"\r\n fill={color}\r\n />\r\n </svg>\r\n );\r\n}\r\n\r\nexport default ApplyOnlineIcon;\r\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {a,b as b$1,j,i,k,l,m,q,s,w,x,H}from'./chunk-C5UISTOE.js';import {g}from'./chunk-HHG7BSWN.js';import {b}from'./chunk-Y6TKCAAJ.js';import*as r from'react';import {cn}from'@xploreu/lib/cn';import {SearchIcon,XIcon}from'lucide-react';import {useControlledState}from'@xploreu/hooks/use-controlled-state';import {jsxs,jsx,Fragment}from'react/jsx-runtime';function ae({multiple:B=true,inputPlaceholder:q$1="Search...",container:A,items:u,infiniteScroll:H$1,isPending:U,taggable:b$2=false,maxVisible:m$1,className:X,triggerClassName:D,contentClassName:F,...i$1}){let[x$1,h]=useControlledState({value:i$1?.inputValue?.toString(),defaultValue:i$1?.defaultInputValue?.toString(),onChange:i$1?.onInputValueChange}),[c,v]=useControlledState({value:i$1?.value??[],defaultValue:i$1?.defaultValue??[],onChange:i$1?.onValueChange}),[I,V]=r.useState([]),d=r.useRef(new Set);r.useEffect(()=>{let e=new Set(c.map(t=>t.value));V(t=>{let l=t.filter(a=>e.has(a.value));return l.length===t.length?t:(d.current=new Set(l.map(a=>a.value)),l)});},[c]);let n=x$1?.toString().trim()??"",G=r.useMemo(()=>n?c.some(e=>e.value.toLowerCase()===n.toLowerCase()):false,[n,c]),C=r.useMemo(()=>!b$2||!n?false:!u?.some(e=>e.label.toLowerCase()===n.toLowerCase()),[b$2,n,u]),J=r.useMemo(()=>{let e=[...u??[],...I];if(C){let t={label:n,value:n,tag:true};return [...e,t]}return e},[u,I,C,n]);return jsxs(a,{...i$1,behavior:"chip-outside",multiple:true,items:b$2?J:u,isItemEqualToValue:(e,t)=>e.value===t.value,onValueChange:(e,t)=>{if(b$2){let l=e.filter(a=>a?.tag===true&&!d.current.has(a.value));if(l.length>0){for(let a of l)d.current.add(a.value);V(a=>[...a,...l]);}}v(B?e:[e[e.length-1]],t);},onInputValueChange:h,children:[jsxs("div",{className:cn("flex flex-col gap-2",X),children:[jsx(g,{render:jsx(b,{className:cn("h-9 text-body-regular-3 pl-9 pr-7",D),endContent:jsx(b$1,{nativeButton:false,render:jsx(XIcon,{className:"!size-5 !right-1.5 data-[hidden=true]:opacity-0 opacity-100 transition-opacity duration-300 cursor-pointer","data-hidden":!x$1,"data-slot":"combobox-clear-input",onClick:e=>{h("",{reason:"none",event:e.nativeEvent,cancel:()=>{},allowPropagation:()=>{},isCanceled:false,isPropagationAllowed:true,trigger:void 0});}})}),placeholder:q$1,startContent:jsx(SearchIcon,{className:"!size-4 !text-fg-tertiary-hover"}),wrapperClassName:"w-full"})}),jsx(j,{className:cn(m$1!==void 0&&"flex-nowrap overflow-hidden"),onMouseDown:e=>e.preventBaseUIHandler(),children:jsx(i,{children:e=>{let t=m$1!==void 0?e.slice(0,m$1):e,l$1=m$1!==void 0?e.length-m$1:0;return jsxs(Fragment,{children:[t?.map(a=>jsxs(k,{className:cn("max-w-full min-w-0",m$1!==void 0&&"shrink"),children:[jsx("span",{className:"truncate",title:a?.label||"",children:a?.label||""}),jsx(l,{})]},a?.value||"")),l$1>0&&jsxs(k,{className:"shrink-0",children:["+",l$1]})]})}})})]}),jsxs(m,{container:A,className:F,children:[jsx(q,{status:U||u===void 0?"pending":u?.length===0&&!C?"empty":null}),jsxs(s,{children:[u?.map(e=>jsx(w,{value:{label:e.label,value:e.value},children:jsx(x,{children:e.label})},e.value)),C&&jsx(w,{value:{label:n,value:n,tag:true},children:jsxs("div",{className:"flex items-center gap-1.5 w-full min-w-0",children:[!G&&jsx("span",{className:"text-text-secondary",children:"Create:"}),jsx("span",{className:"font-medium text-text-primary truncate",children:n})]})}),jsx(H,{...H$1})]})]})]})}export{ae as a};//# sourceMappingURL=chunk-YSNZ2GGV.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-YSNZ2GGV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/composites/combobox-chip-outside.tsx"],"names":["ComboboxChipOutside","multiple","inputPlaceholder","container","items","infiniteScroll","isPending","taggable","maxVisible","className","triggerClassName","contentClassName","props","inputValue","setInputValue","useControlledState","value","setValue","createdItems","setCreatedItems","createdValuesRef","currentValues","v","prev","next","item","trimmedInput","isInputSelected","isCreatingItem","combinedItems","base","createItem","jsxs","Combobox","a","b","eventDetails","newTags","tag","cn","jsx","ComboboxInput","Input","ComboboxTrigger","XIcon","event","SearchIcon","ComboboxChips","ComboboxValue","visible","overflow","Fragment","ComboboxChip","ComboboxChipRemove","ComboboxPopup","ComboboxStatus","ComboboxList","ComboboxItem","ComboboxItemTitle","ComboboxInfiniteScroll"],"mappings":"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","file":"chunk-YSNZ2GGV.js","sourcesContent":["import * as React from \"react\"\r\n\r\nimport { cn } from \"@xploreu/lib/cn\"\r\nimport { ComboboxInput as ComboboxInputPrimitive } from \"../primitives/combobox\"\r\nimport { Input } from \"../ui\"\r\nimport {\r\n Combobox,\r\n ComboboxChip,\r\n ComboboxChipRemove,\r\n ComboboxChips,\r\n ComboboxInfiniteScroll,\r\n ComboboxItem,\r\n ComboboxList,\r\n ComboboxPortal,\r\n ComboboxPopup,\r\n ComboboxStatus,\r\n ComboboxTrigger,\r\n ComboboxValue,\r\n type ComboboxProps,\r\n ComboboxItemTitle\r\n} from \"../ui/combobox\"\r\nimport { SearchIcon, XIcon } from \"lucide-react\"\r\nimport { useControlledState } from \"@xploreu/hooks/use-controlled-state\"\r\n\r\ntype ComboboxChipOutsideProps<Value> = Omit<ComboboxProps<Value, true>, \"multiple\"> & {\r\n multiple?: boolean\r\n inputPlaceholder?: string\r\n container?: React.ComponentProps<typeof ComboboxPortal>[\"container\"]\r\n items: ({ label: string; value: string }[]) | undefined\r\n infiniteScroll?: React.ComponentProps<typeof ComboboxInfiniteScroll>\r\n isPending?: boolean\r\n /**\r\n * When true, enables creatable / taggable mode.\r\n * If the typed value has no exact match in the current item list,\r\n * a \"Create \\\"…\\\"\" option is shown at the top of the dropdown.\r\n * Created items are appended to the value with `{ label, value, tag: true }`.\r\n */\r\n taggable?: boolean\r\n /**\r\n * Maximum number of chips to show before collapsing the rest into a \"+N\" chip.\r\n * When undefined, all chips are shown.\r\n */\r\n maxVisible?: number\r\n className?: string\r\n triggerClassName?: string\r\n contentClassName?: string\r\n}\r\n\r\nfunction ComboboxChipOutside<Value extends { label: string; value: string; tag?: true }>({\r\n multiple = true,\r\n inputPlaceholder = \"Search...\",\r\n container,\r\n items,\r\n infiniteScroll,\r\n isPending,\r\n taggable = false,\r\n maxVisible,\r\n className,\r\n triggerClassName,\r\n contentClassName,\r\n ...props\r\n}: ComboboxChipOutsideProps<Value>) {\r\n const [inputValue, setInputValue] = useControlledState({\r\n value: props?.inputValue?.toString(),\r\n defaultValue: props?.defaultInputValue?.toString(),\r\n onChange: props?.onInputValueChange,\r\n })\r\n\r\n const [value, setValue] = useControlledState({\r\n value: props?.value ?? [],\r\n defaultValue: props?.defaultValue ?? [],\r\n onChange: props?.onValueChange,\r\n })\r\n\r\n // Track items created via taggable mode\r\n // Sync with value to avoid stale tags when controlled value is reset from outside\r\n const [createdItems, setCreatedItems] = React.useState<Value[]>([])\r\n const createdValuesRef = React.useRef<Set<string>>(new Set())\r\n\r\n React.useEffect(() => {\r\n const currentValues = new Set(value.map((v) => v.value))\r\n setCreatedItems((prev) => {\r\n const next = prev.filter((item) => currentValues.has(item.value))\r\n if (next.length === prev.length) return prev\r\n createdValuesRef.current = new Set(next.map((v) => v.value))\r\n return next\r\n })\r\n }, [value])\r\n\r\n // Determine if the current input has no exact match in existing items\r\n const trimmedInput = inputValue?.toString().trim() ?? \"\"\r\n const isInputSelected = React.useMemo(() => {\r\n if (!trimmedInput) return false\r\n return value.some(\r\n (item) => item.value.toLowerCase() === trimmedInput.toLowerCase()\r\n )\r\n }, [trimmedInput, value])\r\n // true = show the taggable item in dropdown (either as \"Create:\" or as checked item)\r\n const isCreatingItem = React.useMemo(() => {\r\n if (!taggable || !trimmedInput) return false\r\n return !items?.some(\r\n (item) => item.label.toLowerCase() === trimmedInput.toLowerCase()\r\n )\r\n }, [taggable, trimmedInput, items])\r\n\r\n // Merge server items with locally created tags + the \"Create\" placeholder\r\n const combinedItems = React.useMemo(() => {\r\n const base: Value[] = [\r\n ...items ?? [],\r\n ...createdItems,\r\n ]\r\n\r\n if (isCreatingItem) {\r\n const createItem = {\r\n label: trimmedInput,\r\n value: trimmedInput,\r\n tag: true,\r\n }\r\n return [...base, createItem]\r\n }\r\n\r\n return base\r\n }, [items, createdItems, isCreatingItem, trimmedInput])\r\n\r\n const handleValueChange: ComboboxProps<Value, true>[\"onValueChange\"] = (value, eventDetails) => {\r\n // Capture newly created taggable items internally\r\n if (taggable) {\r\n const newTags = value.filter(\r\n (v) => v?.tag === true\r\n && !createdValuesRef.current.has(v.value)\r\n )\r\n if (newTags.length > 0) {\r\n for (const tag of newTags) {\r\n createdValuesRef.current.add(tag.value)\r\n }\r\n setCreatedItems((prev) => [...prev, ...newTags])\r\n }\r\n }\r\n\r\n // if multiple is false, we need to replace the value with the new value instead of adding to it\r\n if (!multiple) {\r\n setValue([value[value.length - 1]], eventDetails)\r\n } else {\r\n setValue(value, eventDetails)\r\n }\r\n }\r\n\r\n return (\r\n <Combobox\r\n {...props}\r\n behavior=\"chip-outside\"\r\n multiple\r\n items={taggable ? combinedItems : items}\r\n isItemEqualToValue={(a, b) => a.value === b.value}\r\n onValueChange={handleValueChange}\r\n onInputValueChange={setInputValue}\r\n >\r\n <div className={cn(\"flex flex-col gap-2\", className)}>\r\n <ComboboxInputPrimitive\r\n render={\r\n <Input\r\n className={cn(\"h-9 text-body-regular-3 pl-9 pr-7\", triggerClassName)}\r\n endContent={\r\n <ComboboxTrigger\r\n nativeButton={false}\r\n render={(\r\n <XIcon\r\n className=\"!size-5 !right-1.5 data-[hidden=true]:opacity-0 opacity-100 transition-opacity duration-300 cursor-pointer\"\r\n data-hidden={!inputValue}\r\n data-slot=\"combobox-clear-input\"\r\n onClick={(event) => {\r\n setInputValue(\"\", {\r\n reason: \"none\",\r\n event: event.nativeEvent,\r\n cancel: () => { },\r\n allowPropagation: () => { },\r\n isCanceled: false,\r\n isPropagationAllowed: true,\r\n trigger: undefined,\r\n })\r\n }}\r\n />\r\n )}\r\n />\r\n }\r\n placeholder={inputPlaceholder}\r\n startContent={<SearchIcon className=\"!size-4 !text-fg-tertiary-hover\" />}\r\n wrapperClassName=\"w-full\"\r\n />\r\n }\r\n />\r\n <ComboboxChips\r\n className={cn(maxVisible !== undefined && \"flex-nowrap overflow-hidden\")}\r\n onMouseDown={(e) => e.preventBaseUIHandler()}\r\n >\r\n <ComboboxValue>\r\n {(value: Value[]) => {\r\n const visible = maxVisible !== undefined ? value.slice(0, maxVisible) : value\r\n const overflow = maxVisible !== undefined ? value.length - maxVisible : 0\r\n return (\r\n <>\r\n {visible?.map((item) => (\r\n <ComboboxChip\r\n key={item?.value || \"\"}\r\n className={cn(\r\n \"max-w-full min-w-0\",\r\n maxVisible !== undefined && \"shrink\"\r\n )}\r\n >\r\n <span className=\"truncate\" title={item?.label || \"\"}>\r\n {item?.label || \"\"}\r\n </span>\r\n <ComboboxChipRemove />\r\n </ComboboxChip>\r\n ))}\r\n {overflow > 0 && (\r\n <ComboboxChip className=\"shrink-0\">\r\n +{overflow}\r\n </ComboboxChip>\r\n )}\r\n </>\r\n )\r\n }}\r\n </ComboboxValue>\r\n </ComboboxChips>\r\n </div>\r\n <ComboboxPopup container={container} className={contentClassName}>\r\n <ComboboxStatus\r\n status={\r\n isPending || items === undefined\r\n ? \"pending\"\r\n : items?.length === 0 && !isCreatingItem\r\n ? \"empty\"\r\n : null\r\n }\r\n />\r\n <ComboboxList>\r\n {items?.map((item) => (\r\n <ComboboxItem\r\n key={item.value}\r\n value={{ label: item.label, value: item.value }}\r\n >\r\n <ComboboxItemTitle>\r\n {item.label}\r\n </ComboboxItemTitle>\r\n </ComboboxItem>\r\n ))}\r\n {isCreatingItem && (\r\n <ComboboxItem\r\n value={{ label: trimmedInput, value: trimmedInput, tag: true }}\r\n >\r\n <div className=\"flex items-center gap-1.5 w-full min-w-0\">\r\n {!isInputSelected && (\r\n <span className=\"text-text-secondary\">Create:</span>\r\n )}\r\n <span className=\"font-medium text-text-primary truncate\">\r\n {trimmedInput}\r\n </span>\r\n </div>\r\n </ComboboxItem>\r\n )}\r\n <ComboboxInfiniteScroll {...infiniteScroll} />\r\n </ComboboxList>\r\n </ComboboxPopup>\r\n </Combobox>\r\n )\r\n}\r\n\r\nexport { ComboboxChipOutside }"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {cn}from'@xploreu/lib/cn';import {useAnimation,useReducedMotion,LazyMotion,domMin,m}from'motion/react';import {forwardRef,useCallback,useImperativeHandle}from'react';import {jsx,jsxs}from'react/jsx-runtime';var p=forwardRef(({onMouseEnter:m$1,
|
|
2
|
-
export{p as a,T as b};//# sourceMappingURL=chunk-
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {cn}from'@xploreu/lib/cn';import {useAnimation,useReducedMotion,LazyMotion,domMin,m}from'motion/react';import {forwardRef,useCallback,useImperativeHandle}from'react';import {jsx,jsxs}from'react/jsx-runtime';var p=forwardRef(({onMouseEnter:c,onMouseLeave:m$1,className:f,size:d=24,duration:v=1,isAnimated:o=true,color:C,strokeWidth:h=2,...u},g)=>{let t=useAnimation(),e=useReducedMotion(),r=useCallback(()=>{if(e){t.start("normal");return}t.set("normal"),t.start("animate");},[t,e]),i=useCallback(()=>{t.start("normal");},[t]);useImperativeHandle(g,()=>({startAnimation:r,stopAnimation:i}),[r,i]);let M=useCallback(s=>{c?.(s),!(!o||e)&&r();},[c,o,e,r]),x=useCallback(s=>{m$1?.(s),!(!o||e)&&i();},[m$1,o,e,i]),y={normal:{x:0,y:0,rotate:0},animate:{x:[0,2,-1,0],y:[0,-2,1,0],rotate:[0,-12,8,0],transition:{duration:.52*v,times:[0,.38,.72,1],ease:[.34,1.35,.64,1]}}};return jsx(LazyMotion,{features:domMin,strict:true,children:jsx(m.div,{className:cn("group/icon inline-flex items-center justify-center",f),onMouseEnter:M,onMouseLeave:x,...u,style:{color:C,...u.style},children:jsx(m.svg,{className:"group-[&[class*='size-']]/icon:size-full",xmlns:"http://www.w3.org/2000/svg",width:d,height:d,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:h,strokeLinecap:"round",strokeLinejoin:"round",animate:t,initial:"normal",style:{overflow:"visible"},children:jsxs(m.g,{variants:y,style:{transformOrigin:"11px 11px",transformBox:"view-box"},children:[jsx("path",{d:"M11 4C10.0807 4 9.17049 4.18106 8.32122 4.53284C7.47194 4.88463 6.70026 5.40024 6.05025 6.05025C5.40024 6.70026 4.88463 7.47194 4.53284 8.32122C4.18106 9.17049 4 10.0807 4 11C4 11.9193 4.18106 12.8295 4.53284 13.6788C4.88463 14.5281 5.40024 15.2997 6.05025 15.9497C6.70026 16.5998 7.47194 17.1154 8.32122 17.4672C9.17049 17.8189 10.0807 18 11 18C12.8565 18 14.637 17.2625 15.9497 15.9497C17.2625 14.637 18 12.8565 18 11C18 9.14348 17.2625 7.36301 15.9497 6.05025C14.637 4.7375 12.8565 4 11 4Z",fill:"currentColor",stroke:"none"}),jsx("path",{d:"M11 18C14.866 18 18 14.866 18 11C18 7.13401 14.866 4 11 4C7.13401 4 4 7.13401 4 11C4 14.866 7.13401 18 11 18Z"}),jsx("path",{d:"M20 20L15.7 15.7"})]})})})})});p.displayName="SearchFilledIcon";var T=p;
|
|
2
|
+
export{p as a,T as b};//# sourceMappingURL=chunk-ZNYLSNDI.js.map
|
|
3
|
+
//# sourceMappingURL=chunk-ZNYLSNDI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/icons/search-filled-icon.tsx"],"names":["SearchFilledIcon","forwardRef","onMouseEnter","onMouseLeave","className","size","duration","isAnimated","color","strokeWidth","props","ref","controls","useAnimation","reduced","useReducedMotion","startAnimation","useCallback","stopAnimation","useImperativeHandle","handleEnter","e","handleLeave","glassVariants","jsx","LazyMotion","domMin","m","cn","jsxs","search_filled_icon_default"],"mappings":"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","file":"chunk-ZNYLSNDI.js","sourcesContent":["\"use client\";\n\nimport { cn } from \"@xploreu/lib/cn\";\nimport type { Variants } from \"motion/react\";\nimport {\n LazyMotion,\n domMin,\n m,\n useAnimation,\n useReducedMotion,\n} from \"motion/react\";\nimport {\n forwardRef,\n useCallback,\n useImperativeHandle,\n type HTMLAttributes,\n} from \"react\";\n\nexport interface SearchFilledIconHandle {\n startAnimation: () => void;\n stopAnimation: () => void;\n}\n\nexport interface SearchFilledIconProps\n extends Omit<\n HTMLAttributes<HTMLDivElement>,\n | \"color\"\n | \"onDrag\"\n | \"onDragStart\"\n | \"onDragEnd\"\n | \"onAnimationStart\"\n | \"onAnimationEnd\"\n | \"onAnimationIteration\"\n > {\n size?: number;\n duration?: number;\n isAnimated?: boolean;\n color?: string;\n strokeWidth?: number | string;\n}\n\nconst SearchFilledIcon = forwardRef<\n SearchFilledIconHandle,\n SearchFilledIconProps\n>(\n (\n {\n onMouseEnter,\n onMouseLeave,\n className,\n size = 24,\n duration = 1,\n isAnimated = true,\n color,\n strokeWidth = 2,\n ...props\n },\n ref,\n ) => {\n const controls = useAnimation();\n const reduced = useReducedMotion();\n\n const startAnimation = useCallback(() => {\n if (reduced) {\n controls.start(\"normal\");\n return;\n }\n controls.set(\"normal\");\n controls.start(\"animate\");\n }, [controls, reduced]);\n\n const stopAnimation = useCallback(() => {\n controls.start(\"normal\");\n }, [controls]);\n\n useImperativeHandle(\n ref,\n () => ({\n startAnimation,\n stopAnimation,\n }),\n [startAnimation, stopAnimation],\n );\n\n const handleEnter = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n onMouseEnter?.(e);\n if (!isAnimated || reduced) return;\n startAnimation();\n },\n [onMouseEnter, isAnimated, reduced, startAnimation],\n );\n\n const handleLeave = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(e);\n if (!isAnimated || reduced) return;\n stopAnimation();\n },\n [onMouseLeave, isAnimated, reduced, stopAnimation],\n );\n\n const glassVariants: Variants = {\n normal: { x: 0, y: 0, rotate: 0 },\n animate: {\n x: [0, 2, -1, 0],\n y: [0, -2, 1, 0],\n rotate: [0, -12, 8, 0],\n transition: {\n duration: 0.52 * duration,\n times: [0, 0.38, 0.72, 1],\n ease: [0.34, 1.35, 0.64, 1],\n },\n },\n };\n\n return (\n <LazyMotion features={domMin} strict>\n <m.div\n className={cn(\"group/icon inline-flex items-center justify-center\", className)}\n onMouseEnter={handleEnter}\n onMouseLeave={handleLeave}\n {...props}\n style={{ color, ...props.style }}\n >\n <m.svg\n className=\"group-[&[class*='size-']]/icon:size-full\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n animate={controls}\n initial=\"normal\"\n style={{ overflow: \"visible\" }}\n >\n <m.g\n variants={glassVariants}\n style={{\n transformOrigin: \"11px 11px\",\n transformBox: \"view-box\",\n }}\n >\n <path\n d=\"M11 4C10.0807 4 9.17049 4.18106 8.32122 4.53284C7.47194 4.88463 6.70026 5.40024 6.05025 6.05025C5.40024 6.70026 4.88463 7.47194 4.53284 8.32122C4.18106 9.17049 4 10.0807 4 11C4 11.9193 4.18106 12.8295 4.53284 13.6788C4.88463 14.5281 5.40024 15.2997 6.05025 15.9497C6.70026 16.5998 7.47194 17.1154 8.32122 17.4672C9.17049 17.8189 10.0807 18 11 18C12.8565 18 14.637 17.2625 15.9497 15.9497C17.2625 14.637 18 12.8565 18 11C18 9.14348 17.2625 7.36301 15.9497 6.05025C14.637 4.7375 12.8565 4 11 4Z\"\n fill=\"currentColor\"\n stroke=\"none\"\n />\n <path d=\"M11 18C14.866 18 18 14.866 18 11C18 7.13401 14.866 4 11 4C7.13401 4 4 7.13401 4 11C4 14.866 7.13401 18 11 18Z\" />\n <path d=\"M20 20L15.7 15.7\" />\n </m.g>\n </m.svg>\n </m.div>\n </LazyMotion>\n );\n },\n);\n\nSearchFilledIcon.displayName = \"SearchFilledIcon\";\n\nexport default SearchFilledIcon;\nexport { SearchFilledIcon };\n"]}
|
|
@@ -34,11 +34,14 @@ type ComboboxChipOutsideProps<Value> = Omit<ComboboxProps<Value, true>, "multipl
|
|
|
34
34
|
* When undefined, all chips are shown.
|
|
35
35
|
*/
|
|
36
36
|
maxVisible?: number;
|
|
37
|
+
className?: string;
|
|
38
|
+
triggerClassName?: string;
|
|
39
|
+
contentClassName?: string;
|
|
37
40
|
};
|
|
38
41
|
declare function ComboboxChipOutside<Value extends {
|
|
39
42
|
label: string;
|
|
40
43
|
value: string;
|
|
41
44
|
tag?: true;
|
|
42
|
-
}>({ multiple, inputPlaceholder, container, items, infiniteScroll, isPending, taggable, maxVisible, ...props }: ComboboxChipOutsideProps<Value>): React.JSX.Element;
|
|
45
|
+
}>({ multiple, inputPlaceholder, container, items, infiniteScroll, isPending, taggable, maxVisible, className, triggerClassName, contentClassName, ...props }: ComboboxChipOutsideProps<Value>): React.JSX.Element;
|
|
43
46
|
|
|
44
47
|
export { ComboboxChipOutside };
|