@fangxinyan/lumina 0.9.0 → 0.9.2

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 (136) hide show
  1. package/dist/Alert.d.cts +1 -1
  2. package/dist/Alert.d.ts +1 -1
  3. package/dist/AppShell.d.cts +1 -1
  4. package/dist/AppShell.d.ts +1 -1
  5. package/dist/AutoComplete.d.cts +1 -1
  6. package/dist/AutoComplete.d.ts +1 -1
  7. package/dist/Avatar.d.cts +1 -1
  8. package/dist/Avatar.d.ts +1 -1
  9. package/dist/Badge.d.cts +1 -1
  10. package/dist/Badge.d.ts +1 -1
  11. package/dist/Button.d.cts +1 -1
  12. package/dist/Button.d.ts +1 -1
  13. package/dist/Calendar.d.cts +1 -1
  14. package/dist/Calendar.d.ts +1 -1
  15. package/dist/Card.d.cts +1 -1
  16. package/dist/Card.d.ts +1 -1
  17. package/dist/Cascader.d.cts +1 -1
  18. package/dist/Cascader.d.ts +1 -1
  19. package/dist/Checkbox.d.cts +1 -1
  20. package/dist/Checkbox.d.ts +1 -1
  21. package/dist/Collapse.d.cts +1 -1
  22. package/dist/Collapse.d.ts +1 -1
  23. package/dist/ColorPicker.d.cts +1 -1
  24. package/dist/ColorPicker.d.ts +1 -1
  25. package/dist/CommandPalette.d.cts +1 -1
  26. package/dist/CommandPalette.d.ts +1 -1
  27. package/dist/ContextMenu.d.cts +1 -1
  28. package/dist/ContextMenu.d.ts +1 -1
  29. package/dist/DatePicker.d.cts +1 -1
  30. package/dist/DatePicker.d.ts +1 -1
  31. package/dist/DateTimePicker.d.cts +1 -1
  32. package/dist/DateTimePicker.d.ts +1 -1
  33. package/dist/Divider.d.cts +1 -1
  34. package/dist/Divider.d.ts +1 -1
  35. package/dist/Drawer.d.cts +1 -1
  36. package/dist/Drawer.d.ts +1 -1
  37. package/dist/Empty.d.cts +1 -1
  38. package/dist/Empty.d.ts +1 -1
  39. package/dist/Form.d.cts +1 -1
  40. package/dist/Form.d.ts +1 -1
  41. package/dist/Icon.d.cts +1 -1
  42. package/dist/Icon.d.ts +1 -1
  43. package/dist/Image.d.cts +1 -1
  44. package/dist/Image.d.ts +1 -1
  45. package/dist/Input.d.cts +1 -1
  46. package/dist/Input.d.ts +1 -1
  47. package/dist/InputNumber.d.cts +1 -1
  48. package/dist/InputNumber.d.ts +1 -1
  49. package/dist/List.d.cts +1 -1
  50. package/dist/List.d.ts +1 -1
  51. package/dist/Message.d.cts +1 -1
  52. package/dist/Message.d.ts +1 -1
  53. package/dist/{Modal-UI2FXNDR.css → Modal-KLLX3Z2M.css} +23 -6
  54. package/dist/Modal.cjs +2 -2
  55. package/dist/Modal.d.cts +1 -1
  56. package/dist/Modal.d.ts +1 -1
  57. package/dist/Modal.js +1 -1
  58. package/dist/Pagination.cjs +3 -3
  59. package/dist/Pagination.d.cts +1 -1
  60. package/dist/Pagination.d.ts +1 -1
  61. package/dist/Pagination.js +2 -2
  62. package/dist/Popover.d.cts +1 -1
  63. package/dist/Popover.d.ts +1 -1
  64. package/dist/Progress.d.cts +1 -1
  65. package/dist/Progress.d.ts +1 -1
  66. package/dist/Radio.d.cts +1 -1
  67. package/dist/Radio.d.ts +1 -1
  68. package/dist/{Select-QPBB73KA.css → Select-Y3X3ZJTC.css} +54 -11
  69. package/dist/Select.cjs +2 -4
  70. package/dist/Select.d.cts +8 -2
  71. package/dist/Select.d.ts +8 -2
  72. package/dist/Select.js +1 -3
  73. package/dist/Skeleton.d.cts +1 -1
  74. package/dist/Skeleton.d.ts +1 -1
  75. package/dist/Slider.d.cts +1 -1
  76. package/dist/Slider.d.ts +1 -1
  77. package/dist/Spin.d.cts +1 -1
  78. package/dist/Spin.d.ts +1 -1
  79. package/dist/Splitter.d.cts +1 -1
  80. package/dist/Splitter.d.ts +1 -1
  81. package/dist/StatusBar.d.cts +1 -1
  82. package/dist/StatusBar.d.ts +1 -1
  83. package/dist/Surface.d.cts +2 -2
  84. package/dist/Surface.d.ts +2 -2
  85. package/dist/Switch.d.cts +1 -1
  86. package/dist/Switch.d.ts +1 -1
  87. package/dist/Table.cjs +4 -4
  88. package/dist/Table.d.cts +1 -1
  89. package/dist/Table.d.ts +1 -1
  90. package/dist/Table.js +3 -3
  91. package/dist/TablePro.cjs +5 -5
  92. package/dist/TablePro.d.cts +1 -1
  93. package/dist/TablePro.d.ts +1 -1
  94. package/dist/TablePro.js +4 -4
  95. package/dist/Tabs.d.cts +1 -1
  96. package/dist/Tabs.d.ts +1 -1
  97. package/dist/Tag.d.cts +1 -1
  98. package/dist/Tag.d.ts +1 -1
  99. package/dist/Textarea.d.cts +1 -1
  100. package/dist/Textarea.d.ts +1 -1
  101. package/dist/{Theme-uQq2B0Yk.d.cts → Theme-BJa0Nb3w.d.cts} +1 -1
  102. package/dist/{Theme-CLedeJ_C.d.ts → Theme-DTtq_WWg.d.ts} +1 -1
  103. package/dist/Theme.d.cts +4 -4
  104. package/dist/Theme.d.ts +4 -4
  105. package/dist/ThemePanel.d.cts +2 -2
  106. package/dist/ThemePanel.d.ts +2 -2
  107. package/dist/TimePicker.d.cts +1 -1
  108. package/dist/TimePicker.d.ts +1 -1
  109. package/dist/Timeline.d.cts +1 -1
  110. package/dist/Timeline.d.ts +1 -1
  111. package/dist/Tooltip.d.cts +1 -1
  112. package/dist/Tooltip.d.ts +1 -1
  113. package/dist/Typography.d.cts +1 -1
  114. package/dist/Typography.d.ts +1 -1
  115. package/dist/{chunk-K3KHQ77L.cjs → chunk-CDT2QCBL.cjs} +177 -85
  116. package/dist/{chunk-HMN65CDW.cjs → chunk-IDEE7PP5.cjs} +2 -2
  117. package/dist/{chunk-UCE53RYR.js → chunk-LZXJN3XA.js} +1 -1
  118. package/dist/{chunk-7KA5D37Z.cjs → chunk-MJYMPK5K.cjs} +2 -2
  119. package/dist/{chunk-AL2PYVVP.js → chunk-MSWWABXP.js} +177 -85
  120. package/dist/{chunk-VTN6YLRJ.cjs → chunk-QZ2AAQBX.cjs} +2 -2
  121. package/dist/{chunk-GMFOY7RD.js → chunk-RJCPXAZ3.js} +10 -4
  122. package/dist/{chunk-JMYUO7V7.js → chunk-RM6JIM6O.js} +1 -1
  123. package/dist/{chunk-I2YL5XE4.cjs → chunk-SOAGRYM3.cjs} +10 -4
  124. package/dist/{chunk-2NECDEAJ.js → chunk-U3T6RC6U.js} +1 -1
  125. package/dist/{componentThemeTypes-Jt4B5aU8.d.ts → componentThemeTypes-C7lS3Hi8.d.cts} +6 -2
  126. package/dist/{componentThemeTypes-Jt4B5aU8.d.cts → componentThemeTypes-C7lS3Hi8.d.ts} +6 -2
  127. package/dist/index.cjs +11 -11
  128. package/dist/index.d.cts +3 -3
  129. package/dist/index.d.ts +3 -3
  130. package/dist/index.js +6 -6
  131. package/dist/styles.css +77 -16
  132. package/docs/llms/modal.md +24 -2
  133. package/docs/llms/select.md +40 -1
  134. package/docs/llms/theme.md +1 -1
  135. package/docs/llms.md +1 -1
  136. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -3,8 +3,8 @@
