@fangxinyan/lumina 0.6.13 → 0.6.15

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 (239) hide show
  1. package/dist/Alert.cjs +3 -3
  2. package/dist/Alert.js +2 -2
  3. package/dist/AppShell.cjs +5 -5
  4. package/dist/AppShell.js +1 -1
  5. package/dist/AutoComplete.cjs +5 -5
  6. package/dist/AutoComplete.js +4 -4
  7. package/dist/Avatar.cjs +2 -2
  8. package/dist/Avatar.js +1 -1
  9. package/dist/Badge.cjs +2 -2
  10. package/dist/Badge.js +1 -1
  11. package/dist/Button.cjs +4 -4
  12. package/dist/Button.js +2 -2
  13. package/dist/{Calendar-RUTPKREW.css → Calendar-I6NHCXIB.css} +65 -0
  14. package/dist/Calendar.cjs +3 -3
  15. package/dist/Calendar.d.cts +2 -0
  16. package/dist/Calendar.d.ts +2 -0
  17. package/dist/Calendar.js +2 -2
  18. package/dist/Card.cjs +3 -3
  19. package/dist/Card.js +2 -2
  20. package/dist/Cascader.cjs +5 -5
  21. package/dist/Cascader.js +4 -4
  22. package/dist/Checkbox.cjs +3 -3
  23. package/dist/Checkbox.js +2 -2
  24. package/dist/Collapse.cjs +3 -3
  25. package/dist/Collapse.js +2 -2
  26. package/dist/ColorPicker.cjs +2 -2
  27. package/dist/ColorPicker.js +1 -1
  28. package/dist/CommandPalette.cjs +5 -5
  29. package/dist/CommandPalette.js +4 -4
  30. package/dist/ContextMenu.cjs +2 -2
  31. package/dist/ContextMenu.js +1 -1
  32. package/dist/DatePicker-VDVSIARF.css +60 -0
  33. package/dist/DatePicker.cjs +16 -0
  34. package/dist/DatePicker.d.cts +49 -0
  35. package/dist/DatePicker.d.ts +49 -0
  36. package/dist/DatePicker.js +7 -0
  37. package/dist/DateTimePicker-77ZLZIWO.css +224 -0
  38. package/dist/DateTimePicker.cjs +16 -0
  39. package/dist/DateTimePicker.d.cts +61 -0
  40. package/dist/DateTimePicker.d.ts +61 -0
  41. package/dist/DateTimePicker.js +7 -0
  42. package/dist/Divider.cjs +2 -2
  43. package/dist/Divider.js +1 -1
  44. package/dist/{Drawer-7N3URAJ6.css → Drawer-7KICRM4L.css} +1 -1
  45. package/dist/Drawer.cjs +3 -3
  46. package/dist/Drawer.d.cts +4 -0
  47. package/dist/Drawer.d.ts +4 -0
  48. package/dist/Drawer.js +2 -2
  49. package/dist/Empty.cjs +2 -2
  50. package/dist/Empty.js +1 -1
  51. package/dist/Form.cjs +4 -4
  52. package/dist/Form.js +1 -1
  53. package/dist/Icon.cjs +49 -49
  54. package/dist/Icon.js +1 -1
  55. package/dist/{Image-SGSRTHQX.css → Image-TDCXJISG.css} +1 -1
  56. package/dist/Image.cjs +6 -6
  57. package/dist/Image.d.cts +4 -0
  58. package/dist/Image.d.ts +4 -0
  59. package/dist/Image.js +2 -2
  60. package/dist/Input.cjs +5 -5
  61. package/dist/Input.js +3 -3
  62. package/dist/InputNumber.cjs +5 -5
  63. package/dist/InputNumber.js +4 -4
  64. package/dist/List.cjs +2 -2
  65. package/dist/List.js +1 -1
  66. package/dist/Message.cjs +6 -6
  67. package/dist/Message.js +2 -2
  68. package/dist/{Modal-MCFDYVUQ.css → Modal-ZFWNFEA5.css} +1 -1
  69. package/dist/Modal.cjs +4 -4
  70. package/dist/Modal.d.cts +4 -0
  71. package/dist/Modal.d.ts +4 -0
  72. package/dist/Modal.js +3 -3
  73. package/dist/Pagination.cjs +7 -7
  74. package/dist/Pagination.js +6 -6
  75. package/dist/Popover.cjs +2 -2
  76. package/dist/Popover.js +1 -1
  77. package/dist/Progress.cjs +2 -2
  78. package/dist/Progress.js +1 -1
  79. package/dist/Radio.cjs +3 -3
  80. package/dist/Radio.js +1 -1
  81. package/dist/Select.cjs +6 -6
  82. package/dist/Select.js +5 -5
  83. package/dist/Skeleton.cjs +2 -2
  84. package/dist/Skeleton.js +1 -1
  85. package/dist/Slider.cjs +2 -2
  86. package/dist/Slider.js +1 -1
  87. package/dist/Spin.cjs +2 -2
  88. package/dist/Spin.js +1 -1
  89. package/dist/Splitter.cjs +2 -2
  90. package/dist/Splitter.js +1 -1
  91. package/dist/StatusBar.cjs +3 -3
  92. package/dist/StatusBar.js +1 -1
  93. package/dist/Surface.cjs +4 -4
  94. package/dist/Surface.js +2 -2
  95. package/dist/Switch.cjs +2 -2
  96. package/dist/Switch.js +1 -1
  97. package/dist/Table.cjs +9 -9
  98. package/dist/Table.js +8 -8
  99. package/dist/TablePro.cjs +10 -10
  100. package/dist/TablePro.js +9 -9
  101. package/dist/Tabs.cjs +2 -2
  102. package/dist/Tabs.js +1 -1
  103. package/dist/Tag.cjs +3 -3
  104. package/dist/Tag.js +2 -2
  105. package/dist/Textarea.cjs +4 -4
  106. package/dist/Textarea.js +2 -2
  107. package/dist/Theme.cjs +11 -11
  108. package/dist/Theme.js +1 -1
  109. package/dist/ThemePanel.cjs +13 -13
  110. package/dist/ThemePanel.js +10 -10
  111. package/dist/TimePicker-6URACYEH.css +151 -0
  112. package/dist/TimePicker.cjs +15 -0
  113. package/dist/TimePicker.d.cts +63 -0
  114. package/dist/TimePicker.d.ts +63 -0
  115. package/dist/TimePicker.js +6 -0
  116. package/dist/Timeline.cjs +3 -3
  117. package/dist/Timeline.js +2 -2
  118. package/dist/Tooltip.cjs +2 -2
  119. package/dist/Tooltip.js +1 -1
  120. package/dist/Typography.cjs +7 -7
  121. package/dist/Typography.js +2 -2
  122. package/dist/{chunk-J7VYTDFN.cjs → chunk-262ED6WQ.cjs} +3 -3
  123. package/dist/chunk-26AJ7OY3.cjs +505 -0
  124. package/dist/{chunk-BX45WJRT.js → chunk-3VSHGM54.js} +9 -9
  125. package/dist/{chunk-KRVWQKTZ.js → chunk-3VXGZ3SJ.js} +3 -3
  126. package/dist/{chunk-VJVXXCNL.js → chunk-4HJBF4GY.js} +3 -3
  127. package/dist/chunk-4KDABJSY.cjs +241 -0
  128. package/dist/{chunk-ONHYDQFP.cjs → chunk-4TTRHEGM.cjs} +3 -3
  129. package/dist/{chunk-GVULVTWO.js → chunk-4YSGGZDB.js} +4 -4
  130. package/dist/{chunk-HNP7KEQP.cjs → chunk-5A6KSYWA.cjs} +1 -1
  131. package/dist/{chunk-RFFP6J6O.cjs → chunk-5ERD3W24.cjs} +4 -4
  132. package/dist/{chunk-TTXYZDQ3.js → chunk-5MOYKVB7.js} +2 -2
  133. package/dist/{chunk-X2NY3YQS.cjs → chunk-5QEI7GGA.cjs} +6 -6
  134. package/dist/{chunk-O7OPFKAM.js → chunk-6HF6UF73.js} +2 -2
  135. package/dist/{chunk-DCATZUT3.js → chunk-6K5YI4ZE.js} +2 -2
  136. package/dist/{chunk-EVKLGNVR.js → chunk-6LC4QROE.js} +3 -3
  137. package/dist/{chunk-6Z4PZWND.js → chunk-6LN4VVX7.js} +2 -2
  138. package/dist/{chunk-7RNT6KN4.js → chunk-6MEOLYNQ.js} +1 -1
  139. package/dist/{chunk-UMLRSKBE.js → chunk-6PHPRZTT.js} +4 -4
  140. package/dist/{chunk-4VPRY4EM.cjs → chunk-6Q76VLCE.cjs} +3 -3
  141. package/dist/{chunk-SWMQ2GKT.cjs → chunk-7IO3EOHN.cjs} +3 -3
  142. package/dist/{chunk-B55XILNY.cjs → chunk-7QXP6DXC.cjs} +4 -4
  143. package/dist/{chunk-56GNNOOT.cjs → chunk-7YJV45U6.cjs} +11 -11
  144. package/dist/{chunk-AJ44ZLJY.cjs → chunk-A4Z7PLHV.cjs} +59 -59
  145. package/dist/{chunk-RUE3QE6T.js → chunk-A6O25EP2.js} +2 -2
  146. package/dist/{chunk-ZNR6LWTQ.js → chunk-AAPZLBHQ.js} +1 -1
  147. package/dist/{chunk-Q4IAUKAW.js → chunk-ARUPS7JH.js} +2 -2
  148. package/dist/{chunk-VAOAAWGI.cjs → chunk-ATUPFAPZ.cjs} +3 -3
  149. package/dist/{chunk-GKBCXYDF.cjs → chunk-BNY2NVTL.cjs} +3 -3
  150. package/dist/{chunk-7J26GI3T.cjs → chunk-BT2RXFT4.cjs} +15 -13
  151. package/dist/{chunk-WY6AEPFW.js → chunk-BVQOJKRX.js} +8 -6
  152. package/dist/{chunk-QPZCDZWI.cjs → chunk-BW76ENTW.cjs} +1 -1
  153. package/dist/{chunk-EKNDL2XB.js → chunk-CFZVWY5N.js} +2 -2
  154. package/dist/chunk-CUBKHQ63.js +483 -0
  155. package/dist/chunk-CYBBUXUK.cjs +415 -0
  156. package/dist/{chunk-JST4HJ3I.js → chunk-D7GK6H6V.js} +1 -1
  157. package/dist/{chunk-T7RV2UMU.js → chunk-DSLYWX4O.js} +1 -1
  158. package/dist/{chunk-JKFGLYMM.js → chunk-EQ4FPOQQ.js} +14 -4
  159. package/dist/{chunk-ZZH4UIPN.cjs → chunk-ES7AWMNH.cjs} +1 -1
  160. package/dist/{chunk-ZLMJVSBO.cjs → chunk-FDUQPAQE.cjs} +1 -1
  161. package/dist/{chunk-HHBXCBZP.js → chunk-FDZG27IG.js} +1 -1
  162. package/dist/chunk-FKP5D5IS.js +271 -0
  163. package/dist/{chunk-EEHZRPPF.cjs → chunk-FQJY4D3T.cjs} +1 -1
  164. package/dist/{chunk-LA62SD2F.js → chunk-FYSXJXNW.js} +1 -1
  165. package/dist/{chunk-DEXYWDHF.js → chunk-GNV6W4BN.js} +1 -1
  166. package/dist/{chunk-NZBOHEQA.js → chunk-HBO7ZDEQ.js} +1 -1
  167. package/dist/{chunk-BAWP2QVY.js → chunk-I777JTTG.js} +1 -1
  168. package/dist/chunk-I7TOBKJO.js +219 -0
  169. package/dist/{chunk-IZGHMMX7.js → chunk-IOAOG5L7.js} +3 -3
  170. package/dist/{chunk-QQROR2RU.cjs → chunk-IOUAZYK2.cjs} +1 -1
  171. package/dist/{chunk-CQKQ7KS2.js → chunk-IPSNC5VZ.js} +2 -2
  172. package/dist/{chunk-7X7FXV5E.cjs → chunk-IVFVLRWJ.cjs} +14 -14
  173. package/dist/{chunk-LM5XXSGE.js → chunk-IZHH6CVY.js} +1 -1
  174. package/dist/{chunk-GGNBMIZ2.js → chunk-JFL2WMJZ.js} +2 -2
  175. package/dist/{chunk-XRIXQM3Z.cjs → chunk-JMFHL7GN.cjs} +1 -1
  176. package/dist/chunk-KHRYPNUV.cjs +293 -0
  177. package/dist/{chunk-LFPFFSN2.js → chunk-KMPFESEV.js} +1 -1
  178. package/dist/{chunk-TAHZH6DJ.js → chunk-KYV75JPQ.js} +1 -1
  179. package/dist/{chunk-2A2XM7D5.cjs → chunk-LEMMFFEY.cjs} +4 -4
  180. package/dist/{chunk-MZIZGYA4.cjs → chunk-M4NJTJKV.cjs} +1 -1
  181. package/dist/{chunk-HYXA7S43.js → chunk-MOZ52KN6.js} +1 -1
  182. package/dist/{chunk-E5MSFY5H.cjs → chunk-MPOO5VPW.cjs} +1 -1
  183. package/dist/{chunk-MPJLGYFV.cjs → chunk-MYW7LNB2.cjs} +1 -1
  184. package/dist/chunk-N7CHFKRS.js +393 -0
  185. package/dist/{chunk-VBTASJ3Y.cjs → chunk-N7OQNSII.cjs} +1 -1
  186. package/dist/{chunk-VGERRI4S.js → chunk-OTSDPQPV.js} +2 -2
  187. package/dist/{chunk-7NAN7OVX.cjs → chunk-P2OQTJZP.cjs} +1 -1
  188. package/dist/{chunk-HAA5C5YW.js → chunk-P64NPZBG.js} +2 -2
  189. package/dist/{chunk-QP6RNHGR.cjs → chunk-PBT4UKPL.cjs} +3 -3
  190. package/dist/{chunk-FUR5SDP7.cjs → chunk-PKNRTFNE.cjs} +1 -1
  191. package/dist/{chunk-FPXBY2MY.cjs → chunk-POU3W5J3.cjs} +1 -1
  192. package/dist/{chunk-SOY3LB7W.cjs → chunk-PSQ3HNZP.cjs} +1 -1
  193. package/dist/{chunk-BK4XKZUO.js → chunk-PU7VXDAS.js} +1 -1
  194. package/dist/{chunk-OCQC2ZSV.cjs → chunk-QMX67CVT.cjs} +1 -1
  195. package/dist/{chunk-R3JCW3ES.js → chunk-QNN3YV2P.js} +2 -2
  196. package/dist/{chunk-V5HMQGFD.js → chunk-R3DTXVP2.js} +1 -1
  197. package/dist/{chunk-EQGNKCBY.cjs → chunk-RFI5R42I.cjs} +4 -4
  198. package/dist/{chunk-FROWMHDP.cjs → chunk-RMFSX7DO.cjs} +18 -8
  199. package/dist/{chunk-TCWGIRAW.js → chunk-RR2BKV65.js} +1 -1
  200. package/dist/{chunk-YHFGMI7T.cjs → chunk-RSSOX4RQ.cjs} +8 -8
  201. package/dist/{chunk-3XV4LGQ7.cjs → chunk-RZEFKXL3.cjs} +3 -3
  202. package/dist/{chunk-GDWAQGOH.cjs → chunk-S2ZGXBUH.cjs} +1 -1
  203. package/dist/{chunk-M63HWVOS.js → chunk-S7IHWY24.js} +2 -2
  204. package/dist/{chunk-NLX2RB4L.cjs → chunk-SOQ56ZI2.cjs} +1 -1
  205. package/dist/{chunk-RV37BGW3.cjs → chunk-SW2HMNCA.cjs} +4 -4
  206. package/dist/{chunk-UVL5SIAQ.cjs → chunk-TBNPJPYG.cjs} +1 -1
  207. package/dist/{chunk-QVWCUKEY.js → chunk-TJECLLN4.js} +1 -1
  208. package/dist/{chunk-E2OC4CUE.js → chunk-TYLDISRK.js} +1 -1
  209. package/dist/{chunk-23HN42SP.cjs → chunk-ULUD3FED.cjs} +9 -6
  210. package/dist/{chunk-LINUXKS7.cjs → chunk-V5KUC5VH.cjs} +1 -1
  211. package/dist/{chunk-U2543OZS.cjs → chunk-VA2I7ZAL.cjs} +1 -1
  212. package/dist/{chunk-7TWL3SJ5.cjs → chunk-VS3I5OKA.cjs} +8 -8
  213. package/dist/{chunk-A7BI7YWZ.js → chunk-WMGMIE2D.js} +8 -5
  214. package/dist/{chunk-CCBEHIRU.cjs → chunk-X5MYHDEQ.cjs} +6 -6
  215. package/dist/{chunk-QSGH4FCS.cjs → chunk-X7XP6GEI.cjs} +1 -1
  216. package/dist/{chunk-UROQO2HR.js → chunk-XCXUGHDF.js} +1 -1
  217. package/dist/{chunk-2M5WJENK.js → chunk-YAFDVNXT.js} +1 -1
  218. package/dist/{chunk-PDYM26IC.cjs → chunk-ZBWUIR2J.cjs} +6 -6
  219. package/dist/{chunk-5GKALAMP.js → chunk-ZD3L4V3H.js} +2 -2
  220. package/dist/{chunk-XJTDCWKP.js → chunk-ZR4IMROK.js} +1 -1
  221. package/dist/{chunk-5MCFW2HC.js → chunk-ZTCRD2FL.js} +1 -1
  222. package/dist/index.cjs +214 -199
  223. package/dist/index.d.cts +4 -1
  224. package/dist/index.d.ts +4 -1
  225. package/dist/index.js +51 -48
  226. package/dist/styles.css +445 -3
  227. package/dist/{tokens-OJLK3XMZ.css → tokens-RYJ3DFTU.css} +3 -0
  228. package/dist/tokens.css +3 -0
  229. package/docs/llms/calendar.md +2 -1
  230. package/docs/llms/datepicker.md +69 -0
  231. package/docs/llms/datetimepicker.md +83 -0
  232. package/docs/llms/drawer.md +13 -0
  233. package/docs/llms/image.md +14 -0
  234. package/docs/llms/modal.md +13 -0
  235. package/docs/llms/timepicker.md +81 -0
  236. package/docs/llms.md +5 -2
  237. package/package.json +7 -3
  238. package/dist/chunk-56U4P7QA.cjs +0 -112
  239. package/dist/chunk-J3LUTXVO.js +0 -90
