@fangxinyan/lumina 0.1.2 → 0.1.4

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 (73) hide show
  1. package/dist/{Cascader-TO2QMSLJ.css → Cascader-DTRTTXC2.css} +1 -4
  2. package/dist/Cascader.cjs +3 -2
  3. package/dist/Cascader.js +2 -1
  4. package/dist/ColorPicker-GP7AQYUU.css +233 -0
  5. package/dist/ColorPicker.cjs +13 -0
  6. package/dist/ColorPicker.cjs.map +1 -0
  7. package/dist/ColorPicker.d.cts +42 -0
  8. package/dist/ColorPicker.d.ts +42 -0
  9. package/dist/ColorPicker.js +4 -0
  10. package/dist/ColorPicker.js.map +1 -0
  11. package/dist/Popover-MGCMOXYP.css +10 -0
  12. package/dist/Popover.cjs +3 -2
  13. package/dist/Popover.js +2 -1
  14. package/dist/{Select-DDJJBQEL.css → Select-EDG37C37.css} +1 -4
  15. package/dist/Select.cjs +3 -2
  16. package/dist/Select.js +2 -1
  17. package/dist/{Tooltip-RT4BOVTD.css → Tooltip-ST24GY4S.css} +1 -6
  18. package/dist/Tooltip.cjs +3 -2
  19. package/dist/Tooltip.js +2 -1
  20. package/dist/Typography-NKPWTJCV.css +235 -0
  21. package/dist/Typography.cjs +29 -0
  22. package/dist/Typography.cjs.map +1 -0
  23. package/dist/Typography.d.cts +151 -0
  24. package/dist/Typography.d.ts +151 -0
  25. package/dist/Typography.js +4 -0
  26. package/dist/Typography.js.map +1 -0
  27. package/dist/{chunk-RMD6KQ4H.cjs → chunk-3UFU63X7.cjs} +29 -7
  28. package/dist/chunk-3UFU63X7.cjs.map +1 -0
  29. package/dist/chunk-5WF6M47X.cjs +510 -0
  30. package/dist/chunk-5WF6M47X.cjs.map +1 -0
  31. package/dist/chunk-GZGZR4FT.js +484 -0
  32. package/dist/chunk-GZGZR4FT.js.map +1 -0
  33. package/dist/{chunk-U6ODMPTI.cjs → chunk-HKAQILD2.cjs} +33 -19
  34. package/dist/chunk-HKAQILD2.cjs.map +1 -0
  35. package/dist/{chunk-ZMDVK2U3.cjs → chunk-KGYLUZOU.cjs} +61 -38
  36. package/dist/chunk-KGYLUZOU.cjs.map +1 -0
  37. package/dist/chunk-NE4YEBFH.js +66 -0
  38. package/dist/chunk-NE4YEBFH.js.map +1 -0
  39. package/dist/{chunk-XRZ5OKZH.js → chunk-OEHCA5IV.js} +38 -24
  40. package/dist/chunk-OEHCA5IV.js.map +1 -0
  41. package/dist/{chunk-T5AH4FCV.js → chunk-OYH6A7IQ.js} +61 -38
  42. package/dist/chunk-OYH6A7IQ.js.map +1 -0
  43. package/dist/chunk-QTGDYQOT.cjs +357 -0
  44. package/dist/chunk-QTGDYQOT.cjs.map +1 -0
  45. package/dist/chunk-RPD2OIIP.js +335 -0
  46. package/dist/chunk-RPD2OIIP.js.map +1 -0
  47. package/dist/chunk-RZ2E3XEU.cjs +131 -0
  48. package/dist/chunk-RZ2E3XEU.cjs.map +1 -0
  49. package/dist/{chunk-ZXM247EM.cjs → chunk-TWBJCFEJ.cjs} +38 -24
  50. package/dist/chunk-TWBJCFEJ.cjs.map +1 -0
  51. package/dist/chunk-V2DIQ3RH.js +109 -0
  52. package/dist/chunk-V2DIQ3RH.js.map +1 -0
  53. package/dist/chunk-WNGG25QX.js +56 -0
  54. package/dist/chunk-WNGG25QX.js.map +1 -0
  55. package/dist/index.cjs +50 -23
  56. package/dist/index.cjs.map +1 -1
  57. package/dist/index.d.cts +3 -1
  58. package/dist/index.d.ts +3 -1
  59. package/dist/index.js +10 -7
  60. package/dist/index.js.map +1 -1
  61. package/dist/styles.css +434 -20
  62. package/package.json +1 -1
  63. package/dist/Popover-WXEVUYBG.css +0 -15
  64. package/dist/chunk-OUJBCNWD.js +0 -52
  65. package/dist/chunk-OUJBCNWD.js.map +0 -1
  66. package/dist/chunk-RMD6KQ4H.cjs.map +0 -1
  67. package/dist/chunk-T5AH4FCV.js.map +0 -1
  68. package/dist/chunk-U6ODMPTI.cjs.map +0 -1
  69. package/dist/chunk-XRZ5OKZH.js.map +0 -1
  70. package/dist/chunk-Y6FVCCUE.js +0 -34
  71. package/dist/chunk-Y6FVCCUE.js.map +0 -1
  72. package/dist/chunk-ZMDVK2U3.cjs.map +0 -1
  73. package/dist/chunk-ZXM247EM.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Cascader/Cascader.tsx"],"names":["React","useFloating","jsxs","jsx","Icon","createPortal"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BO,IAAM,WAAoC,CAAC;AAAA,EAChD,OAAA;AAAA,EACA,KAAA;AAAA,EACA,eAAe,EAAC;AAAA,EAChB,QAAA;AAAA,EACA,WAAA,GAAc,oBAAA;AAAA,EACd,QAAA;AAAA,EACA,SAAA,GAAY;AACd,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAUA,0BAAmB,YAAY,CAAA;AAC/D,EAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,EAAA,MAAM,GAAA,GAAM,eAAe,KAAA,GAAS,KAAA;AACpC,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAUA,0BAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAUA,0BAAmB,GAAG,CAAA;AACpD,EAAA,MAAM,QAAA,GAAiBA,wBAAuB,IAAI,CAAA;AAElD,EAAA,MAAM,EAAE,UAAA,EAAY,GAAA,EAAK,aAAA,KAAkBC,6BAAA,CAA4B;AAAA,IACrE,IAAA;AAAA,IACA,SAAA,EAAW,QAAA;AAAA,IACX,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa;AAAA,GACd,CAAA;AAED,EAAMD,2BAAU,MAAM;AACpB,IAAA,MAAM,CAAA,GAAI,CAAC,CAAA,KAAkB;AAC3B,MAAA,MAAM,IAAI,CAAA,CAAE,MAAA;AACZ,MAAA,IAAI,GAAA,CAAI,OAAA,EAAS,QAAA,CAAS,CAAC,CAAA,EAAG;AAC9B,MAAA,IAAI,QAAA,CAAS,OAAA,EAAS,QAAA,CAAS,CAAC,CAAA,EAAG;AACnC,MAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,IACf,CAAA;AACA,IAAA,QAAA,CAAS,gBAAA,CAAiB,aAAa,CAAC,CAAA;AACxC,IAAA,OAAO,MAAM,QAAA,CAAS,mBAAA,CAAoB,WAAA,EAAa,CAAC,CAAA;AAAA,EAE1D,CAAA,EAAG,EAAE,CAAA;AAEL,EAAMA,2BAAU,MAAM;AACpB,IAAA,IAAI,IAAA,UAAc,GAAG,CAAA;AAAA,EACvB,CAAA,EAAG,CAAC,IAAA,EAAM,GAAG,CAAC,CAAA;AAEd,EAAA,MAAM,OAAA,GAA8B,CAAC,OAAO,CAAA;AAC5C,EAAA,IAAI,MAAA,GAA2B,OAAA;AAC/B,EAAA,KAAA,MAAW,KAAK,IAAA,EAAM;AACpB,IAAA,MAAM,QAAoC,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,UAAU,CAAC,CAAA;AAC1E,IAAA,IAAI,KAAA,IAAS,MAAM,QAAA,EAAU;AAC3B,MAAA,MAAA,GAAS,KAAA,CAAM,QAAA;AACf,MAAA,OAAA,CAAQ,KAAK,MAAM,CAAA;AAAA,IACrB,CAAA,MAAO;AAAA,EACT;AAEA,EAAA,MAAM,IAAA,GAAO,CAAC,KAAA,EAAe,GAAA,EAAa,WAAA,KAAyB;AACjE,IAAA,MAAM,EAAA,GAAK,CAAC,GAAG,IAAA,CAAK,MAAM,CAAA,EAAG,KAAK,GAAG,GAAG,CAAA;AACxC,IAAA,OAAA,CAAQ,EAAE,CAAA;AACV,IAAA,IAAI,CAAC,WAAA,EAAa;AAChB,MAAA,IAAI,CAAC,YAAA,EAAc,QAAA,CAAS,EAAE,CAAA;AAC9B,MAAA,QAAA,GAAW,EAAE,CAAA;AACb,MAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,IACf;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,SAA4B,EAAC;AACnC,EAAA,IAAI,IAAA,GAAyB,OAAA;AAC7B,EAAA,KAAA,MAAW,KAAK,GAAA,EAAK;AACnB,IAAA,MAAM,IAAgC,IAAA,CAAK,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,UAAU,CAAC,CAAA;AACpE,IAAA,IAAI,CAAC,CAAA,EAAG;AACR,IAAA,MAAA,CAAO,IAAA,CAAK,EAAE,KAAK,CAAA;AACnB,IAAA,IAAI,CAAC,EAAE,QAAA,EAAU;AACjB,IAAA,IAAA,GAAO,CAAA,CAAE,QAAA;AAAA,EACX;AAEA,EAAA,uBACEE,eAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,SAAA,EAAW,CAAA,SAAA,EAAY,OAAO,MAAA,GAAS,EAAE,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA,EACnE,QAAA,EAAA;AAAA,oBAAAA,eAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,WAAW,CAAA,iBAAA,EAAoB,MAAA,CAAO,MAAA,KAAW,CAAA,GAAI,gBAAgB,EAAE,CAAA,CAAA;AAAA,QACvE,QAAA;AAAA,QACA,OAAA,EAAS,MAAM,CAAC,QAAA,IAAY,QAAQ,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA;AAAA,QAE7C,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,IAAA,EAAM,GAAE,EACpB,QAAA,EAAA,MAAA,CAAO,MAAA,GAAS,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,qCAAO,MAAA,EAAA,EAAc,QAAA,EAAA;AAAA,YAAA,CAAA,GAAI,CAAA,IAAK,KAAA;AAAA,YAAO;AAAA,WAAA,EAAA,EAApB,CAAsB,CAAO,CAAA,GAAI,WAAA,EACpF,CAAA;AAAA,yCACC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,QAAA,EAAU,YAAY,KAAA,EAAO,EAAA,EAAI,KAAA,EAAO,kBAAA,IACrD,QAAA,kBAAAA,cAAA,CAACC,sBAAA,EAAA,EAAK,MAAK,UAAA,EAAW,IAAA,EAAM,IAAI,CAAA,EAClC;AAAA;AAAA;AAAA,KACF;AAAA,IACC,IAAA,IAAQ,OAAO,QAAA,KAAa,WAAA,IAC3BC,qBAAA;AAAA,sBACEF,cAAA,CAAC,SAAI,GAAA,EAAK,QAAA,EAAU,WAAU,gBAAA,EAAiB,KAAA,EAAO,eACnD,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,GAAA,EAAK,KAAA,oCAChB,KAAA,EAAA,EAAgB,SAAA,EAAU,gBACxB,QAAA,EAAA,GAAA,CAAI,GAAA,CAAI,CAAC,CAAA,KAAM;AACd,QAAA,MAAM,QAAA,GAAW,IAAA,CAAK,KAAK,CAAA,KAAM,CAAA,CAAE,KAAA;AACnC,QAAA,MAAM,cAAc,CAAC,EAAE,CAAA,CAAE,QAAA,IAAY,EAAE,QAAA,CAAS,MAAA,CAAA;AAChD,QAAA,uBACED,eAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YAEC,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAW,CAAA,cAAA,EAAiB,QAAA,GAAW,QAAA,GAAW,EAAE,CAAA,CAAA;AAAA,YACpD,UAAU,CAAA,CAAE,QAAA;AAAA,YACZ,SAAS,MAAM,IAAA,CAAK,KAAA,EAAO,CAAA,CAAE,OAAO,WAAW,CAAA;AAAA,YAE9C,QAAA,EAAA;AAAA,cAAA,CAAA,CAAE,wBAAQC,cAAA,CAACC,sBAAA,EAAA,EAAK,MAAM,CAAA,CAAE,IAAA,EAAM,MAAM,EAAA,EAAI,CAAA;AAAA,8BACzCD,cAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,CAAA,CAAE,KAAA,EAAM,CAAA;AAAA,cACd,WAAA,oBACCA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,MAAA,EACd,QAAA,kBAAAA,cAAA,CAACC,sBAAA,EAAA,EAAK,IAAA,EAAK,WAAA,EAAY,IAAA,EAAM,EAAA,EAAI,CAAA,EACnC;AAAA;AAAA,WAAA;AAAA,UAXG,CAAA,CAAE;AAAA,SAaT;AAAA,MAEJ,CAAC,CAAA,EAAA,EArBO,KAsBV,CACD,CAAA,EACH,CAAA;AAAA,MACA,QAAA,CAAS;AAAA;AACX,GAAA,EACJ,CAAA;AAEJ","file":"chunk-TWBJCFEJ.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Cascader.css\";\nimport * as React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Icon, type IconName } from \"../Icon\";\nimport { useFloating } from \"../../utils/useFloating\";\n\nexport interface CascaderOption {\n value: string;\n label: React.ReactNode;\n icon?: IconName;\n children?: CascaderOption[];\n disabled?: boolean;\n}\n\nexport interface CascaderProps {\n options: CascaderOption[];\n value?: string[];\n defaultValue?: string[];\n onChange?: (path: string[]) => void;\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n}\n\n/** `Cascader` — multi-column hierarchical selector. */\nexport const Cascader: React.FC<CascaderProps> = ({\n options,\n value,\n defaultValue = [],\n onChange,\n placeholder = \"请选择\",\n disabled,\n className = \"\",\n}) => {\n const [inner, setInner] = React.useState<string[]>(defaultValue);\n const isControlled = value !== undefined;\n const cur = isControlled ? value! : inner;\n const [open, setOpen] = React.useState(false);\n const [path, setPath] = React.useState<string[]>(cur);\n const panelRef = React.useRef<HTMLDivElement>(null);\n\n const { triggerRef: ref, floatingStyle } = useFloating<HTMLDivElement>({\n open,\n placement: \"bottom\",\n panelWidth: 520,\n panelHeight: 260,\n });\n\n React.useEffect(() => {\n const h = (e: MouseEvent) => {\n const t = e.target as Node;\n if (ref.current?.contains(t)) return;\n if (panelRef.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 }, []);\n\n React.useEffect(() => {\n if (open) setPath(cur);\n }, [open, cur]);\n\n const columns: CascaderOption[][] = [options];\n let cursor: CascaderOption[] = options;\n for (const v of path) {\n const match: CascaderOption | undefined = cursor.find((o) => o.value === v);\n if (match && match.children) {\n cursor = match.children;\n columns.push(cursor);\n } else break;\n }\n\n const pick = (depth: number, val: string, hasChildren: boolean) => {\n const np = [...path.slice(0, depth), val];\n setPath(np);\n if (!hasChildren) {\n if (!isControlled) setInner(np);\n onChange?.(np);\n setOpen(false);\n }\n };\n\n const labels: React.ReactNode[] = [];\n let list: CascaderOption[] = options;\n for (const v of cur) {\n const m: CascaderOption | undefined = list.find((o) => o.value === v);\n if (!m) break;\n labels.push(m.label);\n if (!m.children) break;\n list = m.children;\n }\n\n return (\n <div ref={ref} className={`cascader ${open ? \"open\" : \"\"} ${className}`}>\n <button\n type=\"button\"\n className={`cascader-trigger ${labels.length === 0 ? \"placeholder\" : \"\"}`}\n disabled={disabled}\n onClick={() => !disabled && setOpen((o) => !o)}\n >\n <span style={{ flex: 1 }}>\n {labels.length ? labels.map((l, i) => <span key={i}>{i > 0 && \" / \"}{l}</span>) : placeholder}\n </span>\n <span style={{ position: \"absolute\", right: 12, color: \"var(--fg-subtle)\" }}>\n <Icon name=\"chevDown\" size={14} />\n </span>\n </button>\n {open && typeof document !== \"undefined\" &&\n createPortal(\n <div ref={panelRef} className=\"cascader-panel\" style={floatingStyle}>\n {columns.map((col, depth) => (\n <div key={depth} className=\"cascader-col\">\n {col.map((o) => {\n const isActive = path[depth] === o.value;\n const hasChildren = !!(o.children && o.children.length);\n return (\n <button\n key={o.value}\n type=\"button\"\n className={`cascader-item ${isActive ? \"active\" : \"\"}`}\n disabled={o.disabled}\n onClick={() => pick(depth, o.value, hasChildren)}\n >\n {o.icon && <Icon name={o.icon} size={13} />}\n <span>{o.label}</span>\n {hasChildren && (\n <span className=\"chev\">\n <Icon name=\"chevRight\" size={12} />\n </span>\n )}\n </button>\n );\n })}\n </div>\n ))}\n </div>,\n document.body\n )}\n </div>\n );\n};\n"]}
