@fangxinyan/lumina 0.1.5 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/dist/{Accordion-GSBY5T5U.css → Accordion-3TQPKNN3.css} +8 -1
  2. package/dist/Accordion.cjs +2 -2
  3. package/dist/Accordion.d.cts +12 -0
  4. package/dist/Accordion.d.ts +12 -0
  5. package/dist/Accordion.js +1 -1
  6. package/dist/{Alert-LSKBYDRI.css → Alert-JJ7GB3UU.css} +11 -0
  7. package/dist/Alert.cjs +2 -2
  8. package/dist/Alert.d.cts +4 -0
  9. package/dist/Alert.d.ts +4 -0
  10. package/dist/Alert.js +1 -1
  11. package/dist/{Avatar-OXDSG5Q6.css → Avatar-R5A4AFKZ.css} +4 -0
  12. package/dist/Avatar.cjs +2 -2
  13. package/dist/Avatar.d.cts +2 -0
  14. package/dist/Avatar.d.ts +2 -0
  15. package/dist/Avatar.js +1 -1
  16. package/dist/{Button-5UI7QXGU.css → Button-SDQD25AG.css} +2 -0
  17. package/dist/Button.cjs +3 -3
  18. package/dist/Button.d.cts +2 -0
  19. package/dist/Button.d.ts +2 -0
  20. package/dist/Button.js +1 -1
  21. package/dist/Calendar.cjs +2 -2
  22. package/dist/Calendar.d.cts +8 -0
  23. package/dist/Calendar.d.ts +8 -0
  24. package/dist/Calendar.js +1 -1
  25. package/dist/{Card-2CHHFD4Y.css → Card-RG7ECXL2.css} +11 -0
  26. package/dist/Card.cjs +3 -3
  27. package/dist/Card.d.cts +2 -0
  28. package/dist/Card.d.ts +2 -0
  29. package/dist/Card.js +1 -1
  30. package/dist/{Divider-Z37INS5E.css → Divider-OEE4Q2KS.css} +31 -0
  31. package/dist/Divider.cjs +2 -2
  32. package/dist/Divider.d.cts +7 -0
  33. package/dist/Divider.d.ts +7 -0
  34. package/dist/Divider.js +1 -1
  35. package/dist/Drawer-IPGB4CXH.css +101 -0
  36. package/dist/Drawer.cjs +13 -0
  37. package/dist/Drawer.cjs.map +1 -0
  38. package/dist/Drawer.d.cts +45 -0
  39. package/dist/Drawer.d.ts +45 -0
  40. package/dist/Drawer.js +4 -0
  41. package/dist/Drawer.js.map +1 -0
  42. package/dist/{Empty-VM23UNLQ.css → Empty-NQ72W3D7.css} +22 -0
  43. package/dist/Empty.cjs +4 -4
  44. package/dist/Empty.d.cts +42 -2
  45. package/dist/Empty.d.ts +42 -2
  46. package/dist/Empty.js +1 -1
  47. package/dist/Input-33CAH4O6.css +134 -0
  48. package/dist/Input.cjs +3 -3
  49. package/dist/Input.d.cts +17 -1
  50. package/dist/Input.d.ts +17 -1
  51. package/dist/Input.js +1 -1
  52. package/dist/Modal-N4YVLEWW.css +72 -0
  53. package/dist/Modal.cjs +3 -7
  54. package/dist/Modal.d.cts +37 -8
  55. package/dist/Modal.d.ts +37 -8
  56. package/dist/Modal.js +2 -2
  57. package/dist/{Pagination-6FFOI4NM.css → Pagination-YIRYJUXP.css} +33 -0
  58. package/dist/Pagination.cjs +5 -2
  59. package/dist/Pagination.d.cts +14 -0
  60. package/dist/Pagination.d.ts +14 -0
  61. package/dist/Pagination.js +4 -1
  62. package/dist/Select.cjs +3 -3
  63. package/dist/Select.js +2 -2
  64. package/dist/{Slider-RE4HZQKF.css → Slider-X4PVA65R.css} +51 -2
  65. package/dist/Slider.cjs +2 -2
  66. package/dist/Slider.d.cts +20 -5
  67. package/dist/Slider.d.ts +20 -5
  68. package/dist/Slider.js +1 -1
  69. package/dist/Switch-36KJNDXM.css +92 -0
  70. package/dist/Switch.cjs +2 -2
  71. package/dist/Switch.d.cts +4 -0
  72. package/dist/Switch.d.ts +4 -0
  73. package/dist/Switch.js +1 -1
  74. package/dist/Table-ADVN6LXP.css +295 -0
  75. package/dist/Table.cjs +7 -3
  76. package/dist/Table.d.cts +103 -7
  77. package/dist/Table.d.ts +103 -7
  78. package/dist/Table.js +5 -1
  79. package/dist/{Tabs-A27TSZOP.css → Tabs-RHK6XAFF.css} +7 -0
  80. package/dist/Tabs.cjs +3 -3
  81. package/dist/Tabs.d.cts +2 -0
  82. package/dist/Tabs.d.ts +2 -0
  83. package/dist/Tabs.js +1 -1
  84. package/dist/{Tag-EYOY3UWG.css → Tag-FGDY3W7E.css} +2 -0
  85. package/dist/Tag.cjs +3 -3
  86. package/dist/Tag.d.cts +5 -0
  87. package/dist/Tag.d.ts +5 -0
  88. package/dist/Tag.js +1 -1
  89. package/dist/chunk-437LB2V4.js +111 -0
  90. package/dist/chunk-437LB2V4.js.map +1 -0
  91. package/dist/chunk-4MR4GVTD.js +73 -0
  92. package/dist/chunk-4MR4GVTD.js.map +1 -0
  93. package/dist/{chunk-OXYFB2ZI.js → chunk-4U4OY5RA.js} +11 -5
  94. package/dist/chunk-4U4OY5RA.js.map +1 -0
  95. package/dist/chunk-55NTFU7Y.js +476 -0
  96. package/dist/chunk-55NTFU7Y.js.map +1 -0
  97. package/dist/{chunk-5EYI27B6.js → chunk-77BVQNAQ.js} +5 -3
  98. package/dist/chunk-77BVQNAQ.js.map +1 -0
  99. package/dist/chunk-AEJJGUEN.cjs +127 -0
  100. package/dist/chunk-AEJJGUEN.cjs.map +1 -0
  101. package/dist/{chunk-3QWHDCHJ.js → chunk-AJZKESHB.js} +13 -4
  102. package/dist/chunk-AJZKESHB.js.map +1 -0
  103. package/dist/{chunk-NZPJ7BUB.cjs → chunk-AXMEZGEG.cjs} +13 -4
  104. package/dist/chunk-AXMEZGEG.cjs.map +1 -0
  105. package/dist/{chunk-HTP6UEVR.js → chunk-BBPNQ44M.js} +22 -6
  106. package/dist/chunk-BBPNQ44M.js.map +1 -0
  107. package/dist/chunk-CCBHZYE6.cjs +150 -0
  108. package/dist/chunk-CCBHZYE6.cjs.map +1 -0
  109. package/dist/{chunk-KGYLUZOU.cjs → chunk-EPFYIR63.cjs} +5 -5
  110. package/dist/{chunk-KGYLUZOU.cjs.map → chunk-EPFYIR63.cjs.map} +1 -1
  111. package/dist/chunk-F7HW2PYR.cjs +119 -0
  112. package/dist/chunk-F7HW2PYR.cjs.map +1 -0
  113. package/dist/chunk-GIVMKGZN.js +39 -0
  114. package/dist/chunk-GIVMKGZN.js.map +1 -0
  115. package/dist/{chunk-FMG3ZPGK.js → chunk-H6FCIJOP.js} +5 -3
  116. package/dist/chunk-H6FCIJOP.js.map +1 -0
  117. package/dist/{chunk-ALFDP5WX.cjs → chunk-IDM6JJLP.cjs} +22 -6
  118. package/dist/chunk-IDM6JJLP.cjs.map +1 -0
  119. package/dist/chunk-IFERLHCL.cjs +499 -0
  120. package/dist/chunk-IFERLHCL.cjs.map +1 -0
  121. package/dist/chunk-IWVKITPN.js +102 -0
  122. package/dist/chunk-IWVKITPN.js.map +1 -0
  123. package/dist/{chunk-I2ERCHFV.cjs → chunk-JKLQOB2F.cjs} +11 -5
  124. package/dist/chunk-JKLQOB2F.cjs.map +1 -0
  125. package/dist/{chunk-IGHLSNXT.cjs → chunk-K7PVJLW4.cjs} +51 -4
  126. package/dist/chunk-K7PVJLW4.cjs.map +1 -0
  127. package/dist/chunk-LDENBYRC.cjs +210 -0
  128. package/dist/chunk-LDENBYRC.cjs.map +1 -0
  129. package/dist/chunk-LSLYY5FN.js +125 -0
  130. package/dist/chunk-LSLYY5FN.js.map +1 -0
  131. package/dist/chunk-NSUD5B22.js +187 -0
  132. package/dist/chunk-NSUD5B22.js.map +1 -0
  133. package/dist/{chunk-AAMYURWQ.cjs → chunk-OPTTHURA.cjs} +5 -3
  134. package/dist/chunk-OPTTHURA.cjs.map +1 -0
  135. package/dist/{chunk-F3NHM4GX.js → chunk-OYGFMXAA.js} +13 -4
  136. package/dist/chunk-OYGFMXAA.js.map +1 -0
  137. package/dist/chunk-PBBHUUXU.cjs +133 -0
  138. package/dist/chunk-PBBHUUXU.cjs.map +1 -0
  139. package/dist/chunk-RDLPX7RK.cjs +95 -0
  140. package/dist/chunk-RDLPX7RK.cjs.map +1 -0
  141. package/dist/{chunk-XFRP2MBR.js → chunk-TYQ5CN2C.js} +51 -4
  142. package/dist/chunk-TYQ5CN2C.js.map +1 -0
  143. package/dist/{chunk-7CKHWCEA.cjs → chunk-TZSWDH5T.cjs} +5 -3
  144. package/dist/chunk-TZSWDH5T.cjs.map +1 -0
  145. package/dist/{chunk-VMHNKD3N.cjs → chunk-URF6RBW6.cjs} +13 -4
  146. package/dist/chunk-URF6RBW6.cjs.map +1 -0
  147. package/dist/{chunk-G3UWXSNQ.js → chunk-V34OPWKZ.js} +5 -4
  148. package/dist/chunk-V34OPWKZ.js.map +1 -0
  149. package/dist/{chunk-ITGCHU3Y.cjs → chunk-VICGQC6G.cjs} +5 -4
  150. package/dist/chunk-VICGQC6G.cjs.map +1 -0
  151. package/dist/chunk-YEOARJKR.cjs +40 -0
  152. package/dist/chunk-YEOARJKR.cjs.map +1 -0
  153. package/dist/chunk-Z5X5AMLA.cjs +41 -0
  154. package/dist/chunk-Z5X5AMLA.cjs.map +1 -0
  155. package/dist/chunk-Z7P6QGMT.js +115 -0
  156. package/dist/chunk-Z7P6QGMT.js.map +1 -0
  157. package/dist/{chunk-OYH6A7IQ.js → chunk-ZVCMXDTP.js} +3 -3
  158. package/dist/{chunk-OYH6A7IQ.js.map → chunk-ZVCMXDTP.js.map} +1 -1
  159. package/dist/chunk-ZWP4LSS3.js +38 -0
  160. package/dist/chunk-ZWP4LSS3.js.map +1 -0
  161. package/dist/index.cjs +57 -56
  162. package/dist/index.cjs.map +1 -1
  163. package/dist/index.d.cts +6 -5
  164. package/dist/index.d.ts +6 -5
  165. package/dist/index.js +19 -18
  166. package/dist/index.js.map +1 -1
  167. package/dist/styles.css +566 -50
  168. package/package.json +1 -1
  169. package/dist/Input-Z526ARZP.css +0 -66
  170. package/dist/Modal-AYKNIWWQ.css +0 -79
  171. package/dist/Switch-NP7KKJOX.css +0 -44
  172. package/dist/Table-ZDPGWLH3.css +0 -139
  173. package/dist/chunk-2VA2HSL4.cjs +0 -121
  174. package/dist/chunk-2VA2HSL4.cjs.map +0 -1
  175. package/dist/chunk-2W2AJUZW.js +0 -118
  176. package/dist/chunk-2W2AJUZW.js.map +0 -1
  177. package/dist/chunk-3QWHDCHJ.js.map +0 -1
  178. package/dist/chunk-4AA22BOG.js +0 -63
  179. package/dist/chunk-4AA22BOG.js.map +0 -1
  180. package/dist/chunk-5EYI27B6.js.map +0 -1
  181. package/dist/chunk-77NP67ML.cjs +0 -70
  182. package/dist/chunk-77NP67ML.cjs.map +0 -1
  183. package/dist/chunk-7CKHWCEA.cjs.map +0 -1
  184. package/dist/chunk-7NM5BRUX.js +0 -91
  185. package/dist/chunk-7NM5BRUX.js.map +0 -1
  186. package/dist/chunk-7UJI437T.js +0 -49
  187. package/dist/chunk-7UJI437T.js.map +0 -1
  188. package/dist/chunk-AAMYURWQ.cjs.map +0 -1
  189. package/dist/chunk-ALFDP5WX.cjs.map +0 -1
  190. package/dist/chunk-F3NHM4GX.js.map +0 -1
  191. package/dist/chunk-FMG3ZPGK.js.map +0 -1
  192. package/dist/chunk-G3UWXSNQ.js.map +0 -1
  193. package/dist/chunk-HTP6UEVR.js.map +0 -1
  194. package/dist/chunk-I2ERCHFV.cjs.map +0 -1
  195. package/dist/chunk-IBZAGURN.cjs +0 -71
  196. package/dist/chunk-IBZAGURN.cjs.map +0 -1
  197. package/dist/chunk-IGHLSNXT.cjs.map +0 -1
  198. package/dist/chunk-ITGCHU3Y.cjs.map +0 -1
  199. package/dist/chunk-JNFCTYJT.cjs +0 -31
  200. package/dist/chunk-JNFCTYJT.cjs.map +0 -1
  201. package/dist/chunk-JWFVSBVX.cjs +0 -30
  202. package/dist/chunk-JWFVSBVX.cjs.map +0 -1
  203. package/dist/chunk-K67KIKX4.cjs +0 -67
  204. package/dist/chunk-K67KIKX4.cjs.map +0 -1
  205. package/dist/chunk-KF4MCHZL.cjs +0 -105
  206. package/dist/chunk-KF4MCHZL.cjs.map +0 -1
  207. package/dist/chunk-M6OTFXZA.js +0 -48
  208. package/dist/chunk-M6OTFXZA.js.map +0 -1
  209. package/dist/chunk-NWJW5KLN.js +0 -29
  210. package/dist/chunk-NWJW5KLN.js.map +0 -1
  211. package/dist/chunk-NZPJ7BUB.cjs.map +0 -1
  212. package/dist/chunk-OXYFB2ZI.js.map +0 -1
  213. package/dist/chunk-Q33V7MSK.js +0 -79
  214. package/dist/chunk-Q33V7MSK.js.map +0 -1
  215. package/dist/chunk-QT7SJITQ.cjs +0 -114
  216. package/dist/chunk-QT7SJITQ.cjs.map +0 -1
  217. package/dist/chunk-VMHNKD3N.cjs.map +0 -1
  218. package/dist/chunk-VXITDXLW.js +0 -28
  219. package/dist/chunk-VXITDXLW.js.map +0 -1
  220. package/dist/chunk-XFRP2MBR.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Select/Select.tsx"],"names":[],"mappings":"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","file":"chunk-OYH6A7IQ.js","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Select.css\";\nimport * as React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Icon, type IconName } from \"../Icon\";\nimport { Tag } from \"../Tag\";\nimport { useFloating } from \"../../utils/useFloating\";\n\nexport interface SelectOption<T extends string | number = string> {\n value: T;\n label: React.ReactNode;\n /** Searchable text — used by default filter when `label` isn't a string. */\n text?: string;\n /** Secondary line shown beneath the label. */\n description?: React.ReactNode;\n /** Leading icon. */\n icon?: IconName;\n disabled?: boolean;\n}\n\nexport interface SelectOptionGroup<T extends string | number = string> {\n /** Group heading. */\n label: React.ReactNode;\n options: SelectOption<T>[];\n}\n\nexport type SelectItem<T extends string | number = string> =\n | SelectOption<T>\n | SelectOptionGroup<T>;\n\nconst isGroup = <T extends string | number>(\n it: SelectItem<T>\n): it is SelectOptionGroup<T> => Array.isArray((it as SelectOptionGroup<T>).options);\n\ninterface BaseSelectProps<T extends string | number = string> {\n /** Flat or mixed (groups + options) item list. */\n options: SelectItem<T>[];\n placeholder?: string;\n disabled?: boolean;\n size?: \"sm\" | \"md\" | \"lg\";\n /** Show invalid (red) ring. */\n invalid?: boolean;\n /** Show a small × to clear the selection (single mode) or all selections (multi). */\n clearable?: boolean;\n /** Add a search input at the top of the menu. */\n searchable?: boolean;\n /** Custom filter — defaults to label/text/value substring match. */\n filterOption?: (input: string, option: SelectOption<T>) => boolean;\n /** Show spinner instead of options. */\n loading?: boolean;\n /** Custom empty content when no options match. */\n emptyContent?: React.ReactNode;\n /** Controlled open state. */\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n className?: string;\n /** Class for the popped-out menu. */\n menuClassName?: string;\n}\n\nexport interface SingleSelectProps<T extends string | number = string> extends BaseSelectProps<T> {\n multiple?: false;\n value?: T;\n defaultValue?: T;\n onChange?: (value: T) => void;\n /** Fired when user clears the selection via the × button. */\n onClear?: () => void;\n}\n\nexport interface MultiSelectProps<T extends string | number = string> extends BaseSelectProps<T> {\n multiple: true;\n value?: T[];\n defaultValue?: T[];\n onChange?: (value: T[]) => void;\n /** Max selected items shown as tags before collapsing to \"+N\". */\n maxTagCount?: number;\n}\n\nexport type SelectProps<T extends string | number = string> =\n | SingleSelectProps<T>\n | MultiSelectProps<T>;\n\nconst flatten = <T extends string | number>(items: SelectItem<T>[]): SelectOption<T>[] =>\n items.flatMap((it) => (isGroup(it) ? it.options : [it]));\n\nconst defaultFilter = <T extends string | number>(input: string, opt: SelectOption<T>): boolean => {\n const q = input.toLowerCase();\n const txt =\n opt.text ?? (typeof opt.label === \"string\" ? opt.label : String(opt.value));\n return txt.toLowerCase().includes(q);\n};\n\n/** `Select` — neumorphic dropdown. Set `multiple` for tag-style multi-select. */\nexport function Select<T extends string | number = string>(props: SingleSelectProps<T>): React.ReactElement;\nexport function Select<T extends string | number = string>(props: MultiSelectProps<T>): React.ReactElement;\nexport function Select<T extends string | number = string>(props: SelectProps<T>): React.ReactElement {\n const {\n options,\n placeholder = \"请选择…\",\n disabled,\n size = \"md\",\n invalid,\n clearable,\n searchable,\n filterOption,\n loading,\n emptyContent,\n open: openProp,\n defaultOpen,\n onOpenChange,\n className = \"\",\n menuClassName = \"\",\n } = props;\n const isMulti = props.multiple === true;\n\n const [innerSingle, setInnerSingle] = React.useState<T | undefined>(\n !isMulti ? (props as SingleSelectProps<T>).defaultValue : undefined\n );\n const [innerMulti, setInnerMulti] = React.useState<T[]>(\n isMulti ? (props as MultiSelectProps<T>).defaultValue ?? [] : []\n );\n const [innerOpen, setInnerOpen] = React.useState(defaultOpen ?? false);\n const [query, setQuery] = React.useState(\"\");\n const [activeIdx, setActiveIdx] = React.useState(-1);\n\n const searchRef = React.useRef<HTMLInputElement>(null);\n const menuRef = React.useRef<HTMLDivElement>(null);\n\n const openControlled = openProp !== undefined;\n const open = openControlled ? openProp! : innerOpen;\n const setOpen = (v: boolean) => {\n if (!openControlled) setInnerOpen(v);\n onOpenChange?.(v);\n if (!v) setQuery(\"\");\n };\n\n const { triggerRef: ref, floatingStyle } = useFloating<HTMLDivElement>({\n open,\n placement: \"bottom\",\n matchTriggerWidth: true,\n panelHeight: 320,\n });\n\n const singleControlled = !isMulti && (props as SingleSelectProps<T>).value !== undefined;\n const multiControlled = isMulti && (props as MultiSelectProps<T>).value !== undefined;\n\n const singleValue = singleControlled ? (props as SingleSelectProps<T>).value : innerSingle;\n const multiValue = multiControlled ? (props as MultiSelectProps<T>).value! : innerMulti;\n\n React.useEffect(() => {\n if (!open) return;\n const h = (e: MouseEvent) => {\n const t = e.target as Node;\n if (ref.current?.contains(t)) return;\n if (menuRef.current?.contains(t)) return;\n setOpen(false);\n };\n document.addEventListener(\"mousedown\", h);\n return () => document.removeEventListener(\"mousedown\", h);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n // Auto-focus search input when opened\n React.useEffect(() => {\n if (open && searchable) {\n requestAnimationFrame(() => searchRef.current?.focus());\n }\n if (!open) setActiveIdx(-1);\n }, [open, searchable]);\n\n // Filter options\n const allFlat = React.useMemo(() => flatten(options), [options]);\n const filteredFlat = React.useMemo(() => {\n if (!query.trim()) return allFlat;\n const f = filterOption ?? defaultFilter;\n return allFlat.filter((o) => f(query, o));\n }, [allFlat, query, filterOption]);\n\n // Re-bucket into groups respecting filter (for menu rendering)\n const filteredItems = React.useMemo<SelectItem<T>[]>(() => {\n if (!query.trim()) return options;\n return options\n .map((it) => {\n if (!isGroup(it)) {\n return filteredFlat.includes(it) ? it : null;\n }\n const kept = it.options.filter((o) => filteredFlat.includes(o));\n return kept.length ? { label: it.label, options: kept } : null;\n })\n .filter((x): x is SelectItem<T> => x !== null);\n }, [options, filteredFlat, query]);\n\n React.useEffect(() => {\n setActiveIdx(filteredFlat.length ? 0 : -1);\n }, [filteredFlat.length]);\n\n const pickSingle = (opt: SelectOption<T>) => {\n if (opt.disabled) return;\n if (!singleControlled) setInnerSingle(opt.value);\n (props as SingleSelectProps<T>).onChange?.(opt.value);\n setOpen(false);\n };\n\n const toggleMulti = (opt: SelectOption<T>) => {\n if (opt.disabled) return;\n const cur = multiValue ?? [];\n const next = cur.includes(opt.value) ? cur.filter((v) => v !== opt.value) : [...cur, opt.value];\n if (!multiControlled) setInnerMulti(next);\n (props as MultiSelectProps<T>).onChange?.(next);\n };\n\n const clearAll = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (isMulti) {\n if (!multiControlled) setInnerMulti([]);\n (props as MultiSelectProps<T>).onChange?.([]);\n } else {\n if (!singleControlled) setInnerSingle(undefined);\n (props as SingleSelectProps<T>).onClear?.();\n }\n };\n\n const isSelected = (val: T) =>\n isMulti ? (multiValue ?? []).includes(val) : singleValue === val;\n\n const onKeyDown = (e: React.KeyboardEvent) => {\n if (!open) {\n if (e.key === \"Enter\" || e.key === \" \" || e.key === \"ArrowDown\") {\n e.preventDefault();\n setOpen(true);\n }\n return;\n }\n if (e.key === \"Escape\") {\n e.preventDefault();\n setOpen(false);\n return;\n }\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setActiveIdx((i) => Math.min(filteredFlat.length - 1, i + 1));\n return;\n }\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setActiveIdx((i) => Math.max(0, i - 1));\n return;\n }\n if (e.key === \"Enter\") {\n e.preventDefault();\n const opt = filteredFlat[activeIdx];\n if (opt && !opt.disabled) {\n if (isMulti) toggleMulti(opt);\n else pickSingle(opt);\n }\n return;\n }\n };\n\n const renderTrigger = () => {\n if (isMulti) {\n const selected = (multiValue ?? [])\n .map((v) => allFlat.find((o) => o.value === v))\n .filter((o): o is SelectOption<T> => !!o);\n const max = (props as MultiSelectProps<T>).maxTagCount;\n const shown = max != null ? selected.slice(0, max) : selected;\n const overflow = selected.length - shown.length;\n if (selected.length === 0) {\n return <span className=\"placeholder\">{placeholder}</span>;\n }\n return (\n <span className=\"select-tags\">\n {shown.map((o) => (\n <Tag\n key={String(o.value)}\n tone=\"accent\"\n removable={!disabled}\n onRemove={() => {\n const cur = multiValue ?? [];\n const next = cur.filter((v) => v !== o.value);\n if (!multiControlled) setInnerMulti(next);\n (props as MultiSelectProps<T>).onChange?.(next);\n }}\n onClick={(e) => e.stopPropagation()}\n >\n {o.label}\n </Tag>\n ))}\n {overflow > 0 && <Tag tone=\"neutral\">+{overflow}</Tag>}\n </span>\n );\n }\n const current = allFlat.find((o) => o.value === singleValue);\n if (!current) return <span className=\"placeholder\">{placeholder}</span>;\n return (\n <span className=\"select-value\">\n {current.icon && <Icon name={current.icon} size={14} />}\n <span>{current.label}</span>\n </span>\n );\n };\n\n const hasSelection = isMulti ? (multiValue?.length ?? 0) > 0 : singleValue !== undefined;\n const showClear = clearable && hasSelection && !disabled;\n\n // Render an option button\n let renderIdx = -1;\n const renderOption = (o: SelectOption<T>) => {\n renderIdx += 1;\n const idx = renderIdx;\n const sel = isSelected(o.value);\n const active = idx === activeIdx;\n return (\n <button\n key={String(o.value)}\n type=\"button\"\n role=\"option\"\n aria-selected={sel}\n disabled={o.disabled}\n className={`menu-item ${sel ? \"active\" : \"\"} ${active ? \"highlight\" : \"\"}`}\n onMouseEnter={() => setActiveIdx(idx)}\n onClick={() => (isMulti ? toggleMulti(o) : pickSingle(o))}\n >\n {isMulti && (\n <span className={`menu-check ${sel ? \"on\" : \"\"}`} aria-hidden>\n {sel && <Icon name=\"check\" size={11} stroke={3} />}\n </span>\n )}\n {o.icon && <Icon name={o.icon} size={14} />}\n <span className=\"menu-item-body\">\n <span className=\"menu-item-label\">{o.label}</span>\n {o.description && <span className=\"menu-item-desc\">{o.description}</span>}\n </span>\n {!isMulti && (\n <span className=\"tick\">\n <Icon name=\"check\" size={12} stroke={3} />\n </span>\n )}\n </button>\n );\n };\n\n return (\n <div\n ref={ref}\n className={`select ${size} ${isMulti ? \"multi\" : \"\"} ${open ? \"open\" : \"\"} ${disabled ? \"disabled\" : \"\"} ${invalid ? \"invalid\" : \"\"} ${className}`}\n onKeyDown={onKeyDown}\n tabIndex={disabled ? -1 : 0}\n >\n <button\n type=\"button\"\n className=\"select-trigger\"\n disabled={disabled}\n onClick={() => !disabled && setOpen(!open)}\n >\n {renderTrigger()}\n {showClear && (\n <span className=\"select-clear\" role=\"button\" aria-label=\"Clear\" onClick={clearAll}>\n <Icon name=\"x\" size={12} />\n </span>\n )}\n <Icon name=\"chevDown\" size={14} className=\"select-caret\" />\n </button>\n {open && typeof document !== \"undefined\" &&\n createPortal(\n <div\n ref={menuRef}\n className={`menu ${menuClassName}`}\n role=\"listbox\"\n aria-multiselectable={isMulti || undefined}\n style={floatingStyle}\n >\n {searchable && (\n <div className=\"menu-search\">\n <Icon name=\"search\" size={13} />\n <input\n ref={searchRef}\n type=\"text\"\n value={query}\n placeholder=\"搜索...\"\n onChange={(e) => setQuery(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Escape\" || e.key === \"ArrowDown\" || e.key === \"ArrowUp\" || e.key === \"Enter\") {\n e.preventDefault();\n onKeyDown(e);\n }\n }}\n />\n </div>\n )}\n {loading ? (\n <div className=\"menu-state\">\n <span className=\"menu-state-ico\">\n <span className=\"spinner\" />\n </span>\n <span>加载中...</span>\n </div>\n ) : filteredItems.length === 0 ? (\n <div className=\"menu-state\">\n <span className=\"menu-state-ico\">\n <Icon name=\"search\" size={16} />\n </span>\n <span>{emptyContent ?? \"暂无匹配项\"}</span>\n </div>\n ) : (\n filteredItems.map((it, gi) =>\n isGroup(it) ? (\n <React.Fragment key={`g-${gi}`}>\n <div className=\"menu-group-label\">{it.label}</div>\n {it.options.map(renderOption)}\n </React.Fragment>\n ) : (\n renderOption(it)\n )\n )\n )}\n </div>,\n document.body\n )}\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/components/Select/Select.tsx"],"names":[],"mappings":"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","file":"chunk-ZVCMXDTP.js","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Select.css\";\nimport * as React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Icon, type IconName } from \"../Icon\";\nimport { Tag } from \"../Tag\";\nimport { useFloating } from \"../../utils/useFloating\";\n\nexport interface SelectOption<T extends string | number = string> {\n value: T;\n label: React.ReactNode;\n /** Searchable text — used by default filter when `label` isn't a string. */\n text?: string;\n /** Secondary line shown beneath the label. */\n description?: React.ReactNode;\n /** Leading icon. */\n icon?: IconName;\n disabled?: boolean;\n}\n\nexport interface SelectOptionGroup<T extends string | number = string> {\n /** Group heading. */\n label: React.ReactNode;\n options: SelectOption<T>[];\n}\n\nexport type SelectItem<T extends string | number = string> =\n | SelectOption<T>\n | SelectOptionGroup<T>;\n\nconst isGroup = <T extends string | number>(\n it: SelectItem<T>\n): it is SelectOptionGroup<T> => Array.isArray((it as SelectOptionGroup<T>).options);\n\ninterface BaseSelectProps<T extends string | number = string> {\n /** Flat or mixed (groups + options) item list. */\n options: SelectItem<T>[];\n placeholder?: string;\n disabled?: boolean;\n size?: \"sm\" | \"md\" | \"lg\";\n /** Show invalid (red) ring. */\n invalid?: boolean;\n /** Show a small × to clear the selection (single mode) or all selections (multi). */\n clearable?: boolean;\n /** Add a search input at the top of the menu. */\n searchable?: boolean;\n /** Custom filter — defaults to label/text/value substring match. */\n filterOption?: (input: string, option: SelectOption<T>) => boolean;\n /** Show spinner instead of options. */\n loading?: boolean;\n /** Custom empty content when no options match. */\n emptyContent?: React.ReactNode;\n /** Controlled open state. */\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n className?: string;\n /** Class for the popped-out menu. */\n menuClassName?: string;\n}\n\nexport interface SingleSelectProps<T extends string | number = string> extends BaseSelectProps<T> {\n multiple?: false;\n value?: T;\n defaultValue?: T;\n onChange?: (value: T) => void;\n /** Fired when user clears the selection via the × button. */\n onClear?: () => void;\n}\n\nexport interface MultiSelectProps<T extends string | number = string> extends BaseSelectProps<T> {\n multiple: true;\n value?: T[];\n defaultValue?: T[];\n onChange?: (value: T[]) => void;\n /** Max selected items shown as tags before collapsing to \"+N\". */\n maxTagCount?: number;\n}\n\nexport type SelectProps<T extends string | number = string> =\n | SingleSelectProps<T>\n | MultiSelectProps<T>;\n\nconst flatten = <T extends string | number>(items: SelectItem<T>[]): SelectOption<T>[] =>\n items.flatMap((it) => (isGroup(it) ? it.options : [it]));\n\nconst defaultFilter = <T extends string | number>(input: string, opt: SelectOption<T>): boolean => {\n const q = input.toLowerCase();\n const txt =\n opt.text ?? (typeof opt.label === \"string\" ? opt.label : String(opt.value));\n return txt.toLowerCase().includes(q);\n};\n\n/** `Select` — neumorphic dropdown. Set `multiple` for tag-style multi-select. */\nexport function Select<T extends string | number = string>(props: SingleSelectProps<T>): React.ReactElement;\nexport function Select<T extends string | number = string>(props: MultiSelectProps<T>): React.ReactElement;\nexport function Select<T extends string | number = string>(props: SelectProps<T>): React.ReactElement {\n const {\n options,\n placeholder = \"请选择…\",\n disabled,\n size = \"md\",\n invalid,\n clearable,\n searchable,\n filterOption,\n loading,\n emptyContent,\n open: openProp,\n defaultOpen,\n onOpenChange,\n className = \"\",\n menuClassName = \"\",\n } = props;\n const isMulti = props.multiple === true;\n\n const [innerSingle, setInnerSingle] = React.useState<T | undefined>(\n !isMulti ? (props as SingleSelectProps<T>).defaultValue : undefined\n );\n const [innerMulti, setInnerMulti] = React.useState<T[]>(\n isMulti ? (props as MultiSelectProps<T>).defaultValue ?? [] : []\n );\n const [innerOpen, setInnerOpen] = React.useState(defaultOpen ?? false);\n const [query, setQuery] = React.useState(\"\");\n const [activeIdx, setActiveIdx] = React.useState(-1);\n\n const searchRef = React.useRef<HTMLInputElement>(null);\n const menuRef = React.useRef<HTMLDivElement>(null);\n\n const openControlled = openProp !== undefined;\n const open = openControlled ? openProp! : innerOpen;\n const setOpen = (v: boolean) => {\n if (!openControlled) setInnerOpen(v);\n onOpenChange?.(v);\n if (!v) setQuery(\"\");\n };\n\n const { triggerRef: ref, floatingStyle } = useFloating<HTMLDivElement>({\n open,\n placement: \"bottom\",\n matchTriggerWidth: true,\n panelHeight: 320,\n });\n\n const singleControlled = !isMulti && (props as SingleSelectProps<T>).value !== undefined;\n const multiControlled = isMulti && (props as MultiSelectProps<T>).value !== undefined;\n\n const singleValue = singleControlled ? (props as SingleSelectProps<T>).value : innerSingle;\n const multiValue = multiControlled ? (props as MultiSelectProps<T>).value! : innerMulti;\n\n React.useEffect(() => {\n if (!open) return;\n const h = (e: MouseEvent) => {\n const t = e.target as Node;\n if (ref.current?.contains(t)) return;\n if (menuRef.current?.contains(t)) return;\n setOpen(false);\n };\n document.addEventListener(\"mousedown\", h);\n return () => document.removeEventListener(\"mousedown\", h);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n // Auto-focus search input when opened\n React.useEffect(() => {\n if (open && searchable) {\n requestAnimationFrame(() => searchRef.current?.focus());\n }\n if (!open) setActiveIdx(-1);\n }, [open, searchable]);\n\n // Filter options\n const allFlat = React.useMemo(() => flatten(options), [options]);\n const filteredFlat = React.useMemo(() => {\n if (!query.trim()) return allFlat;\n const f = filterOption ?? defaultFilter;\n return allFlat.filter((o) => f(query, o));\n }, [allFlat, query, filterOption]);\n\n // Re-bucket into groups respecting filter (for menu rendering)\n const filteredItems = React.useMemo<SelectItem<T>[]>(() => {\n if (!query.trim()) return options;\n return options\n .map((it) => {\n if (!isGroup(it)) {\n return filteredFlat.includes(it) ? it : null;\n }\n const kept = it.options.filter((o) => filteredFlat.includes(o));\n return kept.length ? { label: it.label, options: kept } : null;\n })\n .filter((x): x is SelectItem<T> => x !== null);\n }, [options, filteredFlat, query]);\n\n React.useEffect(() => {\n setActiveIdx(filteredFlat.length ? 0 : -1);\n }, [filteredFlat.length]);\n\n const pickSingle = (opt: SelectOption<T>) => {\n if (opt.disabled) return;\n if (!singleControlled) setInnerSingle(opt.value);\n (props as SingleSelectProps<T>).onChange?.(opt.value);\n setOpen(false);\n };\n\n const toggleMulti = (opt: SelectOption<T>) => {\n if (opt.disabled) return;\n const cur = multiValue ?? [];\n const next = cur.includes(opt.value) ? cur.filter((v) => v !== opt.value) : [...cur, opt.value];\n if (!multiControlled) setInnerMulti(next);\n (props as MultiSelectProps<T>).onChange?.(next);\n };\n\n const clearAll = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (isMulti) {\n if (!multiControlled) setInnerMulti([]);\n (props as MultiSelectProps<T>).onChange?.([]);\n } else {\n if (!singleControlled) setInnerSingle(undefined);\n (props as SingleSelectProps<T>).onClear?.();\n }\n };\n\n const isSelected = (val: T) =>\n isMulti ? (multiValue ?? []).includes(val) : singleValue === val;\n\n const onKeyDown = (e: React.KeyboardEvent) => {\n if (!open) {\n if (e.key === \"Enter\" || e.key === \" \" || e.key === \"ArrowDown\") {\n e.preventDefault();\n setOpen(true);\n }\n return;\n }\n if (e.key === \"Escape\") {\n e.preventDefault();\n setOpen(false);\n return;\n }\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setActiveIdx((i) => Math.min(filteredFlat.length - 1, i + 1));\n return;\n }\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setActiveIdx((i) => Math.max(0, i - 1));\n return;\n }\n if (e.key === \"Enter\") {\n e.preventDefault();\n const opt = filteredFlat[activeIdx];\n if (opt && !opt.disabled) {\n if (isMulti) toggleMulti(opt);\n else pickSingle(opt);\n }\n return;\n }\n };\n\n const renderTrigger = () => {\n if (isMulti) {\n const selected = (multiValue ?? [])\n .map((v) => allFlat.find((o) => o.value === v))\n .filter((o): o is SelectOption<T> => !!o);\n const max = (props as MultiSelectProps<T>).maxTagCount;\n const shown = max != null ? selected.slice(0, max) : selected;\n const overflow = selected.length - shown.length;\n if (selected.length === 0) {\n return <span className=\"placeholder\">{placeholder}</span>;\n }\n return (\n <span className=\"select-tags\">\n {shown.map((o) => (\n <Tag\n key={String(o.value)}\n tone=\"accent\"\n removable={!disabled}\n onRemove={() => {\n const cur = multiValue ?? [];\n const next = cur.filter((v) => v !== o.value);\n if (!multiControlled) setInnerMulti(next);\n (props as MultiSelectProps<T>).onChange?.(next);\n }}\n onClick={(e) => e.stopPropagation()}\n >\n {o.label}\n </Tag>\n ))}\n {overflow > 0 && <Tag tone=\"neutral\">+{overflow}</Tag>}\n </span>\n );\n }\n const current = allFlat.find((o) => o.value === singleValue);\n if (!current) return <span className=\"placeholder\">{placeholder}</span>;\n return (\n <span className=\"select-value\">\n {current.icon && <Icon name={current.icon} size={14} />}\n <span>{current.label}</span>\n </span>\n );\n };\n\n const hasSelection = isMulti ? (multiValue?.length ?? 0) > 0 : singleValue !== undefined;\n const showClear = clearable && hasSelection && !disabled;\n\n // Render an option button\n let renderIdx = -1;\n const renderOption = (o: SelectOption<T>) => {\n renderIdx += 1;\n const idx = renderIdx;\n const sel = isSelected(o.value);\n const active = idx === activeIdx;\n return (\n <button\n key={String(o.value)}\n type=\"button\"\n role=\"option\"\n aria-selected={sel}\n disabled={o.disabled}\n className={`menu-item ${sel ? \"active\" : \"\"} ${active ? \"highlight\" : \"\"}`}\n onMouseEnter={() => setActiveIdx(idx)}\n onClick={() => (isMulti ? toggleMulti(o) : pickSingle(o))}\n >\n {isMulti && (\n <span className={`menu-check ${sel ? \"on\" : \"\"}`} aria-hidden>\n {sel && <Icon name=\"check\" size={11} stroke={3} />}\n </span>\n )}\n {o.icon && <Icon name={o.icon} size={14} />}\n <span className=\"menu-item-body\">\n <span className=\"menu-item-label\">{o.label}</span>\n {o.description && <span className=\"menu-item-desc\">{o.description}</span>}\n </span>\n {!isMulti && (\n <span className=\"tick\">\n <Icon name=\"check\" size={12} stroke={3} />\n </span>\n )}\n </button>\n );\n };\n\n return (\n <div\n ref={ref}\n className={`select ${size} ${isMulti ? \"multi\" : \"\"} ${open ? \"open\" : \"\"} ${disabled ? \"disabled\" : \"\"} ${invalid ? \"invalid\" : \"\"} ${className}`}\n onKeyDown={onKeyDown}\n tabIndex={disabled ? -1 : 0}\n >\n <button\n type=\"button\"\n className=\"select-trigger\"\n disabled={disabled}\n onClick={() => !disabled && setOpen(!open)}\n >\n {renderTrigger()}\n {showClear && (\n <span className=\"select-clear\" role=\"button\" aria-label=\"Clear\" onClick={clearAll}>\n <Icon name=\"x\" size={12} />\n </span>\n )}\n <Icon name=\"chevDown\" size={14} className=\"select-caret\" />\n </button>\n {open && typeof document !== \"undefined\" &&\n createPortal(\n <div\n ref={menuRef}\n className={`menu ${menuClassName}`}\n role=\"listbox\"\n aria-multiselectable={isMulti || undefined}\n style={floatingStyle}\n >\n {searchable && (\n <div className=\"menu-search\">\n <Icon name=\"search\" size={13} />\n <input\n ref={searchRef}\n type=\"text\"\n value={query}\n placeholder=\"搜索...\"\n onChange={(e) => setQuery(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Escape\" || e.key === \"ArrowDown\" || e.key === \"ArrowUp\" || e.key === \"Enter\") {\n e.preventDefault();\n onKeyDown(e);\n }\n }}\n />\n </div>\n )}\n {loading ? (\n <div className=\"menu-state\">\n <span className=\"menu-state-ico\">\n <span className=\"spinner\" />\n </span>\n <span>加载中...</span>\n </div>\n ) : filteredItems.length === 0 ? (\n <div className=\"menu-state\">\n <span className=\"menu-state-ico\">\n <Icon name=\"search\" size={16} />\n </span>\n <span>{emptyContent ?? \"暂无匹配项\"}</span>\n </div>\n ) : (\n filteredItems.map((it, gi) =>\n isGroup(it) ? (\n <React.Fragment key={`g-${gi}`}>\n <div className=\"menu-group-label\">{it.label}</div>\n {it.options.map(renderOption)}\n </React.Fragment>\n ) : (\n renderOption(it)\n )\n )\n )}\n </div>,\n document.body\n )}\n </div>\n );\n}\n"]}