@@ -0,0 +1,293 @@
1
+ 'use strict';
2
+
3
+ var chunkYB3IWIOJ_cjs = require('./chunk-YB3IWIOJ.cjs');
4
+ var chunkVS3I5OKA_cjs = require('./chunk-VS3I5OKA.cjs');
5
+ var chunkSW2HMNCA_cjs = require('./chunk-SW2HMNCA.cjs');
6
+ var chunk4KDABJSY_cjs = require('./chunk-4KDABJSY.cjs');
7
+ require('./tokens-RYJ3DFTU.css');
8
+ require('./shared-NJHRNLRH.css');
9
+ require('./DatePicker-VDVSIARF.css');
10
+ var React = require('react');
11
+ var reactDom = require('react-dom');
12
+ var jsxRuntime = require('react/jsx-runtime');
13
+
14
+ function _interopNamespace(e) {
15
+ if (e && e.__esModule) return e;
16
+ var n = Object.create(null);
17
+ if (e) {
18
+ Object.keys(e).forEach(function (k) {
19
+ if (k !== 'default') {
20
+ var d = Object.getOwnPropertyDescriptor(e, k);
21
+ Object.defineProperty(n, k, d.get ? d : {
22
+ enumerable: true,
23
+ get: function () { return e[k]; }
24
+ });
25
+ }
26
+ });
27
+ }
28
+ n.default = e;
29
+ return Object.freeze(n);
30
+ }
31
+
32
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
33
+
34
+ var pad = (value) => String(value).padStart(2, "0");
35
+ var startOfDay = (date) => new Date(date.getFullYear(), date.getMonth(), date.getDate());
36
+ var isValidDate = (date) => date instanceof Date && !Number.isNaN(date.getTime());
37
+ var formatDate = (date, format) => {
38
+ if (!isValidDate(date)) return "";
39
+ if (typeof format === "function") return format(date);
40
+ const year = String(date.getFullYear());
41
+ const month = pad(date.getMonth() + 1);
42
+ const day = pad(date.getDate());
43
+ if (format === "YYYY/MM/DD") return `${year}/${month}/${day}`;
44
+ if (format === "YYYY\u5E74MM\u6708DD\u65E5") return `${year}\u5E74${month}\u6708${day}\u65E5`;
45
+ return `${year}-${month}-${day}`;
46
+ };
47
+ var parseDateInput = (input) => {
48
+ const text = input.trim();
49
+ if (!text) return null;
50
+ const match = text.match(/^(\d{4})[-/.年](\d{1,2})[-/.月](\d{1,2})日?$/);
51
+ if (!match) return null;
52
+ const year = Number(match[1]);
53
+ const month = Number(match[2]);
54
+ const day = Number(match[3]);
55
+ const date = new Date(year, month - 1, day);
56
+ if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {
57
+ return null;
58
+ }
59
+ return date;
60
+ };
61
+ var DatePicker = React__namespace.forwardRef(
62
+ ({
63
+ value,
64
+ defaultValue = null,
65
+ onChange,
66
+ format = "YYYY-MM-DD",
67
+ placeholder = "\u8BF7\u9009\u62E9\u65E5\u671F",
68
+ disabled,
69
+ readOnly,
70
+ invalid,
71
+ size = "md",
72
+ allowClear,
73
+ min,
74
+ max,
75
+ disabledDate,
76
+ placement = "bottom",
77
+ open: openProp,
78
+ defaultOpen = false,
79
+ onOpenChange,
80
+ popupClassName = "",
81
+ dropdownClassName = "",
82
+ className = "",
83
+ onKeyDown,
84
+ ...rest
85
+ }, ref) => {
86
+ const controlled = value !== void 0;
87
+ const [inner, setInner] = React__namespace.useState(
88
+ isValidDate(defaultValue) ? startOfDay(defaultValue) : null
89
+ );
90
+ const current = controlled ? isValidDate(value) ? startOfDay(value) : null : inner;
91
+ const currentTime = current?.getTime() ?? null;
92
+ const formattedCurrent = React__namespace.useMemo(
93
+ () => currentTime == null ? "" : formatDate(new Date(currentTime), format),
94
+ [currentTime, format]
95
+ );
96
+ const [draft, setDraft] = React__namespace.useState(formattedCurrent);
97
+ React__namespace.useEffect(() => {
98
+ setDraft(formattedCurrent);
99
+ }, [formattedCurrent]);
100
+ const openControlled = openProp !== void 0;
101
+ const [innerOpen, setInnerOpen] = React__namespace.useState(defaultOpen);
102
+ const open = openControlled ? !!openProp : innerOpen;
103
+ const setOpen = React__namespace.useCallback(
104
+ (next) => {
105
+ if (disabled || readOnly) return;
106
+ if (!openControlled) setInnerOpen(next);
107
+ onOpenChange?.(next);
108
+ },
109
+ [disabled, onOpenChange, openControlled, readOnly]
110
+ );
111
+ const rootRef = React__namespace.useRef(null);
112
+ const panelRef = React__namespace.useRef(null);
113
+ const { triggerRef, floatingStyle } = chunkYB3IWIOJ_cjs.useFloating({
114
+ open,
115
+ placement,
116
+ panelWidth: 344,
117
+ panelHeight: 404
118
+ });
119
+ const setRootRef = React__namespace.useCallback(
120
+ (node) => {
121
+ rootRef.current = node;
122
+ triggerRef.current = node;
123
+ if (typeof ref === "function") ref(node);
124
+ else if (ref) ref.current = node;
125
+ },
126
+ [ref, triggerRef]
127
+ );
128
+ const normalizedMin = React__namespace.useMemo(() => isValidDate(min) ? startOfDay(min) : void 0, [min]);
129
+ const normalizedMax = React__namespace.useMemo(() => isValidDate(max) ? startOfDay(max) : void 0, [max]);
130
+ const isDisabledDate = React__namespace.useCallback(
131
+ (date) => {
132
+ const day = startOfDay(date);
133
+ if (normalizedMin && day < normalizedMin) return true;
134
+ if (normalizedMax && day > normalizedMax) return true;
135
+ return disabledDate?.(day) ?? false;
136
+ },
137
+ [disabledDate, normalizedMax, normalizedMin]
138
+ );
139
+ const commit = React__namespace.useCallback(
140
+ (next, close = false) => {
141
+ if (!next) {
142
+ if (!controlled) setInner(null);
143
+ setDraft("");
144
+ onChange?.(null, "");
145
+ if (close) setOpen(false);
146
+ return;
147
+ }
148
+ const normalized = startOfDay(next);
149
+ if (isDisabledDate(normalized)) return;
150
+ if (!controlled) setInner(normalized);
151
+ const nextString = formatDate(normalized, format);
152
+ setDraft(nextString);
153
+ onChange?.(normalized, nextString);
154
+ if (close) setOpen(false);
155
+ },
156
+ [controlled, format, isDisabledDate, onChange, setOpen]
157
+ );
158
+ React__namespace.useEffect(() => {
159
+ if (!open) return;
160
+ const onDown = (event) => {
161
+ const target = event.target;
162
+ if (rootRef.current?.contains(target)) return;
163
+ if (panelRef.current?.contains(target)) return;
164
+ setOpen(false);
165
+ };
166
+ const onDocKey = (event) => {
167
+ if (event.key === "Escape") setOpen(false);
168
+ };
169
+ document.addEventListener("mousedown", onDown);
170
+ document.addEventListener("keydown", onDocKey);
171
+ return () => {
172
+ document.removeEventListener("mousedown", onDown);
173
+ document.removeEventListener("keydown", onDocKey);
174
+ };
175
+ }, [open, setOpen]);
176
+ const handleInputChange = (next) => {
177
+ setDraft(next);
178
+ if (next.trim() === "") commit(null);
179
+ };
180
+ const handleInputBlur = () => {
181
+ if (!draft.trim()) {
182
+ setDraft(formattedCurrent);
183
+ return;
184
+ }
185
+ if (typeof format === "function") {
186
+ setDraft(formattedCurrent);
187
+ return;
188
+ }
189
+ const parsed = parseDateInput(draft);
190
+ if (!parsed || isDisabledDate(parsed)) {
191
+ setDraft(formattedCurrent);
192
+ return;
193
+ }
194
+ commit(parsed);
195
+ };
196
+ const handleRootKeyDown = (event) => {
197
+ onKeyDown?.(event);
198
+ if (event.defaultPrevented) return;
199
+ if ((event.key === "ArrowDown" || event.key === "Enter") && !open) {
200
+ event.preventDefault();
201
+ setOpen(true);
202
+ }
203
+ if (event.key === "Escape" && open) {
204
+ event.preventDefault();
205
+ setOpen(false);
206
+ }
207
+ };
208
+ const today = startOfDay(/* @__PURE__ */ new Date());
209
+ const calendarValue = current ?? today;
210
+ const mergedPanelClassName = [popupClassName, dropdownClassName].filter(Boolean).join(" ");
211
+ const rootClassName = [
212
+ "date-picker",
213
+ size,
214
+ open && "open",
215
+ disabled && "disabled",
216
+ readOnly && "readonly",
217
+ invalid && "invalid",
218
+ className
219
+ ].filter(Boolean).join(" ");
220
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: setRootRef, className: rootClassName, onKeyDown: handleRootKeyDown, ...rest, children: [
221
+ /* @__PURE__ */ jsxRuntime.jsx(
222
+ chunkVS3I5OKA_cjs.Input,
223
+ {
224
+ value: draft,
225
+ size,
226
+ placeholder,
227
+ disabled,
228
+ readOnly,
229
+ invalid,
230
+ allowClear,
231
+ leadingIcon: "calendar",
232
+ onFocus: () => setOpen(true),
233
+ onClick: () => setOpen(true),
234
+ onValueChange: handleInputChange,
235
+ onBlur: handleInputBlur,
236
+ inputMode: "numeric",
237
+ "aria-expanded": open,
238
+ "aria-haspopup": "dialog"
239
+ }
240
+ ),
241
+ open && !disabled && !readOnly && typeof document !== "undefined" && reactDom.createPortal(
242
+ /* @__PURE__ */ jsxRuntime.jsxs(
243
+ "div",
244
+ {
245
+ ref: panelRef,
246
+ className: `date-picker-panel ${mergedPanelClassName}`,
247
+ role: "dialog",
248
+ style: floatingStyle,
249
+ children: [
250
+ /* @__PURE__ */ jsxRuntime.jsx(
251
+ chunk4KDABJSY_cjs.Calendar,
252
+ {
253
+ value: calendarValue,
254
+ min: normalizedMin,
255
+ max: normalizedMax,
256
+ disabledDate: isDisabledDate,
257
+ onChange: (next) => commit(next, true)
258
+ }
259
+ ),
260
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "date-picker-footer", children: [
261
+ /* @__PURE__ */ jsxRuntime.jsx(
262
+ chunkSW2HMNCA_cjs.Button,
263
+ {
264
+ size: "sm",
265
+ variant: "ghost",
266
+ disabled: isDisabledDate(today),
267
+ onClick: () => commit(today, true),
268
+ children: "\u4ECA\u5929"
269
+ }
270
+ ),
271
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "date-picker-footer-spacer" }),
272
+ allowClear && /* @__PURE__ */ jsxRuntime.jsx(
273
+ chunkSW2HMNCA_cjs.Button,
274
+ {
275
+ size: "sm",
276
+ variant: "ghost",
277
+ onClick: () => commit(null, true),
278
+ children: "\u6E05\u7A7A"
279
+ }
280
+ ),
281
+ /* @__PURE__ */ jsxRuntime.jsx(chunkSW2HMNCA_cjs.Button, { size: "sm", variant: "primary", onClick: () => setOpen(false), children: "\u786E\u5B9A" })
282
+ ] })
283
+ ]
284
+ }
285
+ ),
286
+ document.body
287
+ )
288
+ ] });
289
+ }
290
+ );
291
+ DatePicker.displayName = "DatePicker";
292
+
293
+ exports.DatePicker = DatePicker;
@@ -1,4 +1,4 @@
1
- import './tokens-OJLK3XMZ.css';
1
+ import './tokens-RYJ3DFTU.css';
2
2
  import './shared-NJHRNLRH.css';
