@fangxinyan/lumina 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/dist/Accordion.cjs +3 -3
  2. package/dist/Accordion.js +2 -2
  3. package/dist/Alert.cjs +3 -3
  4. package/dist/Alert.js +2 -2
  5. package/dist/AutoComplete-P5KZMZO5.css +54 -0
  6. package/dist/AutoComplete.cjs +15 -0
  7. package/dist/AutoComplete.cjs.map +1 -0
  8. package/dist/AutoComplete.d.cts +51 -0
  9. package/dist/AutoComplete.d.ts +51 -0
  10. package/dist/AutoComplete.js +6 -0
  11. package/dist/AutoComplete.js.map +1 -0
  12. package/dist/Button.cjs +4 -4
  13. package/dist/Button.js +2 -2
  14. package/dist/Calendar.cjs +3 -3
  15. package/dist/Calendar.js +2 -2
  16. package/dist/Cascader.cjs +3 -3
  17. package/dist/Cascader.js +2 -2
  18. package/dist/Checkbox.cjs +4 -4
  19. package/dist/Checkbox.js +2 -2
  20. package/dist/CommandPalette.cjs +4 -4
  21. package/dist/CommandPalette.js +3 -3
  22. package/dist/Drawer.cjs +3 -3
  23. package/dist/Drawer.js +2 -2
  24. package/dist/Form-5GRVZNDO.css +67 -0
  25. package/dist/Form.cjs +20 -0
  26. package/dist/Form.cjs.map +1 -0
  27. package/dist/Form.d.cts +85 -0
  28. package/dist/Form.d.ts +85 -0
  29. package/dist/Form.js +3 -0
  30. package/dist/Form.js.map +1 -0
  31. package/dist/Icon.cjs +3 -3
  32. package/dist/Icon.d.cts +1 -1
  33. package/dist/Icon.d.ts +1 -1
  34. package/dist/Icon.js +1 -1
  35. package/dist/Image.cjs +4 -4
  36. package/dist/Image.js +2 -2
  37. package/dist/Input.cjs +4 -4
  38. package/dist/Input.js +2 -2
  39. package/dist/InputNumber-VXQIWLQC.css +40 -0
  40. package/dist/InputNumber.cjs +14 -0
  41. package/dist/InputNumber.cjs.map +1 -0
  42. package/dist/InputNumber.d.cts +46 -0
  43. package/dist/InputNumber.d.ts +46 -0
  44. package/dist/InputNumber.js +5 -0
  45. package/dist/InputNumber.js.map +1 -0
  46. package/dist/Modal.cjs +4 -4
  47. package/dist/Modal.js +3 -3
  48. package/dist/Pagination.cjs +5 -5
  49. package/dist/Pagination.js +4 -4
  50. package/dist/Select.cjs +4 -4
  51. package/dist/Select.js +3 -3
  52. package/dist/Table.cjs +8 -8
  53. package/dist/Table.js +6 -6
  54. package/dist/Tag.cjs +4 -4
  55. package/dist/Tag.js +2 -2
  56. package/dist/Toast.cjs +4 -4
  57. package/dist/Toast.js +2 -2
  58. package/dist/Typography.cjs +7 -7
  59. package/dist/Typography.js +2 -2
  60. package/dist/{chunk-RIDCBNCM.cjs → chunk-2ENTRT7R.cjs} +5 -5
  61. package/dist/{chunk-RIDCBNCM.cjs.map → chunk-2ENTRT7R.cjs.map} +1 -1
  62. package/dist/{chunk-24FAK7QU.cjs → chunk-3BZ47QNV.cjs} +7 -7
  63. package/dist/{chunk-24FAK7QU.cjs.map → chunk-3BZ47QNV.cjs.map} +1 -1
  64. package/dist/{chunk-URLSZPS5.js → chunk-6XZ362VL.js} +4 -4
  65. package/dist/{chunk-URLSZPS5.js.map → chunk-6XZ362VL.js.map} +1 -1
  66. package/dist/{chunk-XDFZRV3V.js → chunk-6Z24VO3K.js} +3 -3
  67. package/dist/{chunk-XDFZRV3V.js.map → chunk-6Z24VO3K.js.map} +1 -1
  68. package/dist/{chunk-AWLBLRQX.cjs → chunk-77TZHI76.cjs} +7 -7
  69. package/dist/{chunk-AWLBLRQX.cjs.map → chunk-77TZHI76.cjs.map} +1 -1
  70. package/dist/{chunk-TMZVX6NO.js → chunk-7M7NAMR5.js} +3 -3
  71. package/dist/{chunk-TMZVX6NO.js.map → chunk-7M7NAMR5.js.map} +1 -1
  72. package/dist/{chunk-WQFC5EMC.js → chunk-AESLEYST.js} +4 -4
  73. package/dist/{chunk-WQFC5EMC.js.map → chunk-AESLEYST.js.map} +1 -1
  74. package/dist/chunk-BCPAY65C.cjs +169 -0
  75. package/dist/chunk-BCPAY65C.cjs.map +1 -0
  76. package/dist/{chunk-XZ22B3NW.js → chunk-CTYW42GG.js} +5 -5
  77. package/dist/{chunk-XZ22B3NW.js.map → chunk-CTYW42GG.js.map} +1 -1
  78. package/dist/chunk-E62JFAHW.js +147 -0
  79. package/dist/chunk-E62JFAHW.js.map +1 -0
  80. package/dist/{chunk-U5BZ7E3F.js → chunk-FXQGPHK2.js} +3 -3
  81. package/dist/{chunk-U5BZ7E3F.js.map → chunk-FXQGPHK2.js.map} +1 -1
  82. package/dist/{chunk-3HNRKO3M.cjs → chunk-HJIKU6MF.cjs} +4 -4
  83. package/dist/{chunk-3HNRKO3M.cjs.map → chunk-HJIKU6MF.cjs.map} +1 -1
  84. package/dist/{chunk-EHO2JH2L.cjs → chunk-HXSAH4Y6.cjs} +7 -7
  85. package/dist/{chunk-EHO2JH2L.cjs.map → chunk-HXSAH4Y6.cjs.map} +1 -1
  86. package/dist/{chunk-3LI6QH2Q.js → chunk-I7WLFADD.js} +3 -3
  87. package/dist/{chunk-3LI6QH2Q.js.map → chunk-I7WLFADD.js.map} +1 -1
  88. package/dist/chunk-IHACXMOI.js +307 -0
  89. package/dist/chunk-IHACXMOI.js.map +1 -0
  90. package/dist/{chunk-AGN3JSUH.cjs → chunk-IJA26LRY.cjs} +4 -4
  91. package/dist/{chunk-AGN3JSUH.cjs.map → chunk-IJA26LRY.cjs.map} +1 -1
  92. package/dist/chunk-IOWREUEP.js +170 -0
  93. package/dist/chunk-IOWREUEP.js.map +1 -0
  94. package/dist/{chunk-5UOBYRYJ.js → chunk-JXHMJUVI.js} +3 -3
  95. package/dist/{chunk-5UOBYRYJ.js.map → chunk-JXHMJUVI.js.map} +1 -1
  96. package/dist/{chunk-TY5EAKEI.js → chunk-KW7Z4IQC.js} +3 -3
  97. package/dist/{chunk-TY5EAKEI.js.map → chunk-KW7Z4IQC.js.map} +1 -1
  98. package/dist/{chunk-276NALYW.js → chunk-LXNR6TQK.js} +3 -3
  99. package/dist/{chunk-276NALYW.js.map → chunk-LXNR6TQK.js.map} +1 -1
  100. package/dist/{chunk-WREHBIJ5.cjs → chunk-MDQNUKCP.cjs} +12 -12
  101. package/dist/{chunk-WREHBIJ5.cjs.map → chunk-MDQNUKCP.cjs.map} +1 -1
  102. package/dist/{chunk-GOIQR4OH.cjs → chunk-N73JGXYZ.cjs} +4 -4
  103. package/dist/{chunk-GOIQR4OH.cjs.map → chunk-N73JGXYZ.cjs.map} +1 -1
  104. package/dist/{chunk-MFWOBALK.cjs → chunk-NN7WMXY4.cjs} +4 -4
  105. package/dist/{chunk-MFWOBALK.cjs.map → chunk-NN7WMXY4.cjs.map} +1 -1
  106. package/dist/{chunk-U4K7HOMW.js → chunk-O7C6S644.js} +3 -3
  107. package/dist/{chunk-U4K7HOMW.js.map → chunk-O7C6S644.js.map} +1 -1
  108. package/dist/{chunk-YXKJOPYT.js → chunk-OM76QWUN.js} +3 -3
  109. package/dist/{chunk-YXKJOPYT.js.map → chunk-OM76QWUN.js.map} +1 -1
  110. package/dist/{chunk-Q2EXOT4B.js → chunk-PKXXR76Q.js} +3 -3
  111. package/dist/{chunk-Q2EXOT4B.js.map → chunk-PKXXR76Q.js.map} +1 -1
  112. package/dist/{chunk-GEYMWUW6.js → chunk-QOGROEVD.js} +23 -5
  113. package/dist/chunk-QOGROEVD.js.map +1 -0
  114. package/dist/chunk-QVFEKGKI.cjs +331 -0
  115. package/dist/chunk-QVFEKGKI.cjs.map +1 -0
  116. package/dist/{chunk-HNVRMOL3.cjs → chunk-RQV7SMIZ.cjs} +5 -5
  117. package/dist/{chunk-HNVRMOL3.cjs.map → chunk-RQV7SMIZ.cjs.map} +1 -1
  118. package/dist/{chunk-RSZNFKCQ.cjs → chunk-RWHWEQQX.cjs} +6 -6
  119. package/dist/{chunk-RSZNFKCQ.cjs.map → chunk-RWHWEQQX.cjs.map} +1 -1
  120. package/dist/{chunk-AR4M7QGF.cjs → chunk-SMHXSEBD.cjs} +7 -7
  121. package/dist/{chunk-AR4M7QGF.cjs.map → chunk-SMHXSEBD.cjs.map} +1 -1
  122. package/dist/{chunk-RVSWH4RH.cjs → chunk-T4PI2ZX7.cjs} +14 -14
  123. package/dist/{chunk-RVSWH4RH.cjs.map → chunk-T4PI2ZX7.cjs.map} +1 -1
  124. package/dist/{chunk-MTCLJHXU.js → chunk-TZLM5GF4.js} +4 -4
  125. package/dist/{chunk-MTCLJHXU.js.map → chunk-TZLM5GF4.js.map} +1 -1
  126. package/dist/{chunk-CALRTZZ7.cjs → chunk-TZXEZFCI.cjs} +5 -5
  127. package/dist/{chunk-CALRTZZ7.cjs.map → chunk-TZXEZFCI.cjs.map} +1 -1
  128. package/dist/chunk-VQBZKRIB.cjs +192 -0
  129. package/dist/chunk-VQBZKRIB.cjs.map +1 -0
  130. package/dist/{chunk-WBMF7WM3.js → chunk-WUOFJPZ4.js} +3 -3
  131. package/dist/{chunk-WBMF7WM3.js.map → chunk-WUOFJPZ4.js.map} +1 -1
  132. package/dist/{chunk-SVVB6POY.cjs → chunk-WVBFQB26.cjs} +6 -6
  133. package/dist/{chunk-SVVB6POY.cjs.map → chunk-WVBFQB26.cjs.map} +1 -1
  134. package/dist/{chunk-DBJIK4JE.js → chunk-XCYE4OQV.js} +3 -3
  135. package/dist/{chunk-DBJIK4JE.js.map → chunk-XCYE4OQV.js.map} +1 -1
  136. package/dist/{chunk-7JYI5THC.cjs → chunk-XYVJ3FBQ.cjs} +5 -5
  137. package/dist/{chunk-7JYI5THC.cjs.map → chunk-XYVJ3FBQ.cjs.map} +1 -1
  138. package/dist/{chunk-YVO7XO4W.cjs → chunk-YCHUHMNP.cjs} +22 -4
  139. package/dist/chunk-YCHUHMNP.cjs.map +1 -0
  140. package/dist/{chunk-MKR4X57L.cjs → chunk-YFBHVTKN.cjs} +7 -7
  141. package/dist/{chunk-MKR4X57L.cjs.map → chunk-YFBHVTKN.cjs.map} +1 -1
  142. package/dist/{chunk-NGQDVJH3.js → chunk-ZFJHUOFU.js} +3 -3
  143. package/dist/{chunk-NGQDVJH3.js.map → chunk-ZFJHUOFU.js.map} +1 -1
  144. package/dist/index.cjs +129 -106
  145. package/dist/index.cjs.map +1 -1
  146. package/dist/index.d.cts +4 -1
  147. package/dist/index.d.ts +4 -1
  148. package/dist/index.js +28 -25
  149. package/dist/index.js.map +1 -1
  150. package/docs/llms/autocomplete.md +56 -0
  151. package/docs/llms/form.md +121 -0
  152. package/docs/llms/inputnumber.md +57 -0
  153. package/docs/llms.md +4 -1
  154. package/package.json +1 -1
  155. package/dist/chunk-GEYMWUW6.js.map +0 -1
  156. package/dist/chunk-YVO7XO4W.cjs.map +0 -1
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunk3HNRKO3M_cjs = require('./chunk-3HNRKO3M.cjs');
4
- require('./chunk-YVO7XO4W.cjs');
3
+ var chunkHJIKU6MF_cjs = require('./chunk-HJIKU6MF.cjs');
4
+ require('./chunk-YCHUHMNP.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Accordion", {
9
9
  enumerable: true,
10
- get: function () { return chunk3HNRKO3M_cjs.Accordion; }
10
+ get: function () { return chunkHJIKU6MF_cjs.Accordion; }
11
11
  });
