@fangxinyan/lumina 0.4.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Accordion.cjs +3 -3
- package/dist/Accordion.js +2 -2
- package/dist/Alert.cjs +3 -3
- package/dist/Alert.js +2 -2
- package/dist/AutoComplete.cjs +5 -5
- package/dist/AutoComplete.js +4 -4
- package/dist/Button.cjs +4 -4
- package/dist/Button.js +2 -2
- package/dist/Calendar.cjs +3 -3
- package/dist/Calendar.js +2 -2
- package/dist/Cascader.cjs +4 -4
- package/dist/Cascader.js +3 -3
- package/dist/Checkbox.cjs +4 -4
- package/dist/Checkbox.js +2 -2
- package/dist/ColorPicker.cjs +3 -3
- package/dist/ColorPicker.js +2 -2
- package/dist/CommandPalette.cjs +4 -4
- package/dist/CommandPalette.js +3 -3
- package/dist/Drawer.cjs +3 -3
- package/dist/Drawer.js +2 -2
- package/dist/Icon.cjs +3 -3
- package/dist/Icon.d.cts +1 -1
- package/dist/Icon.d.ts +1 -1
- package/dist/Icon.js +1 -1
- package/dist/Image.cjs +4 -4
- package/dist/Image.js +2 -2
- package/dist/Input.cjs +4 -4
- package/dist/Input.js +2 -2
- package/dist/InputNumber.cjs +4 -4
- package/dist/InputNumber.js +3 -3
- package/dist/Modal.cjs +4 -4
- package/dist/Modal.js +3 -3
- package/dist/Pagination.cjs +6 -6
- package/dist/Pagination.js +5 -5
- package/dist/Popover-DVGQGWX6.css +103 -0
- package/dist/Popover.cjs +3 -3
- package/dist/Popover.d.cts +23 -1
- package/dist/Popover.d.ts +23 -1
- package/dist/Popover.js +2 -2
- package/dist/Select.cjs +5 -5
- package/dist/Select.js +4 -4
- package/dist/{Slider-X4PVA65R.css → Slider-3JKA5EW6.css} +44 -25
- package/dist/Slider.cjs +2 -2
- package/dist/Slider.d.cts +8 -5
- package/dist/Slider.d.ts +8 -5
- package/dist/Slider.js +1 -1
- package/dist/Table.cjs +9 -9
- package/dist/Table.js +7 -7
- package/dist/Tag.cjs +4 -4
- package/dist/Tag.js +2 -2
- package/dist/Timeline-RHZAZKZ7.css +136 -0
- package/dist/Timeline.cjs +13 -0
- package/dist/Timeline.cjs.map +1 -0
- package/dist/Timeline.d.cts +38 -0
- package/dist/Timeline.d.ts +38 -0
- package/dist/Timeline.js +4 -0
- package/dist/Timeline.js.map +1 -0
- package/dist/{Toast-6PVSAXQ5.css → Toast-YSACW3EM.css} +2 -2
- package/dist/Toast.cjs +4 -4
- package/dist/Toast.js +2 -2
- package/dist/{Tooltip-ST24GY4S.css → Tooltip-DMKUPC24.css} +1 -0
- package/dist/Tooltip.cjs +3 -3
- package/dist/Tooltip.js +2 -2
- package/dist/Typography.cjs +7 -7
- package/dist/Typography.js +2 -2
- package/dist/{chunk-BCPAY65C.cjs → chunk-2D5VCIJZ.cjs} +7 -7
- package/dist/{chunk-BCPAY65C.cjs.map → chunk-2D5VCIJZ.cjs.map} +1 -1
- package/dist/{chunk-LLNEDEST.cjs → chunk-2OBQOEFD.cjs} +4 -4
- package/dist/{chunk-LLNEDEST.cjs.map → chunk-2OBQOEFD.cjs.map} +1 -1
- package/dist/chunk-2TZ2R7L2.js +235 -0
- package/dist/chunk-2TZ2R7L2.js.map +1 -0
- package/dist/{chunk-N73JGXYZ.cjs → chunk-3ES5QPAF.cjs} +4 -4
- package/dist/{chunk-N73JGXYZ.cjs.map → chunk-3ES5QPAF.cjs.map} +1 -1
- package/dist/{chunk-YCHUHMNP.cjs → chunk-3KQKEE5O.cjs} +5 -4
- package/dist/chunk-3KQKEE5O.cjs.map +1 -0
- package/dist/{chunk-RZ2E3XEU.cjs → chunk-3XIDJEYR.cjs} +21 -6
- package/dist/chunk-3XIDJEYR.cjs.map +1 -0
- package/dist/{chunk-IOWREUEP.js → chunk-3YYOYDKI.js} +4 -4
- package/dist/{chunk-IOWREUEP.js.map → chunk-3YYOYDKI.js.map} +1 -1
- package/dist/{chunk-PKXXR76Q.js → chunk-4ADDAZK3.js} +3 -3
- package/dist/{chunk-PKXXR76Q.js.map → chunk-4ADDAZK3.js.map} +1 -1
- package/dist/{chunk-TZLM5GF4.js → chunk-5SJJI3HL.js} +4 -4
- package/dist/{chunk-TZLM5GF4.js.map → chunk-5SJJI3HL.js.map} +1 -1
- package/dist/{chunk-2ENTRT7R.cjs → chunk-AJEF2ZB7.cjs} +16 -6
- package/dist/chunk-AJEF2ZB7.cjs.map +1 -0
- package/dist/{chunk-V2DIQ3RH.js → chunk-ANAQER3T.js} +21 -6
- package/dist/chunk-ANAQER3T.js.map +1 -0
- package/dist/{chunk-FXQGPHK2.js → chunk-AZRJZM7W.js} +3 -3
- package/dist/{chunk-FXQGPHK2.js.map → chunk-AZRJZM7W.js.map} +1 -1
- package/dist/{chunk-3BZ47QNV.cjs → chunk-BIXW4ZYW.cjs} +7 -7
- package/dist/{chunk-3BZ47QNV.cjs.map → chunk-BIXW4ZYW.cjs.map} +1 -1
- package/dist/{chunk-IJA26LRY.cjs → chunk-BPDWBY6Y.cjs} +4 -4
- package/dist/{chunk-IJA26LRY.cjs.map → chunk-BPDWBY6Y.cjs.map} +1 -1
- package/dist/{chunk-77TZHI76.cjs → chunk-D26YHP2Y.cjs} +7 -7
- package/dist/{chunk-77TZHI76.cjs.map → chunk-D26YHP2Y.cjs.map} +1 -1
- package/dist/{chunk-T4PI2ZX7.cjs → chunk-D3GZSL2B.cjs} +16 -17
- package/dist/chunk-D3GZSL2B.cjs.map +1 -0
- package/dist/{chunk-VQBZKRIB.cjs → chunk-DF5K2BZ2.cjs} +6 -6
- package/dist/{chunk-VQBZKRIB.cjs.map → chunk-DF5K2BZ2.cjs.map} +1 -1
- package/dist/{chunk-7M7NAMR5.js → chunk-DLGFIRVW.js} +14 -4
- package/dist/chunk-DLGFIRVW.js.map +1 -0
- package/dist/{chunk-6Z24VO3K.js → chunk-E7UQSFKF.js} +3 -3
- package/dist/{chunk-6Z24VO3K.js.map → chunk-E7UQSFKF.js.map} +1 -1
- package/dist/{chunk-KW7Z4IQC.js → chunk-FLPHVK45.js} +3 -3
- package/dist/{chunk-KW7Z4IQC.js.map → chunk-FLPHVK45.js.map} +1 -1
- package/dist/{chunk-WUOFJPZ4.js → chunk-GB5NAXBP.js} +3 -3
- package/dist/{chunk-WUOFJPZ4.js.map → chunk-GB5NAXBP.js.map} +1 -1
- package/dist/{chunk-SMHXSEBD.cjs → chunk-GT45MQAK.cjs} +7 -7
- package/dist/{chunk-SMHXSEBD.cjs.map → chunk-GT45MQAK.cjs.map} +1 -1
- package/dist/{chunk-TZXEZFCI.cjs → chunk-H2QTLV5T.cjs} +5 -5
- package/dist/{chunk-TZXEZFCI.cjs.map → chunk-H2QTLV5T.cjs.map} +1 -1
- package/dist/{chunk-FFZLSY2N.js → chunk-HHPYY4LH.js} +4 -4
- package/dist/{chunk-FFZLSY2N.js.map → chunk-HHPYY4LH.js.map} +1 -1
- package/dist/{chunk-XYVJ3FBQ.cjs → chunk-I7UJA6RM.cjs} +5 -5
- package/dist/{chunk-XYVJ3FBQ.cjs.map → chunk-I7UJA6RM.cjs.map} +1 -1
- package/dist/{chunk-YFBHVTKN.cjs → chunk-IJIQ4H6C.cjs} +7 -7
- package/dist/{chunk-YFBHVTKN.cjs.map → chunk-IJIQ4H6C.cjs.map} +1 -1
- package/dist/{chunk-LXNR6TQK.js → chunk-ILVNMES2.js} +3 -3
- package/dist/{chunk-LXNR6TQK.js.map → chunk-ILVNMES2.js.map} +1 -1
- package/dist/{chunk-JXHMJUVI.js → chunk-JELHUUM5.js} +3 -3
- package/dist/{chunk-JXHMJUVI.js.map → chunk-JELHUUM5.js.map} +1 -1
- package/dist/{chunk-CTYW42GG.js → chunk-JQZFOIX6.js} +6 -6
- package/dist/{chunk-CTYW42GG.js.map → chunk-JQZFOIX6.js.map} +1 -1
- package/dist/{chunk-I7WLFADD.js → chunk-LWN2PXW7.js} +3 -3
- package/dist/{chunk-I7WLFADD.js.map → chunk-LWN2PXW7.js.map} +1 -1
- package/dist/{chunk-I2HHC6QW.js → chunk-N5W6XJI2.js} +3 -3
- package/dist/{chunk-I2HHC6QW.js.map → chunk-N5W6XJI2.js.map} +1 -1
- package/dist/chunk-N6ZLZUBF.cjs +257 -0
- package/dist/chunk-N6ZLZUBF.cjs.map +1 -0
- package/dist/chunk-P2AV5BD7.cjs +137 -0
- package/dist/chunk-P2AV5BD7.cjs.map +1 -0
- package/dist/{chunk-ZFJHUOFU.js → chunk-P4XPESR2.js} +4 -4
- package/dist/{chunk-ZFJHUOFU.js.map → chunk-P4XPESR2.js.map} +1 -1
- package/dist/{chunk-AESLEYST.js → chunk-RJNGXR5Y.js} +4 -4
- package/dist/{chunk-AESLEYST.js.map → chunk-RJNGXR5Y.js.map} +1 -1
- package/dist/chunk-S3NIRNWM.js +86 -0
- package/dist/chunk-S3NIRNWM.js.map +1 -0
- package/dist/{chunk-HJIKU6MF.cjs → chunk-S7RFIMA3.cjs} +4 -4
- package/dist/{chunk-HJIKU6MF.cjs.map → chunk-S7RFIMA3.cjs.map} +1 -1
- package/dist/chunk-TAYFI4RG.cjs +108 -0
- package/dist/chunk-TAYFI4RG.cjs.map +1 -0
- package/dist/{chunk-OZVPJWXO.cjs → chunk-TCPTBLDV.cjs} +5 -5
- package/dist/{chunk-OZVPJWXO.cjs.map → chunk-TCPTBLDV.cjs.map} +1 -1
- package/dist/{chunk-E62JFAHW.js → chunk-TGUDT3GK.js} +4 -4
- package/dist/{chunk-E62JFAHW.js.map → chunk-TGUDT3GK.js.map} +1 -1
- package/dist/{chunk-XCYE4OQV.js → chunk-TMRSI543.js} +3 -3
- package/dist/{chunk-XCYE4OQV.js.map → chunk-TMRSI543.js.map} +1 -1
- package/dist/{chunk-RWHWEQQX.cjs → chunk-U7TAQLPN.cjs} +6 -6
- package/dist/{chunk-RWHWEQQX.cjs.map → chunk-U7TAQLPN.cjs.map} +1 -1
- package/dist/chunk-UEHONGPZ.js +115 -0
- package/dist/chunk-UEHONGPZ.js.map +1 -0
- package/dist/{chunk-NN7WMXY4.cjs → chunk-UUY7EDVJ.cjs} +4 -4
- package/dist/{chunk-NN7WMXY4.cjs.map → chunk-UUY7EDVJ.cjs.map} +1 -1
- package/dist/{chunk-OM76QWUN.js → chunk-UXABXEWT.js} +3 -3
- package/dist/{chunk-OM76QWUN.js.map → chunk-UXABXEWT.js.map} +1 -1
- package/dist/{chunk-MDQNUKCP.cjs → chunk-V6466VMN.cjs} +14 -14
- package/dist/{chunk-MDQNUKCP.cjs.map → chunk-V6466VMN.cjs.map} +1 -1
- package/dist/{chunk-O7C6S644.js → chunk-WBL7LOIH.js} +3 -3
- package/dist/{chunk-O7C6S644.js.map → chunk-WBL7LOIH.js.map} +1 -1
- package/dist/{chunk-RQV7SMIZ.cjs → chunk-WKNVNN2K.cjs} +5 -5
- package/dist/{chunk-RQV7SMIZ.cjs.map → chunk-WKNVNN2K.cjs.map} +1 -1
- package/dist/{chunk-HXSAH4Y6.cjs → chunk-WR3FML2W.cjs} +7 -7
- package/dist/{chunk-HXSAH4Y6.cjs.map → chunk-WR3FML2W.cjs.map} +1 -1
- package/dist/{chunk-QOGROEVD.js → chunk-X3JG3IR6.js} +6 -5
- package/dist/chunk-X3JG3IR6.js.map +1 -0
- package/dist/{chunk-6XZ362VL.js → chunk-XT7RXXOE.js} +6 -7
- package/dist/chunk-XT7RXXOE.js.map +1 -0
- package/dist/{chunk-WVBFQB26.cjs → chunk-ZSR5JSYZ.cjs} +8 -8
- package/dist/{chunk-WVBFQB26.cjs.map → chunk-ZSR5JSYZ.cjs.map} +1 -1
- package/dist/index.cjs +67 -62
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +27 -26
- package/dist/index.js.map +1 -1
- package/dist/styles.css +124 -29
- package/docs/llms/form.md +26 -0
- package/docs/llms/popover.md +138 -6
- package/docs/llms/slider.md +13 -2
- package/docs/llms/timeline.md +140 -0
- package/docs/llms.md +5 -4
- package/package.json +5 -1
- package/dist/Popover-NYEKT5CQ.css +0 -10
- package/dist/chunk-2ENTRT7R.cjs.map +0 -1
- package/dist/chunk-3UU2PUK4.js +0 -66
- package/dist/chunk-3UU2PUK4.js.map +0 -1
- package/dist/chunk-6XZ362VL.js.map +0 -1
- package/dist/chunk-7M7NAMR5.js.map +0 -1
- package/dist/chunk-B5JH7NRZ.cjs +0 -133
- package/dist/chunk-B5JH7NRZ.cjs.map +0 -1
- package/dist/chunk-O2HMH5BI.cjs +0 -88
- package/dist/chunk-O2HMH5BI.cjs.map +0 -1
- package/dist/chunk-QJGKI2BD.js +0 -111
- package/dist/chunk-QJGKI2BD.js.map +0 -1
- package/dist/chunk-QOGROEVD.js.map +0 -1
- package/dist/chunk-RZ2E3XEU.cjs.map +0 -1
- package/dist/chunk-T4PI2ZX7.cjs.map +0 -1
- package/dist/chunk-V2DIQ3RH.js.map +0 -1
- package/dist/chunk-YCHUHMNP.cjs.map +0 -1
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Spinner } from './chunk-GR5STMOA.js';
|
|
2
|
+
import './tokens-BIIUTPKN.css';
|
|
3
|
+
import './shared-NJHRNLRH.css';
|
|
4
|
+
import './Timeline-RHZAZKZ7.css';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
var Timeline = React.forwardRef(
|
|
9
|
+
({
|
|
10
|
+
items,
|
|
11
|
+
pending = false,
|
|
12
|
+
pendingContent = "\u52A0\u8F7D\u4E2D...",
|
|
13
|
+
mode = "left",
|
|
14
|
+
reverse = false,
|
|
15
|
+
className = "",
|
|
16
|
+
...rest
|
|
17
|
+
}, ref) => {
|
|
18
|
+
const displayItems = [...items];
|
|
19
|
+
if (reverse) displayItems.reverse();
|
|
20
|
+
const hasPending = pending !== false;
|
|
21
|
+
return /* @__PURE__ */ jsxs(
|
|
22
|
+
"div",
|
|
23
|
+
{
|
|
24
|
+
ref,
|
|
25
|
+
className: `timeline timeline-${mode} ${className}`,
|
|
26
|
+
...rest,
|
|
27
|
+
children: [
|
|
28
|
+
displayItems.map((item, i) => /* @__PURE__ */ jsx(
|
|
29
|
+
TimelineItem,
|
|
30
|
+
{
|
|
31
|
+
item,
|
|
32
|
+
isLast: !hasPending && i === displayItems.length - 1,
|
|
33
|
+
position: getPosition(mode, i)
|
|
34
|
+
},
|
|
35
|
+
item.key ?? i
|
|
36
|
+
)),
|
|
37
|
+
hasPending && /* @__PURE__ */ jsx(
|
|
38
|
+
TimelineItem,
|
|
39
|
+
{
|
|
40
|
+
item: {
|
|
41
|
+
children: pendingContent,
|
|
42
|
+
dot: typeof pending === "boolean" ? void 0 : pending,
|
|
43
|
+
color: "muted"
|
|
44
|
+
},
|
|
45
|
+
isLast: true,
|
|
46
|
+
isPending: true,
|
|
47
|
+
position: getPosition(mode, displayItems.length)
|
|
48
|
+
}
|
|
49
|
+
)
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
Timeline.displayName = "Timeline";
|
|
56
|
+
function getPosition(mode, index) {
|
|
57
|
+
if (mode === "left") return "left";
|
|
58
|
+
if (mode === "right") return "right";
|
|
59
|
+
return index % 2 === 0 ? "left" : "right";
|
|
60
|
+
}
|
|
61
|
+
var TimelineItem = ({
|
|
62
|
+
item,
|
|
63
|
+
isLast,
|
|
64
|
+
isPending,
|
|
65
|
+
position
|
|
66
|
+
}) => {
|
|
67
|
+
const color = item.color ?? "accent";
|
|
68
|
+
const cls = [
|
|
69
|
+
"timeline-item",
|
|
70
|
+
`timeline-item-${position}`,
|
|
71
|
+
isLast ? "timeline-item-last" : "",
|
|
72
|
+
isPending ? "timeline-item-pending" : ""
|
|
73
|
+
].filter(Boolean).join(" ");
|
|
74
|
+
return /* @__PURE__ */ jsxs("div", { className: cls, children: [
|
|
75
|
+
/* @__PURE__ */ jsx("div", { className: "timeline-item-label", children: item.label }),
|
|
76
|
+
/* @__PURE__ */ jsxs("div", { className: "timeline-item-head", children: [
|
|
77
|
+
/* @__PURE__ */ jsx("div", { className: `timeline-item-dot ${color} ${isPending ? "pending" : ""}`, children: item.dot ?? (isPending && /* @__PURE__ */ jsx(Spinner, { size: 14 })) }),
|
|
78
|
+
!isLast && /* @__PURE__ */ jsx("div", { className: "timeline-item-tail" })
|
|
79
|
+
] }),
|
|
80
|
+
/* @__PURE__ */ jsx("div", { className: "timeline-item-content", children: item.children })
|
|
81
|
+
] });
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export { Timeline };
|
|
85
|
+
//# sourceMappingURL=chunk-S3NIRNWM.js.map
|
|
86
|
+
//# sourceMappingURL=chunk-S3NIRNWM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Timeline/Timeline.tsx"],"names":[],"mappings":"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","file":"chunk-S3NIRNWM.js","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Timeline.css\";\nimport * as React from \"react\";\nimport { Spinner } from \"../Empty\";\n\nexport interface TimelineItemConfig {\n /** Unique key for the item */\n key?: string;\n /** Content displayed on the right (or main side) */\n children?: React.ReactNode;\n /** Label displayed on the opposite side (alternate/label mode) */\n label?: React.ReactNode;\n /** Dot color */\n color?: \"accent\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"muted\";\n /** Custom dot content (replaces default dot) */\n dot?: React.ReactNode;\n}\n\nexport interface TimelineProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"children\"> {\n /** Timeline items */\n items: TimelineItemConfig[];\n /**\n * Show a pending (loading) item at the end.\n * `true` renders a default spinner; a ReactNode renders custom content.\n */\n pending?: boolean | React.ReactNode;\n /** Text shown as the pending item's content */\n pendingContent?: React.ReactNode;\n /** Layout mode */\n mode?: \"left\" | \"right\" | \"alternate\";\n /** Reverse the order of items */\n reverse?: boolean;\n}\n\n/**\n * `Timeline` — vertical timeline with pending/loading state.\n *\n * @example\n * <Timeline items={[{ children: \"Created\" }, { children: \"In Progress\" }]} pending />\n */\nexport const Timeline = React.forwardRef<HTMLDivElement, TimelineProps>(\n (\n {\n items,\n pending = false,\n pendingContent = \"加载中...\",\n mode = \"left\",\n reverse = false,\n className = \"\",\n ...rest\n },\n ref\n ) => {\n const displayItems = [...items];\n if (reverse) displayItems.reverse();\n\n const hasPending = pending !== false;\n\n return (\n <div\n ref={ref}\n className={`timeline timeline-${mode} ${className}`}\n {...rest}\n >\n {displayItems.map((item, i) => (\n <TimelineItem\n key={item.key ?? i}\n item={item}\n isLast={!hasPending && i === displayItems.length - 1}\n position={getPosition(mode, i)}\n />\n ))}\n {hasPending && (\n <TimelineItem\n item={{\n children: pendingContent,\n dot: typeof pending === \"boolean\" ? undefined : pending,\n color: \"muted\",\n }}\n isLast\n isPending\n position={getPosition(mode, displayItems.length)}\n />\n )}\n </div>\n );\n }\n);\nTimeline.displayName = \"Timeline\";\n\nfunction getPosition(\n mode: \"left\" | \"right\" | \"alternate\",\n index: number\n): \"left\" | \"right\" {\n if (mode === \"left\") return \"left\";\n if (mode === \"right\") return \"right\";\n return index % 2 === 0 ? \"left\" : \"right\";\n}\n\ninterface TimelineItemInternalProps {\n item: TimelineItemConfig;\n isLast: boolean;\n isPending?: boolean;\n position: \"left\" | \"right\";\n}\n\nconst TimelineItem: React.FC<TimelineItemInternalProps> = ({\n item,\n isLast,\n isPending,\n position,\n}) => {\n const color = item.color ?? \"accent\";\n const cls = [\n \"timeline-item\",\n `timeline-item-${position}`,\n isLast ? \"timeline-item-last\" : \"\",\n isPending ? \"timeline-item-pending\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div className={cls}>\n <div className=\"timeline-item-label\">{item.label}</div>\n <div className=\"timeline-item-head\">\n <div className={`timeline-item-dot ${color} ${isPending ? \"pending\" : \"\"}`}>\n {item.dot ?? (isPending && <Spinner size={14} />)}\n </div>\n {!isLast && <div className=\"timeline-item-tail\" />}\n </div>\n <div className=\"timeline-item-content\">{item.children}</div>\n </div>\n );\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk3KQKEE5O_cjs = require('./chunk-3KQKEE5O.cjs');
|
|
4
4
|
require('./tokens-BIIUTPKN.css');
|
|
5
5
|
require('./shared-NJHRNLRH.css');
|
|
6
6
|
require('./Accordion-REMDCQUD.css');
|
|
@@ -102,7 +102,7 @@ var Accordion = ({
|
|
|
102
102
|
toggle(it.key, it.disabled);
|
|
103
103
|
}
|
|
104
104
|
},
|
|
105
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
105
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunk3KQKEE5O_cjs.Icon, { name: "chevDown", size: 16 })
|
|
106
106
|
}
|
|
107
107
|
)
|
|
108
108
|
]
|
|
@@ -117,5 +117,5 @@ var Accordion = ({
|
|
|
117
117
|
};
|
|
118
118
|
|
|
119
119
|
exports.Accordion = Accordion;
|
|
120
|
-
//# sourceMappingURL=chunk-
|
|
121
|
-
//# sourceMappingURL=chunk-
|
|
120
|
+
//# sourceMappingURL=chunk-S7RFIMA3.cjs.map
|
|
121
|
+
//# sourceMappingURL=chunk-S7RFIMA3.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Accordion/Accordion.tsx"],"names":["React","jsx","jsxs","Icon"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/Accordion/Accordion.tsx"],"names":["React","jsx","jsxs","Icon"],"mappings":"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","file":"chunk-S7RFIMA3.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Accordion.css\";\nimport * as React from \"react\";\nimport { Icon } from \"../Icon\";\n\nexport interface AccordionItem {\n key: string;\n title: React.ReactNode;\n content: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface AccordionProps {\n items: AccordionItem[];\n /** If true, multiple sections can be open at once. */\n multiple?: boolean;\n /**\n * Accordion mode — at most one item open at a time. Takes precedence over `multiple`\n * when both are set.\n */\n accordion?: boolean;\n /**\n * What triggers expansion.\n * - `\"header\"` (default): clicking anywhere on the header toggles.\n * - `\"icon\"`: only the chevron icon is clickable.\n * - `\"disabled\"`: the panel cannot be toggled.\n */\n collapsible?: \"header\" | \"icon\" | \"disabled\";\n activeKeys?: string[];\n defaultActiveKeys?: string[];\n onChange?: (keys: string[]) => void;\n className?: string;\n}\n\nconst AccordionPanel: React.FC<{ open: boolean; children: React.ReactNode }> = ({ open, children }) => {\n const innerRef = React.useRef<HTMLDivElement>(null);\n const [h, setH] = React.useState(0);\n const [animated, setAnimated] = React.useState(false);\n\n React.useLayoutEffect(() => {\n const el = innerRef.current;\n if (!el) return;\n setH(el.scrollHeight);\n const ro = new ResizeObserver(() => setH(el.scrollHeight));\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n React.useEffect(() => {\n const id = requestAnimationFrame(() => setAnimated(true));\n return () => cancelAnimationFrame(id);\n }, []);\n\n return (\n <div\n className=\"accordion-body\"\n style={{ maxHeight: open ? h : 0, transition: animated ? undefined : \"none\" }}\n aria-hidden={!open}\n >\n <div ref={innerRef} className=\"accordion-body-inner\">{children}</div>\n </div>\n );\n};\n\n/** `Accordion` — collapsible sections. */\nexport const Accordion: React.FC<AccordionProps> = ({\n items,\n multiple = false,\n accordion = false,\n collapsible = \"header\",\n activeKeys,\n defaultActiveKeys = [],\n onChange,\n className = \"\",\n}) => {\n const [inner, setInner] = React.useState<string[]>(defaultActiveKeys);\n const isControlled = activeKeys !== undefined;\n const keys = isControlled ? activeKeys! : inner;\n\n // accordion takes precedence over multiple\n const singleOpen = accordion || !multiple;\n\n const toggle = (k: string, itemDisabled?: boolean) => {\n if (collapsible === \"disabled\" || itemDisabled) return;\n const next = keys.includes(k)\n ? keys.filter((x) => x !== k)\n : singleOpen\n ? [k]\n : [...keys, k];\n if (!isControlled) setInner(next);\n onChange?.(next);\n };\n\n return (\n <div className={`accordion ${className}`}>\n {items.map((it) => {\n const open = keys.includes(it.key);\n const isDisabled = it.disabled || collapsible === \"disabled\";\n const headerClickable = collapsible === \"header\" && !isDisabled;\n return (\n <div\n key={it.key}\n className={`accordion-item ${open ? \"open\" : \"\"} ${isDisabled ? \"disabled\" : \"\"} ${collapsible === \"icon\" ? \"icon-only\" : \"\"}`}\n >\n <button\n type=\"button\"\n className=\"accordion-head\"\n disabled={isDisabled}\n onClick={() => headerClickable && toggle(it.key, it.disabled)}\n aria-expanded={open}\n >\n <span>{it.title}</span>\n <span\n className={`accordion-chev${collapsible === \"icon\" ? \" clickable\" : \"\"}`}\n onClick={(e) => {\n if (collapsible === \"icon\" && !isDisabled) {\n e.stopPropagation();\n toggle(it.key, it.disabled);\n }\n }}\n >\n <Icon name=\"chevDown\" size={16} />\n </span>\n </button>\n <AccordionPanel open={open}>{it.content}</AccordionPanel>\n </div>\n );\n })}\n </div>\n );\n};\n"]}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkXUT2Z2L6_cjs = require('./chunk-XUT2Z2L6.cjs');
|
|
4
|
+
require('./tokens-BIIUTPKN.css');
|
|
5
|
+
require('./shared-NJHRNLRH.css');
|
|
6
|
+
require('./Timeline-RHZAZKZ7.css');
|
|
7
|
+
var React = require('react');
|
|
8
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
|
|
10
|
+
function _interopNamespace(e) {
|
|
11
|
+
if (e && e.__esModule) return e;
|
|
12
|
+
var n = Object.create(null);
|
|
13
|
+
if (e) {
|
|
14
|
+
Object.keys(e).forEach(function (k) {
|
|
15
|
+
if (k !== 'default') {
|
|
16
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
17
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return e[k]; }
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
n.default = e;
|
|
25
|
+
return Object.freeze(n);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
29
|
+
|
|
30
|
+
var Timeline = React__namespace.forwardRef(
|
|
31
|
+
({
|
|
32
|
+
items,
|
|
33
|
+
pending = false,
|
|
34
|
+
pendingContent = "\u52A0\u8F7D\u4E2D...",
|
|
35
|
+
mode = "left",
|
|
36
|
+
reverse = false,
|
|
37
|
+
className = "",
|
|
38
|
+
...rest
|
|
39
|
+
}, ref) => {
|
|
40
|
+
const displayItems = [...items];
|
|
41
|
+
if (reverse) displayItems.reverse();
|
|
42
|
+
const hasPending = pending !== false;
|
|
43
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
44
|
+
"div",
|
|
45
|
+
{
|
|
46
|
+
ref,
|
|
47
|
+
className: `timeline timeline-${mode} ${className}`,
|
|
48
|
+
...rest,
|
|
49
|
+
children: [
|
|
50
|
+
displayItems.map((item, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
51
|
+
TimelineItem,
|
|
52
|
+
{
|
|
53
|
+
item,
|
|
54
|
+
isLast: !hasPending && i === displayItems.length - 1,
|
|
55
|
+
position: getPosition(mode, i)
|
|
56
|
+
},
|
|
57
|
+
item.key ?? i
|
|
58
|
+
)),
|
|
59
|
+
hasPending && /* @__PURE__ */ jsxRuntime.jsx(
|
|
60
|
+
TimelineItem,
|
|
61
|
+
{
|
|
62
|
+
item: {
|
|
63
|
+
children: pendingContent,
|
|
64
|
+
dot: typeof pending === "boolean" ? void 0 : pending,
|
|
65
|
+
color: "muted"
|
|
66
|
+
},
|
|
67
|
+
isLast: true,
|
|
68
|
+
isPending: true,
|
|
69
|
+
position: getPosition(mode, displayItems.length)
|
|
70
|
+
}
|
|
71
|
+
)
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
);
|
|
77
|
+
Timeline.displayName = "Timeline";
|
|
78
|
+
function getPosition(mode, index) {
|
|
79
|
+
if (mode === "left") return "left";
|
|
80
|
+
if (mode === "right") return "right";
|
|
81
|
+
return index % 2 === 0 ? "left" : "right";
|
|
82
|
+
}
|
|
83
|
+
var TimelineItem = ({
|
|
84
|
+
item,
|
|
85
|
+
isLast,
|
|
86
|
+
isPending,
|
|
87
|
+
position
|
|
88
|
+
}) => {
|
|
89
|
+
const color = item.color ?? "accent";
|
|
90
|
+
const cls = [
|
|
91
|
+
"timeline-item",
|
|
92
|
+
`timeline-item-${position}`,
|
|
93
|
+
isLast ? "timeline-item-last" : "",
|
|
94
|
+
isPending ? "timeline-item-pending" : ""
|
|
95
|
+
].filter(Boolean).join(" ");
|
|
96
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cls, children: [
|
|
97
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "timeline-item-label", children: item.label }),
|
|
98
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "timeline-item-head", children: [
|
|
99
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `timeline-item-dot ${color} ${isPending ? "pending" : ""}`, children: item.dot ?? (isPending && /* @__PURE__ */ jsxRuntime.jsx(chunkXUT2Z2L6_cjs.Spinner, { size: 14 })) }),
|
|
100
|
+
!isLast && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "timeline-item-tail" })
|
|
101
|
+
] }),
|
|
102
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "timeline-item-content", children: item.children })
|
|
103
|
+
] });
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
exports.Timeline = Timeline;
|
|
107
|
+
//# sourceMappingURL=chunk-TAYFI4RG.cjs.map
|
|
108
|
+
//# sourceMappingURL=chunk-TAYFI4RG.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Timeline/Timeline.tsx"],"names":["React","jsxs","jsx","Spinner"],"mappings":"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","file":"chunk-TAYFI4RG.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Timeline.css\";\nimport * as React from \"react\";\nimport { Spinner } from \"../Empty\";\n\nexport interface TimelineItemConfig {\n /** Unique key for the item */\n key?: string;\n /** Content displayed on the right (or main side) */\n children?: React.ReactNode;\n /** Label displayed on the opposite side (alternate/label mode) */\n label?: React.ReactNode;\n /** Dot color */\n color?: \"accent\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"muted\";\n /** Custom dot content (replaces default dot) */\n dot?: React.ReactNode;\n}\n\nexport interface TimelineProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"children\"> {\n /** Timeline items */\n items: TimelineItemConfig[];\n /**\n * Show a pending (loading) item at the end.\n * `true` renders a default spinner; a ReactNode renders custom content.\n */\n pending?: boolean | React.ReactNode;\n /** Text shown as the pending item's content */\n pendingContent?: React.ReactNode;\n /** Layout mode */\n mode?: \"left\" | \"right\" | \"alternate\";\n /** Reverse the order of items */\n reverse?: boolean;\n}\n\n/**\n * `Timeline` — vertical timeline with pending/loading state.\n *\n * @example\n * <Timeline items={[{ children: \"Created\" }, { children: \"In Progress\" }]} pending />\n */\nexport const Timeline = React.forwardRef<HTMLDivElement, TimelineProps>(\n (\n {\n items,\n pending = false,\n pendingContent = \"加载中...\",\n mode = \"left\",\n reverse = false,\n className = \"\",\n ...rest\n },\n ref\n ) => {\n const displayItems = [...items];\n if (reverse) displayItems.reverse();\n\n const hasPending = pending !== false;\n\n return (\n <div\n ref={ref}\n className={`timeline timeline-${mode} ${className}`}\n {...rest}\n >\n {displayItems.map((item, i) => (\n <TimelineItem\n key={item.key ?? i}\n item={item}\n isLast={!hasPending && i === displayItems.length - 1}\n position={getPosition(mode, i)}\n />\n ))}\n {hasPending && (\n <TimelineItem\n item={{\n children: pendingContent,\n dot: typeof pending === \"boolean\" ? undefined : pending,\n color: \"muted\",\n }}\n isLast\n isPending\n position={getPosition(mode, displayItems.length)}\n />\n )}\n </div>\n );\n }\n);\nTimeline.displayName = \"Timeline\";\n\nfunction getPosition(\n mode: \"left\" | \"right\" | \"alternate\",\n index: number\n): \"left\" | \"right\" {\n if (mode === \"left\") return \"left\";\n if (mode === \"right\") return \"right\";\n return index % 2 === 0 ? \"left\" : \"right\";\n}\n\ninterface TimelineItemInternalProps {\n item: TimelineItemConfig;\n isLast: boolean;\n isPending?: boolean;\n position: \"left\" | \"right\";\n}\n\nconst TimelineItem: React.FC<TimelineItemInternalProps> = ({\n item,\n isLast,\n isPending,\n position,\n}) => {\n const color = item.color ?? \"accent\";\n const cls = [\n \"timeline-item\",\n `timeline-item-${position}`,\n isLast ? \"timeline-item-last\" : \"\",\n isPending ? \"timeline-item-pending\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div className={cls}>\n <div className=\"timeline-item-label\">{item.label}</div>\n <div className=\"timeline-item-head\">\n <div className={`timeline-item-dot ${color} ${isPending ? \"pending\" : \"\"}`}>\n {item.dot ?? (isPending && <Spinner size={14} />)}\n </div>\n {!isLast && <div className=\"timeline-item-tail\" />}\n </div>\n <div className=\"timeline-item-content\">{item.children}</div>\n </div>\n );\n};\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk3XIDJEYR_cjs = require('./chunk-3XIDJEYR.cjs');
|
|
4
4
|
require('./tokens-BIIUTPKN.css');
|
|
5
5
|
require('./shared-NJHRNLRH.css');
|
|
6
|
-
require('./Tooltip-
|
|
6
|
+
require('./Tooltip-DMKUPC24.css');
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var reactDom = require('react-dom');
|
|
9
9
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -46,7 +46,7 @@ var Tooltip = ({
|
|
|
46
46
|
window.clearTimeout(t.current);
|
|
47
47
|
setShow(false);
|
|
48
48
|
};
|
|
49
|
-
const { triggerRef, floatingStyle, placement: resolved } =
|
|
49
|
+
const { triggerRef, floatingStyle, placement: resolved } = chunk3XIDJEYR_cjs.useFloating({
|
|
50
50
|
open: show,
|
|
51
51
|
placement,
|
|
52
52
|
panelWidth: 160,
|
|
@@ -74,5 +74,5 @@ var Tooltip = ({
|
|
|
74
74
|
};
|
|
75
75
|
|
|
76
76
|
exports.Tooltip = Tooltip;
|
|
77
|
-
//# sourceMappingURL=chunk-
|
|
78
|
-
//# sourceMappingURL=chunk-
|
|
77
|
+
//# sourceMappingURL=chunk-TCPTBLDV.cjs.map
|
|
78
|
+
//# sourceMappingURL=chunk-TCPTBLDV.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Tooltip/Tooltip.tsx"],"names":["React","useFloating","jsxs","Fragment","jsx","createPortal"],"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,GAAUA,0BAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,IAAUA,gBAAA,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,KAAaC,6BAAA,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,uBACEC,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAC,cAAA;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,IAC3BC,qBAAA;AAAA,sBACED,cAAA,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-
|
|
1
|
+
{"version":3,"sources":["../src/components/Tooltip/Tooltip.tsx"],"names":["React","useFloating","jsxs","Fragment","jsx","createPortal"],"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,GAAUA,0BAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,IAAUA,gBAAA,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,KAAaC,6BAAA,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,uBACEC,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAC,cAAA;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,IAC3BC,qBAAA;AAAA,sBACED,cAAA,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-TCPTBLDV.cjs","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"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Input } from './chunk-
|
|
2
|
-
import { Icon } from './chunk-
|
|
1
|
+
import { Input } from './chunk-GB5NAXBP.js';
|
|
2
|
+
import { Icon } from './chunk-X3JG3IR6.js';
|
|
3
3
|
import './tokens-BIIUTPKN.css';
|
|
4
4
|
import './shared-NJHRNLRH.css';
|
|
5
5
|
import './InputNumber-VXQIWLQC.css';
|
|
@@ -143,5 +143,5 @@ var InputNumber = React.forwardRef(
|
|
|
143
143
|
InputNumber.displayName = "InputNumber";
|
|
144
144
|
|
|
145
145
|
export { InputNumber };
|
|
146
|
-
//# sourceMappingURL=chunk-
|
|
147
|
-
//# sourceMappingURL=chunk-
|
|
146
|
+
//# sourceMappingURL=chunk-TGUDT3GK.js.map
|
|
147
|
+
//# sourceMappingURL=chunk-TGUDT3GK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/InputNumber/InputNumber.tsx"],"names":[],"mappings":"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","file":"chunk-E62JFAHW.js","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./InputNumber.css\";\nimport * as React from \"react\";\nimport { Input } from \"../Input\";\nimport { Icon } from \"../Icon\";\n\nexport interface InputNumberProps {\n /** Controlled value. `null` = empty field. */\n value?: number | null;\n /** Uncontrolled initial value. */\n defaultValue?: number;\n /** Fires with the parsed number (or `null` when the input is emptied). */\n onChange?: (value: number | null) => void;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n /** Fires when the Enter key is pressed (matches antd's `onPressEnter`). */\n onPressEnter?: React.KeyboardEventHandler<HTMLInputElement>;\n min?: number;\n max?: number;\n /** Step for up/down buttons + arrow keys. Default 1. */\n step?: number;\n /** Number of decimal places to round to. Omit for no rounding. */\n precision?: number;\n size?: \"sm\" | \"md\" | \"lg\";\n disabled?: boolean;\n readOnly?: boolean;\n placeholder?: string;\n /** Show the up/down stepper buttons. Default true. */\n controls?: boolean;\n invalid?: boolean;\n className?: string;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n autoFocus?: boolean;\n id?: string;\n name?: string;\n style?: React.CSSProperties;\n}\n\n/**\n * `InputNumber` — numeric input with up/down stepper buttons. Arrow-key\n * and mouse-wheel increments; min / max clamping; optional rounding.\n *\n * @example\n * ```tsx\n * <InputNumber min={0} max={100} step={1} defaultValue={10} onChange={...} />\n * ```\n */\nexport const InputNumber = React.forwardRef<HTMLInputElement, InputNumberProps>(\n (\n {\n value,\n defaultValue,\n onChange,\n onBlur,\n onFocus,\n onPressEnter,\n min = -Infinity,\n max = Infinity,\n step = 1,\n precision,\n size = \"md\",\n disabled,\n readOnly,\n placeholder,\n controls = true,\n invalid,\n className = \"\",\n prefix,\n suffix,\n autoFocus,\n id,\n name,\n },\n ref\n ) => {\n const [inner, setInner] = React.useState<number | null>(defaultValue ?? null);\n const isControlled = value !== undefined;\n const current = isControlled ? (value as number | null) : inner;\n\n const [text, setText] = React.useState<string>(current == null ? \"\" : String(current));\n\n React.useEffect(() => {\n if (isControlled) setText(value == null ? \"\" : String(value));\n }, [value, isControlled]);\n\n const clamp = React.useCallback(\n (n: number) => Math.max(min, Math.min(max, n)),\n [min, max]\n );\n const round = React.useCallback(\n (n: number) => (precision != null ? Number(n.toFixed(precision)) : n),\n [precision]\n );\n\n const commit = (next: number | null) => {\n if (!isControlled) setInner(next);\n onChange?.(next);\n };\n\n const handleInput = (v: string) => {\n setText(v);\n if (v === \"\" || v === \"-\") {\n commit(null);\n return;\n }\n const parsed = Number(v);\n if (!Number.isNaN(parsed)) commit(clamp(round(parsed)));\n };\n\n const handleBlur: React.FocusEventHandler<HTMLInputElement> = (e) => {\n // Normalize displayed text to the committed numeric value.\n if (current == null) setText(\"\");\n else setText(String(current));\n onBlur?.(e);\n };\n\n const increment = (delta: number) => {\n if (disabled || readOnly) return;\n const base = current ?? 0;\n const next = clamp(round(base + delta));\n if (!isControlled) setInner(next);\n setText(String(next));\n onChange?.(next);\n };\n\n const handleKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (e) => {\n if (e.key === \"ArrowUp\") { e.preventDefault(); increment(step); }\n if (e.key === \"ArrowDown\") { e.preventDefault(); increment(-step); }\n if (e.key === \"Enter\") onPressEnter?.(e);\n };\n\n const upDisabled = disabled || readOnly || (current != null && current >= max);\n const downDisabled = disabled || readOnly || (current != null && current <= min);\n\n const stepperSuffix = controls ? (\n <span className=\"ipn-steppers\" aria-hidden>\n <button\n type=\"button\"\n className=\"ipn-step up\"\n tabIndex={-1}\n disabled={upDisabled}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => increment(step)}\n >\n <Icon name=\"chevUp\" size={10} stroke={2.5} />\n </button>\n <button\n type=\"button\"\n className=\"ipn-step down\"\n tabIndex={-1}\n disabled={downDisabled}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => increment(-step)}\n >\n <Icon name=\"chevDown\" size={10} stroke={2.5} />\n </button>\n </span>\n ) : null;\n\n const finalSuffix =\n stepperSuffix && suffix\n ? (<>{suffix}{stepperSuffix}</>)\n : stepperSuffix ?? suffix;\n\n return (\n <Input\n ref={ref}\n id={id}\n name={name}\n size={size}\n value={text}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n invalid={invalid}\n autoFocus={autoFocus}\n prefix={prefix}\n suffix={finalSuffix}\n className={`input-number ${className}`}\n inputMode=\"decimal\"\n onChange={handleInput}\n onKeyDown={handleKeyDown}\n onBlur={handleBlur}\n onFocus={onFocus}\n />\n );\n }\n);\nInputNumber.displayName = \"InputNumber\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/InputNumber/InputNumber.tsx"],"names":[],"mappings":"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","file":"chunk-TGUDT3GK.js","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./InputNumber.css\";\nimport * as React from \"react\";\nimport { Input } from \"../Input\";\nimport { Icon } from \"../Icon\";\n\nexport interface InputNumberProps {\n /** Controlled value. `null` = empty field. */\n value?: number | null;\n /** Uncontrolled initial value. */\n defaultValue?: number;\n /** Fires with the parsed number (or `null` when the input is emptied). */\n onChange?: (value: number | null) => void;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n /** Fires when the Enter key is pressed (matches antd's `onPressEnter`). */\n onPressEnter?: React.KeyboardEventHandler<HTMLInputElement>;\n min?: number;\n max?: number;\n /** Step for up/down buttons + arrow keys. Default 1. */\n step?: number;\n /** Number of decimal places to round to. Omit for no rounding. */\n precision?: number;\n size?: \"sm\" | \"md\" | \"lg\";\n disabled?: boolean;\n readOnly?: boolean;\n placeholder?: string;\n /** Show the up/down stepper buttons. Default true. */\n controls?: boolean;\n invalid?: boolean;\n className?: string;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n autoFocus?: boolean;\n id?: string;\n name?: string;\n style?: React.CSSProperties;\n}\n\n/**\n * `InputNumber` — numeric input with up/down stepper buttons. Arrow-key\n * and mouse-wheel increments; min / max clamping; optional rounding.\n *\n * @example\n * ```tsx\n * <InputNumber min={0} max={100} step={1} defaultValue={10} onChange={...} />\n * ```\n */\nexport const InputNumber = React.forwardRef<HTMLInputElement, InputNumberProps>(\n (\n {\n value,\n defaultValue,\n onChange,\n onBlur,\n onFocus,\n onPressEnter,\n min = -Infinity,\n max = Infinity,\n step = 1,\n precision,\n size = \"md\",\n disabled,\n readOnly,\n placeholder,\n controls = true,\n invalid,\n className = \"\",\n prefix,\n suffix,\n autoFocus,\n id,\n name,\n },\n ref\n ) => {\n const [inner, setInner] = React.useState<number | null>(defaultValue ?? null);\n const isControlled = value !== undefined;\n const current = isControlled ? (value as number | null) : inner;\n\n const [text, setText] = React.useState<string>(current == null ? \"\" : String(current));\n\n React.useEffect(() => {\n if (isControlled) setText(value == null ? \"\" : String(value));\n }, [value, isControlled]);\n\n const clamp = React.useCallback(\n (n: number) => Math.max(min, Math.min(max, n)),\n [min, max]\n );\n const round = React.useCallback(\n (n: number) => (precision != null ? Number(n.toFixed(precision)) : n),\n [precision]\n );\n\n const commit = (next: number | null) => {\n if (!isControlled) setInner(next);\n onChange?.(next);\n };\n\n const handleInput = (v: string) => {\n setText(v);\n if (v === \"\" || v === \"-\") {\n commit(null);\n return;\n }\n const parsed = Number(v);\n if (!Number.isNaN(parsed)) commit(clamp(round(parsed)));\n };\n\n const handleBlur: React.FocusEventHandler<HTMLInputElement> = (e) => {\n // Normalize displayed text to the committed numeric value.\n if (current == null) setText(\"\");\n else setText(String(current));\n onBlur?.(e);\n };\n\n const increment = (delta: number) => {\n if (disabled || readOnly) return;\n const base = current ?? 0;\n const next = clamp(round(base + delta));\n if (!isControlled) setInner(next);\n setText(String(next));\n onChange?.(next);\n };\n\n const handleKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (e) => {\n if (e.key === \"ArrowUp\") { e.preventDefault(); increment(step); }\n if (e.key === \"ArrowDown\") { e.preventDefault(); increment(-step); }\n if (e.key === \"Enter\") onPressEnter?.(e);\n };\n\n const upDisabled = disabled || readOnly || (current != null && current >= max);\n const downDisabled = disabled || readOnly || (current != null && current <= min);\n\n const stepperSuffix = controls ? (\n <span className=\"ipn-steppers\" aria-hidden>\n <button\n type=\"button\"\n className=\"ipn-step up\"\n tabIndex={-1}\n disabled={upDisabled}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => increment(step)}\n >\n <Icon name=\"chevUp\" size={10} stroke={2.5} />\n </button>\n <button\n type=\"button\"\n className=\"ipn-step down\"\n tabIndex={-1}\n disabled={downDisabled}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => increment(-step)}\n >\n <Icon name=\"chevDown\" size={10} stroke={2.5} />\n </button>\n </span>\n ) : null;\n\n const finalSuffix =\n stepperSuffix && suffix\n ? (<>{suffix}{stepperSuffix}</>)\n : stepperSuffix ?? suffix;\n\n return (\n <Input\n ref={ref}\n id={id}\n name={name}\n size={size}\n value={text}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n invalid={invalid}\n autoFocus={autoFocus}\n prefix={prefix}\n suffix={finalSuffix}\n className={`input-number ${className}`}\n inputMode=\"decimal\"\n onChange={handleInput}\n onKeyDown={handleKeyDown}\n onBlur={handleBlur}\n onFocus={onFocus}\n />\n );\n }\n);\nInputNumber.displayName = \"InputNumber\";\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Icon } from './chunk-
|
|
1
|
+
import { Icon } from './chunk-X3JG3IR6.js';
|
|
2
2
|
import './tokens-BIIUTPKN.css';
|
|
3
3
|
import './shared-NJHRNLRH.css';
|
|
4
4
|
import './Calendar-LHZELUDL.css';
|
|
@@ -86,5 +86,5 @@ var Calendar = ({
|
|
|
86
86
|
};
|
|
87
87
|
|
|
88
88
|
export { Calendar };
|
|
89
|
-
//# sourceMappingURL=chunk-
|
|
90
|
-
//# sourceMappingURL=chunk-
|
|
89
|
+
//# sourceMappingURL=chunk-TMRSI543.js.map
|
|
90
|
+
//# sourceMappingURL=chunk-TMRSI543.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Calendar/Calendar.tsx"],"names":[],"mappings":";;;;;;;AAyBA,IAAM,QAAA,GAAW,CAAC,QAAA,EAAK,QAAA,EAAK,UAAK,QAAA,EAAK,QAAA,EAAK,UAAK,QAAG,CAAA;AAG5C,IAAM,WAAoC,CAAC;AAAA,EAChD,KAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA,GAAY;AACd,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,OAAO,QAAQ,CAAA,GAAU,eAAS,YAAA,oBAAgB,IAAI,MAAM,CAAA;AACnE,EAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,EAAA,MAAM,GAAA,GAAM,eAAe,KAAA,GAAS,KAAA;AACpC,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAU,eAAS,IAAI,IAAA,CAAK,GAAA,CAAI,WAAA,EAAY,EAAG,GAAA,CAAI,QAAA,EAAS,EAAG,CAAC,CAAC,CAAA;AAErF,EAAA,MAAM,KAAA,GAAQ,IAAI,IAAA,CAAK,IAAA,CAAK,aAAY,EAAG,IAAA,CAAK,QAAA,EAAS,EAAG,CAAC,CAAA;AAC7D,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,EAAO;AAC9B,EAAA,MAAM,WAAA,GAAc,IAAI,IAAA,CAAK,IAAA,CAAK,WAAA,EAAY,EAAG,IAAA,CAAK,QAAA,EAAS,GAAI,CAAA,EAAG,CAAC,CAAA,CAAE,OAAA,EAAQ;AACjF,EAAA,MAAM,QAA2B,EAAC;AAClC,EAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,UAAU,CAAA,EAAA,EAAK,KAAA,CAAM,KAAK,IAAI,CAAA;AAClD,EAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,IAAK,aAAa,CAAA,EAAA,EAAK,KAAA,CAAM,KAAK,CAAC,CAAA;AAEnD,EAAA,MAAM,MAAA,GAAS,CAAC,CAAA,EAAS,CAAA,KACvB,EAAE,WAAA,EAAY,KAAM,EAAE,WAAA,EAAY,IAAK,EAAE,QAAA,EAAS,KAAM,EAAE,QAAA,EAAS,IAAK,EAAE,OAAA,EAAQ,KAAM,EAAE,OAAA,EAAQ;AAEpG,EAAA,MAAM,IAAA,GAAO,CAAC,CAAA,KAAc;AAC1B,IAAA,MAAM,IAAA,GAAO,IAAI,IAAA,CAAK,IAAA,CAAK,aAAY,EAAG,IAAA,CAAK,QAAA,EAAS,EAAG,CAAC,CAAA;AAC5D,IAAA,IAAI,GAAA,IAAO,OAAO,GAAA,EAAK;AACvB,IAAA,IAAI,GAAA,IAAO,OAAO,GAAA,EAAK;AACvB,IAAA,IAAI,YAAA,GAAe,IAAI,CAAA,EAAG;AAC1B,IAAA,IAAI,CAAC,YAAA,EAAc,QAAA,CAAS,IAAI,CAAA;AAChC,IAAA,QAAA,GAAW,IAAI,CAAA;AAAA,EACjB,CAAA;AAEA,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,CAAA,SAAA,EAAY,SAAS,CAAA,CAAA,EACnC,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,eAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,SAAA,EAAU,mBAAA;AAAA,UACV,OAAA,EAAS,MAAM,OAAA,CAAQ,IAAI,IAAA,CAAK,IAAA,CAAK,WAAA,EAAY,EAAG,IAAA,CAAK,QAAA,EAAS,GAAI,CAAA,EAAG,CAAC,CAAC,CAAA;AAAA,UAC3E,YAAA,EAAW,gBAAA;AAAA,UAEX,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAK,UAAA,EAAW,MAAM,EAAA,EAAI;AAAA;AAAA,OAClC;AAAA,sBACA,IAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,WAAU,gBAAA,EAC7B,QAAA,EAAA;AAAA,QAAA,IAAA,CAAK,WAAA,EAAY;AAAA,QAAE,UAAA;AAAA,QAAI,IAAA,CAAK,UAAS,GAAI,CAAA;AAAA,QAAE;AAAA,OAAA,EAC9C,CAAA;AAAA,sBACA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,SAAA,EAAU,mBAAA;AAAA,UACV,OAAA,EAAS,MAAM,OAAA,CAAQ,IAAI,IAAA,CAAK,IAAA,CAAK,WAAA,EAAY,EAAG,IAAA,CAAK,QAAA,EAAS,GAAI,CAAA,EAAG,CAAC,CAAC,CAAA;AAAA,UAC3E,YAAA,EAAW,YAAA;AAAA,UAEX,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAK,WAAA,EAAY,MAAM,EAAA,EAAI;AAAA;AAAA;AACnC,KAAA,EACF,CAAA;AAAA,oBACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EACZ,QAAA,EAAA;AAAA,MAAA,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,qBACb,GAAA,CAAC,SAAY,SAAA,EAAU,cAAA,EAAgB,QAAA,EAAA,CAAA,EAAA,EAA7B,CAA+B,CAC1C,CAAA;AAAA,MACA,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,KAAM;AACnB,QAAA,IAAI,MAAM,IAAA,EAAM,2BAAQ,KAAA,EAAA,EAAY,SAAA,EAAU,uBAAb,CAAiC,CAAA;AAClE,QAAA,MAAM,IAAA,GAAO,IAAI,IAAA,CAAK,IAAA,CAAK,aAAY,EAAG,IAAA,CAAK,QAAA,EAAS,EAAG,CAAC,CAAA;AAC5D,QAAA,MAAM,QAAA,GACH,OAAO,IAAA,GAAO,GAAA,IACd,OAAO,IAAA,GAAO,GAAA,KACd,YAAA,GAAe,IAAI,CAAA,IAAK,KAAA,CAAA;AAC3B,QAAA,uBACE,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YAEC,IAAA,EAAK,QAAA;AAAA,YACL,QAAA,EAAU,CAAC,CAAC,QAAA;AAAA,YACZ,SAAA,EAAW,iBAAiB,MAAA,CAAO,IAAA,EAAM,GAAG,CAAA,GAAI,UAAA,GAAa,EAAE,CAAA,CAAA,EAAI,MAAA,CAAO,sBAAM,IAAI,IAAA,EAAM,CAAA,GAAI,OAAA,GAAU,EAAE,CAAA,CAAA,EAAI,QAAA,GAAW,aAAa,EAAE,CAAA,CAAA;AAAA,YACxI,OAAA,EAAS,MAAM,IAAA,CAAK,CAAC,CAAA;AAAA,YAEpB,QAAA,EAAA;AAAA,WAAA;AAAA,UANI;AAAA,SAOP;AAAA,MAEJ,CAAC;AAAA,KAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/Calendar/Calendar.tsx"],"names":[],"mappings":"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","file":"chunk-TMRSI543.js","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Calendar.css\";\nimport * as React from \"react\";\nimport { Icon } from \"../Icon\";\n\nexport interface CalendarProps {\n value?: Date;\n defaultValue?: Date;\n onChange?: (date: Date) => void;\n /** Min selectable date. */\n min?: Date;\n /** Max selectable date. */\n max?: Date;\n /**\n * Predicate that marks an individual cell as disabled. Disabled cells are\n * greyed out, not clickable, and do not fire `onChange`.\n * @example\n * // disable weekends\n * disabledDate={(d) => d.getDay() === 0 || d.getDay() === 6}\n */\n disabledDate?: (date: Date) => boolean;\n className?: string;\n}\n\nconst WEEKDAYS = [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\"];\n\n/** `Calendar` — month-view date picker. */\nexport const Calendar: React.FC<CalendarProps> = ({\n value,\n defaultValue,\n onChange,\n min,\n max,\n disabledDate,\n className = \"\",\n}) => {\n const [inner, setInner] = React.useState(defaultValue ?? new Date());\n const isControlled = value !== undefined;\n const sel = isControlled ? value! : inner;\n const [view, setView] = React.useState(new Date(sel.getFullYear(), sel.getMonth(), 1));\n\n const first = new Date(view.getFullYear(), view.getMonth(), 1);\n const startDay = first.getDay();\n const daysInMonth = new Date(view.getFullYear(), view.getMonth() + 1, 0).getDate();\n const cells: (number | null)[] = [];\n for (let i = 0; i < startDay; i++) cells.push(null);\n for (let d = 1; d <= daysInMonth; d++) cells.push(d);\n\n const isSame = (a: Date, b: Date) =>\n a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\n\n const pick = (d: number) => {\n const next = new Date(view.getFullYear(), view.getMonth(), d);\n if (min && next < min) return;\n if (max && next > max) return;\n if (disabledDate?.(next)) return;\n if (!isControlled) setInner(next);\n onChange?.(next);\n };\n\n return (\n <div className={`calendar ${className}`}>\n <div className=\"calendar-head\">\n <button\n type=\"button\"\n className=\"btn icon sm ghost\"\n onClick={() => setView(new Date(view.getFullYear(), view.getMonth() - 1, 1))}\n aria-label=\"Previous month\"\n >\n <Icon name=\"chevLeft\" size={14} />\n </button>\n <button type=\"button\" className=\"calendar-title\">\n {view.getFullYear()} 年 {view.getMonth() + 1} 月\n </button>\n <button\n type=\"button\"\n className=\"btn icon sm ghost\"\n onClick={() => setView(new Date(view.getFullYear(), view.getMonth() + 1, 1))}\n aria-label=\"Next month\"\n >\n <Icon name=\"chevRight\" size={14} />\n </button>\n </div>\n <div className=\"calendar-grid\">\n {WEEKDAYS.map((w) => (\n <div key={w} className=\"calendar-dow\">{w}</div>\n ))}\n {cells.map((d, i) => {\n if (d === null) return <div key={i} className=\"calendar-cell out\" />;\n const date = new Date(view.getFullYear(), view.getMonth(), d);\n const disabled =\n (min && date < min) ||\n (max && date > max) ||\n (disabledDate?.(date) ?? false);\n return (\n <button\n key={i}\n type=\"button\"\n disabled={!!disabled}\n className={`calendar-cell ${isSame(date, sel) ? \"selected\" : \"\"} ${isSame(date, new Date()) ? \"today\" : \"\"} ${disabled ? \"disabled\" : \"\"}`}\n onClick={() => pick(d)}\n >\n {d}\n </button>\n );\n })}\n </div>\n </div>\n );\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk3KQKEE5O_cjs = require('./chunk-3KQKEE5O.cjs');
|
|
4
4
|
require('./tokens-BIIUTPKN.css');
|
|
5
5
|
require('./shared-NJHRNLRH.css');
|
|
6
6
|
require('./Button-SDQD25AG.css');
|
|
@@ -59,9 +59,9 @@ var Button = React__namespace.forwardRef(
|
|
|
59
59
|
disabled: disabled || loading,
|
|
60
60
|
...rest,
|
|
61
61
|
children: [
|
|
62
|
-
loading ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "spinner", "aria-hidden": true }) : icon ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
62
|
+
loading ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "spinner", "aria-hidden": true }) : icon ? /* @__PURE__ */ jsxRuntime.jsx(chunk3KQKEE5O_cjs.Icon, { name: icon, size: 15 }) : null,
|
|
63
63
|
children,
|
|
64
|
-
trailingIcon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
64
|
+
trailingIcon && /* @__PURE__ */ jsxRuntime.jsx(chunk3KQKEE5O_cjs.Icon, { name: trailingIcon, size: 15 })
|
|
65
65
|
]
|
|
66
66
|
}
|
|
67
67
|
);
|
|
@@ -77,7 +77,7 @@ var IconButton = React__namespace.forwardRef(
|
|
|
77
77
|
"aria-label": tip || rest["aria-label"] || icon,
|
|
78
78
|
title: tip,
|
|
79
79
|
...rest,
|
|
80
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
80
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunk3KQKEE5O_cjs.Icon, { name: icon, size: 16 })
|
|
81
81
|
}
|
|
82
82
|
)
|
|
83
83
|
);
|
|
@@ -85,5 +85,5 @@ IconButton.displayName = "IconButton";
|
|
|
85
85
|
|
|
86
86
|
exports.Button = Button;
|
|
87
87
|
exports.IconButton = IconButton;
|
|
88
|
-
//# sourceMappingURL=chunk-
|
|
89
|
-
//# sourceMappingURL=chunk-
|
|
88
|
+
//# sourceMappingURL=chunk-U7TAQLPN.cjs.map
|
|
89
|
+
//# sourceMappingURL=chunk-U7TAQLPN.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Button/Button.tsx"],"names":["React","jsxs","jsx","Icon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCO,IAAM,MAAA,GAAeA,gBAAA,CAAA,UAAA;AAAA,EAC1B,CACE;AAAA,IACE,QAAA;AAAA,IACA,OAAA,GAAU,SAAA;AAAA,IACV,IAAA,GAAO,IAAA;AAAA,IACP,IAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA,GAAY,EAAA;AAAA,IACZ,IAAA,GAAO,QAAA;AAAA,IACP,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,GAAA,GAAM;AAAA,MACV,KAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAS,IAAA,IAAQ,IAAA;AAAA,MACjB,OAAA,IAAW,SAAA;AAAA,MACX,KAAA,IAAS,OAAA;AAAA,MACT,QAAA,IAAY,UAAA;AAAA,MACZ;AAAA,KACF,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAEX,IAAA,uBACEC,eAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA;AAAA,QACA,SAAA,EAAW,GAAA;AAAA,QACX,UAAU,QAAA,IAAY,OAAA;AAAA,QACrB,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,OAAA,mBACCC,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU,eAAW,IAAA,EAAC,CAAA,GACpC,IAAA,mBACFA,cAAA,CAACC,sBAAA,EAAA,EAAK,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA,GAC1B,IAAA;AAAA,UACH,QAAA;AAAA,UACA,gCAAgBD,cAAA,CAACC,sBAAA,EAAA,EAAK,IAAA,EAAM,YAAA,EAAc,MAAM,EAAA,EAAI;AAAA;AAAA;AAAA,KACvD;AAAA,EAEJ;AACF;AACA,MAAA,CAAO,WAAA,GAAc,QAAA;AAYd,IAAM,UAAA,GAAmBH,gBAAA,CAAA,UAAA;AAAA,EAC9B,CAAC,EAAE,IAAA,EAAM,GAAA,EAAK,YAAY,EAAA,EAAI,GAAG,IAAA,EAAK,EAAG,GAAA,qBACvCE,cAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,QAAQ,SAAS,CAAA,CAAA;AAAA,MAC5B,YAAA,EAAY,GAAA,IAAO,IAAA,CAAK,YAAY,CAAA,IAAK,IAAA;AAAA,MACzC,KAAA,EAAO,GAAA;AAAA,MACN,GAAG,IAAA;AAAA,MAEJ,QAAA,kBAAAA,cAAA,CAACC,sBAAA,EAAA,EAAK,IAAA,EAAM,IAAA,EAAM,MAAM,EAAA,EAAI;AAAA;AAAA;AAGlC;AACA,UAAA,CAAW,WAAA,GAAc,YAAA","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/Button/Button.tsx"],"names":["React","jsxs","jsx","Icon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCO,IAAM,MAAA,GAAeA,gBAAA,CAAA,UAAA;AAAA,EAC1B,CACE;AAAA,IACE,QAAA;AAAA,IACA,OAAA,GAAU,SAAA;AAAA,IACV,IAAA,GAAO,IAAA;AAAA,IACP,IAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA,GAAY,EAAA;AAAA,IACZ,IAAA,GAAO,QAAA;AAAA,IACP,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,GAAA,GAAM;AAAA,MACV,KAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAS,IAAA,IAAQ,IAAA;AAAA,MACjB,OAAA,IAAW,SAAA;AAAA,MACX,KAAA,IAAS,OAAA;AAAA,MACT,QAAA,IAAY,UAAA;AAAA,MACZ;AAAA,KACF,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,GAAG,CAAA;AAEX,IAAA,uBACEC,eAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA;AAAA,QACA,SAAA,EAAW,GAAA;AAAA,QACX,UAAU,QAAA,IAAY,OAAA;AAAA,QACrB,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,OAAA,mBACCC,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU,eAAW,IAAA,EAAC,CAAA,GACpC,IAAA,mBACFA,cAAA,CAACC,sBAAA,EAAA,EAAK,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA,GAC1B,IAAA;AAAA,UACH,QAAA;AAAA,UACA,gCAAgBD,cAAA,CAACC,sBAAA,EAAA,EAAK,IAAA,EAAM,YAAA,EAAc,MAAM,EAAA,EAAI;AAAA;AAAA;AAAA,KACvD;AAAA,EAEJ;AACF;AACA,MAAA,CAAO,WAAA,GAAc,QAAA;AAYd,IAAM,UAAA,GAAmBH,gBAAA,CAAA,UAAA;AAAA,EAC9B,CAAC,EAAE,IAAA,EAAM,GAAA,EAAK,YAAY,EAAA,EAAI,GAAG,IAAA,EAAK,EAAG,GAAA,qBACvCE,cAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,QAAQ,SAAS,CAAA,CAAA;AAAA,MAC5B,YAAA,EAAY,GAAA,IAAO,IAAA,CAAK,YAAY,CAAA,IAAK,IAAA;AAAA,MACzC,KAAA,EAAO,GAAA;AAAA,MACN,GAAG,IAAA;AAAA,MAEJ,QAAA,kBAAAA,cAAA,CAACC,sBAAA,EAAA,EAAK,IAAA,EAAM,IAAA,EAAM,MAAM,EAAA,EAAI;AAAA;AAAA;AAGlC;AACA,UAAA,CAAW,WAAA,GAAc,YAAA","file":"chunk-U7TAQLPN.cjs","sourcesContent":["import \"../../styles/tokens.css\";\nimport \"../../styles/shared.css\";\nimport \"./Button.css\";\nimport * as React from \"react\";\nimport type { IconName } from \"../Icon\";\nimport { Icon } from \"../Icon\";\n\nexport type ButtonVariant = \"default\" | \"primary\" | \"ghost\" | \"danger\";\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface ButtonProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"type\"> {\n /** Visual variant. `primary` uses the accent color; `ghost` is borderless; `danger` is red. */\n variant?: ButtonVariant;\n /** Control height preset. */\n size?: ButtonSize;\n /** Leading icon. */\n icon?: IconName;\n /** Trailing icon. */\n trailingIcon?: IconName;\n /** Show spinner + disable interaction. */\n loading?: boolean;\n /** Make the button fill the container's width. */\n block?: boolean;\n /** Button type attribute. Defaults to \"button\" to avoid accidental form submits. */\n type?: \"button\" | \"submit\" | \"reset\";\n /** Extra class names. */\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * `Button` — the primary action surface.\n *\n * @example\n * <Button variant=\"primary\" icon=\"plus\">新建</Button>\n * <Button variant=\"ghost\" loading>保存</Button>\n */\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n children,\n variant = \"default\",\n size = \"md\",\n icon,\n trailingIcon,\n loading,\n block,\n disabled,\n className = \"\",\n type = \"button\",\n ...rest\n },\n ref\n ) => {\n const cls = [\n \"btn\",\n variant,\n size !== \"md\" && size,\n loading && \"loading\",\n block && \"block\",\n disabled && \"disabled\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <button\n ref={ref}\n type={type}\n className={cls}\n disabled={disabled || loading}\n {...rest}\n >\n {loading ? (\n <span className=\"spinner\" aria-hidden />\n ) : icon ? (\n <Icon name={icon} size={15} />\n ) : null}\n {children}\n {trailingIcon && <Icon name={trailingIcon} size={15} />}\n </button>\n );\n }\n);\nButton.displayName = \"Button\";\n\nexport interface IconButtonProps\n extends Omit<ButtonProps, \"icon\" | \"children\"> {\n icon: IconName;\n tip?: string;\n \"aria-label\"?: string;\n}\n\n/**\n * `IconButton` — square button containing just an icon. Pair with a tooltip.\n */\nexport const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(\n ({ icon, tip, className = \"\", ...rest }, ref) => (\n <Button\n ref={ref}\n className={`icon ${className}`}\n aria-label={tip || rest[\"aria-label\"] || icon}\n title={tip}\n {...rest}\n >\n <Icon name={icon} size={16} />\n </Button>\n )\n);\nIconButton.displayName = \"IconButton\";\n"]}
|