@proyecto-viviana/solid-stately 0.2.7 → 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 (254) hide show
  1. package/README.md +30 -283
  2. package/dist/autocomplete/createAutocompleteState.d.ts +2 -2
  3. package/dist/autocomplete/index.d.ts +1 -1
  4. package/dist/calendar/IncompleteDate.d.ts +61 -0
  5. package/dist/calendar/createCalendarState.d.ts +41 -16
  6. package/dist/calendar/createDateFieldState.d.ts +39 -9
  7. package/dist/calendar/createDatePickerState.d.ts +60 -0
  8. package/dist/calendar/createRangeCalendarState.d.ts +37 -10
  9. package/dist/calendar/createTimeFieldState.d.ts +34 -7
  10. package/dist/calendar/index.d.ts +7 -6
  11. package/dist/checkbox/createCheckboxGroupState.d.ts +6 -6
  12. package/dist/checkbox/index.d.ts +1 -1
  13. package/dist/collections/ListCollection.d.ts +1 -1
  14. package/dist/collections/createListState.d.ts +11 -8
  15. package/dist/collections/createMenuState.d.ts +7 -7
  16. package/dist/collections/createSelectionState.d.ts +22 -10
  17. package/dist/collections/getChildNodes.d.ts +11 -0
  18. package/dist/collections/index.d.ts +6 -5
  19. package/dist/collections/types.d.ts +12 -12
  20. package/dist/color/Color.d.ts +1 -1
  21. package/dist/color/createColorAreaState.d.ts +4 -2
  22. package/dist/color/createColorFieldState.d.ts +38 -12
  23. package/dist/color/createColorSliderState.d.ts +9 -2
  24. package/dist/color/createColorWheelState.d.ts +13 -2
  25. package/dist/color/getColorChannels.d.ts +1 -1
  26. package/dist/color/index.d.ts +6 -6
  27. package/dist/color/types.d.ts +4 -4
  28. package/dist/combobox/createComboBoxState.d.ts +34 -13
  29. package/dist/combobox/index.d.ts +1 -1
  30. package/dist/data/createAsyncList.d.ts +4 -4
  31. package/dist/data/createListData.d.ts +2 -2
  32. package/dist/data/createTreeData.d.ts +6 -2
  33. package/dist/data/index.d.ts +3 -3
  34. package/dist/datepicker/index.d.ts +2 -4
  35. package/dist/disclosure/createDisclosureState.d.ts +2 -2
  36. package/dist/disclosure/index.d.ts +1 -1
  37. package/dist/dnd/createDragState.d.ts +2 -2
  38. package/dist/dnd/createDraggableCollectionState.d.ts +2 -2
  39. package/dist/dnd/createDropState.d.ts +2 -2
  40. package/dist/dnd/createDroppableCollectionState.d.ts +3 -3
  41. package/dist/dnd/index.d.ts +5 -5
  42. package/dist/dnd/types.d.ts +19 -17
  43. package/dist/form/createFormValidationState.d.ts +3 -3
  44. package/dist/form/index.d.ts +1 -1
  45. package/dist/grid/createGridState.d.ts +2 -2
  46. package/dist/grid/index.d.ts +2 -2
  47. package/dist/grid/types.d.ts +27 -11
  48. package/dist/index.d.ts +31 -30
  49. package/dist/index.js +9077 -7246
  50. package/dist/index.js.map +1 -1
  51. package/dist/menu/index.d.ts +2 -2
  52. package/dist/numberfield/createNumberFieldState.d.ts +2 -2
  53. package/dist/numberfield/index.d.ts +1 -1
  54. package/dist/overlays/createOverlayTriggerState.d.ts +2 -2
  55. package/dist/overlays/index.d.ts +1 -1
  56. package/dist/radio/createRadioGroupState.d.ts +7 -7
  57. package/dist/radio/index.d.ts +1 -1
  58. package/dist/searchfield/createSearchFieldState.d.ts +2 -2
  59. package/dist/searchfield/index.d.ts +2 -2
  60. package/dist/select/createSelectState.d.ts +14 -8
  61. package/dist/select/index.d.ts +1 -1
  62. package/dist/selection/Selection.d.ts +16 -0
  63. package/dist/selection/SelectionManager.d.ts +110 -0
  64. package/dist/selection/createMultipleSelectionState.d.ts +59 -0
  65. package/dist/selection/index.d.ts +6 -5
  66. package/dist/slider/createSliderState.d.ts +3 -3
  67. package/dist/slider/index.d.ts +2 -2
  68. package/dist/steplist/createStepListState.d.ts +48 -0
  69. package/dist/steplist/index.d.ts +1 -0
  70. package/dist/table/TableCollection.d.ts +33 -3
  71. package/dist/table/createTableColumnResizeState.d.ts +54 -0
  72. package/dist/table/createTableState.d.ts +2 -2
  73. package/dist/table/createTreeGridState.d.ts +15 -0
  74. package/dist/table/index.d.ts +6 -3
  75. package/dist/table/types.d.ts +68 -10
  76. package/dist/tabs/createTabListState.d.ts +5 -5
  77. package/dist/tabs/index.d.ts +1 -1
  78. package/dist/textfield/createTextFieldState.d.ts +2 -2
  79. package/dist/textfield/index.d.ts +1 -1
  80. package/dist/toast/createToastState.d.ts +24 -2
  81. package/dist/toast/index.d.ts +1 -1
  82. package/dist/toggle/createToggleGroupState.d.ts +4 -4
  83. package/dist/toggle/createToggleState.d.ts +2 -2
  84. package/dist/toggle/index.d.ts +2 -2
  85. package/dist/tooltip/createTooltipTriggerState.d.ts +2 -2
  86. package/dist/tooltip/index.d.ts +1 -1
  87. package/dist/tree/TreeCollection.d.ts +2 -2
  88. package/dist/tree/createTreeState.d.ts +2 -2
  89. package/dist/tree/index.d.ts +3 -3
  90. package/dist/tree/types.d.ts +27 -13
  91. package/dist/utils/index.d.ts +1 -1
  92. package/dist/utils/reactivity.d.ts +1 -1
  93. package/package.json +29 -30
  94. package/src/autocomplete/createAutocompleteState.d.ts +19 -17
  95. package/src/autocomplete/createAutocompleteState.ts +24 -30
  96. package/src/autocomplete/index.d.ts +6 -2
  97. package/src/autocomplete/index.ts +1 -1
  98. package/src/calendar/IncompleteDate.ts +430 -0
  99. package/src/calendar/createCalendarState.d.ts +139 -117
  100. package/src/calendar/createCalendarState.ts +308 -94
  101. package/src/calendar/createDateFieldState.d.ts +130 -95
  102. package/src/calendar/createDateFieldState.ts +447 -334
  103. package/src/calendar/createDatePickerState.ts +347 -0
  104. package/src/calendar/createRangeCalendarState.d.ts +154 -129
  105. package/src/calendar/createRangeCalendarState.ts +411 -85
  106. package/src/calendar/createTimeFieldState.d.ts +81 -79
  107. package/src/calendar/createTimeFieldState.ts +187 -108
  108. package/src/calendar/index.d.ts +80 -7
  109. package/src/calendar/index.ts +23 -12
  110. package/src/checkbox/createCheckboxGroupState.d.ts +57 -55
  111. package/src/checkbox/createCheckboxGroupState.ts +20 -29
  112. package/src/checkbox/index.d.ts +6 -2
  113. package/src/checkbox/index.ts +1 -1
  114. package/src/collections/ListCollection.d.ts +25 -22
  115. package/src/collections/ListCollection.ts +6 -6
  116. package/src/collections/createListState.d.ts +73 -58
  117. package/src/collections/createListState.ts +67 -35
  118. package/src/collections/createMenuState.d.ts +36 -31
  119. package/src/collections/createMenuState.ts +21 -12
  120. package/src/collections/createSelectionState.d.ts +78 -65
  121. package/src/collections/createSelectionState.ts +66 -52
  122. package/src/collections/getChildNodes.ts +98 -0
  123. package/src/collections/index.d.ts +38 -6
  124. package/src/collections/index.ts +14 -10
  125. package/src/collections/types.d.ts +101 -101
  126. package/src/collections/types.ts +12 -12
  127. package/src/color/Color.d.ts +20 -5
  128. package/src/color/Color.ts +357 -254
  129. package/src/color/createColorAreaState.d.ts +67 -65
  130. package/src/color/createColorAreaState.ts +21 -13
  131. package/src/color/createColorFieldState.d.ts +46 -44
  132. package/src/color/createColorFieldState.ts +285 -149
  133. package/src/color/createColorSliderState.d.ts +58 -56
  134. package/src/color/createColorSliderState.ts +45 -14
  135. package/src/color/createColorWheelState.d.ts +42 -40
  136. package/src/color/createColorWheelState.ts +101 -64
  137. package/src/color/getColorChannels.ts +7 -5
  138. package/src/color/index.d.ts +36 -7
  139. package/src/color/index.ts +6 -9
  140. package/src/color/types.d.ts +68 -63
  141. package/src/color/types.ts +11 -19
  142. package/src/combobox/createComboBoxState.d.ts +107 -105
  143. package/src/combobox/createComboBoxState.ts +184 -89
  144. package/src/combobox/index.d.ts +10 -2
  145. package/src/combobox/index.ts +1 -1
  146. package/src/data/createAsyncList.ts +89 -63
  147. package/src/data/createListData.ts +67 -67
  148. package/src/data/createTreeData.ts +304 -91
  149. package/src/data/index.ts +3 -3
  150. package/src/datepicker/index.ts +6 -10
  151. package/src/disclosure/createDisclosureState.d.ts +47 -43
  152. package/src/disclosure/createDisclosureState.ts +7 -21
  153. package/src/disclosure/index.d.ts +10 -2
  154. package/src/disclosure/index.ts +1 -1
  155. package/src/dnd/createDragState.d.ts +51 -42
  156. package/src/dnd/createDragState.ts +12 -14
  157. package/src/dnd/createDraggableCollectionState.d.ts +52 -41
  158. package/src/dnd/createDraggableCollectionState.ts +14 -21
  159. package/src/dnd/createDropState.d.ts +64 -45
  160. package/src/dnd/createDropState.ts +22 -32
  161. package/src/dnd/createDroppableCollectionState.d.ts +88 -59
  162. package/src/dnd/createDroppableCollectionState.ts +40 -43
  163. package/src/dnd/index.d.ts +55 -6
  164. package/src/dnd/index.ts +6 -18
  165. package/src/dnd/types.d.ts +170 -157
  166. package/src/dnd/types.ts +24 -22
  167. package/src/form/createFormValidationState.d.ts +47 -45
  168. package/src/form/createFormValidationState.ts +30 -63
  169. package/src/form/index.d.ts +16 -2
  170. package/src/form/index.ts +1 -1
  171. package/src/grid/createGridState.d.ts +7 -4
  172. package/src/grid/createGridState.ts +78 -51
  173. package/src/grid/index.d.ts +3 -3
  174. package/src/grid/index.ts +2 -8
  175. package/src/grid/types.d.ts +136 -129
  176. package/src/grid/types.ts +34 -18
  177. package/src/index.d.ts +311 -26
  178. package/src/index.ts +59 -89
  179. package/src/menu/index.ts +2 -4
  180. package/src/numberfield/createNumberFieldState.d.ts +56 -54
  181. package/src/numberfield/createNumberFieldState.ts +26 -31
  182. package/src/numberfield/index.d.ts +6 -2
  183. package/src/numberfield/index.ts +1 -1
  184. package/src/overlays/createOverlayTriggerState.d.ts +22 -20
  185. package/src/overlays/createOverlayTriggerState.ts +3 -4
  186. package/src/overlays/index.d.ts +6 -2
  187. package/src/overlays/index.ts +1 -1
  188. package/src/radio/createRadioGroupState.d.ts +54 -52
  189. package/src/radio/createRadioGroupState.ts +27 -29
  190. package/src/radio/index.d.ts +7 -2
  191. package/src/radio/index.ts +1 -1
  192. package/src/searchfield/createSearchFieldState.d.ts +16 -14
  193. package/src/searchfield/createSearchFieldState.ts +5 -11
  194. package/src/searchfield/index.d.ts +3 -3
  195. package/src/searchfield/index.ts +2 -5
  196. package/src/select/createSelectState.d.ts +63 -61
  197. package/src/select/createSelectState.ts +42 -29
  198. package/src/select/index.d.ts +2 -2
  199. package/src/select/index.ts +1 -5
  200. package/src/selection/Selection.ts +28 -0
  201. package/src/selection/SelectionManager.ts +526 -0
  202. package/src/selection/createMultipleSelectionState.ts +247 -0
  203. package/src/selection/index.ts +12 -7
  204. package/src/slider/createSliderState.d.ts +60 -60
  205. package/src/slider/createSliderState.ts +55 -33
  206. package/src/slider/index.d.ts +3 -3
  207. package/src/slider/index.ts +2 -6
  208. package/src/ssr/index.d.ts +1 -1
  209. package/src/ssr/index.ts +2 -2
  210. package/src/steplist/createStepListState.ts +191 -0
  211. package/src/steplist/index.ts +5 -0
  212. package/src/table/TableCollection.d.ts +42 -40
  213. package/src/table/TableCollection.ts +266 -99
  214. package/src/table/createTableColumnResizeState.ts +242 -0
  215. package/src/table/createTableState.d.ts +7 -4
  216. package/src/table/createTableState.ts +30 -7
  217. package/src/table/createTreeGridState.ts +146 -0
  218. package/src/table/index.d.ts +14 -4
  219. package/src/table/index.ts +13 -3
  220. package/src/table/types.d.ts +98 -92
  221. package/src/table/types.ts +83 -13
  222. package/src/tabs/createTabListState.d.ts +59 -57
  223. package/src/tabs/createTabListState.ts +34 -39
  224. package/src/tabs/index.d.ts +8 -2
  225. package/src/tabs/index.ts +1 -1
  226. package/src/textfield/createTextFieldState.d.ts +16 -14
  227. package/src/textfield/createTextFieldState.ts +7 -18
  228. package/src/textfield/index.d.ts +6 -2
  229. package/src/textfield/index.ts +1 -1
  230. package/src/toast/createToastState.d.ts +92 -86
  231. package/src/toast/createToastState.ts +90 -52
  232. package/src/toast/index.d.ts +12 -2
  233. package/src/toast/index.ts +2 -1
  234. package/src/toggle/createToggleGroupState.ts +11 -21
  235. package/src/toggle/createToggleState.d.ts +19 -19
  236. package/src/toggle/createToggleState.ts +2 -16
  237. package/src/toggle/index.d.ts +2 -2
  238. package/src/toggle/index.ts +2 -6
  239. package/src/tooltip/createTooltipTriggerState.d.ts +17 -17
  240. package/src/tooltip/createTooltipTriggerState.ts +12 -11
  241. package/src/tooltip/index.d.ts +7 -2
  242. package/src/tooltip/index.ts +1 -1
  243. package/src/tree/TreeCollection.d.ts +26 -23
  244. package/src/tree/TreeCollection.ts +29 -22
  245. package/src/tree/createTreeState.d.ts +7 -4
  246. package/src/tree/createTreeState.ts +70 -41
  247. package/src/tree/index.d.ts +10 -4
  248. package/src/tree/index.ts +3 -3
  249. package/src/tree/types.d.ts +131 -126
  250. package/src/tree/types.ts +30 -13
  251. package/src/utils/index.d.ts +2 -2
  252. package/src/utils/index.ts +1 -1
  253. package/src/utils/reactivity.d.ts +2 -2
  254. package/src/utils/reactivity.ts +3 -3