12
12
  //# sourceMappingURL=Accordion.cjs.map
13
13
  //# sourceMappingURL=Accordion.cjs.map
package/dist/Accordion.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Accordion } from './chunk-U4K7HOMW.js';
2
- import './chunk-GEYMWUW6.js';
1
+ export { Accordion } from './chunk-O7C6S644.js';
2
+ import './chunk-QOGROEVD.js';
3
3
  //# sourceMappingURL=Accordion.js.map
4
4
  //# sourceMappingURL=Accordion.js.map
package/dist/Alert.cjs CHANGED
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkCALRTZZ7_cjs = require('./chunk-CALRTZZ7.cjs');
4
- require('./chunk-YVO7XO4W.cjs');
3
+ var chunkTZXEZFCI_cjs = require('./chunk-TZXEZFCI.cjs');
4
+ require('./chunk-YCHUHMNP.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Alert", {
9
9
  enumerable: true,
10
- get: function () { return chunkCALRTZZ7_cjs.Alert; }
10
+ get: function () { return chunkTZXEZFCI_cjs.Alert; }
11
11
  });
12
12
  //# sourceMappingURL=Alert.cjs.map
13
13
  //# sourceMappingURL=Alert.cjs.map
package/dist/Alert.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Alert } from './chunk-TY5EAKEI.js';
2
- import './chunk-GEYMWUW6.js';
1
+ export { Alert } from './chunk-KW7Z4IQC.js';
2
+ import './chunk-QOGROEVD.js';
3
3
  //# sourceMappingURL=Alert.js.map
