@fangxinyan/lumina 0.6.16 → 0.6.17

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 (36) hide show
  1. package/dist/DatePicker.cjs +3 -2
  2. package/dist/DatePicker.js +2 -1
  3. package/dist/DateTimePicker.cjs +3 -2
  4. package/dist/DateTimePicker.js +2 -1
  5. package/dist/Pagination.cjs +3 -3
  6. package/dist/Pagination.js +2 -2
  7. package/dist/Select.cjs +2 -2
  8. package/dist/Select.js +1 -1
  9. package/dist/Table.cjs +4 -4
  10. package/dist/Table.js +3 -3
  11. package/dist/TablePro.cjs +5 -5
  12. package/dist/TablePro.js +4 -4
  13. package/dist/TimePicker.cjs +3 -2
  14. package/dist/TimePicker.js +2 -1
  15. package/dist/{chunk-QNN3YV2P.js → chunk-2FOC3D6X.js} +1 -1
  16. package/dist/chunk-35RCCUGO.cjs +62 -0
  17. package/dist/{chunk-PBT4UKPL.cjs → chunk-4ACCOYBY.cjs} +2 -2
  18. package/dist/{chunk-FKP5D5IS.js → chunk-7NTTRKNT.js} +8 -2
  19. package/dist/{chunk-6PHPRZTT.js → chunk-E22OIVYP.js} +17 -1
  20. package/dist/{chunk-DU4VSUBF.js → chunk-HG6YS4I7.js} +8 -2
  21. package/dist/{chunk-ZBWUIR2J.cjs → chunk-L6GIV5DQ.cjs} +2 -2
  22. package/dist/{chunk-32FWB5NO.cjs → chunk-MWEHU7YO.cjs} +8 -2
  23. package/dist/{chunk-7YJV45U6.cjs → chunk-NXBFEIUX.cjs} +2 -2
  24. package/dist/chunk-RC6ULCQP.js +40 -0
  25. package/dist/{chunk-YPE6CDXQ.js → chunk-SOCYOUGM.js} +8 -2
  26. package/dist/{chunk-KHRYPNUV.cjs → chunk-T2O4DTDE.cjs} +8 -2
  27. package/dist/{chunk-4YSGGZDB.js → chunk-UGAN4BBW.js} +1 -1
  28. package/dist/{chunk-IVFVLRWJ.cjs → chunk-UW57F3UO.cjs} +17 -1
  29. package/dist/{chunk-SFEWMO45.cjs → chunk-UWL6DRZW.cjs} +8 -2
  30. package/dist/{chunk-6LC4QROE.js → chunk-V5SQOZPF.js} +1 -1
  31. package/dist/index.cjs +16 -15
  32. package/dist/index.d.cts +1 -1
  33. package/dist/index.d.ts +1 -1
  34. package/dist/index.js +9 -8
  35. package/docs/llms.md +1 -1
  36. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkKHRYPNUV_cjs = require('./chunk-KHRYPNUV.cjs');
3
+ var chunkT2O4DTDE_cjs = require('./chunk-T2O4DTDE.cjs');
4
+ require('./chunk-35RCCUGO.cjs');
4
5
  require('./chunk-YB3IWIOJ.cjs');
5
6
  require('./chunk-VS3I5OKA.cjs');
6
7
  require('./chunk-RZEFKXL3.cjs');
@@ -12,5 +13,5 @@ require('./chunk-QMX67CVT.cjs');
12
13
 
13
14
  Object.defineProperty(exports, "DatePicker", {
14
15
  enumerable: true,
15
- get: function () { return chunkKHRYPNUV_cjs.DatePicker; }
16
+ get: function () { return chunkT2O4DTDE_cjs.DatePicker; }
16
17
  });
@@ -1,4 +1,5 @@
1
- export { DatePicker } from './chunk-FKP5D5IS.js';
1
+ export { DatePicker } from './chunk-7NTTRKNT.js';
2
+ import './chunk-RC6ULCQP.js';
2
3
  import './chunk-DUFRASGO.js';
3
4
  import './chunk-IOAOG5L7.js';
4
5
  import './chunk-S7IHWY24.js';
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunk32FWB5NO_cjs = require('./chunk-32FWB5NO.cjs');
3
+ var chunkMWEHU7YO_cjs = require('./chunk-MWEHU7YO.cjs');
4
+ require('./chunk-35RCCUGO.cjs');
4
5
  require('./chunk-YB3IWIOJ.cjs');
5
6
  require('./chunk-VS3I5OKA.cjs');
6
7
  require('./chunk-RZEFKXL3.cjs');
@@ -12,5 +13,5 @@ require('./chunk-QMX67CVT.cjs');
12
13
 
13
14
  Object.defineProperty(exports, "DateTimePicker", {
14
15
  enumerable: true,
15
- get: function () { return chunk32FWB5NO_cjs.DateTimePicker; }
16
+ get: function () { return chunkMWEHU7YO_cjs.DateTimePicker; }
16
17
  });
@@ -1,4 +1,5 @@
1
- export { DateTimePicker } from './chunk-YPE6CDXQ.js';
1
+ export { DateTimePicker } from './chunk-SOCYOUGM.js';
2
+ import './chunk-RC6ULCQP.js';
2
3
  import './chunk-DUFRASGO.js';
3
4
  import './chunk-IOAOG5L7.js';
4
5
  import './chunk-S7IHWY24.js';
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkZBWUIR2J_cjs = require('./chunk-ZBWUIR2J.cjs');
4
- require('./chunk-IVFVLRWJ.cjs');
3
+ var chunkL6GIV5DQ_cjs = require('./chunk-L6GIV5DQ.cjs');
4
+ require('./chunk-UW57F3UO.cjs');
5
5
  require('./chunk-5ERD3W24.cjs');