3
3
  var chunkRXITGNPX_cjs = require('./chunk-RXITGNPX.cjs');
4
4
  var chunkXHKSUKKL_cjs = require('./chunk-XHKSUKKL.cjs');
5
5
  var chunk3D5RJA7R_cjs = require('./chunk-3D5RJA7R.cjs');
6
- var chunkHMN65CDW_cjs = require('./chunk-HMN65CDW.cjs');
7
- var chunk7KA5D37Z_cjs = require('./chunk-7KA5D37Z.cjs');
6
+ var chunkIDEE7PP5_cjs = require('./chunk-IDEE7PP5.cjs');
7
+ var chunkMJYMPK5K_cjs = require('./chunk-MJYMPK5K.cjs');
8
8
  var chunkAEY76EAH_cjs = require('./chunk-AEY76EAH.cjs');
9
9
  require('./chunk-HYJSMFZA.cjs');
10
10
  var chunkAQN3PD24_cjs = require('./chunk-AQN3PD24.cjs');
@@ -19,9 +19,9 @@ var chunkUQF7E32V_cjs = require('./chunk-UQF7E32V.cjs');
19
19
  var chunk6WEXRX7K_cjs = require('./chunk-6WEXRX7K.cjs');
20
20
  var chunkZ6AG7O4B_cjs = require('./chunk-Z6AG7O4B.cjs');