4
4
  //# sourceMappingURL=Alert.js.map
@@ -0,0 +1,54 @@
1
+ /* ============ AutoComplete ============ */
2
+ .autocomplete {
3
+ display: inline-block;
4
+ width: 100%;
5
+ position: relative;
6
+ }
7
+
8
+ .autocomplete-panel {
9
+ z-index: 1500;
10
+ background: var(--bg);
11
+ border-radius: var(--r-md);
12
+ box-shadow: var(--neu-float);
13
+ padding: 6px;
14
+ max-height: 280px;
15
+ overflow-y: auto;
16
+ animation: menuIn var(--dur) var(--ease);
17
+ display: flex;
18
+ flex-direction: column;
19
+ gap: 1px;
20
+ }
21
+
22
+ .autocomplete-item {
23
+ display: flex;
24
+ align-items: center;
25
+ width: 100%;
26
+ padding: 8px 10px;
27
+ border: none;
28
+ background: transparent;
29
+ box-shadow: none;
30
+ color: var(--fg);
31
+ font: inherit;
32
+ font-size: 13px;
33
+ text-align: left;
34
+ border-radius: var(--r-sm);
35
+ cursor: pointer;
36
+ transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease),
37
+ box-shadow var(--dur-fast) var(--ease);
38
+ }
39
+ .autocomplete-item:disabled {
40
+ color: var(--fg-subtle);
41
+ cursor: not-allowed;
42
+ }
43
+ .autocomplete-item.active:not(:disabled) {
44
+ background: var(--bg);
45
+ color: var(--accent-ink);
46
+ box-shadow: var(--neu-in-sm);
47
+ }
48
+
49
+ .autocomplete-empty {
50
+ padding: 16px 12px;
51
+ text-align: center;
52
+ color: var(--fg-subtle);
53
+ font-size: 13px;
54
+ }
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var chunkVQBZKRIB_cjs = require('./chunk-VQBZKRIB.cjs');
4
+ require('./chunk-RZ2E3XEU.cjs');
5
+ require('./chunk-YFBHVTKN.cjs');
6
+ require('./chunk-YCHUHMNP.cjs');
7
+
8
+
9
+
10
+ Object.defineProperty(exports, "AutoComplete", {
11
+ enumerable: true,
12
+ get: function () { return chunkVQBZKRIB_cjs.AutoComplete; }
13
+ });
14
+ //# sourceMappingURL=AutoComplete.cjs.map
15
+ //# sourceMappingURL=AutoComplete.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"AutoComplete.cjs"}
@@ -0,0 +1,51 @@
1
+ import * as React from 'react';
2
+
3
+ interface AutoCompleteOption {
4
+ value: string;
5
+ /** Display label. Defaults to `value`. */
6
+ label?: React.ReactNode;
7
+ disabled?: boolean;
8
+ }
9
+ interface AutoCompleteProps {
10
+ value?: string;
11
+ defaultValue?: string;
12
+ onChange?: (value: string, option?: AutoCompleteOption) => void;
13
+ /** Fires when a suggestion is selected (click or Enter). */
14
+ onSelect?: (value: string, option: AutoCompleteOption) => void;
15
+ /** Fires on every keystroke — typically used to fetch fresh suggestions. */
16
+ onSearch?: (text: string) => void;
17
+ /** Suggestion list. Empty-string value is filtered out. */
18
+ options: AutoCompleteOption[];
19
+ placeholder?: string;
20
+ disabled?: boolean;
21
+ allowClear?: boolean;
22
+ /** Override the default substring filter. `false` keeps every option. */
23
+ filterOption?: boolean | ((input: string, option: AutoCompleteOption) => boolean);
24
+ /** Content shown when no option matches. */
25
+ notFoundContent?: React.ReactNode;
26
+ size?: "sm" | "md" | "lg";
27
+ autoFocus?: boolean;
28
+ className?: string;
29
+ /** Class on the popped-out panel. */
30
+ dropdownClassName?: string;
31
+ /** Force the panel to be as wide as the input. Default true. */
32
+ matchTriggerWidth?: boolean;
33
+ id?: string;
34
+ name?: string;
35
+ }
36
+ /**
37
+ * `AutoComplete` — text input with a filtered suggestion dropdown.
38
+ * Follows antd's API shape (value / onChange / onSelect / options / filterOption).
39
+ *
40
+ * @example
41
+ * ```tsx
42
+ * <AutoComplete
43
+ * options={[{ value: "light" }, { value: "dark" }]}
44
+ * onSelect={(v) => console.log(v)}
45
+ * placeholder="主题"
46
+ * />
47
+ * ```
48
+ */
49
+ declare const AutoComplete: React.ForwardRefExoticComponent<AutoCompleteProps & React.RefAttributes<HTMLInputElement>>;
50
+
51
+ export { AutoComplete, type AutoCompleteOption, type AutoCompleteProps };
@@ -0,0 +1,51 @@
1
+ import * as React from 'react';
2
+
3
+ interface AutoCompleteOption {
4
+ value: string;
5
+ /** Display label. Defaults to `value`. */
6
+ label?: React.ReactNode;
7
+ disabled?: boolean;
8
+ }
9
+ interface AutoCompleteProps {
10
+ value?: string;
11
+ defaultValue?: string;
12
+ onChange?: (value: string, option?: AutoCompleteOption) => void;
13
+ /** Fires when a suggestion is selected (click or Enter). */
14
+ onSelect?: (value: string, option: AutoCompleteOption) => void;
15
+ /** Fires on every keystroke — typically used to fetch fresh suggestions. */
16
+ onSearch?: (text: string) => void;
17
+ /** Suggestion list. Empty-string value is filtered out. */
18
+ options: AutoCompleteOption[];
19
+ placeholder?: string;
20
+ disabled?: boolean;
21
+ allowClear?: boolean;
22
+ /** Override the default substring filter. `false` keeps every option. */
23
+ filterOption?: boolean | ((input: string, option: AutoCompleteOption) => boolean);
24
+ /** Content shown when no option matches. */
25
+ notFoundContent?: React.ReactNode;
26
+ size?: "sm" | "md" | "lg";
27
+ autoFocus?: boolean;
28
+ className?: string;
29
+ /** Class on the popped-out panel. */
30
+ dropdownClassName?: string;
31
+ /** Force the panel to be as wide as the input. Default true. */
32
+ matchTriggerWidth?: boolean;
33
+ id?: string;
34
+ name?: string;
35
+ }
36
+ /**
37
+ * `AutoComplete` — text input with a filtered suggestion dropdown.
38
+ * Follows antd's API shape (value / onChange / onSelect / options / filterOption).
39
+ *
40
+ * @example
41
+ * ```tsx
42
+ * <AutoComplete
43
+ * options={[{ value: "light" }, { value: "dark" }]}
44
+ * onSelect={(v) => console.log(v)}
45
+ * placeholder="主题"
46
+ * />
47
+ * ```
48
+ */
49
+ declare const AutoComplete: React.ForwardRefExoticComponent<AutoCompleteProps & React.RefAttributes<HTMLInputElement>>;
50
+
51
+ export { AutoComplete, type AutoCompleteOption, type AutoCompleteProps };
@@ -0,0 +1,6 @@
1
+ export { AutoComplete } from './chunk-IOWREUEP.js';
2
+ import './chunk-V2DIQ3RH.js';
3
+ import './chunk-WUOFJPZ4.js';
4
+ import './chunk-QOGROEVD.js';
5
+ //# sourceMappingURL=AutoComplete.js.map
6
+ //# sourceMappingURL=AutoComplete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"AutoComplete.js"}
package/dist/Button.cjs CHANGED
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
2
 