@@ -1,52 +1,78 @@
1
1
  /**
2
2
  * ColorField state management.
3
- * Based on @react-stately/color useColorFieldState.
3
+ * Based on @react-stately/color useColorFieldState and useColorChannelFieldState.
4
4
  */
5
- import { type Accessor } from 'solid-js';
6
- import type { Color, ColorChannel, ColorFormat } from './types';
5
+ import { type Accessor } from "solid-js";
6
+ import type { Color, ColorChannel, ColorFormat, ColorSpace } from "./types";
7
7
  export interface ColorFieldStateOptions {
8
8
  /** The current color value (controlled). */
9
9
  value?: Color | string | null;
10
10
  /** The default color value (uncontrolled). */
11
- defaultValue?: Color | string;
11
+ defaultValue?: Color | string | null;
12
12
  /** Handler called when the color changes. */
13
13
  onChange?: (color: Color | null) => void;
14
14
  /** The color channel to edit (for single channel mode). */
15
15
  channel?: ColorChannel;
16
- /** The color format for parsing/displaying. */
16
+ /** The color space to use for channel mode. */
17
+ colorSpace?: ColorSpace;
18
+ /** The color format for parsing/displaying in hex mode. */
17
19
  colorFormat?: ColorFormat;
20
+ /** Locale used to format channel values. */
21
+ locale?: string;
18
22
  /** Whether the field is disabled. */
19
23
  isDisabled?: boolean;
20
24
  /** Whether the field is read-only. */
21
25
  isReadOnly?: boolean;
26
+ /** Whether the field is invalid. */
27
+ isInvalid?: boolean;
28
+ /** Whether the field is required. */
29
+ isRequired?: boolean;
22
30
  }