@@ -0,0 +1,109 @@
1
+ import * as React from 'react';
2
+
3
+ // src/utils/useFloating.ts
4
+ function useFloating(opts) {
5
+ const triggerRef = React.useRef(null);
6
+ const preferred = opts.placement ?? "bottom";
7
+ const gap = opts.gap ?? 8;
8
+ const panelW = opts.panelWidth ?? 240;
9
+ const panelH = opts.panelHeight ?? 300;
10
+ const doShift = opts.shift !== false;
11
+ const doFlip = opts.flip !== false;
12
+ const matchW = !!opts.matchTriggerWidth;
13
+ const align = opts.alignCross ?? "start";
14
+ const open = opts.open;
15
+ const [state, setState] = React.useState({ top: 0, left: 0, placement: preferred });
16
+ React.useLayoutEffect(() => {
17
+ if (!open) return;
18
+ const update = () => {
19
+ const el = triggerRef.current;
20
+ if (!el) return;
21
+ const rect = el.getBoundingClientRect();
22
+ const w = matchW ? rect.width : panelW;
23
+ const h = panelH;
24
+ const vw = window.innerWidth;
25
+ const vh = window.innerHeight;
26
+ const MARGIN = 8;
27
+ const place = (p) => {
28
+ switch (p) {
29
+ case "top":
30
+ return { top: rect.top - gap - h, left: rect.left };
31
+ case "right":
32
+ return { top: rect.top, left: rect.right + gap };
33
+ case "left":
34
+ return { top: rect.top, left: rect.left - gap - w };
35
+ case "bottom":
36
+ default:
37
+ return { top: rect.bottom + gap, left: rect.left };
38
+ }
39
+ };
40
+ const fits = (p, c) => {
41
+ if (p === "bottom") return c.top + h <= vh - MARGIN;
42
+ if (p === "top") return c.top >= MARGIN;
43
+ if (p === "right") return c.left + w <= vw - MARGIN;
44
+ if (p === "left") return c.left >= MARGIN;
45
+ return true;
46
+ };
47
+ let resolved = preferred;
48
+ let coords = place(resolved);
49
+ if (doFlip && !fits(resolved, coords)) {
50
+ const opp = {
51
+ top: "bottom",
52
+ bottom: "top",
53
+ left: "right",
54
+ right: "left"
55
+ };
56
+ const alt = opp[resolved];
57
+ const altCoords = place(alt);
58
+ if (fits(alt, altCoords)) {
59
+ resolved = alt;
60
+ coords = altCoords;
61
+ }
62
+ }
63
+ if (align !== "start") {
64
+ if (resolved === "top" || resolved === "bottom") {
65
+ coords.left = align === "center" ? rect.left + rect.width / 2 : rect.right;
66
+ } else {
67
+ coords.top = align === "center" ? rect.top + rect.height / 2 : rect.bottom;
68
+ }
69
+ } else if (doShift) {
70
+ if (resolved === "bottom" || resolved === "top") {
71
+ coords.left = Math.max(MARGIN, Math.min(coords.left, vw - w - MARGIN));
72
+ } else {
73
+ coords.top = Math.max(MARGIN, Math.min(coords.top, vh - h - MARGIN));
74
+ }
75
+ }
76
+ setState({
77
+ top: coords.top,
78
+ left: coords.left,
79
+ width: matchW ? rect.width : void 0,
80
+ placement: resolved
81
+ });
82
+ };
83
+ update();
84
+ window.addEventListener("scroll", update, true);
85
+ window.addEventListener("resize", update);
86
+ return () => {
87
+ window.removeEventListener("scroll", update, true);
88
+ window.removeEventListener("resize", update);
89
+ };
90
+ }, [open, preferred, gap, panelW, panelH, doShift, doFlip, matchW]);
91
+ let transform;
92
+ if (align !== "start") {
93
+ const cross = state.placement === "top" || state.placement === "bottom" ? "X" : "Y";
94
+ const percent = align === "center" ? "-50%" : "-100%";
95
+ transform = `translate${cross}(${percent})`;
96
+ }
97
+ const floatingStyle = {
98
+ position: "fixed",
99
+ top: state.top,
100
+ left: state.left,
101
+ ...state.width != null ? { width: state.width } : {},
102
+ ...transform ? { transform } : {}
103
+ };
104
+ return { triggerRef, floatingStyle, placement: state.placement };
105
+ }
106
+
107
+ export { useFloating };
108
+ //# sourceMappingURL=chunk-V2DIQ3RH.js.map
109
+ //# sourceMappingURL=chunk-V2DIQ3RH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/useFloating.ts"],"names":[],"mappings":"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","file":"chunk-V2DIQ3RH.js","sourcesContent":["import * as React from \"react\";\n\nexport type Placement = \"top\" | \"bottom\" | \"left\" | \"right\";\n\nexport interface UseFloatingOptions {\n /** Whether the floating element is currently visible. */\n open: boolean;\n /** Preferred placement relative to the trigger. Default `\"bottom\"`. */\n placement?: Placement;\n /** Distance between trigger and panel in px. Default 8. */\n gap?: number;\n /** Estimated panel width, used for flip / shift math. Ignored when `matchTriggerWidth`. */\n panelWidth?: number;\n /** Estimated panel height, used for flip / shift math. */\n panelHeight?: number;\n /** Keep the panel inside the viewport horizontally / vertically. Default true. */\n shift?: boolean;\n /** Flip to the opposite side if the preferred side would overflow. Default true. */\n flip?: boolean;\n /** Make the panel width track the trigger width (used by Select / Cascader). */\n matchTriggerWidth?: boolean;\n /**\n * Cross-axis alignment of the panel relative to the trigger.\n * - `\"start\"` (default) — panel's leading edge lines up with trigger's leading edge.\n * - `\"center\"` — panel is centered on the trigger (uses a CSS transform).\n * - `\"end\"` — panel's trailing edge lines up with trigger's trailing edge.\n *\n * `shift` is ignored for non-`\"start\"` alignments to avoid tugging against the\n * caller's translate.\n */\n alignCross?: \"start\" | \"center\" | \"end\";\n}\n\nexport interface UseFloatingResult<T extends HTMLElement> {\n /** Attach this to the trigger element. */\n triggerRef: React.RefObject<T>;\n /** Spread this onto the panel element. Already contains `position: fixed` + coords. */\n floatingStyle: React.CSSProperties;\n /** Resolved placement after flip logic — useful for arrow direction. */\n placement: Placement;\n}\n\n/**\n * Minimal floating-element positioning hook used by Tooltip / Popover / Select /\n * Cascader / ColorPicker. Designed to be paired with `createPortal(document.body)`\n * so overflow clipping from ancestors becomes a non-issue.\n *\n * Not a general-purpose `@floating-ui` replacement — it only covers flip + shift\n * relative to the viewport, which is what Lumina's overlays need.\n */\nexport function useFloating<T extends HTMLElement = HTMLElement>(\n opts: UseFloatingOptions\n): UseFloatingResult<T> {\n const triggerRef = React.useRef<T>(null);\n const preferred = opts.placement ?? \"bottom\";\n const gap = opts.gap ?? 8;\n const panelW = opts.panelWidth ?? 240;\n const panelH = opts.panelHeight ?? 300;\n const doShift = opts.shift !== false;\n const doFlip = opts.flip !== false;\n const matchW = !!opts.matchTriggerWidth;\n const align = opts.alignCross ?? \"start\";\n const open = opts.open;\n\n const [state, setState] = React.useState<{\n top: number;\n left: number;\n width?: number;\n placement: Placement;\n }>({ top: 0, left: 0, placement: preferred });\n\n React.useLayoutEffect(() => {\n if (!open) return;\n const update = () => {\n const el = triggerRef.current;\n if (!el) return;\n const rect = el.getBoundingClientRect();\n const w = matchW ? rect.width : panelW;\n const h = panelH;\n const vw = window.innerWidth;\n const vh = window.innerHeight;\n const MARGIN = 8;\n\n const place = (p: Placement) => {\n switch (p) {\n case \"top\":\n return { top: rect.top - gap - h, left: rect.left };\n case \"right\":\n return { top: rect.top, left: rect.right + gap };\n case \"left\":\n return { top: rect.top, left: rect.left - gap - w };\n case \"bottom\":\n default:\n return { top: rect.bottom + gap, left: rect.left };\n }\n };\n\n const fits = (p: Placement, c: { top: number; left: number }) => {\n if (p === \"bottom\") return c.top + h <= vh - MARGIN;\n if (p === \"top\") return c.top >= MARGIN;\n if (p === \"right\") return c.left + w <= vw - MARGIN;\n if (p === \"left\") return c.left >= MARGIN;\n return true;\n };\n\n let resolved: Placement = preferred;\n let coords = place(resolved);\n\n if (doFlip && !fits(resolved, coords)) {\n const opp: Record<Placement, Placement> = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\",\n };\n const alt = opp[resolved];\n const altCoords = place(alt);\n if (fits(alt, altCoords)) {\n resolved = alt;\n coords = altCoords;\n }\n }\n\n // Cross-axis alignment replaces the cross coordinate with the trigger\n // midpoint / far edge; the paired CSS transform then visually aligns.\n if (align !== \"start\") {\n if (resolved === \"top\" || resolved === \"bottom\") {\n coords.left =\n align === \"center\" ? rect.left + rect.width / 2 : rect.right;\n } else {\n coords.top =\n align === \"center\" ? rect.top + rect.height / 2 : rect.bottom;\n }\n } else if (doShift) {\n if (resolved === \"bottom\" || resolved === \"top\") {\n coords.left = Math.max(MARGIN, Math.min(coords.left, vw - w - MARGIN));\n } else {\n coords.top = Math.max(MARGIN, Math.min(coords.top, vh - h - MARGIN));\n }\n }\n\n setState({\n top: coords.top,\n left: coords.left,\n width: matchW ? rect.width : undefined,\n placement: resolved,\n });\n };\n\n update();\n window.addEventListener(\"scroll\", update, true);\n window.addEventListener(\"resize\", update);\n return () => {\n window.removeEventListener(\"scroll\", update, true);\n window.removeEventListener(\"resize\", update);\n };\n }, [open, preferred, gap, panelW, panelH, doShift, doFlip, matchW]);\n\n let transform: string | undefined;\n if (align !== \"start\") {\n const cross = state.placement === \"top\" || state.placement === \"bottom\" ? \"X\" : \"Y\";\n const percent = align === \"center\" ? \"-50%\" : \"-100%\";\n transform = `translate${cross}(${percent})`;\n }\n\n const floatingStyle: React.CSSProperties = {\n position: \"fixed\",\n top: state.top,\n left: state.left,\n ...(state.width != null ? { width: state.width } : {}),\n ...(transform ? { transform } : {}),\n };\n\n return { triggerRef, floatingStyle, placement: state.placement };\n}\n"]}
@@ -0,0 +1,56 @@
1
+ import { useFloating } from './chunk-V2DIQ3RH.js';
2
+ import './tokens-HWQ7KWPG.css';
3
+ import './shared-NJHRNLRH.css';
4
+ import './Tooltip-ST24GY4S.css';
5
+ import * as React from 'react';
6
+ import { createPortal } from 'react-dom';
7
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
8
+
9
+ var Tooltip = ({
10
+ content,
11
+ placement = "top",
12
+ children,
13
+ delay = 250,
14
+ disabled
15
+ }) => {
16
+ const [show, setShow] = React.useState(false);
17
+ const t = React.useRef();
18
+ const open = () => {
19
+ if (disabled) return;
20
+ window.clearTimeout(t.current);
21
+ t.current = window.setTimeout(() => setShow(true), delay);
22
+ };
23
+ const close = () => {
24
+ window.clearTimeout(t.current);
25
+ setShow(false);
26
+ };
27
+ const { triggerRef, floatingStyle, placement: resolved } = useFloating({
28
+ open: show,
29
+ placement,
30
+ panelWidth: 160,
31
+ panelHeight: 32,
32
+ alignCross: "center"
33
+ });
34
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
35
+ /* @__PURE__ */ jsx(
36
+ "span",
37
+ {
38
+ ref: triggerRef,
39
+ className: "tip-anchor",
40
+ onMouseEnter: open,
41
+ onMouseLeave: close,
42
+ onFocus: open,
43
+ onBlur: close,
44
+ children
45
+ }
46
+ ),
47
+ show && typeof document !== "undefined" && createPortal(
48
+ /* @__PURE__ */ jsx("span", { className: `tip ${resolved}`, style: floatingStyle, children: content }),
49
+ document.body
50
+ )
51
+ ] });
52
+ };
53
+
54
+ export { Tooltip };
55
+ //# sourceMappingURL=chunk-WNGG25QX.js.map
56
+ //# sourceMappingURL=chunk-WNGG25QX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Tooltip/Tooltip.tsx"],"names":[],"mappings":";;;;;;;;AAgBO,IAAM,UAAkC,CAAC;AAAA,EAC9C,OAAA;AAAA,EACA,SAAA,GAAY,KAAA;AAAA,EACZ,QAAA;AAAA,EACA,KAAA,GAAQ,GAAA;AAAA,EACR;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAU,eAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,IAAU,KAAA,CAAA,MAAA,EAA2B;AAE3C,EAAA,MAAM,OAAO,MAAM;AACjB,IAAA,IAAI,QAAA,EAAU;AACd,IAAA,MAAA,CAAO,YAAA,CAAa,EAAE,OAAO,CAAA;AAC7B,IAAA,CAAA,CAAE,UAAU,MAAA,CAAO,UAAA,CAAW,MAAM,OAAA,CAAQ,IAAI,GAAG,KAAK,CAAA;AAAA,EAC1D,CAAA;AACA,EAAA,MAAM,QAAQ,MAAM;AAClB,IAAA,MAAA,CAAO,YAAA,CAAa,EAAE,OAAO,CAAA;AAC7B,IAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,EACf,CAAA;AAEA,EAAA,MAAM,EAAE,UAAA,EAAY,aAAA,EAAe,SAAA,EAAW,QAAA,KAAa,WAAA,CAA6B;AAAA,IACtF,IAAA,EAAM,IAAA;AAAA,IACN,SAAA;AAAA,IACA,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,EAAA;AAAA,IACb,UAAA,EAAY;AAAA,GACb,CAAA;AAED,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,UAAA;AAAA,QACL,SAAA,EAAU,YAAA;AAAA,QACV,YAAA,EAAc,IAAA;AAAA,QACd,YAAA,EAAc,KAAA;AAAA,QACd,OAAA,EAAS,IAAA;AAAA,QACT,MAAA,EAAQ,KAAA;AAAA,QAEP;AAAA;AAAA,KACH;AAAA,IACC,IAAA,IAAQ,OAAO,QAAA,KAAa,WAAA,IAC3B,YAAA;AAAA,sBACE,GAAA,CAAC,UAAK,SAAA,EAAW,CAAA,IAAA,EAAO,QAAQ,CAAA,CAAA,EAAI,KAAA,EAAO,eACxC,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,MACA,QAAA,CAAS;AAAA;AACX,GAAA,EACJ,CAAA;AAEJ","file":"chunk-WNGG25QX.js","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Tooltip.css\";\nimport * as React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useFloating } from \"../../utils/useFloating\";\n\nexport interface TooltipProps {\n content: React.ReactNode;\n placement?: \"top\" | \"bottom\" | \"left\" | \"right\";\n children: React.ReactElement;\n delay?: number;\n disabled?: boolean;\n}\n\n/** `Tooltip` — hover/focus text bubble. */\nexport const Tooltip: React.FC<TooltipProps> = ({\n content,\n placement = \"top\",\n children,\n delay = 250,\n disabled,\n}) => {\n const [show, setShow] = React.useState(false);\n const t = React.useRef<number | undefined>();\n\n const open = () => {\n if (disabled) return;\n window.clearTimeout(t.current);\n t.current = window.setTimeout(() => setShow(true), delay);\n };\n const close = () => {\n window.clearTimeout(t.current);\n setShow(false);\n };\n\n const { triggerRef, floatingStyle, placement: resolved } = useFloating<HTMLSpanElement>({\n open: show,\n placement,\n panelWidth: 160,\n panelHeight: 32,\n alignCross: \"center\",\n });\n\n return (\n <>\n <span\n ref={triggerRef}\n className=\"tip-anchor\"\n onMouseEnter={open}\n onMouseLeave={close}\n onFocus={open}\n onBlur={close}\n >\n {children}\n </span>\n {show && typeof document !== \"undefined\" &&\n createPortal(\n <span className={`tip ${resolved}`} style={floatingStyle}>\n {content}\n </span>,\n document.body\n )}\n </>\n );\n};\n"]}
package/dist/index.cjs CHANGED
@@ -1,25 +1,28 @@
1
1
  'use strict';