3
- var chunkRSZNFKCQ_cjs = require('./chunk-RSZNFKCQ.cjs');
4
- require('./chunk-YVO7XO4W.cjs');
3
+ var chunkRWHWEQQX_cjs = require('./chunk-RWHWEQQX.cjs');
4
+ require('./chunk-YCHUHMNP.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Button", {
9
9
  enumerable: true,
10
- get: function () { return chunkRSZNFKCQ_cjs.Button; }
10
+ get: function () { return chunkRWHWEQQX_cjs.Button; }
11
11
  });
12
12
  Object.defineProperty(exports, "IconButton", {
13
13
  enumerable: true,
14
- get: function () { return chunkRSZNFKCQ_cjs.IconButton; }
14
+ get: function () { return chunkRWHWEQQX_cjs.IconButton; }
15
15
  });
16
16
  //# sourceMappingURL=Button.cjs.map
17
17
  //# sourceMappingURL=Button.cjs.map
package/dist/Button.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Button, IconButton } from './chunk-5UOBYRYJ.js';
2
- import './chunk-GEYMWUW6.js';
1
+ export { Button, IconButton } from './chunk-JXHMJUVI.js';
2
+ import './chunk-QOGROEVD.js';
3
3
  //# sourceMappingURL=Button.js.map
4
4
  //# sourceMappingURL=Button.js.map