@@ -0,0 +1,38 @@
1
+ import './tokens-HWQ7KWPG.css';
2
+ import './shared-NJHRNLRH.css';
3
+ import './Avatar-R5A4AFKZ.css';
4
+ import { jsxs, jsx } from 'react/jsx-runtime';
5
+
6
+ // src/components/Avatar/Avatar.tsx
7
+ var Avatar = ({
8
+ src,
9
+ alt = "",
10
+ initials,
11
+ size = "md",
12
+ shape = "circle",
13
+ status,
14
+ className = "",
15
+ style,
16
+ ...rest
17
+ }) => {
18
+ const sizeCls = typeof size === "string" && size !== "md" ? size : "";
19
+ const shapeCls = shape === "square" ? "square" : "";
20
+ const customStyle = typeof size === "number" ? { ["--size"]: `${size}px`, ...style } : style ?? {};
21
+ const shown = initials ?? alt.slice(0, 2).toUpperCase();
22
+ return /* @__PURE__ */ jsxs(
23
+ "div",
24
+ {
25
+ className: `avatar ${sizeCls} ${shapeCls} ${className}`.trim().replace(/\s+/g, " "),
26
+ style: customStyle,
27
+ ...rest,
28
+ children: [
29
+ src ? /* @__PURE__ */ jsx("img", { src, alt }) : /* @__PURE__ */ jsx("span", { children: shown }),
30
+ status && /* @__PURE__ */ jsx("span", { className: `avatar-status ${status}` })
31
+ ]
32
+ }
33
+ );
34
+ };
35
+
36
+ export { Avatar };
37
+ //# sourceMappingURL=chunk-ZWP4LSS3.js.map
38
+ //# sourceMappingURL=chunk-ZWP4LSS3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":";;;;;;AAkBO,IAAM,SAAgC,CAAC;AAAA,EAC5C,GAAA;AAAA,EACA,GAAA,GAAM,EAAA;AAAA,EACN,QAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,KAAA,GAAQ,QAAA;AAAA,EACR,MAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,KAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,UAAU,OAAO,IAAA,KAAS,QAAA,IAAY,IAAA,KAAS,OAAO,IAAA,GAAO,EAAA;AACnE,EAAA,MAAM,QAAA,GAAW,KAAA,KAAU,QAAA,GAAW,QAAA,GAAW,EAAA;AACjD,EAAA,MAAM,WAAA,GACJ,OAAO,IAAA,KAAS,QAAA,GAAW,EAAE,CAAC,QAAiB,GAAG,CAAA,EAAG,IAAI,CAAA,EAAA,CAAA,EAAM,GAAG,KAAA,EAAM,GAAI,SAAS,EAAC;AACxF,EAAA,MAAM,QAAQ,QAAA,IAAY,GAAA,CAAI,MAAM,CAAA,EAAG,CAAC,EAAE,WAAA,EAAY;AACtD,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,CAAA,OAAA,EAAU,OAAO,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA,CAAG,IAAA,EAAK,CAAE,OAAA,CAAQ,MAAA,EAAQ,GAAG,CAAA;AAAA,MAClF,KAAA,EAAO,WAAA;AAAA,MACN,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,GAAA,uBAAO,KAAA,EAAA,EAAI,GAAA,EAAU,KAAU,CAAA,mBAAK,GAAA,CAAC,UAAM,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,QACjD,0BAAU,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,CAAA,cAAA,EAAiB,MAAM,CAAA,CAAA,EAAI;AAAA;AAAA;AAAA,GACzD;AAEJ","file":"chunk-ZWP4LSS3.js","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Avatar.css\";\nimport * as React from \"react\";\n\nexport interface AvatarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"children\"> {\n src?: string;\n alt?: string;\n /** Initials if no image. Auto-derived from `alt` if omitted. */\n initials?: string;\n size?: number | \"sm\" | \"md\" | \"lg\" | \"xl\";\n /** Shape — circular (default) or rounded-square. */\n shape?: \"circle\" | \"square\";\n /** Status dot. */\n status?: \"online\" | \"busy\" | \"away\" | \"offline\";\n}\n\n/** `Avatar` — user image or initials chip. */\nexport const Avatar: React.FC<AvatarProps> = ({\n src,\n alt = \"\",\n initials,\n size = \"md\",\n shape = \"circle\",\n status,\n className = \"\",\n style,\n ...rest\n}) => {\n const sizeCls = typeof size === \"string\" && size !== \"md\" ? size : \"\";\n const shapeCls = shape === \"square\" ? \"square\" : \"\";\n const customStyle: React.CSSProperties =\n typeof size === \"number\" ? { [\"--size\" as never]: `${size}px`, ...style } : style ?? {};\n const shown = initials ?? alt.slice(0, 2).toUpperCase();\n return (\n <div\n className={`avatar ${sizeCls} ${shapeCls} ${className}`.trim().replace(/\\s+/g, \" \")}\n style={customStyle}\n {...rest}\n >\n {src ? <img src={src} alt={alt} /> : <span>{shown}</span>}\n {status && <span className={`avatar-status ${status}`} />}\n </div>\n );\n};\n"]}
package/dist/index.cjs CHANGED
@@ -1,55 +1,60 @@
1
1
  'use strict';