2
2
 
3
+ var chunk2VA2HSL4_cjs = require('./chunk-2VA2HSL4.cjs');
3
4
  var chunkITGCHU3Y_cjs = require('./chunk-ITGCHU3Y.cjs');
4
5
  var chunk7U6I44RV_cjs = require('./chunk-7U6I44RV.cjs');
5
6
  var chunkIKI5CS4L_cjs = require('./chunk-IKI5CS4L.cjs');
6
- var chunkRMD6KQ4H_cjs = require('./chunk-RMD6KQ4H.cjs');
7
+ var chunk3UFU63X7_cjs = require('./chunk-3UFU63X7.cjs');
8
+ var chunk5WF6M47X_cjs = require('./chunk-5WF6M47X.cjs');
9
+ var chunk7H453VPW_cjs = require('./chunk-7H453VPW.cjs');
7
10
  var chunkKF4MCHZL_cjs = require('./chunk-KF4MCHZL.cjs');
8
11
  var chunkIGHLSNXT_cjs = require('./chunk-IGHLSNXT.cjs');
9
- var chunkU6ODMPTI_cjs = require('./chunk-U6ODMPTI.cjs');
12
+ var chunkHKAQILD2_cjs = require('./chunk-HKAQILD2.cjs');
10
13
  var chunkNXOAYNG2_cjs = require('./chunk-NXOAYNG2.cjs');