package/dist/Calendar.cjs CHANGED
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunk7JYI5THC_cjs = require('./chunk-7JYI5THC.cjs');
4
- require('./chunk-YVO7XO4W.cjs');
3
+ var chunkXYVJ3FBQ_cjs = require('./chunk-XYVJ3FBQ.cjs');
4
+ require('./chunk-YCHUHMNP.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Calendar", {
9
9
  enumerable: true,
10
- get: function () { return chunk7JYI5THC_cjs.Calendar; }
10
+ get: function () { return chunkXYVJ3FBQ_cjs.Calendar; }
11
11
  });
12
12
  //# sourceMappingURL=Calendar.cjs.map
13
13
  //# sourceMappingURL=Calendar.cjs.map
package/dist/Calendar.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Calendar } from './chunk-DBJIK4JE.js';
2
- import './chunk-GEYMWUW6.js';
1
+ export { Calendar } from './chunk-XCYE4OQV.js';
2
+ import './chunk-QOGROEVD.js';
3
3
  //# sourceMappingURL=Calendar.js.map
4
4
  //# sourceMappingURL=Calendar.js.map
package/dist/Cascader.cjs CHANGED
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var chunkSVVB6POY_cjs = require('./chunk-SVVB6POY.cjs');
3
+ var chunkWVBFQB26_cjs = require('./chunk-WVBFQB26.cjs');
4
4
  require('./chunk-RZ2E3XEU.cjs');
