analytica-frontend-lib 1.0.36 → 1.0.38
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/DropdownMenu/index.d.mts +16 -8
- package/dist/DropdownMenu/index.d.ts +16 -8
- package/dist/DropdownMenu/index.js +122 -45
- package/dist/DropdownMenu/index.js.map +1 -1
- package/dist/DropdownMenu/index.mjs +122 -45
- package/dist/DropdownMenu/index.mjs.map +1 -1
- package/dist/ProgressCircle/index.d.mts +60 -0
- package/dist/ProgressCircle/index.d.ts +60 -0
- package/dist/ProgressCircle/index.js +244 -0
- package/dist/ProgressCircle/index.js.map +1 -0
- package/dist/ProgressCircle/index.mjs +222 -0
- package/dist/ProgressCircle/index.mjs.map +1 -0
- package/dist/Select/index.d.mts +51 -0
- package/dist/Select/index.d.ts +51 -0
- package/dist/Select/index.js +323 -0
- package/dist/Select/index.js.map +1 -0
- package/dist/Select/index.mjs +300 -0
- package/dist/Select/index.mjs.map +1 -0
- package/dist/index.css +181 -9
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +4 -44
- package/dist/index.d.ts +4 -44
- package/dist/index.js +248 -62
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +247 -62
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +181 -9
- package/dist/styles.css.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/Select/Select.tsx"],"sourcesContent":["// app/components/Select.tsx\n'use client';\n\nimport { create, StoreApi, useStore } from 'zustand';\nimport {\n ReactNode,\n useEffect,\n useRef,\n ButtonHTMLAttributes,\n forwardRef,\n HTMLAttributes,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n isValidElement,\n Children,\n cloneElement,\n} from 'react';\nimport { CaretDown, Check } from 'phosphor-react';\n\nconst VARIANT_CLASSES = {\n outlined: 'border-2 rounded-sm focus:border-primary-950',\n underlined: 'border-b-2 focus:border-primary-950',\n rounded: 'border-2 rounded-4xl focus:border-primary-950',\n} as const;\n\nconst SIZE_CLASSES = {\n small: 'text-sm',\n medium: 'text-md',\n large: 'text-lg',\n} as const;\n\nconst SIDE_CLASSES = {\n top: 'bottom-full -translate-y-1',\n right: 'top-full translate-y-1',\n bottom: 'top-full translate-y-1',\n left: 'top-full translate-y-1',\n};\nconst ALIGN_CLASSES = {\n start: 'left-0',\n center: 'left-1/2 -translate-x-1/2',\n end: 'right-0',\n};\n\ninterface SelectStore {\n open: boolean;\n setOpen: (open: boolean) => void;\n value: string;\n setValue: (value: string) => void;\n selectedLabel: ReactNode;\n setSelectedLabel: (label: ReactNode) => void;\n}\n\ntype SelectStoreApi = StoreApi<SelectStore>;\n\nexport function createSelectStore(): SelectStoreApi {\n return create<SelectStore>((set) => ({\n open: false,\n setOpen: (open) => set({ open }),\n value: '',\n setValue: (value) => set({ value }),\n selectedLabel: '',\n setSelectedLabel: (label) => set({ selectedLabel: label }),\n }));\n}\n\nexport const useSelectStore = (externalStore?: SelectStoreApi) => {\n if (!externalStore) {\n throw new Error(\n 'Component must be used within a Select (store is missing)'\n );\n }\n\n return externalStore;\n};\n\nexport function getLabelAsNode(children: ReactNode): ReactNode {\n if (typeof children === 'string' || typeof children === 'number') {\n return children;\n }\n const flattened = Children.toArray(children);\n\n if (flattened.length === 1) return flattened[0];\n\n return <>{flattened}</>;\n}\n\ninterface SelectProps {\n children: ReactNode;\n defaultValue?: string;\n value?: string;\n onValueChange?: (value: string) => void;\n size?: 'small' | 'medium' | 'large';\n}\n\nconst injectStore = (children: ReactNode, store: SelectStoreApi): ReactNode => {\n return Children.map(children, (child) => {\n if (isValidElement(child)) {\n const typedChild = child as ReactElement<{\n store?: SelectStoreApi;\n children?: ReactNode;\n }>;\n\n const newProps: Partial<{ store: SelectStoreApi; children: ReactNode }> =\n {\n store,\n };\n\n if (typedChild.props.children) {\n newProps.children = injectStore(typedChild.props.children, store);\n }\n\n return cloneElement(typedChild, newProps);\n }\n return child;\n });\n};\n\nconst Select = ({\n children,\n defaultValue = '',\n value: propValue,\n onValueChange,\n size = 'small',\n}: SelectProps) => {\n const storeRef = useRef<SelectStoreApi | null>(null);\n storeRef.current ??= createSelectStore();\n const store = storeRef.current;\n\n const selectRef = useRef<HTMLDivElement>(null);\n const { open, setOpen, setValue, value, selectedLabel } = useStore(\n store,\n (s) => s\n );\n\n const isControlled = propValue !== undefined;\n const currentValue = isControlled ? propValue : value;\n\n const findLabelForValue = (\n children: ReactNode,\n targetValue: string\n ): string | null => {\n let found: string | null = null;\n const search = (nodes: ReactNode) => {\n Children.forEach(nodes, (child) => {\n if (!isValidElement(child)) return;\n const typedChild = child as ReactElement<{\n value?: string;\n children?: ReactNode;\n }>;\n if (\n typedChild.type === SelectItem &&\n typedChild.props.value === targetValue\n ) {\n if (typeof typedChild.props.children === 'string')\n found = typedChild.props.children;\n }\n if (typedChild.props.children && !found)\n search(typedChild.props.children);\n });\n };\n search(children);\n return found;\n };\n\n useEffect(() => {\n if (!selectedLabel && defaultValue) {\n const label = findLabelForValue(children, defaultValue);\n if (label) store.setState({ selectedLabel: label });\n }\n }, [children, defaultValue, selectedLabel]);\n\n useEffect(() => {\n setValue(currentValue);\n const handleClickOutside = (event: globalThis.MouseEvent) => {\n if (\n selectRef.current &&\n !selectRef.current.contains(event.target as Node)\n ) {\n setOpen(false);\n }\n };\n\n const handleArrowKeys = (event: globalThis.KeyboardEvent) => {\n const selectContent = selectRef.current?.querySelector('[role=\"menu\"]');\n if (selectContent) {\n event.preventDefault();\n const items = Array.from(\n selectContent.querySelectorAll(\n '[role=\"menuitem\"]:not([aria-disabled=\"true\"])'\n )\n ).filter((el): el is HTMLElement => el instanceof HTMLElement);\n\n const focused = document.activeElement as HTMLElement;\n const currentIndex = items.findIndex((item) => item === focused);\n\n let nextIndex = 0;\n if (event.key === 'ArrowDown') {\n nextIndex =\n currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;\n } else {\n nextIndex =\n currentIndex === -1\n ? items.length - 1\n : (currentIndex - 1 + items.length) % items.length;\n }\n items[nextIndex]?.focus();\n }\n };\n\n if (open) {\n document.addEventListener('mousedown', handleClickOutside);\n document.addEventListener('keydown', handleArrowKeys);\n }\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n document.removeEventListener('keydown', handleArrowKeys);\n };\n }, [open]);\n\n useEffect(() => {\n if (onValueChange) {\n onValueChange(value);\n }\n }, [value]);\n\n const sizeClasses = SIZE_CLASSES[size];\n\n return (\n <div className={`relative ${sizeClasses} w-[288px]`} ref={selectRef}>\n {injectStore(children, store)}\n </div>\n );\n};\n\nconst SelectValue = ({\n placeholder,\n store: externalStore,\n}: {\n placeholder?: string;\n store?: SelectStoreApi;\n}) => {\n const store = useSelectStore(externalStore);\n\n const selectedLabel = useStore(store, (s) => s.selectedLabel);\n const value = useStore(store, (s) => s.value);\n return (\n <span className=\"text-inherit\">\n {selectedLabel || placeholder || value}\n </span>\n );\n};\n\ninterface SelectTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n className?: string;\n invalid?: boolean;\n variant?: 'outlined' | 'underlined' | 'rounded';\n store?: SelectStoreApi;\n}\n\nconst SelectTrigger = forwardRef<HTMLButtonElement, SelectTriggerProps>(\n (\n {\n className,\n invalid = false,\n variant = 'outlined',\n store: externalStore,\n disabled,\n ...props\n },\n ref\n ) => {\n const store = useSelectStore(externalStore);\n\n const open = useStore(store, (s) => s.open);\n const toggleOpen = () => store.setState({ open: !open });\n\n const variantClasses = VARIANT_CLASSES[variant];\n\n return (\n <button\n ref={ref}\n className={`\n flex h-9 min-w-[220px] w-full items-center justify-between border-border-300 px-3 py-2\n ${invalid && 'border-indicator-error text-text-600'}\n ${\n disabled\n ? 'cursor-not-allowed text-text-400 pointer-events-none opacity-50'\n : 'cursor-pointer hover:bg-background-50 focus:bg-accent focus:text-accent-foreground hover:bg-accent hover:text-accent-foreground'\n }\n ${!invalid && !disabled ? 'text-text-700' : ''}\n ${variantClasses}\n ${className}\n `}\n onClick={toggleOpen}\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n aria-controls={open ? 'select-content' : undefined}\n {...props}\n >\n {props.children}\n <CaretDown\n className={`h-[1em] w-[1em] opacity-50 transition-transform ${open ? 'rotate-180' : ''}`}\n />\n </button>\n );\n }\n);\nSelectTrigger.displayName = 'SelectTrigger';\n\ninterface SelectContentProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n align?: 'start' | 'center' | 'end';\n side?: 'top' | 'right' | 'bottom' | 'left';\n store?: SelectStoreApi;\n}\n\nconst SelectContent = forwardRef<HTMLDivElement, SelectContentProps>(\n (\n {\n children,\n className,\n align = 'start',\n side = 'bottom',\n store: externalStore,\n ...props\n },\n ref\n ) => {\n const store = useSelectStore(externalStore);\n\n const open = useStore(store, (s) => s.open);\n if (!open) return null;\n\n const getPositionClasses = () =>\n `w-full min-w-full absolute ${SIDE_CLASSES[side]} ${ALIGN_CLASSES[align]}`;\n\n return (\n <div\n role=\"menu\"\n ref={ref}\n className={`bg-background z-50 min-w-[210px] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md border-border-100 ${getPositionClasses()} ${className}`}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\nSelectContent.displayName = 'SelectContent';\n\ninterface SelectItemProps extends HTMLAttributes<HTMLDivElement> {\n value: string;\n disabled?: boolean;\n store?: SelectStoreApi;\n}\n\nconst SelectItem = forwardRef<HTMLDivElement, SelectItemProps>(\n (\n {\n className,\n children,\n value,\n disabled = false,\n store: externalStore,\n ...props\n },\n ref\n ) => {\n const store = useSelectStore(externalStore);\n\n const selectedValue = useStore(store, (s) => s.value);\n const { setValue, setSelectedLabel, setOpen } = store.getState();\n\n const handleClick = (\n e: MouseEvent<HTMLDivElement> | KeyboardEvent<HTMLDivElement>\n ) => {\n const labelNode = getLabelAsNode(children);\n if (!disabled) {\n setValue(value);\n setSelectedLabel(labelNode);\n setOpen(false);\n }\n props.onClick?.(e as MouseEvent<HTMLDivElement>);\n };\n\n return (\n <div\n role=\"menuitem\"\n aria-disabled={disabled}\n ref={ref}\n className={`\n focus-visible:bg-background-50\n relative flex select-none items-center gap-2 rounded-sm p-3 outline-none transition-colors [&>svg]:size-4 [&>svg]:shrink-0\n ${className}\n ${\n disabled\n ? 'cursor-not-allowed text-text-400 pointer-events-none opacity-50'\n : 'cursor-pointer hover:bg-background-50 text-text-700 focus:bg-accent focus:text-accent-foreground hover:bg-accent hover:text-accent-foreground'\n }\n ${selectedValue === value && 'bg-background-50'}\n `}\n onClick={handleClick}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') handleClick(e);\n }}\n tabIndex={disabled ? -1 : 0}\n {...props}\n >\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\n {selectedValue === value && <Check className=\"\" />}\n </span>\n {children}\n </div>\n );\n }\n);\n\nSelectItem.displayName = 'SelectItem';\n\nexport default Select;\nexport { SelectTrigger, SelectContent, SelectItem, SelectValue };\n"],"mappings":";;;AAGA,SAAS,QAAkB,gBAAgB;AAC3C;AAAA,EAEE;AAAA,EACA;AAAA,EAEA;AAAA,EAKA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,WAAW,aAAa;AAkExB,wBAoMH,YApMG;AAhET,IAAM,kBAAkB;AAAA,EACtB,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,SAAS;AACX;AAEA,IAAM,eAAe;AAAA,EACnB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT;AAEA,IAAM,eAAe;AAAA,EACnB,KAAK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AACR;AACA,IAAM,gBAAgB;AAAA,EACpB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AACP;AAaO,SAAS,oBAAoC;AAClD,SAAO,OAAoB,CAAC,SAAS;AAAA,IACnC,MAAM;AAAA,IACN,SAAS,CAAC,SAAS,IAAI,EAAE,KAAK,CAAC;AAAA,IAC/B,OAAO;AAAA,IACP,UAAU,CAAC,UAAU,IAAI,EAAE,MAAM,CAAC;AAAA,IAClC,eAAe;AAAA,IACf,kBAAkB,CAAC,UAAU,IAAI,EAAE,eAAe,MAAM,CAAC;AAAA,EAC3D,EAAE;AACJ;AAEO,IAAM,iBAAiB,CAAC,kBAAmC;AAChE,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,eAAe,UAAgC;AAC7D,MAAI,OAAO,aAAa,YAAY,OAAO,aAAa,UAAU;AAChE,WAAO;AAAA,EACT;AACA,QAAM,YAAY,SAAS,QAAQ,QAAQ;AAE3C,MAAI,UAAU,WAAW,EAAG,QAAO,UAAU,CAAC;AAE9C,SAAO,gCAAG,qBAAU;AACtB;AAUA,IAAM,cAAc,CAAC,UAAqB,UAAqC;AAC7E,SAAO,SAAS,IAAI,UAAU,CAAC,UAAU;AACvC,QAAI,eAAe,KAAK,GAAG;AACzB,YAAM,aAAa;AAKnB,YAAM,WACJ;AAAA,QACE;AAAA,MACF;AAEF,UAAI,WAAW,MAAM,UAAU;AAC7B,iBAAS,WAAW,YAAY,WAAW,MAAM,UAAU,KAAK;AAAA,MAClE;AAEA,aAAO,aAAa,YAAY,QAAQ;AAAA,IAC1C;AACA,WAAO;AAAA,EACT,CAAC;AACH;AAEA,IAAM,SAAS,CAAC;AAAA,EACd;AAAA,EACA,eAAe;AAAA,EACf,OAAO;AAAA,EACP;AAAA,EACA,OAAO;AACT,MAAmB;AACjB,QAAM,WAAW,OAA8B,IAAI;AACnD,WAAS,YAAY,kBAAkB;AACvC,QAAM,QAAQ,SAAS;AAEvB,QAAM,YAAY,OAAuB,IAAI;AAC7C,QAAM,EAAE,MAAM,SAAS,UAAU,OAAO,cAAc,IAAI;AAAA,IACxD;AAAA,IACA,CAAC,MAAM;AAAA,EACT;AAEA,QAAM,eAAe,cAAc;AACnC,QAAM,eAAe,eAAe,YAAY;AAEhD,QAAM,oBAAoB,CACxBA,WACA,gBACkB;AAClB,QAAI,QAAuB;AAC3B,UAAM,SAAS,CAAC,UAAqB;AACnC,eAAS,QAAQ,OAAO,CAAC,UAAU;AACjC,YAAI,CAAC,eAAe,KAAK,EAAG;AAC5B,cAAM,aAAa;AAInB,YACE,WAAW,SAAS,cACpB,WAAW,MAAM,UAAU,aAC3B;AACA,cAAI,OAAO,WAAW,MAAM,aAAa;AACvC,oBAAQ,WAAW,MAAM;AAAA,QAC7B;AACA,YAAI,WAAW,MAAM,YAAY,CAAC;AAChC,iBAAO,WAAW,MAAM,QAAQ;AAAA,MACpC,CAAC;AAAA,IACH;AACA,WAAOA,SAAQ;AACf,WAAO;AAAA,EACT;AAEA,YAAU,MAAM;AACd,QAAI,CAAC,iBAAiB,cAAc;AAClC,YAAM,QAAQ,kBAAkB,UAAU,YAAY;AACtD,UAAI,MAAO,OAAM,SAAS,EAAE,eAAe,MAAM,CAAC;AAAA,IACpD;AAAA,EACF,GAAG,CAAC,UAAU,cAAc,aAAa,CAAC;AAE1C,YAAU,MAAM;AACd,aAAS,YAAY;AACrB,UAAM,qBAAqB,CAAC,UAAiC;AAC3D,UACE,UAAU,WACV,CAAC,UAAU,QAAQ,SAAS,MAAM,MAAc,GAChD;AACA,gBAAQ,KAAK;AAAA,MACf;AAAA,IACF;AAEA,UAAM,kBAAkB,CAAC,UAAoC;AAC3D,YAAM,gBAAgB,UAAU,SAAS,cAAc,eAAe;AACtE,UAAI,eAAe;AACjB,cAAM,eAAe;AACrB,cAAM,QAAQ,MAAM;AAAA,UAClB,cAAc;AAAA,YACZ;AAAA,UACF;AAAA,QACF,EAAE,OAAO,CAAC,OAA0B,cAAc,WAAW;AAE7D,cAAM,UAAU,SAAS;AACzB,cAAM,eAAe,MAAM,UAAU,CAAC,SAAS,SAAS,OAAO;AAE/D,YAAI,YAAY;AAChB,YAAI,MAAM,QAAQ,aAAa;AAC7B,sBACE,iBAAiB,KAAK,KAAK,eAAe,KAAK,MAAM;AAAA,QACzD,OAAO;AACL,sBACE,iBAAiB,KACb,MAAM,SAAS,KACd,eAAe,IAAI,MAAM,UAAU,MAAM;AAAA,QAClD;AACA,cAAM,SAAS,GAAG,MAAM;AAAA,MAC1B;AAAA,IACF;AAEA,QAAI,MAAM;AACR,eAAS,iBAAiB,aAAa,kBAAkB;AACzD,eAAS,iBAAiB,WAAW,eAAe;AAAA,IACtD;AACA,WAAO,MAAM;AACX,eAAS,oBAAoB,aAAa,kBAAkB;AAC5D,eAAS,oBAAoB,WAAW,eAAe;AAAA,IACzD;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AAET,YAAU,MAAM;AACd,QAAI,eAAe;AACjB,oBAAc,KAAK;AAAA,IACrB;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,cAAc,aAAa,IAAI;AAErC,SACE,oBAAC,SAAI,WAAW,YAAY,WAAW,cAAc,KAAK,WACvD,sBAAY,UAAU,KAAK,GAC9B;AAEJ;AAEA,IAAM,cAAc,CAAC;AAAA,EACnB;AAAA,EACA,OAAO;AACT,MAGM;AACJ,QAAM,QAAQ,eAAe,aAAa;AAE1C,QAAM,gBAAgB,SAAS,OAAO,CAAC,MAAM,EAAE,aAAa;AAC5D,QAAM,QAAQ,SAAS,OAAO,CAAC,MAAM,EAAE,KAAK;AAC5C,SACE,oBAAC,UAAK,WAAU,gBACb,2BAAiB,eAAe,OACnC;AAEJ;AASA,IAAM,gBAAgB;AAAA,EACpB,CACE;AAAA,IACE;AAAA,IACA,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,QAAQ,eAAe,aAAa;AAE1C,UAAM,OAAO,SAAS,OAAO,CAAC,MAAM,EAAE,IAAI;AAC1C,UAAM,aAAa,MAAM,MAAM,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC;AAEvD,UAAM,iBAAiB,gBAAgB,OAAO;AAE9C,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA;AAAA,UAET,WAAW,sCAAsC;AAAA,UAEjD,WACI,oEACA,iIACN;AAAA,UACE,CAAC,WAAW,CAAC,WAAW,kBAAkB,EAAE;AAAA,UAC5C,cAAc;AAAA,UACd,SAAS;AAAA;AAAA,QAEX,SAAS;AAAA,QACT,iBAAe;AAAA,QACf,iBAAc;AAAA,QACd,iBAAe,OAAO,mBAAmB;AAAA,QACxC,GAAG;AAAA,QAEH;AAAA,gBAAM;AAAA,UACP;AAAA,YAAC;AAAA;AAAA,cACC,WAAW,mDAAmD,OAAO,eAAe,EAAE;AAAA;AAAA,UACxF;AAAA;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AACA,cAAc,cAAc;AAS5B,IAAM,gBAAgB;AAAA,EACpB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,OAAO;AAAA,IACP,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,QAAQ,eAAe,aAAa;AAE1C,UAAM,OAAO,SAAS,OAAO,CAAC,MAAM,EAAE,IAAI;AAC1C,QAAI,CAAC,KAAM,QAAO;AAElB,UAAM,qBAAqB,MACzB,8BAA8B,aAAa,IAAI,CAAC,IAAI,cAAc,KAAK,CAAC;AAE1E,WACE;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL;AAAA,QACA,WAAW,yIAAyI,mBAAmB,CAAC,IAAI,SAAS;AAAA,QACpL,GAAG;AAAA,QAEH;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,cAAc,cAAc;AAQ5B,IAAM,aAAa;AAAA,EACjB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,OAAO;AAAA,IACP,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,QAAQ,eAAe,aAAa;AAE1C,UAAM,gBAAgB,SAAS,OAAO,CAAC,MAAM,EAAE,KAAK;AACpD,UAAM,EAAE,UAAU,kBAAkB,QAAQ,IAAI,MAAM,SAAS;AAE/D,UAAM,cAAc,CAClB,MACG;AACH,YAAM,YAAY,eAAe,QAAQ;AACzC,UAAI,CAAC,UAAU;AACb,iBAAS,KAAK;AACd,yBAAiB,SAAS;AAC1B,gBAAQ,KAAK;AAAA,MACf;AACA,YAAM,UAAU,CAA+B;AAAA,IACjD;AAEA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,iBAAe;AAAA,QACf;AAAA,QACA,WAAW;AAAA;AAAA;AAAA,YAGP,SAAS;AAAA,YAET,WACI,oEACA,+IACN;AAAA,YACE,kBAAkB,SAAS,kBAAkB;AAAA;AAAA,QAEjD,SAAS;AAAA,QACT,WAAW,CAAC,MAAM;AAChB,cAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,IAAK,aAAY,CAAC;AAAA,QACvD;AAAA,QACA,UAAU,WAAW,KAAK;AAAA,QACzB,GAAG;AAAA,QAEJ;AAAA,8BAAC,UAAK,WAAU,iEACb,4BAAkB,SAAS,oBAAC,SAAM,WAAU,IAAG,GAClD;AAAA,UACC;AAAA;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AAEA,WAAW,cAAc;AAEzB,IAAO,iBAAQ;","names":["children"]}
|
package/dist/index.css
CHANGED
|
@@ -26,9 +26,12 @@
|
|
|
26
26
|
--color-gray-800: oklch(27.8% 0.033 256.848);
|
|
27
27
|
--color-white: #fff;
|
|
28
28
|
--spacing: 0.25rem;
|
|
29
|
+
--container-xs: 20rem;
|
|
29
30
|
--container-md: 28rem;
|
|
30
31
|
--container-lg: 32rem;
|
|
32
|
+
--container-2xl: 42rem;
|
|
31
33
|
--container-4xl: 56rem;
|
|
34
|
+
--container-6xl: 72rem;
|
|
32
35
|
--text-xs: 0.75rem;
|
|
33
36
|
--text-xs--line-height: calc(1 / 0.75);
|
|
34
37
|
--text-sm: 0.875rem;
|
|
@@ -56,6 +59,7 @@
|
|
|
56
59
|
--font-weight-bold: 700;
|
|
57
60
|
--font-weight-extrabold: 800;
|
|
58
61
|
--font-weight-black: 900;
|
|
62
|
+
--tracking-wide: 0.025em;
|
|
59
63
|
--leading-normal: 1.5;
|
|
60
64
|
--radius-xs: 0.125rem;
|
|
61
65
|
--radius-sm: 0.25rem;
|
|
@@ -416,6 +420,9 @@
|
|
|
416
420
|
.left-4 {
|
|
417
421
|
left: calc(var(--spacing) * 4);
|
|
418
422
|
}
|
|
423
|
+
.z-10 {
|
|
424
|
+
z-index: 10;
|
|
425
|
+
}
|
|
419
426
|
.z-50 {
|
|
420
427
|
z-index: 50;
|
|
421
428
|
}
|
|
@@ -440,6 +447,9 @@
|
|
|
440
447
|
.mx-2 {
|
|
441
448
|
margin-inline: calc(var(--spacing) * 2);
|
|
442
449
|
}
|
|
450
|
+
.mx-auto {
|
|
451
|
+
margin-inline: auto;
|
|
452
|
+
}
|
|
443
453
|
.my-1 {
|
|
444
454
|
margin-block: calc(var(--spacing) * 1);
|
|
445
455
|
}
|
|
@@ -464,6 +474,9 @@
|
|
|
464
474
|
.mt-4 {
|
|
465
475
|
margin-top: calc(var(--spacing) * 4);
|
|
466
476
|
}
|
|
477
|
+
.mt-8 {
|
|
478
|
+
margin-top: calc(var(--spacing) * 8);
|
|
479
|
+
}
|
|
467
480
|
.mt-12 {
|
|
468
481
|
margin-top: calc(var(--spacing) * 12);
|
|
469
482
|
}
|
|
@@ -473,6 +486,9 @@
|
|
|
473
486
|
.mb-0\.5 {
|
|
474
487
|
margin-bottom: calc(var(--spacing) * 0.5);
|
|
475
488
|
}
|
|
489
|
+
.mb-1 {
|
|
490
|
+
margin-bottom: calc(var(--spacing) * 1);
|
|
491
|
+
}
|
|
476
492
|
.mb-1\.5 {
|
|
477
493
|
margin-bottom: calc(var(--spacing) * 1.5);
|
|
478
494
|
}
|
|
@@ -539,6 +555,9 @@
|
|
|
539
555
|
width: calc(var(--spacing) * 16);
|
|
540
556
|
height: calc(var(--spacing) * 16);
|
|
541
557
|
}
|
|
558
|
+
.h-0 {
|
|
559
|
+
height: calc(var(--spacing) * 0);
|
|
560
|
+
}
|
|
542
561
|
.h-1 {
|
|
543
562
|
height: calc(var(--spacing) * 1);
|
|
544
563
|
}
|
|
@@ -593,12 +612,30 @@
|
|
|
593
612
|
.h-\[27px\] {
|
|
594
613
|
height: 27px;
|
|
595
614
|
}
|
|
615
|
+
.h-\[90px\] {
|
|
616
|
+
height: 90px;
|
|
617
|
+
}
|
|
618
|
+
.h-\[152px\] {
|
|
619
|
+
height: 152px;
|
|
620
|
+
}
|
|
596
621
|
.h-full {
|
|
597
622
|
height: 100%;
|
|
598
623
|
}
|
|
599
624
|
.h-px {
|
|
600
625
|
height: 1px;
|
|
601
626
|
}
|
|
627
|
+
.min-h-\[300px\] {
|
|
628
|
+
min-height: 300px;
|
|
629
|
+
}
|
|
630
|
+
.min-h-\[400px\] {
|
|
631
|
+
min-height: 400px;
|
|
632
|
+
}
|
|
633
|
+
.min-h-\[600px\] {
|
|
634
|
+
min-height: 600px;
|
|
635
|
+
}
|
|
636
|
+
.w-0 {
|
|
637
|
+
width: calc(var(--spacing) * 0);
|
|
638
|
+
}
|
|
602
639
|
.w-1\.5 {
|
|
603
640
|
width: calc(var(--spacing) * 1.5);
|
|
604
641
|
}
|
|
@@ -641,6 +678,12 @@
|
|
|
641
678
|
.w-\[70px\] {
|
|
642
679
|
width: 70px;
|
|
643
680
|
}
|
|
681
|
+
.w-\[90px\] {
|
|
682
|
+
width: 90px;
|
|
683
|
+
}
|
|
684
|
+
.w-\[152px\] {
|
|
685
|
+
width: 152px;
|
|
686
|
+
}
|
|
644
687
|
.w-\[288px\] {
|
|
645
688
|
width: 288px;
|
|
646
689
|
}
|
|
@@ -653,9 +696,15 @@
|
|
|
653
696
|
.w-px {
|
|
654
697
|
width: 1px;
|
|
655
698
|
}
|
|
699
|
+
.max-w-2xl {
|
|
700
|
+
max-width: var(--container-2xl);
|
|
701
|
+
}
|
|
656
702
|
.max-w-4xl {
|
|
657
703
|
max-width: var(--container-4xl);
|
|
658
704
|
}
|
|
705
|
+
.max-w-6xl {
|
|
706
|
+
max-width: var(--container-6xl);
|
|
707
|
+
}
|
|
659
708
|
.max-w-\[390px\] {
|
|
660
709
|
max-width: 390px;
|
|
661
710
|
}
|
|
@@ -665,14 +714,20 @@
|
|
|
665
714
|
.max-w-md {
|
|
666
715
|
max-width: var(--container-md);
|
|
667
716
|
}
|
|
717
|
+
.max-w-xs {
|
|
718
|
+
max-width: var(--container-xs);
|
|
719
|
+
}
|
|
668
720
|
.min-w-\[210px\] {
|
|
669
721
|
min-width: 210px;
|
|
670
722
|
}
|
|
671
723
|
.min-w-\[220px\] {
|
|
672
724
|
min-width: 220px;
|
|
673
725
|
}
|
|
674
|
-
.min-w-\[
|
|
675
|
-
min-width:
|
|
726
|
+
.min-w-\[320px\] {
|
|
727
|
+
min-width: 320px;
|
|
728
|
+
}
|
|
729
|
+
.min-w-full {
|
|
730
|
+
min-width: 100%;
|
|
676
731
|
}
|
|
677
732
|
.flex-1 {
|
|
678
733
|
flex: 1;
|
|
@@ -702,6 +757,9 @@
|
|
|
702
757
|
--tw-translate-y: calc(var(--spacing) * 1);
|
|
703
758
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
704
759
|
}
|
|
760
|
+
.-rotate-90 {
|
|
761
|
+
rotate: calc(90deg * -1);
|
|
762
|
+
}
|
|
705
763
|
.rotate-180 {
|
|
706
764
|
rotate: 180deg;
|
|
707
765
|
}
|
|
@@ -720,9 +778,21 @@
|
|
|
720
778
|
.resize-none {
|
|
721
779
|
resize: none;
|
|
722
780
|
}
|
|
781
|
+
.list-inside {
|
|
782
|
+
list-style-position: inside;
|
|
783
|
+
}
|
|
784
|
+
.list-disc {
|
|
785
|
+
list-style-type: disc;
|
|
786
|
+
}
|
|
787
|
+
.grid-cols-1 {
|
|
788
|
+
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
789
|
+
}
|
|
723
790
|
.grid-cols-2 {
|
|
724
791
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
725
792
|
}
|
|
793
|
+
.grid-cols-3 {
|
|
794
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
795
|
+
}
|
|
726
796
|
.flex-col {
|
|
727
797
|
flex-direction: column;
|
|
728
798
|
}
|
|
@@ -741,6 +811,9 @@
|
|
|
741
811
|
.items-start {
|
|
742
812
|
align-items: flex-start;
|
|
743
813
|
}
|
|
814
|
+
.justify-around {
|
|
815
|
+
justify-content: space-around;
|
|
816
|
+
}
|
|
744
817
|
.justify-between {
|
|
745
818
|
justify-content: space-between;
|
|
746
819
|
}
|
|
@@ -777,6 +850,9 @@
|
|
|
777
850
|
.gap-12 {
|
|
778
851
|
gap: calc(var(--spacing) * 12);
|
|
779
852
|
}
|
|
853
|
+
.gap-16 {
|
|
854
|
+
gap: calc(var(--spacing) * 16);
|
|
855
|
+
}
|
|
780
856
|
.space-y-2 {
|
|
781
857
|
:where(& > :not(:last-child)) {
|
|
782
858
|
--tw-space-y-reverse: 0;
|
|
@@ -1026,6 +1102,18 @@
|
|
|
1026
1102
|
.bg-white {
|
|
1027
1103
|
background-color: var(--color-white);
|
|
1028
1104
|
}
|
|
1105
|
+
.stroke-background-300 {
|
|
1106
|
+
stroke: var(--color-background-300);
|
|
1107
|
+
}
|
|
1108
|
+
.stroke-primary-100 {
|
|
1109
|
+
stroke: var(--color-primary-100);
|
|
1110
|
+
}
|
|
1111
|
+
.stroke-primary-700 {
|
|
1112
|
+
stroke: var(--color-primary-700);
|
|
1113
|
+
}
|
|
1114
|
+
.stroke-success-200 {
|
|
1115
|
+
stroke: var(--color-success-200);
|
|
1116
|
+
}
|
|
1029
1117
|
.p-0 {
|
|
1030
1118
|
padding: calc(var(--spacing) * 0);
|
|
1031
1119
|
}
|
|
@@ -1155,6 +1243,10 @@
|
|
|
1155
1243
|
font-size: var(--text-xs);
|
|
1156
1244
|
line-height: var(--tw-leading, var(--text-xs--line-height));
|
|
1157
1245
|
}
|
|
1246
|
+
.leading-7 {
|
|
1247
|
+
--tw-leading: calc(var(--spacing) * 7);
|
|
1248
|
+
line-height: calc(var(--spacing) * 7);
|
|
1249
|
+
}
|
|
1158
1250
|
.leading-\[150\%\] {
|
|
1159
1251
|
--tw-leading: 150%;
|
|
1160
1252
|
line-height: 150%;
|
|
@@ -1195,6 +1287,10 @@
|
|
|
1195
1287
|
--tw-font-weight: var(--font-weight-semibold);
|
|
1196
1288
|
font-weight: var(--font-weight-semibold);
|
|
1197
1289
|
}
|
|
1290
|
+
.tracking-wide {
|
|
1291
|
+
--tw-tracking: var(--tracking-wide);
|
|
1292
|
+
letter-spacing: var(--tracking-wide);
|
|
1293
|
+
}
|
|
1198
1294
|
.whitespace-nowrap {
|
|
1199
1295
|
white-space: nowrap;
|
|
1200
1296
|
}
|
|
@@ -1249,6 +1345,9 @@
|
|
|
1249
1345
|
.text-primary-500 {
|
|
1250
1346
|
color: var(--color-primary-500);
|
|
1251
1347
|
}
|
|
1348
|
+
.text-primary-700 {
|
|
1349
|
+
color: var(--color-primary-700);
|
|
1350
|
+
}
|
|
1252
1351
|
.text-primary-950 {
|
|
1253
1352
|
color: var(--color-primary-950);
|
|
1254
1353
|
}
|
|
@@ -1300,6 +1399,9 @@
|
|
|
1300
1399
|
.capitalize {
|
|
1301
1400
|
text-transform: capitalize;
|
|
1302
1401
|
}
|
|
1402
|
+
.uppercase {
|
|
1403
|
+
text-transform: uppercase;
|
|
1404
|
+
}
|
|
1303
1405
|
.italic {
|
|
1304
1406
|
font-style: italic;
|
|
1305
1407
|
}
|
|
@@ -1312,6 +1414,15 @@
|
|
|
1312
1414
|
.opacity-50 {
|
|
1313
1415
|
opacity: 50%;
|
|
1314
1416
|
}
|
|
1417
|
+
.shadow {
|
|
1418
|
+
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
1419
|
+
box-shadow:
|
|
1420
|
+
var(--tw-inset-shadow),
|
|
1421
|
+
var(--tw-inset-ring-shadow),
|
|
1422
|
+
var(--tw-ring-offset-shadow),
|
|
1423
|
+
var(--tw-ring-shadow),
|
|
1424
|
+
var(--tw-shadow);
|
|
1425
|
+
}
|
|
1315
1426
|
.shadow-hard-shadow-3 {
|
|
1316
1427
|
--tw-shadow: 2px 2px 8px var(--tw-shadow-color, rgba(38, 38, 38, 0.2));
|
|
1317
1428
|
box-shadow:
|
|
@@ -1357,6 +1468,24 @@
|
|
|
1357
1468
|
var(--tw-ring-shadow),
|
|
1358
1469
|
var(--tw-shadow);
|
|
1359
1470
|
}
|
|
1471
|
+
.shadow-soft-shadow-2 {
|
|
1472
|
+
--tw-shadow: 0px 0px 20px var(--tw-shadow-color, rgba(38, 38, 38, 0.1));
|
|
1473
|
+
box-shadow:
|
|
1474
|
+
var(--tw-inset-shadow),
|
|
1475
|
+
var(--tw-inset-ring-shadow),
|
|
1476
|
+
var(--tw-ring-offset-shadow),
|
|
1477
|
+
var(--tw-ring-shadow),
|
|
1478
|
+
var(--tw-shadow);
|
|
1479
|
+
}
|
|
1480
|
+
.shadow-soft-shadow-3 {
|
|
1481
|
+
--tw-shadow: 0px 0px 30px var(--tw-shadow-color, rgba(38, 38, 38, 0.1));
|
|
1482
|
+
box-shadow:
|
|
1483
|
+
var(--tw-inset-shadow),
|
|
1484
|
+
var(--tw-inset-ring-shadow),
|
|
1485
|
+
var(--tw-ring-offset-shadow),
|
|
1486
|
+
var(--tw-ring-shadow),
|
|
1487
|
+
var(--tw-shadow);
|
|
1488
|
+
}
|
|
1360
1489
|
.ring-2 {
|
|
1361
1490
|
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
1362
1491
|
box-shadow:
|
|
@@ -1393,6 +1522,35 @@
|
|
|
1393
1522
|
.filter {
|
|
1394
1523
|
filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
|
|
1395
1524
|
}
|
|
1525
|
+
.transition {
|
|
1526
|
+
transition-property:
|
|
1527
|
+
color,
|
|
1528
|
+
background-color,
|
|
1529
|
+
border-color,
|
|
1530
|
+
outline-color,
|
|
1531
|
+
text-decoration-color,
|
|
1532
|
+
fill,
|
|
1533
|
+
stroke,
|
|
1534
|
+
--tw-gradient-from,
|
|
1535
|
+
--tw-gradient-via,
|
|
1536
|
+
--tw-gradient-to,
|
|
1537
|
+
opacity,
|
|
1538
|
+
box-shadow,
|
|
1539
|
+
transform,
|
|
1540
|
+
translate,
|
|
1541
|
+
scale,
|
|
1542
|
+
rotate,
|
|
1543
|
+
filter,
|
|
1544
|
+
-webkit-backdrop-filter,
|
|
1545
|
+
backdrop-filter,
|
|
1546
|
+
display,
|
|
1547
|
+
visibility,
|
|
1548
|
+
content-visibility,
|
|
1549
|
+
overlay,
|
|
1550
|
+
pointer-events;
|
|
1551
|
+
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
1552
|
+
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
1553
|
+
}
|
|
1396
1554
|
.transition-all {
|
|
1397
1555
|
transition-property: all;
|
|
1398
1556
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
@@ -1435,6 +1593,10 @@
|
|
|
1435
1593
|
--tw-duration: 300ms;
|
|
1436
1594
|
transition-duration: 300ms;
|
|
1437
1595
|
}
|
|
1596
|
+
.duration-500 {
|
|
1597
|
+
--tw-duration: 500ms;
|
|
1598
|
+
transition-duration: 500ms;
|
|
1599
|
+
}
|
|
1438
1600
|
.ease-out {
|
|
1439
1601
|
--tw-ease: var(--ease-out);
|
|
1440
1602
|
transition-timing-function: var(--ease-out);
|
|
@@ -1554,13 +1716,6 @@
|
|
|
1554
1716
|
}
|
|
1555
1717
|
}
|
|
1556
1718
|
}
|
|
1557
|
-
.hover\:bg-background-200 {
|
|
1558
|
-
&:hover {
|
|
1559
|
-
@media (hover: hover) {
|
|
1560
|
-
background-color: var(--color-background-200);
|
|
1561
|
-
}
|
|
1562
|
-
}
|
|
1563
|
-
}
|
|
1564
1719
|
.hover\:bg-error-600 {
|
|
1565
1720
|
&:hover {
|
|
1566
1721
|
@media (hover: hover) {
|
|
@@ -1900,6 +2055,21 @@
|
|
|
1900
2055
|
opacity: 50%;
|
|
1901
2056
|
}
|
|
1902
2057
|
}
|
|
2058
|
+
.md\:grid-cols-2 {
|
|
2059
|
+
@media (width >= 48rem) {
|
|
2060
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
2061
|
+
}
|
|
2062
|
+
}
|
|
2063
|
+
.lg\:grid-cols-4 {
|
|
2064
|
+
@media (width >= 64rem) {
|
|
2065
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
2066
|
+
}
|
|
2067
|
+
}
|
|
2068
|
+
.lg\:flex-row {
|
|
2069
|
+
@media (width >= 64rem) {
|
|
2070
|
+
flex-direction: row;
|
|
2071
|
+
}
|
|
2072
|
+
}
|
|
1903
2073
|
.\[\&_tr\:first-child\]\:border-0 {
|
|
1904
2074
|
& tr:first-child {
|
|
1905
2075
|
border-style: var(--tw-border-style);
|
|
@@ -2285,6 +2455,7 @@
|
|
|
2285
2455
|
@property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; }
|
|
2286
2456
|
@property --tw-leading { syntax: "*"; inherits: false; }
|
|
2287
2457
|
@property --tw-font-weight { syntax: "*"; inherits: false; }
|
|
2458
|
+
@property --tw-tracking { syntax: "*"; inherits: false; }
|
|
2288
2459
|
@property --tw-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }
|
|
2289
2460
|
@property --tw-shadow-color { syntax: "*"; inherits: false; }
|
|
2290
2461
|
@property --tw-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }
|
|
@@ -2333,6 +2504,7 @@
|
|
|
2333
2504
|
--tw-border-style: solid;
|
|
2334
2505
|
--tw-leading: initial;
|
|
2335
2506
|
--tw-font-weight: initial;
|
|
2507
|
+
--tw-tracking: initial;
|
|
2336
2508
|
--tw-shadow: 0 0 #0000;
|
|
2337
2509
|
--tw-shadow-color: initial;
|
|
2338
2510
|
--tw-shadow-alpha: 100%;
|