11
- var chunkZMDVK2U3_cjs = require('./chunk-ZMDVK2U3.cjs');
14
+ var chunkKGYLUZOU_cjs = require('./chunk-KGYLUZOU.cjs');
12
15
  var chunkVMHNKD3N_cjs = require('./chunk-VMHNKD3N.cjs');
13
16
  var chunkV2ZUOEXM_cjs = require('./chunk-V2ZUOEXM.cjs');
14
17
  var chunkALFDP5WX_cjs = require('./chunk-ALFDP5WX.cjs');
15
- var chunk2VA2HSL4_cjs = require('./chunk-2VA2HSL4.cjs');
16
- var chunkZXM247EM_cjs = require('./chunk-ZXM247EM.cjs');
18
+ var chunkTWBJCFEJ_cjs = require('./chunk-TWBJCFEJ.cjs');
17
19
  var chunkC5TGQ7CV_cjs = require('./chunk-C5TGQ7CV.cjs');
20
+ var chunkQTGDYQOT_cjs = require('./chunk-QTGDYQOT.cjs');
21
+ require('./chunk-RZ2E3XEU.cjs');
18
22
  var chunkNZPJ7BUB_cjs = require('./chunk-NZPJ7BUB.cjs');
19
23
  var chunkK67KIKX4_cjs = require('./chunk-K67KIKX4.cjs');