5
- require('./chunk-YVO7XO4W.cjs');
5
+ require('./chunk-YCHUHMNP.cjs');
6
6
 
7
7
 
8
8
 
9
9
  Object.defineProperty(exports, "Cascader", {
10
10
  enumerable: true,
11
- get: function () { return chunkSVVB6POY_cjs.Cascader; }
11
+ get: function () { return chunkWVBFQB26_cjs.Cascader; }
12
12
  });
13
13
  //# sourceMappingURL=Cascader.cjs.map
14
14
  //# sourceMappingURL=Cascader.cjs.map
package/dist/Cascader.js CHANGED
@@ -1,5 +1,5 @@
1
- export { Cascader } from './chunk-NGQDVJH3.js';
1
+ export { Cascader } from './chunk-ZFJHUOFU.js';
2
2
  import './chunk-V2DIQ3RH.js';
3
- import './chunk-GEYMWUW6.js';
3
+ import './chunk-QOGROEVD.js';
4
4
  //# sourceMappingURL=Cascader.js.map
5
5
  //# sourceMappingURL=Cascader.js.map
package/dist/Checkbox.cjs CHANGED
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
2
 
3
- var chunkMFWOBALK_cjs = require('./chunk-MFWOBALK.cjs');
4
- require('./chunk-YVO7XO4W.cjs');
3
+ var chunkNN7WMXY4_cjs = require('./chunk-NN7WMXY4.cjs');
4
+ require('./chunk-YCHUHMNP.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Checkbox", {
9
9
  enumerable: true,
10
- get: function () { return chunkMFWOBALK_cjs.Checkbox; }
10
+ get: function () { return chunkNN7WMXY4_cjs.Checkbox; }
11
11
  });
12
12
  Object.defineProperty(exports, "RadioGroup", {
13
13
  enumerable: true,
14
- get: function () { return chunkMFWOBALK_cjs.RadioGroup; }
14
+ get: function () { return chunkNN7WMXY4_cjs.RadioGroup; }
15
15
  });
16
16
  //# sourceMappingURL=Checkbox.cjs.map
17
17
  //# sourceMappingURL=Checkbox.cjs.map
package/dist/Checkbox.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Checkbox, RadioGroup } from './chunk-Q2EXOT4B.js';
2
- import './chunk-GEYMWUW6.js';
1
+ export { Checkbox, RadioGroup } from './chunk-PKXXR76Q.js';
2
+ import './chunk-QOGROEVD.js';
3
3
  //# sourceMappingURL=Checkbox.js.map
4
4
  //# sourceMappingURL=Checkbox.js.map
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var chunkAGN3JSUH_cjs = require('./chunk-AGN3JSUH.cjs');
4
- require('./chunk-MKR4X57L.cjs');
5
- require('./chunk-YVO7XO4W.cjs');
3
+ var chunkIJA26LRY_cjs = require('./chunk-IJA26LRY.cjs');
4
+ require('./chunk-YFBHVTKN.cjs');
5
+ require('./chunk-YCHUHMNP.cjs');
6
6
 