3
3
  import './Progress-CZNXCYGW.css';
4
4
  import * as React from 'react';
@@ -1,4 +1,4 @@
1
- import './tokens-OJLK3XMZ.css';
1
+ import './tokens-RYJ3DFTU.css';
2
2
  import './shared-NJHRNLRH.css';
3
3
  import './Radio-IQKASYDF.css';
4
4
  import * as React from 'react';
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkOCQC2ZSV_cjs = require('./chunk-OCQC2ZSV.cjs');
4
- require('./tokens-OJLK3XMZ.css');
3
+ var chunkQMX67CVT_cjs = require('./chunk-QMX67CVT.cjs');
4
+ require('./tokens-RYJ3DFTU.css');
5
5
  require('./shared-NJHRNLRH.css');
6
6
  require('./Alert-HVPI6L4V.css');
7
7
  var React = require('react');
@@ -48,13 +48,13 @@ var Alert = React__namespace.forwardRef(({
48
48
  role: "alert",
49
49
  ...rest,
50
50
  children: [
51
- showIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "alert-ico", children: chunkOCQC2ZSV_cjs.renderIconSlot(iconNode, { size: 14 }) }),
51
+ showIcon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "alert-ico", children: chunkQMX67CVT_cjs.renderIconSlot(iconNode, { size: 14 }) }),
52
52
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "alert-body", children: [
53
53
  title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "alert-title", children: title }),