21
21
  var chunkTPFY5SKB_cjs = require('./chunk-TPFY5SKB.cjs');
22
- var chunkI2YL5XE4_cjs = require('./chunk-I2YL5XE4.cjs');
23
- var chunkVTN6YLRJ_cjs = require('./chunk-VTN6YLRJ.cjs');
24
- var chunkK3KHQ77L_cjs = require('./chunk-K3KHQ77L.cjs');
22
+ var chunkSOAGRYM3_cjs = require('./chunk-SOAGRYM3.cjs');
23
+ var chunkQZ2AAQBX_cjs = require('./chunk-QZ2AAQBX.cjs');
24
+ var chunkCDT2QCBL_cjs = require('./chunk-CDT2QCBL.cjs');
25
25
  var chunkVNP5WB6M_cjs = require('./chunk-VNP5WB6M.cjs');
26
26
  var chunk3J7HOTD6_cjs = require('./chunk-3J7HOTD6.cjs');
27
27
  var chunkPYCAGTO7_cjs = require('./chunk-PYCAGTO7.cjs');
@@ -58,7 +58,7 @@ require('./chunk-V6BLBIY6.cjs');
58
58
  var chunkI4GJZLJU_cjs = require('./chunk-I4GJZLJU.cjs');
59
59
 
60
60
  // src/index.ts
61
- var VERSION = "0.9.0";
61
+ var VERSION = "0.9.2";
62
62
 