2
2
 
3
- var chunk2VA2HSL4_cjs = require('./chunk-2VA2HSL4.cjs');
4
- var chunkITGCHU3Y_cjs = require('./chunk-ITGCHU3Y.cjs');
3
+ var chunkIDM6JJLP_cjs = require('./chunk-IDM6JJLP.cjs');
4
+ var chunkIFERLHCL_cjs = require('./chunk-IFERLHCL.cjs');
5
+ var chunkVICGQC6G_cjs = require('./chunk-VICGQC6G.cjs');
5
6
  var chunk7U6I44RV_cjs = require('./chunk-7U6I44RV.cjs');
6
7
  var chunkIKI5CS4L_cjs = require('./chunk-IKI5CS4L.cjs');
7
8
  var chunk3UFU63X7_cjs = require('./chunk-3UFU63X7.cjs');
8
9
  var chunk5WF6M47X_cjs = require('./chunk-5WF6M47X.cjs');
10
+ var chunkLDENBYRC_cjs = require('./chunk-LDENBYRC.cjs');
9
11
  var chunk7H453VPW_cjs = require('./chunk-7H453VPW.cjs');
10
- var chunkKF4MCHZL_cjs = require('./chunk-KF4MCHZL.cjs');
11
- var chunkIGHLSNXT_cjs = require('./chunk-IGHLSNXT.cjs');
12
+ var chunkCCBHZYE6_cjs = require('./chunk-CCBHZYE6.cjs');
13
+ var chunkK7PVJLW4_cjs = require('./chunk-K7PVJLW4.cjs');
12
14
  var chunkHKAQILD2_cjs = require('./chunk-HKAQILD2.cjs');