6
6
  require('./chunk-YB3IWIOJ.cjs');
7
7
  require('./chunk-VS3I5OKA.cjs');
@@ -12,5 +12,5 @@ require('./chunk-QMX67CVT.cjs');
12
12
 
13
13
  Object.defineProperty(exports, "Pagination", {
14
14
  enumerable: true,
15
- get: function () { return chunkZBWUIR2J_cjs.Pagination; }
15
+ get: function () { return chunkL6GIV5DQ_cjs.Pagination; }
16
16
  });
@@ -1,5 +1,5 @@
1
- export { Pagination } from './chunk-6LC4QROE.js';
2
- import './chunk-6PHPRZTT.js';
1
+ export { Pagination } from './chunk-V5SQOZPF.js';
2
+ import './chunk-E22OIVYP.js';
3
3
  import './chunk-6K5YI4ZE.js';
4
4
  import './chunk-DUFRASGO.js';
5
5
  import './chunk-IOAOG5L7.js';
package/dist/Select.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkIVFVLRWJ_cjs = require('./chunk-IVFVLRWJ.cjs');
3
+ var chunkUW57F3UO_cjs = require('./chunk-UW57F3UO.cjs');
4
4
  require('./chunk-5ERD3W24.cjs');
5
5
  require('./chunk-YB3IWIOJ.cjs');
6
6
  require('./chunk-VS3I5OKA.cjs');
@@ -11,5 +11,5 @@ require('./chunk-QMX67CVT.cjs');
11
11
 
12
12
  Object.defineProperty(exports, "Select", {
13
13
  enumerable: true,
14
- get: function () { return chunkIVFVLRWJ_cjs.Select; }
14
+ get: function () { return chunkUW57F3UO_cjs.Select; }
15
15
  });
package/dist/Select.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Select } from './chunk-6PHPRZTT.js';
1
+ export { Select } from './chunk-E22OIVYP.js';
2
2
  import './chunk-6K5YI4ZE.js';
3
3
  import './chunk-DUFRASGO.js';
4
4
  import './chunk-IOAOG5L7.js';
package/dist/Table.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunk7YJV45U6_cjs = require('./chunk-7YJV45U6.cjs');
4
- require('./chunk-ZBWUIR2J.cjs');
5
- require('./chunk-IVFVLRWJ.cjs');
3
+ var chunkNXBFEIUX_cjs = require('./chunk-NXBFEIUX.cjs');
4
+ require('./chunk-L6GIV5DQ.cjs');
5
+ require('./chunk-UW57F3UO.cjs');
6
6
  require('./chunk-5ERD3W24.cjs');
7
7
  require('./chunk-ATUPFAPZ.cjs');
8
8
  require('./chunk-YB3IWIOJ.cjs');
@@ -14,5 +14,5 @@ require('./chunk-QMX67CVT.cjs');
14
14
 
15
15
  Object.defineProperty(exports, "Table", {
16
16
  enumerable: true,
17
- get: function () { return chunk7YJV45U6_cjs.Table; }
17
+ get: function () { return chunkNXBFEIUX_cjs.Table; }
18
18
  });
package/dist/Table.js CHANGED
@@ -1,6 +1,6 @@
1
- export { Table } from './chunk-4YSGGZDB.js';
2
- import './chunk-6LC4QROE.js';
3
- import './chunk-6PHPRZTT.js';
1
+ export { Table } from './chunk-UGAN4BBW.js';
2
+ import './chunk-V5SQOZPF.js';
3
+ import './chunk-E22OIVYP.js';
4
4
  import './chunk-6K5YI4ZE.js';
5
5
  import './chunk-ZD3L4V3H.js';
6
6
  import './chunk-DUFRASGO.js';
package/dist/TablePro.cjs CHANGED
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkPBT4UKPL_cjs = require('./chunk-PBT4UKPL.cjs');
4
- require('./chunk-7YJV45U6.cjs');
5
- require('./chunk-ZBWUIR2J.cjs');
6
- require('./chunk-IVFVLRWJ.cjs');
3
+ var chunk4ACCOYBY_cjs = require('./chunk-4ACCOYBY.cjs');
4
+ require('./chunk-NXBFEIUX.cjs');
5
+ require('./chunk-L6GIV5DQ.cjs');
6
+ require('./chunk-UW57F3UO.cjs');
7
7
  require('./chunk-5ERD3W24.cjs');
8
8
  require('./chunk-ATUPFAPZ.cjs');
9
9
  require('./chunk-YB3IWIOJ.cjs');
@@ -15,5 +15,5 @@ require('./chunk-QMX67CVT.cjs');
15
15
 
16
16
  Object.defineProperty(exports, "TablePro", {
17
17
  enumerable: true,
18
- get: function () { return chunkPBT4UKPL_cjs.TablePro; }
18
+ get: function () { return chunk4ACCOYBY_cjs.TablePro; }
19
19
  });
package/dist/TablePro.js CHANGED
@@ -1,7 +1,7 @@
1
- export { TablePro } from './chunk-QNN3YV2P.js';
2
- import './chunk-4YSGGZDB.js';
3
- import './chunk-6LC4QROE.js';
4
- import './chunk-6PHPRZTT.js';
1
+ export { TablePro } from './chunk-2FOC3D6X.js';
2
+ import './chunk-UGAN4BBW.js';
3
+ import './chunk-V5SQOZPF.js';
4
+ import './chunk-E22OIVYP.js';
5
5
  import './chunk-6K5YI4ZE.js';
6
6
  import './chunk-ZD3L4V3H.js';
7
7
  import './chunk-DUFRASGO.js';
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkSFEWMO45_cjs = require('./chunk-SFEWMO45.cjs');
3
+ var chunkUWL6DRZW_cjs = require('./chunk-UWL6DRZW.cjs');
4
+ require('./chunk-35RCCUGO.cjs');
4
5
  require('./chunk-YB3IWIOJ.cjs');