54
54
  children && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "alert-desc", children })
55
55
  ] }),
56
56
  action && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "alert-action", children: action }),
57
- closable && /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "alert-close", onClick: onClose, "aria-label": "Dismiss", children: /* @__PURE__ */ jsxRuntime.jsx(chunkOCQC2ZSV_cjs.Icon, { name: "x", size: 12 }) })
57
+ closable && /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "alert-close", onClick: onClose, "aria-label": "Dismiss", children: /* @__PURE__ */ jsxRuntime.jsx(chunkQMX67CVT_cjs.Icon, { name: "x", size: 12 }) })
58
58
  ]
59
59
  }
60
60
  );
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- require('./tokens-OJLK3XMZ.css');
3
+ require('./tokens-RYJ3DFTU.css');
4
4
  require('./shared-NJHRNLRH.css');
5
5
  require('./Skeleton-CVWH2VWN.css');
6
6
  var React = require('react');
@@ -1,5 +1,5 @@
1
1
  import { useFloating } from './chunk-DUFRASGO.js';
2
- import './tokens-OJLK3XMZ.css';
2
+ import './tokens-RYJ3DFTU.css';
3
3
  import './shared-NJHRNLRH.css';
4
4
  import './Tooltip-5FSPJWLX.css';
5
5
  import * as React from 'react';
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- require('./tokens-OJLK3XMZ.css');
3
+ require('./tokens-RYJ3DFTU.css');
4
4
  require('./shared-NJHRNLRH.css');
5
5
  require('./Slider-UM2IZZBH.css');
6
6
  var React = require('react');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- require('./tokens-OJLK3XMZ.css');
3
+ require('./tokens-RYJ3DFTU.css');
4
4
  require('./shared-NJHRNLRH.css');
5
5
  require('./Switch-COAQIOMH.css');
6
6
  var React = require('react');