13
15
  var chunkNXOAYNG2_cjs = require('./chunk-NXOAYNG2.cjs');
14
- var chunkKGYLUZOU_cjs = require('./chunk-KGYLUZOU.cjs');
15
- var chunkVMHNKD3N_cjs = require('./chunk-VMHNKD3N.cjs');
16
- var chunkIBZAGURN_cjs = require('./chunk-IBZAGURN.cjs');
17
- var chunkALFDP5WX_cjs = require('./chunk-ALFDP5WX.cjs');
16
+ var chunkEPFYIR63_cjs = require('./chunk-EPFYIR63.cjs');
17
+ var chunkURF6RBW6_cjs = require('./chunk-URF6RBW6.cjs');
18
+ var chunkPBBHUUXU_cjs = require('./chunk-PBBHUUXU.cjs');
18
19
  var chunkTWBJCFEJ_cjs = require('./chunk-TWBJCFEJ.cjs');
19
20
  var chunkC5TGQ7CV_cjs = require('./chunk-C5TGQ7CV.cjs');
20
21
  var chunkQTGDYQOT_cjs = require('./chunk-QTGDYQOT.cjs');
21
22
  require('./chunk-RZ2E3XEU.cjs');
22
- var chunkNZPJ7BUB_cjs = require('./chunk-NZPJ7BUB.cjs');
23
- var chunkK67KIKX4_cjs = require('./chunk-K67KIKX4.cjs');
23
+ var chunkAXMEZGEG_cjs = require('./chunk-AXMEZGEG.cjs');
24
+ var chunkAEJJGUEN_cjs = require('./chunk-AEJJGUEN.cjs');
25
+ var chunkF7HW2PYR_cjs = require('./chunk-F7HW2PYR.cjs');
24
26
  var chunkQESLHLTG_cjs = require('./chunk-QESLHLTG.cjs');