5
6
  require('./chunk-VS3I5OKA.cjs');
6
7
  require('./chunk-RZEFKXL3.cjs');
@@ -11,5 +12,5 @@ require('./chunk-QMX67CVT.cjs');
11
12
 
12
13
  Object.defineProperty(exports, "TimePicker", {
13
14
  enumerable: true,
14
- get: function () { return chunkSFEWMO45_cjs.TimePicker; }
15
+ get: function () { return chunkUWL6DRZW_cjs.TimePicker; }
15
16
  });
@@ -1,4 +1,5 @@
1
- export { TimePicker } from './chunk-DU4VSUBF.js';
1
+ export { TimePicker } from './chunk-HG6YS4I7.js';
2
+ import './chunk-RC6ULCQP.js';
2
3
  import './chunk-DUFRASGO.js';
3
4
  import './chunk-IOAOG5L7.js';
4
5
  import './chunk-S7IHWY24.js';
@@ -1,4 +1,4 @@
1
- import { Table } from './chunk-4YSGGZDB.js';
1
+ import { Table } from './chunk-UGAN4BBW.js';
2
2
  import './tokens-RYJ3DFTU.css';
3
3
  import './shared-NJHRNLRH.css';
4
4
  import './TablePro-3NGWERWT.css';
@@ -0,0 +1,62 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ function _interopNamespace(e) {
6
+ if (e && e.__esModule) return e;
7
+ var n = Object.create(null);
8
+ if (e) {
9
+ Object.keys(e).forEach(function (k) {
10
+ if (k !== 'default') {
11
+ var d = Object.getOwnPropertyDescriptor(e, k);
12
+ Object.defineProperty(n, k, d.get ? d : {
13
+ enumerable: true,
14
+ get: function () { return e[k]; }
15
+ });
16
+ }
17
+ });
18
+ }
19
+ n.default = e;
20
+ return Object.freeze(n);
21
+ }
22
+
23
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
24
+
25
+ // src/utils/useInputTriggerToggle.ts
26
+ function useInputTriggerToggle({
27
+ open,
28
+ disabled,
29
+ readOnly,
30
+ setOpen
31
+ }) {
32
+ const pointerDownOpenRef = React__namespace.useRef(false);
33
+ const focusOpenedRef = React__namespace.useRef(false);
34
+ const handlePointerDown = React__namespace.useCallback(() => {
35
+ pointerDownOpenRef.current = open;
36
+ focusOpenedRef.current = false;
37
+ }, [open]);
38
+ const handleFocus = React__namespace.useCallback(() => {
39
+ if (disabled || readOnly || open) return;
40
+ focusOpenedRef.current = true;
41
+ setOpen(true);
42
+ }, [disabled, open, readOnly, setOpen]);
43
+ const handleClick = React__namespace.useCallback(() => {
44
+ if (disabled || readOnly) return;
45
+ if (focusOpenedRef.current) {
46
+ focusOpenedRef.current = false;
47
+ pointerDownOpenRef.current = false;
48
+ return;
49
+ }
50
+ const nextOpen = !(pointerDownOpenRef.current || open);
51
+ pointerDownOpenRef.current = false;
52
+ setOpen(nextOpen);
53
+ }, [disabled, open, readOnly, setOpen]);
54
+ return {
55
+ onPointerDown: handlePointerDown,
56
+ onMouseDown: handlePointerDown,
57
+ onFocus: handleFocus,
58
+ onClick: handleClick
59
+ };
60
+ }
61
+
62
+ exports.useInputTriggerToggle = useInputTriggerToggle;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk7YJV45U6_cjs = require('./chunk-7YJV45U6.cjs');
3
+ var chunkNXBFEIUX_cjs = require('./chunk-NXBFEIUX.cjs');
4
4
  require('./tokens-RYJ3DFTU.css');
5
5
  require('./shared-NJHRNLRH.css');
6
6
  require('./TablePro-3NGWERWT.css');
@@ -71,7 +71,7 @@ var TableProInner = ({
71
71
  actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "table-toolbar-actions", children: actions })
72
72
  ] }),