23
31
  export interface ColorFieldState {
24
- /** The current color value (null if invalid). */
32
+ /** The current color value (null if empty). */
25
33
  readonly value: Color | null;
34
+ /** The color used for channel calculations. */
35
+ readonly colorValue: Color;
26
36
  /** The current input text. */
27
37
  readonly inputValue: string;
38
+ /** The numeric value exposed by channel fields. */
39
+ readonly numberValue: number;
40
+ /** The channel minimum value after formatting normalization. */
41
+ readonly minValue: number;
42
+ /** The channel maximum value after formatting normalization. */
43
+ readonly maxValue: number;
44
+ /** The channel keyboard step after formatting normalization. */
45
+ readonly step: number;
46
+ /** The channel page step after formatting normalization. */
47
+ readonly pageSize: number;
48
+ /** Number formatter options for channel fields. */
49
+ readonly formatOptions: Intl.NumberFormatOptions;
28
50
  /** Whether the input is invalid. */
29
51
  readonly isInvalid: boolean;
30
52
  /** Whether the field is disabled. */
31
53
  readonly isDisabled: boolean;
32
54
  /** Whether the field is read-only. */
33
55
  readonly isReadOnly: boolean;
56
+ /** Whether the field is required. */
57
+ readonly isRequired: boolean;
34
58
  /** The color channel being edited (if single channel mode). */
35
59
  readonly channel: ColorChannel | undefined;
36
60
  /** Set the input text value. */
37
61
  setInputValue(value: string): void;
62
+ /** Set the color value. */
63
+ setColorValue(value: Color | null): void;
38
64
  /** Commit the current input value. */
39
65
  commit(): void;
40
- /** Increment the color channel value. */
66
+ /** Increment the color value. */
41
67
  increment(): void;
42
- /** Decrement the color channel value. */
68
+ /** Decrement the color value. */
43
69
  decrement(): void;
44
- /** Increment by page size. */
70
+ /** Increment by page size or to the maximum. */
45
71
  incrementToMax(): void;
46
- /** Decrement to minimum. */
72
+ /** Decrement by page size or to the minimum. */
47
73
  decrementToMin(): void;
48
- /** Validate the current input. */
49
- validate(): boolean;
74
+ /** Validate the current input or a candidate input. */
75
+ validate(value?: string): boolean;
50
76
  }