25
- var chunkQT7SJITQ_cjs = require('./chunk-QT7SJITQ.cjs');
26
- var chunk77NP67ML_cjs = require('./chunk-77NP67ML.cjs');
27
- var chunkJNFCTYJT_cjs = require('./chunk-JNFCTYJT.cjs');
27
+ var chunkRDLPX7RK_cjs = require('./chunk-RDLPX7RK.cjs');
28
+ var chunkZ5X5AMLA_cjs = require('./chunk-Z5X5AMLA.cjs');
28
29
  var chunkFI7QO3I5_cjs = require('./chunk-FI7QO3I5.cjs');
29
- var chunkJWFVSBVX_cjs = require('./chunk-JWFVSBVX.cjs');
30
- var chunkAAMYURWQ_cjs = require('./chunk-AAMYURWQ.cjs');
31
- var chunk7CKHWCEA_cjs = require('./chunk-7CKHWCEA.cjs');
30
+ var chunkYEOARJKR_cjs = require('./chunk-YEOARJKR.cjs');
31
+ var chunkOPTTHURA_cjs = require('./chunk-OPTTHURA.cjs');
32
+ var chunkTZSWDH5T_cjs = require('./chunk-TZSWDH5T.cjs');
32
33
  var chunkYVO7XO4W_cjs = require('./chunk-YVO7XO4W.cjs');