20
24
  var chunkQESLHLTG_cjs = require('./chunk-QESLHLTG.cjs');
21
25
  var chunkQT7SJITQ_cjs = require('./chunk-QT7SJITQ.cjs');
22
- var chunk7H453VPW_cjs = require('./chunk-7H453VPW.cjs');
23
26
  var chunk77NP67ML_cjs = require('./chunk-77NP67ML.cjs');
24
27
  var chunkJNFCTYJT_cjs = require('./chunk-JNFCTYJT.cjs');
25
28
  var chunkFI7QO3I5_cjs = require('./chunk-FI7QO3I5.cjs');
@@ -30,8 +33,16 @@ var chunkYVO7XO4W_cjs = require('./chunk-YVO7XO4W.cjs');
30
33
  var chunkI2ERCHFV_cjs = require('./chunk-I2ERCHFV.cjs');
31
34
 
32
35
  // src/index.ts
33
- var VERSION = "0.1.2";
36
+ var VERSION = "0.1.4";
34
37
 
38
+ Object.defineProperty(exports, "Table", {
39
+ enumerable: true,
40
+ get: function () { return chunk2VA2HSL4_cjs.Table; }
41
+ });
42
+ Object.defineProperty(exports, "TablePro", {
43
+ enumerable: true,
44
+ get: function () { return chunk2VA2HSL4_cjs.TablePro; }
45
+ });
35
46
  Object.defineProperty(exports, "Segmented", {
36
47
  enumerable: true,
37
48
  get: function () { return chunkITGCHU3Y_cjs.Segmented; }
@@ -86,7 +97,31 @@ Object.defineProperty(exports, "toast", {
86
97
  });
87
98
  Object.defineProperty(exports, "Tooltip", {
88
99
  enumerable: true,
89
- get: function () { return chunkRMD6KQ4H_cjs.Tooltip; }
100
+ get: function () { return chunk3UFU63X7_cjs.Tooltip; }
101
+ });
102
+ Object.defineProperty(exports, "Link", {
103
+ enumerable: true,
104
+ get: function () { return chunk5WF6M47X_cjs.Link; }
105
+ });
106
+ Object.defineProperty(exports, "Paragraph", {
107
+ enumerable: true,
108
+ get: function () { return chunk5WF6M47X_cjs.Paragraph; }
109
+ });
110
+ Object.defineProperty(exports, "Text", {
111
+ enumerable: true,
112
+ get: function () { return chunk5WF6M47X_cjs.Text; }
113
+ });
114
+ Object.defineProperty(exports, "Title", {
115
+ enumerable: true,
116
+ get: function () { return chunk5WF6M47X_cjs.Title; }
117
+ });
118
+ Object.defineProperty(exports, "Typography", {
119
+ enumerable: true,
120
+ get: function () { return chunk5WF6M47X_cjs.Typography; }
121
+ });
122
+ Object.defineProperty(exports, "List", {
123
+ enumerable: true,
124
+ get: function () { return chunk7H453VPW_cjs.List; }
90
125
  });
91
126
  Object.defineProperty(exports, "Drawer", {
92
127
  enumerable: true,
@@ -102,7 +137,7 @@ Object.defineProperty(exports, "Pagination", {
102
137
  });
103
138
  Object.defineProperty(exports, "Popover", {
104
139
  enumerable: true,
105
- get: function () { return chunkU6ODMPTI_cjs.Popover; }
140
+ get: function () { return chunkHKAQILD2_cjs.Popover; }
106
141
  });
107
142
  Object.defineProperty(exports, "Progress", {
108
143
  enumerable: true,
@@ -114,7 +149,7 @@ Object.defineProperty(exports, "Ring", {
114
149
  });
115
150
  Object.defineProperty(exports, "Select", {
116
151
  enumerable: true,
117
- get: function () { return chunkZMDVK2U3_cjs.Select; }
152
+ get: function () { return chunkKGYLUZOU_cjs.Select; }
118
153
  });
119
154
  Object.defineProperty(exports, "Badge", {
120
155
  enumerable: true,
@@ -132,17 +167,9 @@ Object.defineProperty(exports, "Switch", {
132
167
  enumerable: true,
133
168
  get: function () { return chunkALFDP5WX_cjs.Switch; }
134
169
  });
135
- Object.defineProperty(exports, "Table", {
136
- enumerable: true,
137
- get: function () { return chunk2VA2HSL4_cjs.Table; }
138
- });
139
- Object.defineProperty(exports, "TablePro", {
140
- enumerable: true,
141
- get: function () { return chunk2VA2HSL4_cjs.TablePro; }
142
- });
143
170
  Object.defineProperty(exports, "Cascader", {
144
171
  enumerable: true,
145
- get: function () { return chunkZXM247EM_cjs.Cascader; }
172
+ get: function () { return chunkTWBJCFEJ_cjs.Cascader; }
146
173
  });
147
174
  Object.defineProperty(exports, "Checkbox", {
148
175
  enumerable: true,
@@ -152,6 +179,10 @@ Object.defineProperty(exports, "RadioGroup", {
152
179
  enumerable: true,
153
180
  get: function () { return chunkC5TGQ7CV_cjs.RadioGroup; }
154
181
  });
182
+ Object.defineProperty(exports, "ColorPicker", {
183
+ enumerable: true,
184
+ get: function () { return chunkQTGDYQOT_cjs.ColorPicker; }
185
+ });
155
186
  Object.defineProperty(exports, "Divider", {
156
187
  enumerable: true,
157
188
  get: function () { return chunkNZPJ7BUB_cjs.Divider; }
@@ -184,10 +215,6 @@ Object.defineProperty(exports, "Textarea", {
184
215
  enumerable: true,
185
216
  get: function () { return chunkQT7SJITQ_cjs.Textarea; }
186
217
  });
187
- Object.defineProperty(exports, "List", {
188
- enumerable: true,
189
- get: function () { return chunk7H453VPW_cjs.List; }
190
- });
191
218
  Object.defineProperty(exports, "Accordion", {
192
219
  enumerable: true,
193
220
  get: function () { return chunk77NP67ML_cjs.Accordion; }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCO,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/Theme\";\n\n/** Package version — bumped by release scripts. */\nexport const VERSION = \"0.1.2\";\n"]}
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.4\";\n"]}
package/dist/index.d.cts CHANGED
@@ -25,11 +25,13 @@ export { AppShell, AppShellProps, Sidebar, SidebarItem, SidebarProps, TitleBar,
25
25
  export { Empty, EmptyProps, Skeleton, SkeletonProps, 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
+ export { BaseTypographyProps, CopyableConfig, EditableConfig, EllipsisConfig, Link, LinkProps, Paragraph, ParagraphProps, Text, TextProps, Title, TitleLevel, TitleProps, Typography, TypographyProps, TypographyType } from './Typography.cjs';
29
+ export { ColorPicker, ColorPickerProps } from './ColorPicker.cjs';
28
30
  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';
29
31
  import 'react';
30
32
  import 'react/jsx-runtime';
31
33
 
32
34
  /** Package version — bumped by release scripts. */
33
- declare const VERSION = "0.1.2";
35
+ declare const VERSION = "0.1.4";
34
36
 
35
37
  export { VERSION };
package/dist/index.d.ts CHANGED
@@ -25,11 +25,13 @@ export { AppShell, AppShellProps, Sidebar, SidebarItem, SidebarProps, TitleBar,
25
25
  export { Empty, EmptyProps, Skeleton, SkeletonProps, 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
+ export { BaseTypographyProps, CopyableConfig, EditableConfig, EllipsisConfig, Link, LinkProps, Paragraph, ParagraphProps, Text, TextProps, Title, TitleLevel, TitleProps, Typography, TypographyProps, TypographyType } from './Typography.js';
29
+ export { ColorPicker, ColorPickerProps } from './ColorPicker.js';
28
30
  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';
29
31
  import 'react';
30
32
  import 'react/jsx-runtime';
31
33
 
32
34
  /** Package version — bumped by release scripts. */
33
- declare const VERSION = "0.1.2";
35
+ declare const VERSION = "0.1.4";
34
36
 
35
37
  export { VERSION };
package/dist/index.js CHANGED
@@ -1,23 +1,26 @@
1
+ export { Table, TablePro } from './chunk-2W2AJUZW.js';
1
2
  export { Segmented, Tabs } from './chunk-G3UWXSNQ.js';
2
3
  export { ACCENT_PRESETS, ACCENT_PRESETS_DARK, FONT_STACKS, ThemeProvider, applyTheme, normalizeAccentInput, resolveThemeMode, useTheme, useThemeOptional } from './chunk-I7SSCSFH.js';
3
4
  export { ToastContainer, toast } from './chunk-QPZZNSRB.js';
4
- export { Tooltip } from './chunk-Y6FVCCUE.js';
5
+ export { Tooltip } from './chunk-WNGG25QX.js';
6
+ export { Link, Paragraph, Text, Title, Typography } from './chunk-GZGZR4FT.js';
7
+ export { List } from './chunk-4GT5TOHP.js';
5
8
  export { Drawer, Modal } from './chunk-Q33V7MSK.js';
6
9
  export { Pagination } from './chunk-XFRP2MBR.js';
7
- export { Popover } from './chunk-OUJBCNWD.js';
10
+ export { Popover } from './chunk-NE4YEBFH.js';
8
11
  export { Progress, Ring } from './chunk-VJN637MT.js';
9
- export { Select } from './chunk-T5AH4FCV.js';
12
+ export { Select } from './chunk-OYH6A7IQ.js';
10
13
  export { Badge, Tag } from './chunk-3QWHDCHJ.js';
11
14
  export { Slider } from './chunk-6YVW3VYL.js';
12
15
  export { Switch } from './chunk-HTP6UEVR.js';
13
- export { Table, TablePro } from './chunk-2W2AJUZW.js';
14
- export { Cascader } from './chunk-XRZ5OKZH.js';
16
+ export { Cascader } from './chunk-OEHCA5IV.js';
15
17
  export { Checkbox, RadioGroup } from './chunk-M6CGYGEO.js';
18
+ export { ColorPicker } from './chunk-RPD2OIIP.js';
19
+ import './chunk-V2DIQ3RH.js';
16
20
  export { Divider } from './chunk-F3NHM4GX.js';
17
21
  export { Empty, Skeleton, Spinner } from './chunk-4AA22BOG.js';
18
22
  export { Image, ImageGrid } from './chunk-K5MHL732.js';
19
23
  export { Input, Textarea } from './chunk-7NM5BRUX.js';
20
- export { List } from './chunk-4GT5TOHP.js';
21
24
  export { Accordion } from './chunk-M6OTFXZA.js';
22
25
  export { Alert } from './chunk-NWJW5KLN.js';
23
26
  export { AppShell, Sidebar, TitleBar, WindowControls } from './chunk-3WAFIUDQ.js';
@@ -28,7 +31,7 @@ export { ICON_NAMES, Icon } from './chunk-GEYMWUW6.js';
28
31
  export { Card, Panel } from './chunk-OXYFB2ZI.js';
29
32
 
30
33
  // src/index.ts
31
- var VERSION = "0.1.2";
34
+ var VERSION = "0.1.4";
32
35
 
33
36
  export { VERSION };
34
37
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCO,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/Theme\";\n\n/** Package version — bumped by release scripts. */\nexport const VERSION = \"0.1.2\";\n"]}
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.4\";\n"]}