51
77
  /**
52
78
  * Creates state for a color field (text input for color values).
@@ -2,8 +2,9 @@
2
2
  * ColorSlider state management.
3
3
  * Based on @react-stately/color useColorSliderState.
4
4
  */
5
- import { type Accessor } from 'solid-js';
6
- import type { Color, ColorChannel } from './types';
5
+ import { type Accessor } from "solid-js";
6
+ import type { Color, ColorChannel, ColorSpace } from "./types";
7
+ export type ColorSliderOrientation = "horizontal" | "vertical";
7
8
  export interface ColorSliderStateOptions {
8
9
  /** The current color value (controlled). */
9
10
  value?: Color | string;
@@ -15,6 +16,10 @@ export interface ColorSliderStateOptions {
15
16
  onChangeEnd?: (color: Color) => void;
16
17
  /** The color channel this slider controls. */
17
18
  channel: ColorChannel;
19
+ /** The color space to use for channel values. */
20
+ colorSpace?: ColorSpace;
21
+ /** The slider orientation. */
22
+ orientation?: ColorSliderOrientation;
18
23
  /** Whether the slider is disabled. */
19
24
  isDisabled?: boolean;
20
25
  /** The locale for formatting. */
@@ -27,6 +32,8 @@ export interface ColorSliderState {
27
32
  readonly isDragging: boolean;
28
33
  /** The color channel being controlled. */
29
34
  readonly channel: ColorChannel;
35
+ /** The slider orientation. */
36
+ readonly orientation: ColorSliderOrientation;
30
37
  /** The step value for the channel. */
31
38
  readonly step: number;
32
39
  /** The page step value for the channel. */
@@ -2,8 +2,8 @@
2
2
  * ColorWheel state management.
3
3
  * Based on @react-stately/color useColorWheelState.
4
4
  */
5
- import { type Accessor } from 'solid-js';
6
- import type { Color } from './types';
5
+ import { type Accessor } from "solid-js";
6
+ import type { Color } from "./types";
7
7
  export interface ColorWheelStateOptions {
8
8
  /** The current color value (controlled). */
9
9
  value?: Color | string;
@@ -19,6 +19,8 @@ export interface ColorWheelStateOptions {
19
19
  export interface ColorWheelState {
20
20
  /** The current color value. */
21
21
  readonly value: Color;
22
+ /** The initial color value. */
23
+ readonly defaultValue: Color;
22
24
  /** Whether the wheel is being dragged. */
23
25
  readonly isDragging: boolean;
24
26
  /** Whether the wheel is disabled. */
@@ -29,12 +31,21 @@ export interface ColorWheelState {
29
31
  readonly pageStep: number;
30
32
  /** Get the current hue value (0-360). */
31
33
  getHue(): number;
34
+ /** Set the full color value. */
35
+ setValue(value: Color | string): void;
32
36
  /** Set the hue value. */
33
37
  setHue(value: number): void;
34
38
  /** Set hue from an angle in radians. */
35
39
  setHueFromAngle(angle: number): void;
40
+ /** Set hue from a point relative to the wheel center. */
41
+ setHueFromPoint(x: number, y: number, radius: number): void;
36
42
  /** Get the thumb angle in radians (0 = right, increases counterclockwise). */
37
43
  getThumbAngle(): number;
44
+ /** Get the thumb position relative to the wheel center. */
45
+ getThumbPosition(radius: number): {
46
+ x: number;
47
+ y: number;
48
+ };
38
49
  /** Increment hue value. */
39
50
  increment(stepSize?: number): void;
40
51
  /** Decrement hue value. */
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Returns the three channels for a given color space.
5
5
  */
6
- import type { ColorChannel, ColorSpace } from './types';
6
+ import type { ColorChannel, ColorSpace } from "./types";
7
7
  /**
8
8
  * Returns the color channels for a given color space.
9
9
  *
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Color state management exports.
3
3
  */
4
- export type { Color, ColorFormat, ColorSpace, ColorChannel, ColorChannelRange, ColorAxes, } from './types';
5
- export { parseColor, normalizeColor, createRGBColor, createHSLColor, createHSBColor, } from './Color';
6
- export { createColorSliderState, type ColorSliderStateOptions, type ColorSliderState, } from './createColorSliderState';
7
- export { createColorAreaState, type ColorAreaStateOptions, type ColorAreaState, } from './createColorAreaState';
8
- export { createColorWheelState, type ColorWheelStateOptions, type ColorWheelState, } from './createColorWheelState';
9
- export { createColorFieldState, type ColorFieldStateOptions, type ColorFieldState, } from './createColorFieldState';
4
+ export type { Color, ColorFormat, ColorSpace, ColorChannel, ColorChannelRange, ColorAxes, } from "./types";
5
+ export { parseColor, normalizeColor, createRGBColor, createHSLColor, createHSBColor, } from "./Color";
6
+ export { createColorSliderState, type ColorSliderStateOptions, type ColorSliderState, } from "./createColorSliderState";
7
+ export { createColorAreaState, type ColorAreaStateOptions, type ColorAreaState, } from "./createColorAreaState";
8
+ export { createColorWheelState, type ColorWheelStateOptions, type ColorWheelState, } from "./createColorWheelState";
9
+ export { createColorFieldState, type ColorFieldStateOptions, type ColorFieldState, } from "./createColorFieldState";
@@ -5,15 +5,15 @@
5
5
  /**
6
6
  * Supported color formats.
7
7
  */
8
- export type ColorFormat = 'hex' | 'hexa' | 'rgb' | 'rgba' | 'hsl' | 'hsla' | 'hsb' | 'hsba';
8
+ export type ColorFormat = "hex" | "hexa" | "rgb" | "rgba" | "hsl" | "hsla" | "hsb" | "hsba";
9
9
  /**
10
10
  * Color spaces.
11
11
  */
12
- export type ColorSpace = 'rgb' | 'hsl' | 'hsb';
12
+ export type ColorSpace = "rgb" | "hsl" | "hsb";
13
13
  /**
14
14
  * Color channels.
15
15
  */
16
- export type ColorChannel = 'hue' | 'saturation' | 'brightness' | 'lightness' | 'red' | 'green' | 'blue' | 'alpha';
16
+ export type ColorChannel = "hue" | "saturation" | "brightness" | "lightness" | "red" | "green" | "blue" | "alpha";
17
17
  /**
18
18
  * Range for a color channel.
19
19
  */
@@ -45,7 +45,7 @@ export interface Color {
45
45
  /** Convert to a different format. */
46
46
  toFormat(format: ColorFormat): Color;
47
47
  /** Convert to a CSS string. */
48
- toString(format?: ColorFormat | 'css'): string;
48
+ toString(format?: ColorFormat | "css"): string;
49
49
  /** Clone this color. */
50
50
  clone(): Color;
51
51
  /** Get the hex value as an integer. */
@@ -5,15 +5,16 @@
5
5
  * ComboBox combines a text input with a dropdown list, allowing users to
6
6
  * either type to filter options or select from a list.
7
7
  */
8
- import { type Accessor } from 'solid-js';
9
- import { type MaybeAccessor } from '../utils';
10
- import type { Key, CollectionNode, Collection, FocusStrategy } from '../collections/types';
11
- export type MenuTriggerAction = 'focus' | 'input' | 'manual';
12
- export type { FocusStrategy } from '../collections/types';
8
+ import { type Accessor } from "solid-js";
9
+ import { type MaybeAccessor } from "../utils";
10
+ import type { Key, CollectionNode, Collection, FocusStrategy } from "../collections/types";
11
+ import type { SelectionManager } from "../selection/SelectionManager";
12
+ export type MenuTriggerAction = "focus" | "input" | "manual";
13
+ export type { FocusStrategy } from "../collections/types";
13
14
  export type FilterFn = (textValue: string, inputValue: string) => boolean;
14
15
  export interface ComboBoxStateProps<T = unknown> {
15
16
  /** The items to display in the combobox dropdown. */
16
- items: T[];
17
+ items?: T[];
17
18
  /** Default items when uncontrolled. */
18
19
  defaultItems?: T[];
19
20
  /** Function to get the key for an item. */
@@ -24,12 +25,20 @@ export interface ComboBoxStateProps<T = unknown> {
24
25
  getDisabled?: (item: T) => boolean;
25
26
  /** Keys of disabled items. */
26
27
  disabledKeys?: Iterable<Key>;
27
- /** The currently selected key (controlled). */
28
+ /** The selection mode for the combobox. */
29
+ selectionMode?: "single" | "multiple";
30
+ /** The currently selected key (controlled, single mode). */
28
31
  selectedKey?: Key | null;
29
- /** The default selected key (uncontrolled). */
32
+ /** The default selected key (uncontrolled, single mode). */
30
33
  defaultSelectedKey?: Key | null;
31
- /** Handler called when the selection changes. */
34
+ /** The currently selected keys (controlled, multiple mode). */
35
+ selectedKeys?: Iterable<Key>;
36
+ /** The default selected keys (uncontrolled, multiple mode). */
37
+ defaultSelectedKeys?: Iterable<Key>;
38
+ /** Handler called when the selection changes (single mode). */
32
39
  onSelectionChange?: (key: Key | null) => void;
40
+ /** Handler called when the selection changes (multiple mode). */
41
+ onSelectionChangeMultiple?: (keys: Set<Key>) => void;
33
42
  /** The current input value (controlled). */
34
43
  inputValue?: string;
35
44
  /** The default input value (uncontrolled). */
@@ -62,6 +71,12 @@ export interface ComboBoxStateProps<T = unknown> {
62
71
  export interface ComboBoxState<T = unknown> {
63
72
  /** The collection of items (may be filtered). */
64
73
  readonly collection: Accessor<Collection<T>>;
74
+ /**
75
+ * The collection-aware selection manager. Mirrors upstream `useComboBoxState`,
76
+ * which returns the `useListState` selection manager bound to the unfiltered
77
+ * collection (selection spans all items; filtering is display-only).
78
+ */
79
+ readonly selectionManager: SelectionManager<T>;
65
80
  /** Whether the combobox dropdown is open. */
66
81
  readonly isOpen: Accessor<boolean>;
67
82
  /** Open the combobox dropdown. */
@@ -70,14 +85,20 @@ export interface ComboBoxState<T = unknown> {
70
85
  close(): void;
71
86
  /** Toggle the combobox dropdown. */
72
87
  toggle(focusStrategy?: FocusStrategy | null, trigger?: MenuTriggerAction): void;
73
- /** The currently selected key. */
88
+ /** The currently selected key (single mode). */
74
89
  readonly selectedKey: Accessor<Key | null>;
75
90
  /** The default selected key. */
76
91
  readonly defaultSelectedKey: Key | null;
77
- /** The currently selected item. */
92
+ /** The currently selected item (single mode). */
78
93
  readonly selectedItem: Accessor<CollectionNode<T> | null>;
79
94
  /** Set the selected key. */
80
95
  setSelectedKey(key: Key | null): void;
96
+ /** The currently selected keys (multiple mode). */
97
+ readonly selectedKeys: Accessor<Set<Key>>;
98
+ /** The currently selected items (multiple mode). */
99
+ readonly selectedItems: Accessor<CollectionNode<T>[]>;
100
+ /** Remove a selected key (multiple mode). */
101
+ removeSelectedKey(key: Key): void;
81
102
  /** The current input value. */
82
103
  readonly inputValue: Accessor<string>;
83
104
  /** The default input value. */
@@ -102,8 +123,8 @@ export interface ComboBoxState<T = unknown> {
102
123
  isKeyDisabled(key: Key): boolean;
103
124
  /** Select a key and close the menu (for ListState compatibility). */
104
125
  select(key: Key): void;
105
- /** The selection mode (always 'single' for combobox). */
106
- readonly selectionMode: Accessor<'single'>;
126
+ /** The selection mode. */
127
+ readonly selectionMode: Accessor<"single" | "multiple">;
107
128
  /** Check if a key is selected. */
108
129
  isSelected(key: Key): boolean;
109
130
  /** Whether the combobox is disabled. */
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * ComboBox state management for Solid Stately.
3
3
  */
4
- export { createComboBoxState, defaultContainsFilter, type ComboBoxState, type ComboBoxStateProps, type FilterFn, type MenuTriggerAction, type FocusStrategy, } from './createComboBoxState';
4
+ export { createComboBoxState, defaultContainsFilter, type ComboBoxState, type ComboBoxStateProps, type FilterFn, type MenuTriggerAction, type FocusStrategy, } from "./createComboBoxState";
@@ -6,13 +6,13 @@
6
6
  * states, pagination, and sorting.
7
7
  */
8
8
  export type Key = string | number;
9
- export type Selection = 'all' | Set<Key>;
10
- export type LoadingState = 'idle' | 'loading' | 'loadingMore' | 'sorting' | 'filtering' | 'error';
9
+ export type Selection = "all" | Set<Key>;
10
+ export type LoadingState = "idle" | "loading" | "loadingMore" | "sorting" | "filtering" | "error";
11
11
  export interface SortDescriptor {
12
12
  /** The key of the column to sort by. */
13
13
  column?: Key;
14
14
  /** The direction to sort by. */
15
- direction?: 'ascending' | 'descending';
15
+ direction?: "ascending" | "descending";
16
16
  }
17
17
  export interface AsyncListLoadOptions<T, C> {
18
18
  /** The items currently in the list. */
@@ -45,7 +45,7 @@ export interface AsyncListStateUpdate<T, C> {
45
45
  export type AsyncListLoadFunction<T, C> = (state: AsyncListLoadOptions<T, C>) => AsyncListStateUpdate<T, C> | Promise<AsyncListStateUpdate<T, C>>;
46
46
  export interface AsyncListOptions<T, C> {
47
47
  /** The keys for the initially selected items. */
48
- initialSelectedKeys?: 'all' | Iterable<Key>;
48
+ initialSelectedKeys?: "all" | Iterable<Key>;
49
49
  /** The initial sort descriptor. */
50
50
  initialSortDescriptor?: SortDescriptor;
51
51
  /** The initial filter text. */
@@ -5,12 +5,12 @@
5
5
  * convenience methods to update the data over time.
6
6
  */
7
7
  export type Key = string | number;
8
- export type Selection = 'all' | Set<Key>;
8
+ export type Selection = "all" | Set<Key>;
9
9
  export interface ListOptions<T> {
10
10
  /** Initial items in the list. */
11
11
  initialItems?: T[];
12
12
  /** The keys for the initially selected items. */
13
- initialSelectedKeys?: 'all' | Iterable<Key>;
13
+ initialSelectedKeys?: "all" | Iterable<Key>;
14
14
  /** The initial text to filter the list by. */
15
15
  initialFilterText?: string;
16
16
  /** A function that returns a unique key for an item object. */
@@ -5,7 +5,7 @@
5
5
  * convenience methods to update the data over time.
6
6
  */
7
7
  export type Key = string | number;
8
- export type Selection = 'all' | Set<Key>;
8
+ export type Selection = "all" | Set<Key>;
9
9
  export interface TreeNode<T> {
10
10
  /** A unique key for the tree node. */
11
11
  key: Key;
@@ -20,7 +20,7 @@ export interface TreeOptions<T> {
20
20
  /** Initial items in the tree. */
21
21
  initialItems?: T[];
22
22
  /** The keys for the initially selected items. */
23
- initialSelectedKeys?: 'all' | Iterable<Key>;
23
+ initialSelectedKeys?: "all" | Iterable<Key>;
24
24
  /** A function that returns a unique key for an item object. */
25
25
  getKey?: (item: T) => Key;
26
26
  /** A function that returns the children of an item object. */
@@ -51,6 +51,10 @@ export interface TreeData<T> {
51
51
  removeSelectedItems(): void;
52
52
  /** Moves an item to a new parent. */
53
53
  move(key: Key, toParentKey: Key | null, index: number): void;
54
+ /** Moves items before a given key. */
55
+ moveBefore(key: Key, keys: Iterable<Key>): void;
56
+ /** Moves items after a given key. */
57
+ moveAfter(key: Key, keys: Iterable<Key>): void;
54
58
  /** Updates an item in the tree. */
55
59
  update(key: Key, newValue: T): void;
56
60
  }
@@ -1,3 +1,3 @@
1
- export { createListData, type ListOptions, type ListData, type Key as ListDataKey, type Selection as ListDataSelection, } from './createListData';
2
- export { createTreeData, type TreeOptions, type TreeData, type TreeNode as TreeDataNode, } from './createTreeData';
3
- export { createAsyncList, type AsyncListOptions, type AsyncListData, type AsyncListLoadFunction, type AsyncListLoadOptions, type AsyncListStateUpdate, type SortDescriptor, type LoadingState, } from './createAsyncList';
1
+ export { createListData, type ListOptions, type ListData, type Key as ListDataKey, type Selection as ListDataSelection, } from "./createListData";
2
+ export { createTreeData, type TreeOptions, type TreeData, type TreeNode as TreeDataNode, } from "./createTreeData";
3
+ export { createAsyncList, type AsyncListOptions, type AsyncListData, type AsyncListLoadFunction, type AsyncListLoadOptions, type AsyncListStateUpdate, type SortDescriptor, type LoadingState, } from "./createAsyncList";
@@ -4,7 +4,5 @@
4
4
  * This is a module-compat shim that maps React Stately datepicker hook names
5
5
  * to existing Solid stately primitives.
6
6
  */
7
- export { createDateFieldState, createTimeFieldState, createRangeCalendarState, type DateFieldStateProps as DateFieldStateOptions, type DateFieldState, type DateSegment, type DateSegmentType as SegmentType, type TimeFieldStateProps as TimeFieldStateOptions, type TimeFieldState, type TimeSegment, type TimeSegmentType, type RangeCalendarStateProps as DateRangePickerStateOptions, type RangeCalendarState as DateRangePickerState, } from '../calendar';
8
- export { createOverlayTriggerState, type OverlayTriggerProps as DatePickerStateOptions, type OverlayTriggerState as DatePickerState, } from '../overlays';
9
- export { createDateFieldState as useDateFieldState, createTimeFieldState as useTimeFieldState, createRangeCalendarState as useDateRangePickerState, } from '../calendar';
10
- export { createOverlayTriggerState as useDatePickerState } from '../overlays';
7
+ export { createDateFieldState, createTimeFieldState, createRangeCalendarState, createDatePickerState, type DateFieldStateProps as DateFieldStateOptions, type DateFieldState, type DateSegment, type DateSegmentType as SegmentType, type TimeFieldStateProps as TimeFieldStateOptions, type TimeFieldState, type TimeSegment, type TimeSegmentType, type RangeCalendarStateProps as DateRangePickerStateOptions, type RangeCalendarState as DateRangePickerState, type DatePickerState, type DatePickerStateOptions, } from "../calendar";
8
+ export { createDateFieldState as useDateFieldState, createTimeFieldState as useTimeFieldState, createRangeCalendarState as useDateRangePickerState, createDatePickerState as useDatePickerState, } from "../calendar";
@@ -2,8 +2,8 @@
2
2
  * Disclosure state management for SolidJS
3
3
  * Based on @react-stately/disclosure useDisclosureState and useDisclosureGroupState
4
4
  */
5
- import { type Accessor } from 'solid-js';
6
- import { type MaybeAccessor } from '../utils';
5
+ import { type Accessor } from "solid-js";
6
+ import { type MaybeAccessor } from "../utils";
7
7
  export interface DisclosureStateProps {
8
8
  /** Whether the disclosure is expanded (controlled). */
9
9
  isExpanded?: boolean;
@@ -1 +1 @@
1
- export { createDisclosureState, createDisclosureGroupState, type DisclosureStateProps, type DisclosureState, type DisclosureGroupStateProps, type DisclosureGroupState, type Key, } from './createDisclosureState';
1
+ export { createDisclosureState, createDisclosureGroupState, type DisclosureStateProps, type DisclosureState, type DisclosureGroupStateProps, type DisclosureGroupState, type Key, } from "./createDisclosureState";
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * Provides reactive state for drag operations.
5
5
  */
6
- import { type Accessor } from 'solid-js';
7
- import type { DragItem, DragStartEvent, DragMoveEvent, DragEndEvent, DropOperation, DragPreviewRenderer } from './types';
6
+ import { type Accessor } from "solid-js";
7
+ import type { DragItem, DragStartEvent, DragMoveEvent, DragEndEvent, DropOperation, DragPreviewRenderer } from "./types";
8
8
  export interface DragStateOptions {
9
9
  /** A function that returns the items being dragged. */
10
10
  getItems: () => DragItem[];
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * Provides reactive state for dragging items from a collection.
5
5
  */
6
- import { type Accessor } from 'solid-js';
7
- import type { DragItem, DraggableCollectionStartEvent, DraggableCollectionMoveEvent, DraggableCollectionEndEvent, DropOperation, DragPreviewRenderer } from './types';
6
+ import { type Accessor } from "solid-js";
7
+ import type { DragItem, DraggableCollectionStartEvent, DraggableCollectionMoveEvent, DraggableCollectionEndEvent, DropOperation, DragPreviewRenderer } from "./types";
8
8
  export interface DraggableCollectionStateOptions<T = object> {
9
9
  /** A function that returns the items being dragged. */
10
10
  getItems: (keys: Set<string | number>) => DragItem[];
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * Provides reactive state for drop target operations.
5
5
  */
6
- import { type Accessor } from 'solid-js';
7
- import type { DropItem, DropEnterEvent, DropMoveEvent, DropExitEvent, DropActivateEvent, DropEvent, DropOperation, DragTypes } from './types';
6
+ import { type Accessor } from "solid-js";
7
+ import type { DropItem, DropEnterEvent, DropMoveEvent, DropExitEvent, DropActivateEvent, DropEvent, DropOperation, DragTypes } from "./types";
8
8
  export interface DropStateOptions {
9
9
  /**
10
10
  * A function returning the drop operation to be performed.
@@ -3,14 +3,14 @@
3
3
  *
4
4
  * Provides reactive state for accepting drops onto a collection.
5
5
  */
6
- import { type Accessor } from 'solid-js';
7
- import type { DropItem, DropTarget, DropOperation, DragTypes, DroppableCollectionEnterEvent, DroppableCollectionActivateEvent, DroppableCollectionExitEvent, DroppableCollectionDropEvent, DroppableCollectionInsertDropEvent, DroppableCollectionRootDropEvent, DroppableCollectionOnItemDropEvent, DroppableCollectionReorderEvent, ItemDropTarget } from './types';
6
+ import { type Accessor } from "solid-js";
7
+ import type { DropItem, DropTarget, DropOperation, DragTypes, DroppableCollectionEnterEvent, DroppableCollectionActivateEvent, DroppableCollectionExitEvent, DroppableCollectionDropEvent, DroppableCollectionInsertDropEvent, DroppableCollectionRootDropEvent, DroppableCollectionOnItemDropEvent, DroppableCollectionReorderEvent, ItemDropTarget } from "./types";
8
8
  export interface DroppableCollectionStateOptions {
9
9
  /**
10
10
  * The drag types that the droppable collection accepts.
11
11
  * @default 'all'
12
12
  */
13
- acceptedDragTypes?: 'all' | Array<string | symbol>;
13
+ acceptedDragTypes?: "all" | Array<string | symbol>;
14
14
  /**
15
15
  * A function returning the drop operation to be performed.
16
16
  */
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * Exports for DnD functionality.
5
5
  */
6
- export type { DropOperation, DragItem, DragDropEvent, DragStartEvent, DragMoveEvent, DragEndEvent, DropEnterEvent, DropMoveEvent, DropActivateEvent, DropExitEvent, TextDropItem, FileDropItem, DirectoryDropItem, DropItem, DropEvent, DropPosition, RootDropTarget, ItemDropTarget, DropTarget, DroppableCollectionEnterEvent, DroppableCollectionMoveEvent, DroppableCollectionActivateEvent, DroppableCollectionExitEvent, DroppableCollectionDropEvent, DroppableCollectionInsertDropEvent, DroppableCollectionRootDropEvent, DroppableCollectionOnItemDropEvent, DroppableCollectionReorderEvent, DragTypes, DropTargetDelegate, DraggableCollectionStartEvent, DraggableCollectionMoveEvent, DraggableCollectionEndEvent, DragPreviewRenderer, DroppableCollectionUtilityOptions, DroppableCollectionBaseProps, DroppableCollectionProps, DraggableCollectionProps, } from './types';
7
- export { createDragState, type DragStateOptions, type DragState, } from './createDragState';
8
- export { createDropState, type DropStateOptions, type DropState, } from './createDropState';
9
- export { createDraggableCollectionState, type DraggableCollectionStateOptions, type DraggableCollectionState, } from './createDraggableCollectionState';
10
- export { createDroppableCollectionState, DIRECTORY_DRAG_TYPE, type DroppableCollectionStateOptions, type DroppableCollectionState, } from './createDroppableCollectionState';
6
+ export type { DropOperation, DragItem, DragDropEvent, DragStartEvent, DragMoveEvent, DragEndEvent, DropEnterEvent, DropMoveEvent, DropActivateEvent, DropExitEvent, TextDropItem, FileDropItem, DirectoryDropItem, DropItem, DropEvent, DropPosition, RootDropTarget, ItemDropTarget, DropTarget, DroppableCollectionEnterEvent, DroppableCollectionMoveEvent, DroppableCollectionActivateEvent, DroppableCollectionExitEvent, DroppableCollectionDropEvent, DroppableCollectionInsertDropEvent, DroppableCollectionRootDropEvent, DroppableCollectionOnItemDropEvent, DroppableCollectionReorderEvent, DragType, DragTypes, DropTargetDelegate, DraggableCollectionStartEvent, DraggableCollectionMoveEvent, DraggableCollectionEndEvent, DragPreviewRenderer, DroppableCollectionUtilityOptions, DroppableCollectionBaseProps, DroppableCollectionProps, DraggableCollectionProps, } from "./types";
7
+ export { createDragState, type DragStateOptions, type DragState } from "./createDragState";
8
+ export { createDropState, type DropStateOptions, type DropState } from "./createDropState";
9
+ export { createDraggableCollectionState, type DraggableCollectionStateOptions, type DraggableCollectionState, } from "./createDraggableCollectionState";
10
+ export { createDroppableCollectionState, DIRECTORY_DRAG_TYPE, type DroppableCollectionStateOptions, type DroppableCollectionState, } from "./createDroppableCollectionState";