33
- var chunkI2ERCHFV_cjs = require('./chunk-I2ERCHFV.cjs');
34
+ var chunkJKLQOB2F_cjs = require('./chunk-JKLQOB2F.cjs');
34
35
 
35
36
  // src/index.ts
36
- var VERSION = "0.1.5";
37
+ var VERSION = "0.2.0";
37
38
 
39
+ Object.defineProperty(exports, "Switch", {
40
+ enumerable: true,
41
+ get: function () { return chunkIDM6JJLP_cjs.Switch; }
42
+ });
38
43
  Object.defineProperty(exports, "Table", {
39
44
  enumerable: true,
40
- get: function () { return chunk2VA2HSL4_cjs.Table; }
45
+ get: function () { return chunkIFERLHCL_cjs.Table; }
41
46
  });
42
47
  Object.defineProperty(exports, "TablePro", {
43
48
  enumerable: true,
44
- get: function () { return chunk2VA2HSL4_cjs.TablePro; }
49
+ get: function () { return chunkIFERLHCL_cjs.TablePro; }
45
50
  });
46
51
  Object.defineProperty(exports, "Segmented", {
47
52
  enumerable: true,
48
- get: function () { return chunkITGCHU3Y_cjs.Segmented; }
53
+ get: function () { return chunkVICGQC6G_cjs.Segmented; }
49
54
  });
50
55
  Object.defineProperty(exports, "Tabs", {
51
56
  enumerable: true,
52
- get: function () { return chunkITGCHU3Y_cjs.Tabs; }
57
+ get: function () { return chunkVICGQC6G_cjs.Tabs; }
53
58
  });