7
7
 
8
8
 
9
9
  Object.defineProperty(exports, "CommandPalette", {
10
10
  enumerable: true,
11
- get: function () { return chunkAGN3JSUH_cjs.CommandPalette; }
11
+ get: function () { return chunkIJA26LRY_cjs.CommandPalette; }
12
12
  });
13
13
  //# sourceMappingURL=CommandPalette.cjs.map
14
14
  //# sourceMappingURL=CommandPalette.cjs.map
@@ -1,5 +1,5 @@
1
- export { CommandPalette } from './chunk-XDFZRV3V.js';
2
- import './chunk-WBMF7WM3.js';
3
- import './chunk-GEYMWUW6.js';
1
+ export { CommandPalette } from './chunk-6Z24VO3K.js';
2
+ import './chunk-WUOFJPZ4.js';
3
+ import './chunk-QOGROEVD.js';
4
4
  //# sourceMappingURL=CommandPalette.js.map
5
5
  //# sourceMappingURL=CommandPalette.js.map
package/dist/Drawer.cjs CHANGED
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkGOIQR4OH_cjs = require('./chunk-GOIQR4OH.cjs');
4
- require('./chunk-YVO7XO4W.cjs');
3
+ var chunkN73JGXYZ_cjs = require('./chunk-N73JGXYZ.cjs');
4
+ require('./chunk-YCHUHMNP.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Drawer", {
9
9
  enumerable: true,
10
- get: function () { return chunkGOIQR4OH_cjs.Drawer; }
10
+ get: function () { return chunkN73JGXYZ_cjs.Drawer; }
11
11
  });
12
12
  //# sourceMappingURL=Drawer.cjs.map
13
13
  //# sourceMappingURL=Drawer.cjs.map
package/dist/Drawer.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Drawer } from './chunk-U5BZ7E3F.js';
2
- import './chunk-GEYMWUW6.js';
1
+ export { Drawer } from './chunk-FXQGPHK2.js';
2
+ import './chunk-QOGROEVD.js';
3
3
  //# sourceMappingURL=Drawer.js.map
4
4
  //# sourceMappingURL=Drawer.js.map