73
73
  /* @__PURE__ */ jsxRuntime.jsx(
74
- chunk7YJV45U6_cjs.Table,
74
+ chunkNXBFEIUX_cjs.Table,
75
75
  {
76
76
  columns,
77
77
  data,
@@ -1,3 +1,4 @@
1
+ import { useInputTriggerToggle } from './chunk-RC6ULCQP.js';
1
2
  import { useFloating } from './chunk-DUFRASGO.js';
2
3
  import { Input } from './chunk-IOAOG5L7.js';
3
4
  import { Button } from './chunk-IPSNC5VZ.js';
@@ -86,6 +87,12 @@ var DatePicker = React.forwardRef(
86
87
  },
87
88
  [disabled, onOpenChange, openControlled, readOnly]
88
89
  );
90
+ const inputTriggerHandlers = useInputTriggerToggle({
91
+ open,
92
+ disabled,
93
+ readOnly,
94
+ setOpen
95
+ });
89
96
  const rootRef = React.useRef(null);
90
97
  const panelRef = React.useRef(null);
91
98
  const { triggerRef, floatingStyle } = useFloating({
@@ -207,8 +214,7 @@ var DatePicker = React.forwardRef(
207
214
  invalid,
208
215
  allowClear,
209
216
  leadingIcon: "calendar",
210
- onFocus: () => setOpen(true),
211
- onClick: () => setOpen(true),
217
+ ...inputTriggerHandlers,
212
218
  onValueChange: handleInputChange,
213
219
  onBlur: handleInputBlur,
214
220
  inputMode: "numeric",
@@ -137,7 +137,12 @@ var SelectInner = (props, forwardedRef) => {
137
137
  if (!multiControlled) setInnerMulti(next);
138
138
  props.onChange?.(next);
139
139
  };
140
+ const stopClearActivation = (e) => {
141
+ e.preventDefault();
142
+ e.stopPropagation();
143
+ };
140
144
  const clearAll = (e) => {
145
+ e.preventDefault();
141
146
  e.stopPropagation();
142
147
  if (isMulti) {
143
148
  if (!multiControlled) setInnerMulti([]);
@@ -274,7 +279,18 @@ var SelectInner = (props, forwardedRef) => {
274
279
  onClick: () => !disabled && setOpen(!open),
275
280
  children: [
276
281
  renderTrigger(),
277
- showClear && /* @__PURE__ */ jsx("span", { className: "select-clear", role: "button", "aria-label": "Clear", onClick: clearAll, children: /* @__PURE__ */ jsx(Icon, { name: "x", size: 12 }) }),
282
+ showClear && /* @__PURE__ */ jsx(
283
+ "span",
284
+ {
285
+ className: "select-clear",
286
+ role: "button",
287
+ "aria-label": "Clear",
288
+ onPointerDown: stopClearActivation,
289
+ onMouseDown: stopClearActivation,
290
+ onClick: clearAll,
291
+ children: /* @__PURE__ */ jsx(Icon, { name: "x", size: 12 })
292
+ }
293
+ ),
278
294
  /* @__PURE__ */ jsx(Icon, { name: "chevDown", size: 14, className: "select-caret" })
279
295
  ]
280
296
  }
@@ -1,3 +1,4 @@
1
+ import { useInputTriggerToggle } from './chunk-RC6ULCQP.js';
1
2
  import { useFloating } from './chunk-DUFRASGO.js';
2
3
  import { Input } from './chunk-IOAOG5L7.js';
3
4
  import { Button } from './chunk-IPSNC5VZ.js';
@@ -114,6 +115,12 @@ var TimePicker = React.forwardRef(
114
115
  },
115
116
  [disabled, onOpenChange, openControlled, readOnly]
116
117
  );
118
+ const inputTriggerHandlers = useInputTriggerToggle({
119
+ open,
120
+ disabled,
121
+ readOnly,
122
+ setOpen
123
+ });
117
124
  const rootRef = React.useRef(null);
118
125
  const panelRef = React.useRef(null);
119
126
  const { triggerRef, floatingStyle } = useFloating({
@@ -331,8 +338,7 @@ var TimePicker = React.forwardRef(
331
338
  invalid,
332
339
  allowClear,
333
340
  leadingIcon: "clock",
334
- onFocus: () => setOpen(true),
335
- onClick: () => setOpen(true),
341
+ ...inputTriggerHandlers,
336
342
  onValueChange: handleInputChange,
337
343
  onBlur: handleInputBlur,
338
344
  inputMode: "numeric",
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkIVFVLRWJ_cjs = require('./chunk-IVFVLRWJ.cjs');
3
+ var chunkUW57F3UO_cjs = require('./chunk-UW57F3UO.cjs');
4
4
  var chunkQMX67CVT_cjs = require('./chunk-QMX67CVT.cjs');
5
5
  require('./tokens-RYJ3DFTU.css');
6
6
  require('./shared-NJHRNLRH.css');
@@ -124,7 +124,7 @@ var Pagination = React__namespace.forwardRef(({
124
124
  }
125
125
  ),
126
126
  showSizeChanger && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pg-size-changer", children: /* @__PURE__ */ jsxRuntime.jsx(
127
- chunkIVFVLRWJ_cjs.Select,
127
+ chunkUW57F3UO_cjs.Select,
128
128
  {
129
129
  value: pageSize,
130
130
  size: "sm",
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ var chunk35RCCUGO_cjs = require('./chunk-35RCCUGO.cjs');
3
4
  var chunkYB3IWIOJ_cjs = require('./chunk-YB3IWIOJ.cjs');
4
5
  var chunkVS3I5OKA_cjs = require('./chunk-VS3I5OKA.cjs');
5
6
  var chunkSW2HMNCA_cjs = require('./chunk-SW2HMNCA.cjs');
@@ -166,6 +167,12 @@ var DateTimePicker = React__namespace.forwardRef(
166
167
  },
167
168
  [disabled, onOpenChange, openControlled, readOnly]
168
169
  );
170
+ const inputTriggerHandlers = chunk35RCCUGO_cjs.useInputTriggerToggle({
171
+ open,
172
+ disabled,
173
+ readOnly,
174
+ setOpen
175
+ });
169
176
  const rootRef = React__namespace.useRef(null);
170
177
  const panelRef = React__namespace.useRef(null);
171
178
  const { triggerRef, floatingStyle } = chunkYB3IWIOJ_cjs.useFloating({
@@ -430,8 +437,7 @@ var DateTimePicker = React__namespace.forwardRef(
430
437
  invalid,
431
438
  allowClear,
432
439
  leadingIcon: "calendar",
433
- onFocus: () => setOpen(true),
434
- onClick: () => setOpen(true),
440
+ ...inputTriggerHandlers,
435
441
  onValueChange: handleInputChange,
436
442
  onBlur: handleInputBlur,
437
443
  inputMode: "numeric",
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkZBWUIR2J_cjs = require('./chunk-ZBWUIR2J.cjs');
3
+ var chunkL6GIV5DQ_cjs = require('./chunk-L6GIV5DQ.cjs');
4
4
  var chunkATUPFAPZ_cjs = require('./chunk-ATUPFAPZ.cjs');
5
5
  var chunkYB3IWIOJ_cjs = require('./chunk-YB3IWIOJ.cjs');
6
6
  var chunkQMX67CVT_cjs = require('./chunk-QMX67CVT.cjs');
@@ -398,7 +398,7 @@ var TableInner = ({
398
398
  }
399
399
  ),
400
400
  pagEnabled && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "table-pagination", children: /* @__PURE__ */ jsxRuntime.jsx(
401
- chunkZBWUIR2J_cjs.Pagination,
401
+ chunkL6GIV5DQ_cjs.Pagination,
402
402
  {
403
403
  total: totalCount,
404
404
  pageSize: curPageSize,
@@ -0,0 +1,40 @@
1
+ import * as React from 'react';
2
+
3
+ // src/utils/useInputTriggerToggle.ts
4
+ function useInputTriggerToggle({
5
+ open,
6
+ disabled,
7
+ readOnly,
8
+ setOpen
9
+ }) {
10
+ const pointerDownOpenRef = React.useRef(false);
11
+ const focusOpenedRef = React.useRef(false);
12
+ const handlePointerDown = React.useCallback(() => {
13
+ pointerDownOpenRef.current = open;
14
+ focusOpenedRef.current = false;
15
+ }, [open]);
16
+ const handleFocus = React.useCallback(() => {
17
+ if (disabled || readOnly || open) return;
18
+ focusOpenedRef.current = true;
19
+ setOpen(true);
20
+ }, [disabled, open, readOnly, setOpen]);
21
+ const handleClick = React.useCallback(() => {
22
+ if (disabled || readOnly) return;
23
+ if (focusOpenedRef.current) {
24
+ focusOpenedRef.current = false;
25
+ pointerDownOpenRef.current = false;
26
+ return;
27
+ }
28
+ const nextOpen = !(pointerDownOpenRef.current || open);
29
+ pointerDownOpenRef.current = false;
30
+ setOpen(nextOpen);
31
+ }, [disabled, open, readOnly, setOpen]);
32
+ return {
33
+ onPointerDown: handlePointerDown,
34
+ onMouseDown: handlePointerDown,
35
+ onFocus: handleFocus,
36
+ onClick: handleClick
37
+ };
38
+ }
39
+
40
+ export { useInputTriggerToggle };
@@ -1,3 +1,4 @@
1
+ import { useInputTriggerToggle } from './chunk-RC6ULCQP.js';
1
2
  import { useFloating } from './chunk-DUFRASGO.js';
2
3
  import { Input } from './chunk-IOAOG5L7.js';
3
4
  import { Button } from './chunk-IPSNC5VZ.js';
@@ -144,6 +145,12 @@ var DateTimePicker = React.forwardRef(
144
145
  },
145
146
  [disabled, onOpenChange, openControlled, readOnly]
146
147
  );
148
+ const inputTriggerHandlers = useInputTriggerToggle({
149
+ open,
150
+ disabled,
151
+ readOnly,
152
+ setOpen
153
+ });
147
154
  const rootRef = React.useRef(null);
148
155
  const panelRef = React.useRef(null);
149
156
  const { triggerRef, floatingStyle } = useFloating({
@@ -408,8 +415,7 @@ var DateTimePicker = React.forwardRef(
408
415
  invalid,
409
416
  allowClear,
410
417
  leadingIcon: "calendar",
411
- onFocus: () => setOpen(true),
412
- onClick: () => setOpen(true),
418
+ ...inputTriggerHandlers,
413
419
  onValueChange: handleInputChange,
414
420
  onBlur: handleInputBlur,
415
421
  inputMode: "numeric",
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ var chunk35RCCUGO_cjs = require('./chunk-35RCCUGO.cjs');
3
4
  var chunkYB3IWIOJ_cjs = require('./chunk-YB3IWIOJ.cjs');
4
5
  var chunkVS3I5OKA_cjs = require('./chunk-VS3I5OKA.cjs');
5
6
  var chunkSW2HMNCA_cjs = require('./chunk-SW2HMNCA.cjs');
@@ -108,6 +109,12 @@ var DatePicker = React__namespace.forwardRef(
108
109
  },
109
110
  [disabled, onOpenChange, openControlled, readOnly]
110
111
  );
112
+ const inputTriggerHandlers = chunk35RCCUGO_cjs.useInputTriggerToggle({
113
+ open,
114
+ disabled,
115
+ readOnly,
116
+ setOpen
117
+ });
111
118
  const rootRef = React__namespace.useRef(null);
112
119
  const panelRef = React__namespace.useRef(null);
113
120
  const { triggerRef, floatingStyle } = chunkYB3IWIOJ_cjs.useFloating({
@@ -229,8 +236,7 @@ var DatePicker = React__namespace.forwardRef(
229
236
  invalid,
230
237
  allowClear,
231
238
  leadingIcon: "calendar",
232
- onFocus: () => setOpen(true),
233
- onClick: () => setOpen(true),
239
+ ...inputTriggerHandlers,
234
240
  onValueChange: handleInputChange,
235
241
  onBlur: handleInputBlur,
236
242
  inputMode: "numeric",
@@ -1,4 +1,4 @@
1
- import { Pagination } from './chunk-6LC4QROE.js';
1
+ import { Pagination } from './chunk-V5SQOZPF.js';
2
2
  import { Checkbox } from './chunk-ZD3L4V3H.js';
3
3
  import { useFloating } from './chunk-DUFRASGO.js';
4
4
  import { Icon } from './chunk-FDZG27IG.js';
@@ -159,7 +159,12 @@ var SelectInner = (props, forwardedRef) => {
159
159
  if (!multiControlled) setInnerMulti(next);
160
160
  props.onChange?.(next);
161
161
  };
162
+ const stopClearActivation = (e) => {
163
+ e.preventDefault();
164
+ e.stopPropagation();
165
+ };
162
166
  const clearAll = (e) => {
167
+ e.preventDefault();
163
168
  e.stopPropagation();
164
169
  if (isMulti) {
165
170
  if (!multiControlled) setInnerMulti([]);
@@ -296,7 +301,18 @@ var SelectInner = (props, forwardedRef) => {
296
301
  onClick: () => !disabled && setOpen(!open),
297
302
  children: [
298
303
  renderTrigger(),
299
- showClear && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "select-clear", role: "button", "aria-label": "Clear", onClick: clearAll, children: /* @__PURE__ */ jsxRuntime.jsx(chunkQMX67CVT_cjs.Icon, { name: "x", size: 12 }) }),
304
+ showClear && /* @__PURE__ */ jsxRuntime.jsx(
305
+ "span",
306
+ {
307
+ className: "select-clear",
308
+ role: "button",
309
+ "aria-label": "Clear",
310
+ onPointerDown: stopClearActivation,
311
+ onMouseDown: stopClearActivation,
312
+ onClick: clearAll,
313
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkQMX67CVT_cjs.Icon, { name: "x", size: 12 })
314
+ }
315
+ ),
300
316
  /* @__PURE__ */ jsxRuntime.jsx(chunkQMX67CVT_cjs.Icon, { name: "chevDown", size: 14, className: "select-caret" })
301
317
  ]
302
318
  }
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ var chunk35RCCUGO_cjs = require('./chunk-35RCCUGO.cjs');
3
4
  var chunkYB3IWIOJ_cjs = require('./chunk-YB3IWIOJ.cjs');
4
5
  var chunkVS3I5OKA_cjs = require('./chunk-VS3I5OKA.cjs');
5
6
  var chunkSW2HMNCA_cjs = require('./chunk-SW2HMNCA.cjs');
@@ -136,6 +137,12 @@ var TimePicker = React__namespace.forwardRef(
136
137
  },
137
138
  [disabled, onOpenChange, openControlled, readOnly]
138
139
  );
140
+ const inputTriggerHandlers = chunk35RCCUGO_cjs.useInputTriggerToggle({
141
+ open,
142
+ disabled,
143
+ readOnly,
144
+ setOpen
145
+ });
139
146
  const rootRef = React__namespace.useRef(null);
140
147
  const panelRef = React__namespace.useRef(null);
141
148
  const { triggerRef, floatingStyle } = chunkYB3IWIOJ_cjs.useFloating({
@@ -353,8 +360,7 @@ var TimePicker = React__namespace.forwardRef(
353
360
  invalid,
354
361
  allowClear,
355
362
  leadingIcon: "clock",
356
- onFocus: () => setOpen(true),
357
- onClick: () => setOpen(true),
363
+ ...inputTriggerHandlers,
358
364
  onValueChange: handleInputChange,
359
365
  onBlur: handleInputBlur,
360
366
  inputMode: "numeric",
@@ -1,4 +1,4 @@
1
- import { Select } from './chunk-6PHPRZTT.js';
1
+ import { Select } from './chunk-E22OIVYP.js';
2
2
  import { Icon } from './chunk-FDZG27IG.js';
3
3
  import './tokens-RYJ3DFTU.css';
4
4
  import './shared-NJHRNLRH.css';
package/dist/index.cjs CHANGED
@@ -3,11 +3,11 @@
3
3
  var chunk6Q76VLCE_cjs = require('./chunk-6Q76VLCE.cjs');
4
4
  var chunkV5KUC5VH_cjs = require('./chunk-V5KUC5VH.cjs');
5
5
  var chunkX5MYHDEQ_cjs = require('./chunk-X5MYHDEQ.cjs');
6
- var chunkPBT4UKPL_cjs = require('./chunk-PBT4UKPL.cjs');
7
- var chunk7YJV45U6_cjs = require('./chunk-7YJV45U6.cjs');
6
+ var chunk4ACCOYBY_cjs = require('./chunk-4ACCOYBY.cjs');
7
+ var chunkNXBFEIUX_cjs = require('./chunk-NXBFEIUX.cjs');
8
8
  var chunk5A6KSYWA_cjs = require('./chunk-5A6KSYWA.cjs');
9
9
  var chunkA4Z7PLHV_cjs = require('./chunk-A4Z7PLHV.cjs');
10
- var chunkSFEWMO45_cjs = require('./chunk-SFEWMO45.cjs');
10
+ var chunkUWL6DRZW_cjs = require('./chunk-UWL6DRZW.cjs');
11
11
  var chunkM4NJTJKV_cjs = require('./chunk-M4NJTJKV.cjs');
12
12
  var chunkMPOO5VPW_cjs = require('./chunk-MPOO5VPW.cjs');
13
13
  var chunkN7OQNSII_cjs = require('./chunk-N7OQNSII.cjs');
@@ -20,13 +20,13 @@ var chunk5QEI7GGA_cjs = require('./chunk-5QEI7GGA.cjs');
20
20
  var chunkSOQ56ZI2_cjs = require('./chunk-SOQ56ZI2.cjs');
21
21
  var chunkRFI5R42I_cjs = require('./chunk-RFI5R42I.cjs');
22
22
  var chunkBT2RXFT4_cjs = require('./chunk-BT2RXFT4.cjs');
23
- var chunkZBWUIR2J_cjs = require('./chunk-ZBWUIR2J.cjs');
24
- var chunkIVFVLRWJ_cjs = require('./chunk-IVFVLRWJ.cjs');
23
+ var chunkL6GIV5DQ_cjs = require('./chunk-L6GIV5DQ.cjs');
24
+ var chunkUW57F3UO_cjs = require('./chunk-UW57F3UO.cjs');
25
25
  var chunk5ERD3W24_cjs = require('./chunk-5ERD3W24.cjs');
26
26
  var chunkJMFHL7GN_cjs = require('./chunk-JMFHL7GN.cjs');
27
27
  var chunkX7XP6GEI_cjs = require('./chunk-X7XP6GEI.cjs');
28
28
  var chunkPSQ3HNZP_cjs = require('./chunk-PSQ3HNZP.cjs');
29
- var chunk32FWB5NO_cjs = require('./chunk-32FWB5NO.cjs');
29
+ var chunkMWEHU7YO_cjs = require('./chunk-MWEHU7YO.cjs');
30
30
  var chunkP2OQTJZP_cjs = require('./chunk-P2OQTJZP.cjs');
31
31
  var chunkULUD3FED_cjs = require('./chunk-ULUD3FED.cjs');
32
32
  var chunkES7AWMNH_cjs = require('./chunk-ES7AWMNH.cjs');
@@ -40,7 +40,8 @@ var chunkBNY2NVTL_cjs = require('./chunk-BNY2NVTL.cjs');
40
40
  var chunkS2ZGXBUH_cjs = require('./chunk-S2ZGXBUH.cjs');
41
41
  var chunk4TTRHEGM_cjs = require('./chunk-4TTRHEGM.cjs');
42
42
  var chunkVA2I7ZAL_cjs = require('./chunk-VA2I7ZAL.cjs');
43
- var chunkKHRYPNUV_cjs = require('./chunk-KHRYPNUV.cjs');
43
+ var chunkT2O4DTDE_cjs = require('./chunk-T2O4DTDE.cjs');
44
+ require('./chunk-35RCCUGO.cjs');
44
45
  var chunkLEMMFFEY_cjs = require('./chunk-LEMMFFEY.cjs');
45
46
  var chunkIOUAZYK2_cjs = require('./chunk-IOUAZYK2.cjs');
46
47
  var chunk7IO3EOHN_cjs = require('./chunk-7IO3EOHN.cjs');
@@ -54,7 +55,7 @@ var chunk4KDABJSY_cjs = require('./chunk-4KDABJSY.cjs');
54
55
  var chunkQMX67CVT_cjs = require('./chunk-QMX67CVT.cjs');
55
56
 
56
57
  // src/index.ts
57
- var VERSION = "0.6.16";
58
+ var VERSION = "0.6.17";
58
59
 
59
60
  Object.defineProperty(exports, "Timeline", {
60
61
  enumerable: true,
@@ -86,11 +87,11 @@ Object.defineProperty(exports, "Typography", {
86
87
  });
87
88
  Object.defineProperty(exports, "TablePro", {
88
89
  enumerable: true,
89
- get: function () { return chunkPBT4UKPL_cjs.TablePro; }
90
+ get: function () { return chunk4ACCOYBY_cjs.TablePro; }
90
91
  });
91
92
  Object.defineProperty(exports, "Table", {
92
93
  enumerable: true,
93
- get: function () { return chunk7YJV45U6_cjs.Table; }
94
+ get: function () { return chunkNXBFEIUX_cjs.Table; }
94
95
  });
95
96
  Object.defineProperty(exports, "Tabs", {
96
97
  enumerable: true,
@@ -110,7 +111,7 @@ Object.defineProperty(exports, "ThemePanel", {
110
111
  });
111
112
  Object.defineProperty(exports, "TimePicker", {
112
113
  enumerable: true,
113
- get: function () { return chunkSFEWMO45_cjs.TimePicker; }
114
+ get: function () { return chunkUWL6DRZW_cjs.TimePicker; }
114
115
  });
115
116
  Object.defineProperty(exports, "Skeleton", {
116
117
  enumerable: true,
@@ -214,11 +215,11 @@ Object.defineProperty(exports, "Modal", {
214
215
  });
215
216
  Object.defineProperty(exports, "Pagination", {
216
217
  enumerable: true,
217
- get: function () { return chunkZBWUIR2J_cjs.Pagination; }
218
+ get: function () { return chunkL6GIV5DQ_cjs.Pagination; }
218
219
  });
219
220
  Object.defineProperty(exports, "Select", {
220
221
  enumerable: true,
221
- get: function () { return chunkIVFVLRWJ_cjs.Select; }
222
+ get: function () { return chunkUW57F3UO_cjs.Select; }
222
223
  });
223
224
  Object.defineProperty(exports, "Tag", {
224
225
  enumerable: true,
@@ -242,7 +243,7 @@ Object.defineProperty(exports, "RadioGroup", {
242
243
  });
243
244
  Object.defineProperty(exports, "DateTimePicker", {
244
245
  enumerable: true,
245
- get: function () { return chunk32FWB5NO_cjs.DateTimePicker; }
246
+ get: function () { return chunkMWEHU7YO_cjs.DateTimePicker; }
246
247
  });
247
248
  Object.defineProperty(exports, "Divider", {
248
249
  enumerable: true,
@@ -318,7 +319,7 @@ Object.defineProperty(exports, "ContextMenu", {
318
319
  });
319
320
  Object.defineProperty(exports, "DatePicker", {
320
321
  enumerable: true,
321
- get: function () { return chunkKHRYPNUV_cjs.DatePicker; }
322
+ get: function () { return chunkT2O4DTDE_cjs.DatePicker; }
322
323
  });
323
324
  Object.defineProperty(exports, "Alert", {
324
325
  enumerable: true,
package/dist/index.d.cts CHANGED
@@ -52,6 +52,6 @@ import 'react/jsx-runtime';
52
52
  import 'react';
53
53
 
54
54
  /** Package version — bumped by release scripts. */
55
- declare const VERSION = "0.6.16";
55
+ declare const VERSION = "0.6.17";
56
56
 
57
57
  export { VERSION };
package/dist/index.d.ts CHANGED
@@ -52,6 +52,6 @@ import 'react/jsx-runtime';
52
52
  import 'react';
53
53
 
54
54
  /** Package version — bumped by release scripts. */
55
- declare const VERSION = "0.6.16";
55
+ declare const VERSION = "0.6.17";
56
56
 
57
57
  export { VERSION };
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  export { Timeline } from './chunk-OTSDPQPV.js';
2
2
  export { Tooltip } from './chunk-MOZ52KN6.js';
3
3
  export { Link, Paragraph, Text, Title, Typography } from './chunk-6HF6UF73.js';
4
- export { TablePro } from './chunk-QNN3YV2P.js';
5
- export { Table } from './chunk-4YSGGZDB.js';
4
+ export { TablePro } from './chunk-2FOC3D6X.js';
5
+ export { Table } from './chunk-UGAN4BBW.js';
6
6
  export { Tabs } from './chunk-ZTCRD2FL.js';
7
7
  export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel } from './chunk-3VSHGM54.js';
8
- export { TimePicker } from './chunk-DU4VSUBF.js';
8
+ export { TimePicker } from './chunk-HG6YS4I7.js';
9
9
  export { Skeleton } from './chunk-R3DTXVP2.js';
10
10
  export { Slider } from './chunk-D7GK6H6V.js';
11
11
  export { Splitter } from './chunk-IZHH6CVY.js';
@@ -18,13 +18,13 @@ export { InputNumber } from './chunk-3VXGZ3SJ.js';
18
18
  export { List } from './chunk-YAFDVNXT.js';
19
19
  export { MessageContainer, ToastContainer, message, toast } from './chunk-P64NPZBG.js';
20
20
  export { Modal } from './chunk-BVQOJKRX.js';
21
- export { Pagination } from './chunk-6LC4QROE.js';
22
- export { Select } from './chunk-6PHPRZTT.js';
21
+ export { Pagination } from './chunk-V5SQOZPF.js';
22
+ export { Select } from './chunk-E22OIVYP.js';
23
23
  export { Tag } from './chunk-6K5YI4ZE.js';
24
24
  export { Popover } from './chunk-I777JTTG.js';
25
25
  export { Progress } from './chunk-KMPFESEV.js';
26
26
  export { Radio, RadioGroup } from './chunk-KYV75JPQ.js';
27
- export { DateTimePicker } from './chunk-YPE6CDXQ.js';
27
+ export { DateTimePicker } from './chunk-SOCYOUGM.js';
28
28
  export { Divider } from './chunk-HBO7ZDEQ.js';
29
29
  export { Drawer } from './chunk-WMGMIE2D.js';
30
30
  export { Empty } from './chunk-6MEOLYNQ.js';
@@ -38,7 +38,8 @@ export { Collapse } from './chunk-6LN4VVX7.js';
38
38
  export { ColorPicker } from './chunk-TJECLLN4.js';
39
39
  export { CommandPalette } from './chunk-5MOYKVB7.js';
40
40
  export { ContextMenu } from './chunk-AAPZLBHQ.js';
41
- export { DatePicker } from './chunk-FKP5D5IS.js';
41
+ export { DatePicker } from './chunk-7NTTRKNT.js';
42
+ import './chunk-RC6ULCQP.js';
42
43
  export { Alert } from './chunk-A6O25EP2.js';
43
44
  export { AppShell, Sidebar, TitleBar, WindowControls } from './chunk-XCXUGHDF.js';
44
45
  export { AutoComplete } from './chunk-CFZVWY5N.js';
@@ -52,6 +53,6 @@ export { Calendar } from './chunk-I7TOBKJO.js';
52
53
  export { AimOutlined, AppstoreOutlined, BarChartOutlined, BlockOutlined, BorderOutlined, CameraOutlined, CaretDownOutlined, CaretUpOutlined, CheckCircleFilled, CheckCircleOutlined, CheckOutlined, ClockCircleFilled, CloseCircleOutlined, CloseOutlined, CopyOutlined, DashboardOutlined, DeleteOutlined, DownOutlined, EnvironmentOutlined, ExclamationCircleOutlined, FolderOpenOutlined, ICON_NAMES, Icon, LeftOutlined, LoadingOutlined, MinusCircleOutlined, MinusOutlined, NAMED_ICON_MAP, PictureOutlined, PlusOutlined, QqOutlined, ReloadOutlined, RightOutlined, RobotOutlined, SearchOutlined, SettingOutlined, StarFilled, StarOutlined, SwapOutlined, SwapRightOutlined, SyncOutlined, ThunderboltOutlined, TranslationOutlined, UnorderedListOutlined, UserOutlined, isIconName, renderIconSlot, resolveIconName } from './chunk-FDZG27IG.js';
53
54
 
54
55
  // src/index.ts
55
- var VERSION = "0.6.16";
56
+ var VERSION = "0.6.17";
56
57
 
57
58
  export { VERSION };
package/docs/llms.md CHANGED
@@ -3,7 +3,7 @@
3
3
  > 拟态风格的 React 18 组件库,目标是 Electron 桌面应用。**写给 AI 编程助手**的按需文档 —— 每个组件单独一个 `.md`,避免一次性读取全部。示例源自 playground 的 demo,可直接复制运行。
4
4
 
5
5
  - **包名**: `@fangxinyan/lumina`
6
- - **版本**: `0.6.16`
6
+ - **版本**: `0.6.17`
7
7
  - **React 最低版本**: 18
8
8
  - **环境**: 带打包器的 React 工程(Vite / Next.js / Webpack / Remix / Electron + Vite 等)
9
9
  - **零运行时依赖**: 只依赖 `react` / `react-dom` (peer deps)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fangxinyan/lumina",
3
- "version": "0.6.16",
3
+ "version": "0.6.17",
4
4
  "description": "Lumina — Neumorphic component library for Electron & React apps",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",