54
59
  Object.defineProperty(exports, "ACCENT_PRESETS", {
55
60
  enumerable: true,
@@ -119,21 +124,25 @@ Object.defineProperty(exports, "Typography", {
119
124
  enumerable: true,
120
125
  get: function () { return chunk5WF6M47X_cjs.Typography; }
121
126
  });
122
- Object.defineProperty(exports, "List", {
127
+ Object.defineProperty(exports, "Input", {
123
128
  enumerable: true,
124
- get: function () { return chunk7H453VPW_cjs.List; }
129
+ get: function () { return chunkLDENBYRC_cjs.Input; }
125
130
  });
126
- Object.defineProperty(exports, "Drawer", {
131
+ Object.defineProperty(exports, "Textarea", {
132
+ enumerable: true,
133
+ get: function () { return chunkLDENBYRC_cjs.Textarea; }
134
+ });
135
+ Object.defineProperty(exports, "List", {
127
136
  enumerable: true,
128
- get: function () { return chunkKF4MCHZL_cjs.Drawer; }
137
+ get: function () { return chunk7H453VPW_cjs.List; }
129
138
  });
130
139
  Object.defineProperty(exports, "Modal", {
131
140
  enumerable: true,
132
- get: function () { return chunkKF4MCHZL_cjs.Modal; }
141
+ get: function () { return chunkCCBHZYE6_cjs.Modal; }
133
142
  });
134
143
  Object.defineProperty(exports, "Pagination", {
135
144
  enumerable: true,
136
- get: function () { return chunkIGHLSNXT_cjs.Pagination; }
145
+ get: function () { return chunkK7PVJLW4_cjs.Pagination; }
137
146
  });
138
147
  Object.defineProperty(exports, "Popover", {
139
148
  enumerable: true,
@@ -149,23 +158,19 @@ Object.defineProperty(exports, "Ring", {
149
158
  });
150
159
  Object.defineProperty(exports, "Select", {
151
160
  enumerable: true,
152
- get: function () { return chunkKGYLUZOU_cjs.Select; }
161
+ get: function () { return chunkEPFYIR63_cjs.Select; }
153
162
  });
154
163
  Object.defineProperty(exports, "Badge", {
155
164
  enumerable: true,
156
- get: function () { return chunkVMHNKD3N_cjs.Badge; }
165
+ get: function () { return chunkURF6RBW6_cjs.Badge; }
157
166
  });
158
167
  Object.defineProperty(exports, "Tag", {
159
168
  enumerable: true,
160
- get: function () { return chunkVMHNKD3N_cjs.Tag; }
169
+ get: function () { return chunkURF6RBW6_cjs.Tag; }
161
170
  });
162
171
  Object.defineProperty(exports, "Slider", {
163
172
  enumerable: true,
164
- get: function () { return chunkIBZAGURN_cjs.Slider; }
165
- });
166
- Object.defineProperty(exports, "Switch", {
167
- enumerable: true,
168
- get: function () { return chunkALFDP5WX_cjs.Switch; }
173
+ get: function () { return chunkPBBHUUXU_cjs.Slider; }
169
174
  });
170
175
  Object.defineProperty(exports, "Cascader", {
171
176
  enumerable: true,
@@ -185,19 +190,23 @@ Object.defineProperty(exports, "ColorPicker", {
185
190
  });
186
191
  Object.defineProperty(exports, "Divider", {
187
192
  enumerable: true,
188
- get: function () { return chunkNZPJ7BUB_cjs.Divider; }
193
+ get: function () { return chunkAXMEZGEG_cjs.Divider; }
194
+ });
195
+ Object.defineProperty(exports, "Drawer", {
196
+ enumerable: true,
197
+ get: function () { return chunkAEJJGUEN_cjs.Drawer; }
189
198
  });
190
199
  Object.defineProperty(exports, "Empty", {
191
200
  enumerable: true,
192
- get: function () { return chunkK67KIKX4_cjs.Empty; }
201
+ get: function () { return chunkF7HW2PYR_cjs.Empty; }
193
202
  });
194
203
  Object.defineProperty(exports, "Skeleton", {
195
204
  enumerable: true,
196
- get: function () { return chunkK67KIKX4_cjs.Skeleton; }
205
+ get: function () { return chunkF7HW2PYR_cjs.Skeleton; }
197
206
  });
198
207
  Object.defineProperty(exports, "Spinner", {
199
208
  enumerable: true,
200
- get: function () { return chunkK67KIKX4_cjs.Spinner; }
209
+ get: function () { return chunkF7HW2PYR_cjs.Spinner; }
201
210
  });
202
211
  Object.defineProperty(exports, "Image", {
203
212
  enumerable: true,
@@ -207,21 +216,13 @@ Object.defineProperty(exports, "ImageGrid", {
207
216
  enumerable: true,
208
217
  get: function () { return chunkQESLHLTG_cjs.ImageGrid; }
209
218
  });
210
- Object.defineProperty(exports, "Input", {
211
- enumerable: true,
212
- get: function () { return chunkQT7SJITQ_cjs.Input; }
213
- });
214
- Object.defineProperty(exports, "Textarea", {
215
- enumerable: true,
216
- get: function () { return chunkQT7SJITQ_cjs.Textarea; }
217
- });
218
219
  Object.defineProperty(exports, "Accordion", {
219
220
  enumerable: true,
220
- get: function () { return chunk77NP67ML_cjs.Accordion; }
221
+ get: function () { return chunkRDLPX7RK_cjs.Accordion; }
221
222
  });
222
223
  Object.defineProperty(exports, "Alert", {
223
224
  enumerable: true,
224
- get: function () { return chunkJNFCTYJT_cjs.Alert; }
225
+ get: function () { return chunkZ5X5AMLA_cjs.Alert; }
225
226
  });
226
227
  Object.defineProperty(exports, "AppShell", {
227
228
  enumerable: true,
@@ -241,19 +242,19 @@ Object.defineProperty(exports, "WindowControls", {
241
242
  });
242
243
  Object.defineProperty(exports, "Avatar", {
243
244
  enumerable: true,
244
- get: function () { return chunkJWFVSBVX_cjs.Avatar; }
245
+ get: function () { return chunkYEOARJKR_cjs.Avatar; }
245
246
  });
246
247
  Object.defineProperty(exports, "Button", {
247
248
  enumerable: true,
248
- get: function () { return chunkAAMYURWQ_cjs.Button; }
249
+ get: function () { return chunkOPTTHURA_cjs.Button; }
249
250
  });
250
251
  Object.defineProperty(exports, "IconButton", {
251
252
  enumerable: true,
252
- get: function () { return chunkAAMYURWQ_cjs.IconButton; }
253
+ get: function () { return chunkOPTTHURA_cjs.IconButton; }
253
254
  });
254
255
  Object.defineProperty(exports, "Calendar", {
255
256
  enumerable: true,
256
- get: function () { return chunk7CKHWCEA_cjs.Calendar; }
257
+ get: function () { return chunkTZSWDH5T_cjs.Calendar; }
257
258
  });
258
259
  Object.defineProperty(exports, "ICON_NAMES", {
259
260
  enumerable: true,
@@ -265,11 +266,11 @@ Object.defineProperty(exports, "Icon", {
265
266
  });
266
267
  Object.defineProperty(exports, "Card", {
267
268
  enumerable: true,
268
- get: function () { return chunkI2ERCHFV_cjs.Card; }
269
+ get: function () { return chunkJKLQOB2F_cjs.Card; }
269
270
  });
270
271
  Object.defineProperty(exports, "Panel", {
271
272
  enumerable: true,
272
- get: function () { return chunkI2ERCHFV_cjs.Panel; }
273
+ get: function () { return chunkJKLQOB2F_cjs.Panel; }
273
274
  });
274
275
  exports.VERSION = VERSION;
275
276
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCO,IAAM,OAAA,GAAU","file":"index.cjs","sourcesContent":["/* lumina — public exports */\n\nexport * from \"./components/Icon\";\nexport * from \"./components/Button\";\nexport * from \"./components/Input\";\nexport * from \"./components/Switch\";\nexport * from \"./components/Checkbox\";\nexport * from \"./components/Slider\";\nexport * from \"./components/Select\";\nexport * from \"./components/Tabs\";\nexport * from \"./components/Accordion\";\nexport * from \"./components/Card\";\nexport * from \"./components/Tag\";\nexport * from \"./components/Avatar\";\nexport * from \"./components/Divider\";\nexport * from \"./components/Progress\";\nexport * from \"./components/Modal\";\nexport * from \"./components/Toast\";\nexport * from \"./components/Tooltip\";\nexport * from \"./components/Popover\";\nexport * from \"./components/Alert\";\nexport * from \"./components/Table\";\nexport * from \"./components/Pagination\";\nexport * from \"./components/Calendar\";\nexport * from \"./components/List\";\nexport * from \"./components/AppShell\";\nexport * from \"./components/Empty\";\nexport * from \"./components/Image\";\nexport * from \"./components/Cascader\";\nexport * from \"./components/Typography\";\nexport * from \"./components/ColorPicker\";\nexport * from \"./components/Theme\";\n\n/** Package version — bumped by release scripts. */\nexport const VERSION = \"0.1.5\";\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCO,IAAM,OAAA,GAAU","file":"index.cjs","sourcesContent":["/* lumina — public exports */\n\nexport * from \"./components/Icon\";\nexport * from \"./components/Button\";\nexport * from \"./components/Input\";\nexport * from \"./components/Switch\";\nexport * from \"./components/Checkbox\";\nexport * from \"./components/Slider\";\nexport * from \"./components/Select\";\nexport * from \"./components/Tabs\";\nexport * from \"./components/Accordion\";\nexport * from \"./components/Card\";\nexport * from \"./components/Tag\";\nexport * from \"./components/Avatar\";\nexport * from \"./components/Divider\";\nexport * from \"./components/Progress\";\nexport * from \"./components/Modal\";\nexport * from \"./components/Toast\";\nexport * from \"./components/Tooltip\";\nexport * from \"./components/Popover\";\nexport * from \"./components/Alert\";\nexport * from \"./components/Table\";\nexport * from \"./components/Pagination\";\nexport * from \"./components/Calendar\";\nexport * from \"./components/List\";\nexport * from \"./components/AppShell\";\nexport * from \"./components/Empty\";\nexport * from \"./components/Image\";\nexport * from \"./components/Cascader\";\nexport * from \"./components/Typography\";\nexport * from \"./components/ColorPicker\";\nexport * from \"./components/Drawer\";\nexport * from \"./components/Theme\";\n\n/** Package version — bumped by release scripts. */\nexport const VERSION = \"0.2.0\";\n"]}
package/dist/index.d.cts CHANGED
@@ -3,7 +3,7 @@ export { Button, ButtonProps, ButtonSize, ButtonVariant, IconButton, IconButtonP
3
3
  export { Input, InputProps, Textarea, TextareaProps } from './Input.cjs';
4
4
  export { Switch, SwitchProps } from './Switch.cjs';
5
5
  export { Checkbox, CheckboxProps, RadioGroup, RadioGroupProps, RadioOption } from './Checkbox.cjs';
6
- export { Slider, SliderProps } from './Slider.cjs';
6
+ export { Slider, SliderProps, SliderRangeProps, SliderRangeValue, SliderSingleProps, SliderSingleValue, SliderValue } from './Slider.cjs';
7
7
  export { MultiSelectProps, Select, SelectItem, SelectOption, SelectOptionGroup, SelectProps, SingleSelectProps } from './Select.cjs';
8
8
  export { Segmented, SegmentedProps, TabItem, Tabs, TabsProps } from './Tabs.cjs';
9
9
  export { Accordion, AccordionItem, AccordionProps } from './Accordion.cjs';
@@ -12,26 +12,27 @@ export { Badge, BadgeProps, Tag, TagProps, TagTone } from './Tag.cjs';
12
12
  export { Avatar, AvatarProps } from './Avatar.cjs';
13
13
  export { Divider, DividerProps } from './Divider.cjs';
14
14
  export { Progress, ProgressProps, Ring, RingProps } from './Progress.cjs';
15
- export { Drawer, DrawerProps, Modal, ModalProps } from './Modal.cjs';
15
+ export { Modal, ModalProps } from './Modal.cjs';
16
16
  export { ToastContainer, ToastContainerProps, ToastItem, ToastType, toast } from './Toast.cjs';
17
17
  export { Tooltip, TooltipProps } from './Tooltip.cjs';
18
18
  export { Popover, PopoverProps } from './Popover.cjs';
19
19
  export { Alert, AlertProps, AlertTone } from './Alert.cjs';
20
- export { Table, TableColumn, TablePro, TableProProps, TableProps, TableVariant } from './Table.cjs';
20
+ export { ExpandableConfig, PaginationConfig, RowKey, RowSelectionConfig, Table, TableColumn, TableColumnFilterItem, TablePro, TableProProps, TableProps, TableScrollConfig, TableVariant } from './Table.cjs';
21
21
  export { Pagination, PaginationProps } from './Pagination.cjs';
22
22
  export { Calendar, CalendarProps } from './Calendar.cjs';
23
23
  export { List, ListItem, ListProps } from './List.cjs';
24
24
  export { AppShell, AppShellProps, Sidebar, SidebarItem, SidebarProps, TitleBar, TitleBarProps, WindowControls, WindowControlsProps } from './AppShell.cjs';
25
- export { Empty, EmptyProps, Skeleton, SkeletonProps, Spinner, SpinnerProps } from './Empty.cjs';
25
+ export { Empty, EmptyProps, Skeleton, SkeletonAvatarConfig, SkeletonParagraphConfig, SkeletonProps, SkeletonTitleConfig, Spinner, SpinnerProps } from './Empty.cjs';
26
26
  export { Image, ImageGrid, ImageGridProps, ImageProps } from './Image.cjs';
27
27
  export { Cascader, CascaderOption, CascaderProps } from './Cascader.cjs';
28
28
  export { BaseTypographyProps, CopyableConfig, EditableConfig, EllipsisConfig, Link, LinkProps, Paragraph, ParagraphProps, Text, TextProps, Title, TitleLevel, TitleProps, Typography, TypographyProps, TypographyType } from './Typography.cjs';
29
29
  export { ColorPicker, ColorPickerProps } from './ColorPicker.cjs';
30
+ export { Drawer, DrawerProps } from './Drawer.cjs';
30
31
  export { ACCENT_PRESETS, ACCENT_PRESETS_DARK, AccentKey, AccentPalette, CustomAccentInput, DensityMode, FONT_STACKS, FontConfig, FontKey, ResolvedThemeMode, ThemeConfig, ThemeMode, ThemeProvider, ThemeProviderProps, ThemeTokens, ThemeValue, applyTheme, normalizeAccentInput, resolveThemeMode, useTheme, useThemeOptional } from './Theme.cjs';
31
32
  import 'react';
32
33
  import 'react/jsx-runtime';
33
34
 
34
35
  /** Package version — bumped by release scripts. */
35
- declare const VERSION = "0.1.5";
36
+ declare const VERSION = "0.2.0";
36
37
 
37
38
  export { VERSION };
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ export { Button, ButtonProps, ButtonSize, ButtonVariant, IconButton, IconButtonP
3
3
  export { Input, InputProps, Textarea, TextareaProps } from './Input.js';
4
4
  export { Switch, SwitchProps } from './Switch.js';
5
5
  export { Checkbox, CheckboxProps, RadioGroup, RadioGroupProps, RadioOption } from './Checkbox.js';
6
- export { Slider, SliderProps } from './Slider.js';
6
+ export { Slider, SliderProps, SliderRangeProps, SliderRangeValue, SliderSingleProps, SliderSingleValue, SliderValue } from './Slider.js';
7
7
  export { MultiSelectProps, Select, SelectItem, SelectOption, SelectOptionGroup, SelectProps, SingleSelectProps } from './Select.js';
8
8
  export { Segmented, SegmentedProps, TabItem, Tabs, TabsProps } from './Tabs.js';
9
9
  export { Accordion, AccordionItem, AccordionProps } from './Accordion.js';
@@ -12,26 +12,27 @@ export { Badge, BadgeProps, Tag, TagProps, TagTone } from './Tag.js';
12
12
  export { Avatar, AvatarProps } from './Avatar.js';
13
13
  export { Divider, DividerProps } from './Divider.js';
14
14
  export { Progress, ProgressProps, Ring, RingProps } from './Progress.js';
15
- export { Drawer, DrawerProps, Modal, ModalProps } from './Modal.js';
15
+ export { Modal, ModalProps } from './Modal.js';
16
16
  export { ToastContainer, ToastContainerProps, ToastItem, ToastType, toast } from './Toast.js';
17
17
  export { Tooltip, TooltipProps } from './Tooltip.js';
18
18
  export { Popover, PopoverProps } from './Popover.js';
19
19
  export { Alert, AlertProps, AlertTone } from './Alert.js';
20
- export { Table, TableColumn, TablePro, TableProProps, TableProps, TableVariant } from './Table.js';
20
+ export { ExpandableConfig, PaginationConfig, RowKey, RowSelectionConfig, Table, TableColumn, TableColumnFilterItem, TablePro, TableProProps, TableProps, TableScrollConfig, TableVariant } from './Table.js';
21
21
  export { Pagination, PaginationProps } from './Pagination.js';
22
22
  export { Calendar, CalendarProps } from './Calendar.js';
23
23
  export { List, ListItem, ListProps } from './List.js';
24
24
  export { AppShell, AppShellProps, Sidebar, SidebarItem, SidebarProps, TitleBar, TitleBarProps, WindowControls, WindowControlsProps } from './AppShell.js';
25
- export { Empty, EmptyProps, Skeleton, SkeletonProps, Spinner, SpinnerProps } from './Empty.js';
25
+ export { Empty, EmptyProps, Skeleton, SkeletonAvatarConfig, SkeletonParagraphConfig, SkeletonProps, SkeletonTitleConfig, Spinner, SpinnerProps } from './Empty.js';
26
26
  export { Image, ImageGrid, ImageGridProps, ImageProps } from './Image.js';
27
27
  export { Cascader, CascaderOption, CascaderProps } from './Cascader.js';
28
28
  export { BaseTypographyProps, CopyableConfig, EditableConfig, EllipsisConfig, Link, LinkProps, Paragraph, ParagraphProps, Text, TextProps, Title, TitleLevel, TitleProps, Typography, TypographyProps, TypographyType } from './Typography.js';
29
29
  export { ColorPicker, ColorPickerProps } from './ColorPicker.js';
30
+ export { Drawer, DrawerProps } from './Drawer.js';
30
31
  export { ACCENT_PRESETS, ACCENT_PRESETS_DARK, AccentKey, AccentPalette, CustomAccentInput, DensityMode, FONT_STACKS, FontConfig, FontKey, ResolvedThemeMode, ThemeConfig, ThemeMode, ThemeProvider, ThemeProviderProps, ThemeTokens, ThemeValue, applyTheme, normalizeAccentInput, resolveThemeMode, useTheme, useThemeOptional } from './Theme.js';
31
32
  import 'react';
32
33
  import 'react/jsx-runtime';
33
34
 
34
35
  /** Package version — bumped by release scripts. */
35
- declare const VERSION = "0.1.5";
36
+ declare const VERSION = "0.2.0";
36
37
 
37
38
  export { VERSION };
package/dist/index.js CHANGED
@@ -1,37 +1,38 @@
1
- export { Table, TablePro } from './chunk-2W2AJUZW.js';
2
- export { Segmented, Tabs } from './chunk-G3UWXSNQ.js';
1
+ export { Switch } from './chunk-BBPNQ44M.js';
2
+ export { Table, TablePro } from './chunk-55NTFU7Y.js';
3
+ export { Segmented, Tabs } from './chunk-V34OPWKZ.js';
3
4
  export { ACCENT_PRESETS, ACCENT_PRESETS_DARK, FONT_STACKS, ThemeProvider, applyTheme, normalizeAccentInput, resolveThemeMode, useTheme, useThemeOptional } from './chunk-I7SSCSFH.js';
4
5
  export { ToastContainer, toast } from './chunk-QPZZNSRB.js';
5
6
  export { Tooltip } from './chunk-WNGG25QX.js';
6
7
  export { Link, Paragraph, Text, Title, Typography } from './chunk-GZGZR4FT.js';
8
+ export { Input, Textarea } from './chunk-NSUD5B22.js';
7
9
  export { List } from './chunk-4GT5TOHP.js';
8
- export { Drawer, Modal } from './chunk-Q33V7MSK.js';
9
- export { Pagination } from './chunk-XFRP2MBR.js';
10
+ export { Modal } from './chunk-LSLYY5FN.js';
11
+ export { Pagination } from './chunk-TYQ5CN2C.js';
10
12
  export { Popover } from './chunk-NE4YEBFH.js';
11
13
  export { Progress, Ring } from './chunk-VJN637MT.js';
12
- export { Select } from './chunk-OYH6A7IQ.js';
13
- export { Badge, Tag } from './chunk-3QWHDCHJ.js';
14
- export { Slider } from './chunk-7UJI437T.js';
15
- export { Switch } from './chunk-HTP6UEVR.js';
14
+ export { Select } from './chunk-ZVCMXDTP.js';
15
+ export { Badge, Tag } from './chunk-AJZKESHB.js';
16
+ export { Slider } from './chunk-437LB2V4.js';
16
17
  export { Cascader } from './chunk-OEHCA5IV.js';
17
18
  export { Checkbox, RadioGroup } from './chunk-M6CGYGEO.js';
18
19
  export { ColorPicker } from './chunk-RPD2OIIP.js';
19
20
  import './chunk-V2DIQ3RH.js';
20
- export { Divider } from './chunk-F3NHM4GX.js';
21
- export { Empty, Skeleton, Spinner } from './chunk-4AA22BOG.js';
21
+ export { Divider } from './chunk-OYGFMXAA.js';
22
+ export { Drawer } from './chunk-IWVKITPN.js';
23
+ export { Empty, Skeleton, Spinner } from './chunk-Z7P6QGMT.js';
22
24
  export { Image, ImageGrid } from './chunk-K5MHL732.js';
23
- export { Input, Textarea } from './chunk-7NM5BRUX.js';
24
- export { Accordion } from './chunk-M6OTFXZA.js';
25
- export { Alert } from './chunk-NWJW5KLN.js';
25
+ export { Accordion } from './chunk-4MR4GVTD.js';
26
+ export { Alert } from './chunk-GIVMKGZN.js';
26
27
  export { AppShell, Sidebar, TitleBar, WindowControls } from './chunk-3WAFIUDQ.js';
27
- export { Avatar } from './chunk-VXITDXLW.js';
28
- export { Button, IconButton } from './chunk-5EYI27B6.js';
29
- export { Calendar } from './chunk-FMG3ZPGK.js';
28
+ export { Avatar } from './chunk-ZWP4LSS3.js';
29
+ export { Button, IconButton } from './chunk-77BVQNAQ.js';
30
+ export { Calendar } from './chunk-H6FCIJOP.js';
30
31
  export { ICON_NAMES, Icon } from './chunk-GEYMWUW6.js';
31
- export { Card, Panel } from './chunk-OXYFB2ZI.js';
32
+ export { Card, Panel } from './chunk-4U4OY5RA.js';
32
33
 
33
34
  // src/index.ts
34
- var VERSION = "0.1.5";
35
+ var VERSION = "0.2.0";
35
36
 
36
37
  export { VERSION };
37
38
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCO,IAAM,OAAA,GAAU","file":"index.js","sourcesContent":["/* lumina — public exports */\n\nexport * from \"./components/Icon\";\nexport * from \"./components/Button\";\nexport * from \"./components/Input\";\nexport * from \"./components/Switch\";\nexport * from \"./components/Checkbox\";\nexport * from \"./components/Slider\";\nexport * from \"./components/Select\";\nexport * from \"./components/Tabs\";\nexport * from \"./components/Accordion\";\nexport * from \"./components/Card\";\nexport * from \"./components/Tag\";\nexport * from \"./components/Avatar\";\nexport * from \"./components/Divider\";\nexport * from \"./components/Progress\";\nexport * from \"./components/Modal\";\nexport * from \"./components/Toast\";\nexport * from \"./components/Tooltip\";\nexport * from \"./components/Popover\";\nexport * from \"./components/Alert\";\nexport * from \"./components/Table\";\nexport * from \"./components/Pagination\";\nexport * from \"./components/Calendar\";\nexport * from \"./components/List\";\nexport * from \"./components/AppShell\";\nexport * from \"./components/Empty\";\nexport * from \"./components/Image\";\nexport * from \"./components/Cascader\";\nexport * from \"./components/Typography\";\nexport * from \"./components/ColorPicker\";\nexport * from \"./components/Theme\";\n\n/** Package version — bumped by release scripts. */\nexport const VERSION = \"0.1.5\";\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCO,IAAM,OAAA,GAAU","file":"index.js","sourcesContent":["/* lumina — public exports */\n\nexport * from \"./components/Icon\";\nexport * from \"./components/Button\";\nexport * from \"./components/Input\";\nexport * from \"./components/Switch\";\nexport * from \"./components/Checkbox\";\nexport * from \"./components/Slider\";\nexport * from \"./components/Select\";\nexport * from \"./components/Tabs\";\nexport * from \"./components/Accordion\";\nexport * from \"./components/Card\";\nexport * from \"./components/Tag\";\nexport * from \"./components/Avatar\";\nexport * from \"./components/Divider\";\nexport * from \"./components/Progress\";\nexport * from \"./components/Modal\";\nexport * from \"./components/Toast\";\nexport * from \"./components/Tooltip\";\nexport * from \"./components/Popover\";\nexport * from \"./components/Alert\";\nexport * from \"./components/Table\";\nexport * from \"./components/Pagination\";\nexport * from \"./components/Calendar\";\nexport * from \"./components/List\";\nexport * from \"./components/AppShell\";\nexport * from \"./components/Empty\";\nexport * from \"./components/Image\";\nexport * from \"./components/Cascader\";\nexport * from \"./components/Typography\";\nexport * from \"./components/ColorPicker\";\nexport * from \"./components/Drawer\";\nexport * from \"./components/Theme\";\n\n/** Package version — bumped by release scripts. */\nexport const VERSION = \"0.2.0\";\n"]}