@@ -0,0 +1,67 @@
1
+ /* ============ Form ============ */
2
+ .lumina-form { display: flex; flex-direction: column; gap: 18px; }
3
+ .lumina-form.layout-inline {
4
+ flex-direction: row;
5
+ flex-wrap: wrap;
6
+ align-items: flex-start;
7
+ gap: 12px;
8
+ }
9
+ .lumina-form.layout-inline .form-item { flex: 0 0 auto; }
10
+
11
+ .form-item {
12
+ display: flex;
13
+ flex-direction: column;
14
+ gap: 6px;
15
+ min-width: 0;
16
+ }
17
+ .lumina-form.layout-horizontal .form-item {
18
+ flex-direction: row;
19
+ align-items: flex-start;
20
+ gap: 12px;
21
+ }
22
+ .lumina-form.layout-horizontal .form-item-label {
23
+ flex: 0 0 auto;
24
+ min-width: 96px;
25
+ padding-top: 10px;
26
+ text-align: right;
27
+ }
28
+ .lumina-form.layout-horizontal .form-item-control { flex: 1; min-width: 0; }
29
+
30
+ .form-item-label {
31
+ font-size: 13px;
32
+ font-weight: 500;
33
+ color: var(--fg);
34
+ padding-left: 2px;
35
+ display: inline-flex;
36
+ align-items: center;
37
+ gap: 4px;
38
+ }
39
+ .form-item-required {
40
+ color: var(--danger);
41
+ font-weight: 600;
42
+ margin-right: 2px;
43
+ }
44
+ .form-item-control { min-width: 0; }
45
+
46
+ .form-item-error {
47
+ font-size: 12px;
48
+ color: var(--danger);
49
+ padding-left: 2px;
50
+ animation: fadeIn 140ms var(--ease);
51
+ }
52
+ .form-item-help {
53
+ font-size: 12px;
54
+ color: var(--fg-subtle);
55
+ padding-left: 2px;
56
+ }
57
+ .form-item-extra {
58
+ font-size: 11.5px;
59
+ color: var(--fg-subtle);
60
+ padding-left: 2px;
61
+ opacity: 0.85;
62
+ }
63
+
64
+ .form-item.has-error .input-wrap,
65
+ .form-item.has-error .select-trigger {
66
+ box-shadow: var(--neu-in-sm), 0 0 0 2px color-mix(in oklch, var(--danger) 30%, transparent);
67
+ }
package/dist/Form.cjs ADDED
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var chunkQVFEKGKI_cjs = require('./chunk-QVFEKGKI.cjs');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "Form", {
8
+ enumerable: true,
9
+ get: function () { return chunkQVFEKGKI_cjs.Form; }
10
+ });
11
+ Object.defineProperty(exports, "FormItem", {
12
+ enumerable: true,
13
+ get: function () { return chunkQVFEKGKI_cjs.FormItem; }
14
+ });
15
+ Object.defineProperty(exports, "useForm", {
16
+ enumerable: true,
17
+ get: function () { return chunkQVFEKGKI_cjs.useForm; }
18
+ });
19
+ //# sourceMappingURL=Form.cjs.map
20
+ //# sourceMappingURL=Form.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"Form.cjs"}
@@ -0,0 +1,85 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+
4
+ type FormLayout = "horizontal" | "vertical" | "inline";
5
+ type Rule = {
6
+ required?: boolean;
7
+ message?: string;
8
+ pattern?: RegExp;
9
+ min?: number;
10
+ max?: number;
11
+ len?: number;
12
+ type?: "string" | "number" | "email" | "url" | "array";
13
+ whitespace?: boolean;
14
+ validator?: (rule: Rule, value: unknown) => Promise<void> | void;
15
+ };
16
+ interface ErrorField {
17
+ name: string;
18
+ errors: string[];
19
+ }
20
+ interface FormInstance<V extends Record<string, unknown> = Record<string, unknown>> {
21
+ getFieldValue: <T = unknown>(name: string) => T;
22
+ getFieldsValue: (names?: string[]) => V;
23
+ setFieldValue: (name: string, value: unknown) => void;
24
+ setFieldsValue: (values: Partial<V>) => void;
25
+ resetFields: (names?: string[]) => void;
26
+ validateFields: (names?: string[]) => Promise<V>;
27
+ isFieldTouched: (name: string) => boolean;
28
+ getFieldError: (name: string) => string[];
29
+ /** Programmatic submit — runs validate then onFinish/onFinishFailed. */
30
+ submit: () => void;
31
+ }
32
+ /** `Form.useForm()` — create a form instance. Same shape as antd's hook. */
33
+ declare function useForm<V extends Record<string, unknown> = Record<string, unknown>>(): [FormInstance<V>];
34
+ interface FormProps<V extends Record<string, unknown> = Record<string, unknown>> extends Omit<React.FormHTMLAttributes<HTMLFormElement>, "onChange" | "onSubmit"> {
35
+ form?: FormInstance<V>;
36
+ layout?: FormLayout;
37
+ initialValues?: Partial<V>;
38
+ onFinish?: (values: V) => void;
39
+ onFinishFailed?: (info: {
40
+ values: Partial<V>;
41
+ errorFields: ErrorField[];
42
+ }) => void;
43
+ onValuesChange?: (changed: Partial<V>, all: V) => void;
44
+ /** Show the `*` mark before required field labels. Default true. */
45
+ requiredMark?: boolean;
46
+ /** Disable all fields inside. */
47
+ disabled?: boolean;
48
+ children?: React.ReactNode;
49
+ className?: string;
50
+ }
51
+ declare const FormRoot: <V extends Record<string, unknown> = Record<string, unknown>>(props: FormProps<V>) => react_jsx_runtime.JSX.Element;
52
+ interface FormItemProps {
53
+ /** Field key. Omit for layout-only wrappers (no value binding). */
54
+ name?: string;
55
+ label?: React.ReactNode;
56
+ rules?: Rule[];
57
+ /** Render no wrapper — emit only the (bound) child. */
58
+ noStyle?: boolean;
59
+ /** Inject value into this prop name on the child. Default `"value"`. */
60
+ valuePropName?: string;
61
+ /** Listen for changes on this event name. Default `"onChange"`. */
62
+ trigger?: string;
63
+ /** Event names that trigger validation. Default `["onChange"]`. */
64
+ validateTrigger?: string | string[];
65
+ /** Initial value (used when the form instance has no value yet). */
66
+ initialValue?: unknown;
67
+ /** Extra help text shown under the field. Hidden when an error is shown. */
68
+ help?: React.ReactNode;
69
+ /** Supplementary description below the help line. */
70
+ extra?: React.ReactNode;
71
+ /** Explicitly mark the field as required (cosmetic). */
72
+ required?: boolean;
73
+ /** Hide the entire item (still keeps the field in the form). */
74
+ hidden?: boolean;
75
+ children?: React.ReactNode;
76
+ className?: string;
77
+ style?: React.CSSProperties;
78
+ }
79
+ declare const FormItem: React.FC<FormItemProps>;
80
+ declare const Form: typeof FormRoot & {
81
+ Item: typeof FormItem;
82
+ useForm: typeof useForm;
83
+ };
84
+
85
+ export { type ErrorField, Form, type FormInstance, FormItem, type FormItemProps, type FormLayout, type FormProps, type Rule, useForm };