63
63
  Object.defineProperty(exports, "Timeline", {
64
64
  enumerable: true,
@@ -90,11 +90,11 @@ Object.defineProperty(exports, "Typography", {
90
90
  });
91
91
  Object.defineProperty(exports, "TablePro", {
92
92
  enumerable: true,
93
- get: function () { return chunkHMN65CDW_cjs.TablePro; }
93
+ get: function () { return chunkIDEE7PP5_cjs.TablePro; }
94
94
  });
95
95
  Object.defineProperty(exports, "Table", {
96
96
  enumerable: true,
97
- get: function () { return chunk7KA5D37Z_cjs.Table; }
97
+ get: function () { return chunkMJYMPK5K_cjs.Table; }
98
98
  });
99
99
  Object.defineProperty(exports, "Tabs", {
100
100
  enumerable: true,
@@ -186,15 +186,15 @@ Object.defineProperty(exports, "toast", {
186
186
  });
187
187
  Object.defineProperty(exports, "Modal", {
188
188
  enumerable: true,
189
- get: function () { return chunkI2YL5XE4_cjs.Modal; }
189
+ get: function () { return chunkSOAGRYM3_cjs.Modal; }
190
190
  });
191
191
  Object.defineProperty(exports, "Pagination", {
192
192
  enumerable: true,
193
- get: function () { return chunkVTN6YLRJ_cjs.Pagination; }
193
+ get: function () { return chunkQZ2AAQBX_cjs.Pagination; }
194
194
  });
195
195
  Object.defineProperty(exports, "Select", {
196
196
  enumerable: true,
197
- get: function () { return chunkK3KHQ77L_cjs.Select; }
197
+ get: function () { return chunkCDT2QCBL_cjs.Select; }
198
198
  });
199
199
  Object.defineProperty(exports, "Tag", {
200
200
  enumerable: true,
package/dist/index.d.cts CHANGED
@@ -45,8 +45,8 @@ export { Cascader, CascaderOption, CascaderOptionRenderInfo, CascaderProps, Casc
45
45
  export { BaseTypographyProps, CopyableConfig, EditableConfig, EllipsisConfig, Link, LinkProps, Paragraph, ParagraphProps, Text, TextProps, Title, TitleLevel, TitleProps, Typography, TypographyProps, TypographyType } from './Typography.cjs';
46
46
  export { ColorPicker, ColorPickerProps, ColorPickerTriggerElement } from './ColorPicker.cjs';
47
47
  export { Drawer, DrawerBodyInset, DrawerProps } from './Drawer.cjs';
48
- export { A as AccentKey, a as AccentPalette, C as ComponentTheme, b as ComponentThemeName, c as ComponentThemeOptions, d as ComponentThemeOverride, e as ComponentThemeOverrides, f as ComponentThemeProps, g as ComponentThemeScope, h as CustomAccentInput, R as ResolvedThemeColors, T as ThemeBaseMode, i as ThemeColorOverrides, j as ThemeSemanticColors, k as ThemeSurfacePalette, l as ThemeTokens } from './componentThemeTypes-Jt4B5aU8.cjs';
49
- export { A as ACCENT_PRESETS, a as ACCENT_PRESETS_DARK, B as BuiltInThemeMode, D as DEFAULT_THEME_COLORS, b as DensityMode, F as FONT_STACKS, c as FontConfig, d as FontKey, R as ResolvedThemeMode, T as ThemeConfig, e as ThemeMode, f as ThemePreset, g as ThemePresets, h as ThemeProvider, i as ThemeProviderConfig, j as ThemeProviderProps, k as ThemeValue, l as applyTheme, m as componentTokensToStyle, n as deriveThemeColors, o as normalizeAccentInput, r as resolveThemeColorScheme, p as resolveThemeColors, q as resolveThemeMode, s as resolveVisualThemeSnapshot, t as themeColorsToStyle, u as themeTokenToKebabCase, v as useTheme, w as useThemeOptional, x as visualThemeToStyle } from './Theme-uQq2B0Yk.cjs';
48
+ export { A as AccentKey, a as AccentPalette, C as ComponentTheme, b as ComponentThemeName, c as ComponentThemeOptions, d as ComponentThemeOverride, e as ComponentThemeOverrides, f as ComponentThemeProps, g as ComponentThemeScope, h as CustomAccentInput, M as ModalThemeSlot, R as ResolvedThemeColors, T as ThemeBaseMode, i as ThemeColorOverrides, j as ThemeSemanticColors, k as ThemeSurfacePalette, l as ThemeTokens } from './componentThemeTypes-C7lS3Hi8.cjs';
49
+ export { A as ACCENT_PRESETS, a as ACCENT_PRESETS_DARK, B as BuiltInThemeMode, D as DEFAULT_THEME_COLORS, b as DensityMode, F as FONT_STACKS, c as FontConfig, d as FontKey, R as ResolvedThemeMode, T as ThemeConfig, e as ThemeMode, f as ThemePreset, g as ThemePresets, h as ThemeProvider, i as ThemeProviderConfig, j as ThemeProviderProps, k as ThemeValue, l as applyTheme, m as componentTokensToStyle, n as deriveThemeColors, o as normalizeAccentInput, r as resolveThemeColorScheme, p as resolveThemeColors, q as resolveThemeMode, s as resolveVisualThemeSnapshot, t as themeColorsToStyle, u as themeTokenToKebabCase, v as useTheme, w as useThemeOptional, x as visualThemeToStyle } from './Theme-BJa0Nb3w.cjs';
50
50
  export { BuiltInLuminaThemePresetKey, LUMINA_THEME_PRESETS, cloneLuminaThemePreset, pickLuminaThemePresets } from './Theme.cjs';
51
51
  export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel, ThemePanelCreateThemePayload, ThemePanelCreatedThemeMeta, ThemePanelDeleteThemePayload, ThemePanelModeOption, ThemePanelPresetOption, ThemePanelProps, ThemePanelSection, ThemePanelUpdateThemePayload } from './ThemePanel.cjs';
52
52
  export { Timeline, TimelineItemConfig, TimelineProps } from './Timeline.cjs';
@@ -54,6 +54,6 @@ import 'react/jsx-runtime';
54
54
  import 'react';
55
55
 
56
56
  /** Package version — bumped by release scripts. */
57
- declare const VERSION = "0.9.0";
57
+ declare const VERSION = "0.9.2";
58
58
 
59
59
  export { VERSION };
package/dist/index.d.ts CHANGED
@@ -45,8 +45,8 @@ export { Cascader, CascaderOption, CascaderOptionRenderInfo, CascaderProps, Casc
45
45
  export { BaseTypographyProps, CopyableConfig, EditableConfig, EllipsisConfig, Link, LinkProps, Paragraph, ParagraphProps, Text, TextProps, Title, TitleLevel, TitleProps, Typography, TypographyProps, TypographyType } from './Typography.js';
46
46
  export { ColorPicker, ColorPickerProps, ColorPickerTriggerElement } from './ColorPicker.js';
47
47
  export { Drawer, DrawerBodyInset, DrawerProps } from './Drawer.js';
48
- export { A as AccentKey, a as AccentPalette, C as ComponentTheme, b as ComponentThemeName, c as ComponentThemeOptions, d as ComponentThemeOverride, e as ComponentThemeOverrides, f as ComponentThemeProps, g as ComponentThemeScope, h as CustomAccentInput, R as ResolvedThemeColors, T as ThemeBaseMode, i as ThemeColorOverrides, j as ThemeSemanticColors, k as ThemeSurfacePalette, l as ThemeTokens } from './componentThemeTypes-Jt4B5aU8.js';
49
- export { A as ACCENT_PRESETS, a as ACCENT_PRESETS_DARK, B as BuiltInThemeMode, D as DEFAULT_THEME_COLORS, b as DensityMode, F as FONT_STACKS, c as FontConfig, d as FontKey, R as ResolvedThemeMode, T as ThemeConfig, e as ThemeMode, f as ThemePreset, g as ThemePresets, h as ThemeProvider, i as ThemeProviderConfig, j as ThemeProviderProps, k as ThemeValue, l as applyTheme, m as componentTokensToStyle, n as deriveThemeColors, o as normalizeAccentInput, r as resolveThemeColorScheme, p as resolveThemeColors, q as resolveThemeMode, s as resolveVisualThemeSnapshot, t as themeColorsToStyle, u as themeTokenToKebabCase, v as useTheme, w as useThemeOptional, x as visualThemeToStyle } from './Theme-CLedeJ_C.js';
48
+ export { A as AccentKey, a as AccentPalette, C as ComponentTheme, b as ComponentThemeName, c as ComponentThemeOptions, d as ComponentThemeOverride, e as ComponentThemeOverrides, f as ComponentThemeProps, g as ComponentThemeScope, h as CustomAccentInput, M as ModalThemeSlot, R as ResolvedThemeColors, T as ThemeBaseMode, i as ThemeColorOverrides, j as ThemeSemanticColors, k as ThemeSurfacePalette, l as ThemeTokens } from './componentThemeTypes-C7lS3Hi8.js';
49
+ export { A as ACCENT_PRESETS, a as ACCENT_PRESETS_DARK, B as BuiltInThemeMode, D as DEFAULT_THEME_COLORS, b as DensityMode, F as FONT_STACKS, c as FontConfig, d as FontKey, R as ResolvedThemeMode, T as ThemeConfig, e as ThemeMode, f as ThemePreset, g as ThemePresets, h as ThemeProvider, i as ThemeProviderConfig, j as ThemeProviderProps, k as ThemeValue, l as applyTheme, m as componentTokensToStyle, n as deriveThemeColors, o as normalizeAccentInput, r as resolveThemeColorScheme, p as resolveThemeColors, q as resolveThemeMode, s as resolveVisualThemeSnapshot, t as themeColorsToStyle, u as themeTokenToKebabCase, v as useTheme, w as useThemeOptional, x as visualThemeToStyle } from './Theme-DTtq_WWg.js';
50
50
  export { BuiltInLuminaThemePresetKey, LUMINA_THEME_PRESETS, cloneLuminaThemePreset, pickLuminaThemePresets } from './Theme.js';
51
51
  export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel, ThemePanelCreateThemePayload, ThemePanelCreatedThemeMeta, ThemePanelDeleteThemePayload, ThemePanelModeOption, ThemePanelPresetOption, ThemePanelProps, ThemePanelSection, ThemePanelUpdateThemePayload } from './ThemePanel.js';
52
52
  export { Timeline, TimelineItemConfig, TimelineProps } from './Timeline.js';
@@ -54,6 +54,6 @@ import 'react/jsx-runtime';
54
54
  import 'react';
55
55
 
56
56
  /** Package version — bumped by release scripts. */
57
- declare const VERSION = "0.9.0";
57
+ declare const VERSION = "0.9.2";
58
58
 
59
59
  export { VERSION };
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  export { Timeline } from './chunk-U7V2FOIM.js';
2
2
  export { Tooltip } from './chunk-TALNKJQ2.js';
3
3
  export { Link, Paragraph, Text, Title, Typography } from './chunk-2COQYOVG.js';
4
- export { TablePro } from './chunk-2NECDEAJ.js';
5
- export { Table } from './chunk-JMYUO7V7.js';
4
+ export { TablePro } from './chunk-U3T6RC6U.js';
5
+ export { Table } from './chunk-RM6JIM6O.js';
6
6
  export { Tabs } from './chunk-4JANYBXO.js';
7
7
  import './chunk-EE7IJ3MB.js';
8
8
  export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel } from './chunk-IU6PLLEL.js';
@@ -17,9 +17,9 @@ export { Switch } from './chunk-O6PRE6MZ.js';
17
17
  export { InputNumber } from './chunk-RYF5ADJW.js';
18
18
  export { List } from './chunk-LACXN5CI.js';
19
19
  export { MessageContainer, ToastContainer, message, toast } from './chunk-2V6RQQRI.js';
20
- export { Modal } from './chunk-GMFOY7RD.js';
21
- export { Pagination } from './chunk-UCE53RYR.js';
22
- export { Select } from './chunk-AL2PYVVP.js';
20
+ export { Modal } from './chunk-RJCPXAZ3.js';
21
+ export { Pagination } from './chunk-LZXJN3XA.js';
22
+ export { Select } from './chunk-MSWWABXP.js';
23
23
  export { Tag } from './chunk-OGMI3TO5.js';
24
24
  export { Popover } from './chunk-A34P5CU7.js';
25
25
  export { Progress } from './chunk-BOBT7JUB.js';
@@ -56,6 +56,6 @@ import './chunk-5HLNFDV4.js';
56
56
  export { ACCENT_PRESETS, ACCENT_PRESETS_DARK, DEFAULT_THEME_COLORS, FONT_STACKS, ThemeProvider, applyTheme, componentTokensToStyle, deriveThemeColors, normalizeAccentInput, resolveThemeColorScheme, resolveThemeColors, resolveThemeMode, resolveVisualThemeSnapshot, themeColorsToStyle, themeTokenToKebabCase, useTheme, useThemeOptional, visualThemeToStyle } from './chunk-CPVUDSIY.js';
57
57
 
58
58
  // src/index.ts
59
- var VERSION = "0.9.0";
59
+ var VERSION = "0.9.2";
60
60
 
61
61
  export { VERSION };
package/dist/styles.css CHANGED
@@ -1689,19 +1689,71 @@ button.collapse-chev {
1689
1689
  flex: 1;
1690
1690
  min-width: 0;
1691
1691
  align-items: center;
1692
+ width: 100%;
1692
1693
  }
1693
1694
  .select.multi .select-trigger > .placeholder {
1694
1695
  padding-left: 6px;
1695
1696
  line-height: calc(var(--ctrl-h) - 8px);
1696
1697
  }
1697
1698
  .select.multi .select-tags > .tag {
1698
- max-width: 160px;
1699
+ max-width: min(160px, 100%);
1700
+ min-width: 0;
1701
+ flex-shrink: 1;
1699
1702
  }
1700
- .select.multi .select-tags > .tag > span:not(.dot):not(.x) {
1703
+ .select.multi .select-tag-label {
1704
+ display: block;
1705
+ min-width: 0;
1701
1706
  white-space: nowrap;
1702
1707
  overflow: hidden;
1703
1708
  text-overflow: ellipsis;
1704
1709
  }
1710
+ .select.multi .select-tag-label > * {
1711
+ min-width: 0;
1712
+ max-width: 100%;
1713
+ }
1714
+ .select.multi .select-tag-overflow {
1715
+ flex-shrink: 0;
1716
+ }
1717
+ .select.multi.searchable .select-trigger {
1718
+ cursor: text;
1719
+ }
1720
+ .select-search-input {
1721
+ min-width: 0;
1722
+ height: 24px;
1723
+ padding: 0 2px;
1724
+ border: 0;
1725
+ outline: 0;
1726
+ appearance: none;
1727
+ background: transparent;
1728
+ color: var(--lmn-select-fg, var(--fg));
1729
+ font: inherit;
1730
+ line-height: 24px;
1731
+ }
1732
+ .select-search-input.empty {
1733
+ flex: 1 1 auto;
1734
+ width: 100%;
1735
+ }
1736
+ .select-search-input.with-selection {
1737
+ flex: 0 1 auto;
1738
+ min-width: 2ch;
1739
+ max-width: 100%;
1740
+ field-sizing: content;
1741
+ }
1742
+ .select-search-input::placeholder {
1743
+ color: var(--lmn-select-fg-subtle, var(--fg-subtle));
1744
+ }
1745
+ .select-search-input::-webkit-search-cancel-button {
1746
+ appearance: none;
1747
+ }
1748
+ .select-search-input:focus-visible {
1749
+ box-shadow: none;
1750
+ }
1751
+ .select.searchable:focus-within .select-trigger {
1752
+ box-shadow: var(--lmn-select-neu-shadow-inset, var(--neu-shadow-inset)), 0 0 0 3px var(--lmn-select-accent-glow, var(--accent-glow));
1753
+ }
1754
+ .select.multi.searchable .select-caret {
1755
+ cursor: pointer;
1756
+ }
1705
1757
  .select-clear {
1706
1758
  position: absolute;
1707
1759
  right: 30px;
@@ -1742,14 +1794,6 @@ button.collapse-chev {
1742
1794
  background: var(--lmn-select-accent, var(--accent));
1743
1795
  box-shadow: var(--lmn-select-neu-shadow-control, var(--neu-shadow-control)), 0 1px 4px var(--lmn-select-accent-glow, var(--accent-glow));
1744
1796
  }
1745
- /* Menu search — flush with menu, single subtle separator (no nested frame) */
1746
- .menu-search {
1747
- display: block;
1748
- padding: 4px 2px 8px;
1749
- margin: -2px -2px 4px;
1750
- border-bottom: 1px solid var(--lmn-select-divider, var(--divider));
1751
- }
1752
- .menu-search .input-wrap { width: 100%; }
1753
1797
  /* Menu state (loading / empty) */
1754
1798
  .menu-state {
1755
1799
  display: flex;
@@ -1997,6 +2041,8 @@ button.collapse-chev {
1997
2041
  }
1998
2042
  .modal-head {
1999
2043
  display: flex;
2044
+ flex: 0 0 auto;
2045
+ min-width: 0;
2000
2046
  align-items: flex-start;
2001
2047
  justify-content: space-between;
2002
2048
  gap: var(--gap-3);
@@ -2011,26 +2057,41 @@ button.collapse-chev {
2011
2057
  .modal-body {
2012
2058
  min-width: 0;
2013
2059
  min-height: 0;
2014
- margin-inline: calc(var(--gap-6) * -1);
2060
+ margin-inline: calc(var(--overlay-shadow-safe-area) * -1);
2015
2061
  padding: var(--overlay-shadow-safe-area);
2016
2062
  color: var(--lmn-modal-fg-muted, var(--fg-muted));
2017
2063
  font-size: 13px;
2018
2064
  line-height: 1.6;
2019
- flex: 1;
2065
+ flex: 1 1 auto;
2066
+ overflow-x: hidden;
2020
2067
  overflow-y: auto;
2021
2068
  }
2022
2069
  .modal-body:first-child {
2023
- margin-top: calc(var(--gap-6) * -1);
2070
+ margin-top: calc(var(--overlay-shadow-safe-area) * -1);
2024
2071
  }
2025
- .modal-body:last-child {
2026
- margin-bottom: calc(var(--gap-6) * -1);
2072
+ .modal-body.default-overflow > * {
2073
+ min-width: 0;
2074
+ max-width: 100%;
2075
+ flex-shrink: 0;
2027
2076
  }
2028
2077
  .modal-body.inset-none {
2078
+ margin-inline: calc(var(--gap-6) * -1);
2029
2079
  padding: 0;
2030
2080
  }
2081
+ .modal-body.inset-none:first-child {
2082
+ margin-top: calc(var(--gap-6) * -1);
2083
+ }
2084
+ .modal-body.inset-none:last-child {
2085
+ margin-bottom: calc(var(--gap-6) * -1);
2086
+ }
2031
2087
  .modal-foot {
2032
2088
  display: flex;
2033
- gap: 10px;
2089
+ flex: 0 0 auto;
2090
+ min-width: 0;
2091
+ min-height: var(--lmn-modal-footer-min-height, var(--ctrl-h));
2092
+ margin-top: var(--lmn-modal-footer-gap, var(--gap-4));
2093
+ align-items: center;
2094
+ gap: var(--lmn-modal-footer-action-gap, var(--gap-3));
2034
2095
  justify-content: flex-end;
2035
2096
  }
2036
2097
  .modal-close {
@@ -104,6 +104,28 @@ closable={false} 隐藏右上角 ×,closeIcon 可自定义。
104
104
  </Modal>
105
105
  ```
106
106
 
107
+ ### 长内容与独立 footer
108
+
109
+ 默认正文只纵向滚动并保留底部安全区;直接子控件不会被纵向压缩。footer 独立于滚动区,bodyOverflow="hidden" 仍可交给内层容器滚动。
110
+
111
+ ```tsx
112
+ <Modal
113
+ footer={null}
114
+ bodyStyle={{ maxHeight: 360, display: "flex", flexDirection: "column" }}
115
+ >
116
+ <Input placeholder="固定高度的搜索框" />
117
+ <LongList />
118
+ </Modal>
119
+
120
+ <Modal bodyStyle={{ maxHeight: 360 }}>
121
+ <LongForm />
122
+ </Modal>
123
+
124
+ <Modal bodyOverflow="hidden">
125
+ <InnerScrollableLayout />
126
+ </Modal>
127
+ ```
128
+
107
129
  ### 嵌套浮层与 Esc 顺序
108
130
 
109
131
  子 Select 即使 Portal 到对话框之外,也会保持在 Modal 上方并参与同一焦点范围;连续按 Esc 会先关 Select,再关 Modal。
@@ -125,14 +147,14 @@ closable={false} 隐藏右上角 ×,closeIcon 可自定义。
125
147
  | onOk | `() => void` | — | 默认 OK 按钮点击 |
126
148
  | onCancel | `() => void` | — | 默认 Cancel 按钮 / Esc / 关闭 / 遮罩触发,缺省则用 onClose |
127
149
  | title / description | `ReactNode` | — | 标题/说明 |
128
- | footer | `ReactNode` | — | 自定义底部(null 去除) |
150
+ | footer | `ReactNode` | — | 独立于正文滚动区的底部区域;自定义内容,null 去除 |
129
151
  | okText / cancelText | `ReactNode` | `"确定" / "取消"` | 默认按钮文案 |
130
152
  | okButtonProps / cancelButtonProps | `Partial<ButtonProps>` | — | 透传给默认按钮 |
131
153
  | confirmLoading | `boolean` | `false` | OK 按钮显示 spinner 并禁用 |
132
154
  | bodyClassName | `string` | — | 正文容器 className |
133
155
  | bodyStyle | `CSSProperties` | — | 正文容器内联样式 |
134
156
  | bodyProps | `HTMLAttributes<HTMLDivElement>` | — | 透传给正文容器的 DOM props |
135
- | bodyOverflow | `CSSProperties['overflow']` | — | 正文容器 overflow 快捷控制 |
157
+ | bodyOverflow | `CSSProperties['overflow']` | — | 正文容器 overflow 快捷控制;hidden 可让复杂内层布局接管滚动 |
136
158
  | bodyInset | `"safe" | "none"` | `"safe"` | 正文边缘留白;safe 自动保护拟态阴影,none 用于贴边内容 |
137
159
  | closable | `boolean` | `true` | 显示右上角 × |
138
160
  | closeIcon | `ReactNode` | — | 自定义关闭图标 |
@@ -27,6 +27,43 @@ multiple + Tag 形式呈现已选项。
27
27
  <Select multiple clearable value={tags} onChange={setTags} options={...} />
28
28
  ```
29
29
 
30
+ ### 远程搜索多选
31
+
32
+ searchable 在单选和多选中都复用选择框本体作为输入;多选 Tag 后的空输入会收缩,不单独占行。选中后保持展开和关键词,业务层负责防抖与迟到结果保护。
33
+
34
+ ```tsx
35
+ const [value, setValue] = useState<string[]>([]);
36
+ const [searchValue, setSearchValue] = useState("");
37
+ const [options, setOptions] = useState<SelectOption[]>([]);
38
+ const [loading, setLoading] = useState(false);
39
+ const latestRequest = useRef(0);
40
+
41
+ useEffect(() => {
42
+ const requestId = ++latestRequest.current;
43
+ setLoading(true);
44
+ const timer = window.setTimeout(() => {
45
+ void fetchOptions(searchValue).then((nextOptions) => {
46
+ if (requestId !== latestRequest.current) return;
47
+ setOptions(nextOptions);
48
+ setLoading(false);
49
+ });
50
+ }, 300);
51
+ return () => {
52
+ window.clearTimeout(timer);
53
+ if (requestId === latestRequest.current) latestRequest.current += 1;
54
+ };
55
+ }, [searchValue]);
56
+
57
+ <Select
58
+ multiple searchable clearable
59
+ value={value} onChange={setValue}
60
+ searchValue={searchValue} onSearch={setSearchValue}
61
+ options={options} loading={loading}
62
+ filterOption={false}
63
+ maxTagCount={2}
64
+ />
65
+ ```
66
+
30
67
  ### 数量上限 / 分类限选
31
68
 
32
69
  maxCount 限制总数;getOptionDisabled 可读取当前选择,实现“一类最多选一个”。
@@ -147,8 +184,10 @@ loading 时显示 spinner,emptyContent 自定义空态。
147
184
  | maxTagCount | `number` | — | 多选时显示的标签数(超出折叠 +N) |
148
185
  | maxCount | `number` | — | 多选允许的最大选择数;达到上限后禁用未选项 |
149
186
  | getOptionDisabled | `(option, selectedValues) => boolean` | — | 基于候选项和当前选择动态判断禁用状态 |
150
- | searchable | `boolean` | `false` | 可搜索 |
187
+ | searchable | `boolean` | `false` | 在选择框本体内启用搜索,单选和多选共用同一交互形态 |
151
188
  | showSearch | `boolean` | `false` | searchable 的等价别名 |
189
+ | searchValue / defaultSearchValue | `string` | — | 受控搜索词 / 非受控初始搜索词;多选 searchable 时输入框位于标签同一触发器内 |
190
+ | onSearch | `(value: string) => void` | — | 搜索词交互变化回调;多选选中不会清空关键词,关闭时清空并回调空字符串 |
152
191
  | filterOption | `(input, option) => boolean` | — | 自定义过滤 |
153
192
  | optionFilterProp | `"label" | "value" | "text" | string` | — | 默认过滤使用的 option 字段 |
154
193
  | clearable | `boolean` | `false` | 显示独立且可访问的清除按钮 |
@@ -272,7 +272,7 @@ applyTheme(document.documentElement, {
272
272
  | tokens | `ThemeTokens` | — | 短键会写入组件前缀变量;以 -- 开头的键作为高级原始变量逃生口 |
273
273
  | components | `ComponentThemeOverrides` | — | 继续定向配置当前组件内部或 subtree 后代的组件类型 |
274
274
  | styles.root | `CSSProperties` | — | 所有组件都支持真实视觉根节点;调用方 style 仍保持最高优先级 |
275
- | styles.popup / overlay / body | `CSSProperties` | — | 浮层、遮罩和正文等组件专用静态插槽;定位与用户 popupStyle 不会被覆盖 |
275
+ | styles.popup / overlay / header / body / footer | `CSSProperties` | — | 浮层、遮罩和 Modal 头部/正文/footer 等稳定静态插槽;定位与用户实例样式不会被覆盖 |
276
276
 
277
277
 
278
278
  ---
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.9.0`
6
+ - **版本**: `0.9.2`
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.9.0",
3
+ "version": "0.9.2",
4
4
  "description": "Lumina — Neumorphic component library for Electron & React apps",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",