@proyecto-viviana/solid-stately 0.1.5 → 0.2.1

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 (217) hide show
  1. package/{src → dist}/autocomplete/createAutocompleteState.d.ts +0 -1
  2. package/{src → dist}/autocomplete/index.d.ts +0 -1
  3. package/{src → dist}/calendar/createCalendarState.d.ts +0 -1
  4. package/{src → dist}/calendar/createDateFieldState.d.ts +0 -1
  5. package/{src → dist}/calendar/createRangeCalendarState.d.ts +0 -1
  6. package/{src → dist}/calendar/createTimeFieldState.d.ts +0 -1
  7. package/{src → dist}/calendar/index.d.ts +0 -1
  8. package/{src → dist}/checkbox/createCheckboxGroupState.d.ts +0 -1
  9. package/{src → dist}/checkbox/index.d.ts +0 -1
  10. package/{src → dist}/collections/ListCollection.d.ts +0 -1
  11. package/{src → dist}/collections/createListState.d.ts +0 -1
  12. package/{src → dist}/collections/createMenuState.d.ts +0 -1
  13. package/{src → dist}/collections/createSelectionState.d.ts +0 -1
  14. package/{src → dist}/collections/index.d.ts +0 -1
  15. package/{src → dist}/collections/types.d.ts +0 -1
  16. package/{src → dist}/color/Color.d.ts +0 -1
  17. package/{src → dist}/color/createColorAreaState.d.ts +0 -1
  18. package/{src → dist}/color/createColorFieldState.d.ts +0 -1
  19. package/{src → dist}/color/createColorSliderState.d.ts +0 -1
  20. package/{src → dist}/color/createColorWheelState.d.ts +0 -1
  21. package/{src → dist}/color/index.d.ts +0 -1
  22. package/{src → dist}/color/types.d.ts +0 -1
  23. package/{src → dist}/combobox/createComboBoxState.d.ts +0 -1
  24. package/{src → dist}/combobox/index.d.ts +0 -1
  25. package/{src → dist}/disclosure/createDisclosureState.d.ts +0 -1
  26. package/{src → dist}/disclosure/index.d.ts +0 -1
  27. package/{src → dist}/dnd/createDragState.d.ts +0 -1
  28. package/{src → dist}/dnd/createDraggableCollectionState.d.ts +0 -1
  29. package/{src → dist}/dnd/createDropState.d.ts +0 -1
  30. package/{src → dist}/dnd/createDroppableCollectionState.d.ts +0 -1
  31. package/{src → dist}/dnd/index.d.ts +0 -1
  32. package/{src → dist}/dnd/types.d.ts +0 -1
  33. package/{src → dist}/form/createFormValidationState.d.ts +0 -1
  34. package/{src → dist}/form/index.d.ts +0 -1
  35. package/{src → dist}/grid/createGridState.d.ts +0 -1
  36. package/{src → dist}/grid/index.d.ts +0 -1
  37. package/{src → dist}/grid/types.d.ts +0 -1
  38. package/dist/index.d.ts +25 -3363
  39. package/dist/index.js +2 -2
  40. package/dist/index.js.map +7 -1
  41. package/{src → dist}/numberfield/createNumberFieldState.d.ts +0 -1
  42. package/{src → dist}/numberfield/index.d.ts +0 -1
  43. package/{src → dist}/overlays/createOverlayTriggerState.d.ts +0 -1
  44. package/{src → dist}/overlays/index.d.ts +0 -1
  45. package/{src → dist}/radio/createRadioGroupState.d.ts +0 -1
  46. package/{src → dist}/radio/index.d.ts +0 -1
  47. package/{src → dist}/searchfield/createSearchFieldState.d.ts +0 -1
  48. package/{src → dist}/searchfield/index.d.ts +0 -1
  49. package/{src → dist}/select/createSelectState.d.ts +0 -1
  50. package/{src → dist}/select/index.d.ts +0 -1
  51. package/{src → dist}/slider/createSliderState.d.ts +0 -1
  52. package/{src → dist}/slider/index.d.ts +0 -1
  53. package/{src → dist}/ssr/index.d.ts +0 -1
  54. package/{src → dist}/table/TableCollection.d.ts +0 -1
  55. package/{src → dist}/table/createTableState.d.ts +0 -1
  56. package/{src → dist}/table/index.d.ts +0 -1
  57. package/{src → dist}/table/types.d.ts +0 -1
  58. package/{src → dist}/tabs/createTabListState.d.ts +0 -1
  59. package/{src → dist}/tabs/index.d.ts +0 -1
  60. package/{src → dist}/textfield/createTextFieldState.d.ts +0 -1
  61. package/{src → dist}/textfield/index.d.ts +0 -1
  62. package/{src → dist}/toast/createToastState.d.ts +0 -1
  63. package/{src → dist}/toast/index.d.ts +0 -1
  64. package/{src → dist}/toggle/createToggleState.d.ts +0 -1
  65. package/{src → dist}/toggle/index.d.ts +0 -1
  66. package/{src → dist}/tooltip/createTooltipTriggerState.d.ts +0 -1
  67. package/{src → dist}/tooltip/index.d.ts +0 -1
  68. package/{src → dist}/tree/TreeCollection.d.ts +0 -1
  69. package/{src → dist}/tree/createTreeState.d.ts +0 -1
  70. package/{src → dist}/tree/index.d.ts +0 -1
  71. package/{src → dist}/tree/types.d.ts +0 -1
  72. package/{src → dist}/utils/reactivity.d.ts +0 -1
  73. package/package.json +5 -7
  74. package/src/autocomplete/createAutocompleteState.d.ts.map +0 -1
  75. package/src/autocomplete/createAutocompleteState.ts +0 -90
  76. package/src/autocomplete/index.d.ts.map +0 -1
  77. package/src/autocomplete/index.ts +0 -5
  78. package/src/calendar/createCalendarState.d.ts.map +0 -1
  79. package/src/calendar/createCalendarState.ts +0 -461
  80. package/src/calendar/createDateFieldState.d.ts.map +0 -1
  81. package/src/calendar/createDateFieldState.ts +0 -562
  82. package/src/calendar/createRangeCalendarState.d.ts.map +0 -1
  83. package/src/calendar/createRangeCalendarState.ts +0 -535
  84. package/src/calendar/createTimeFieldState.d.ts.map +0 -1
  85. package/src/calendar/createTimeFieldState.ts +0 -483
  86. package/src/calendar/index.d.ts.map +0 -1
  87. package/src/calendar/index.ts +0 -81
  88. package/src/checkbox/createCheckboxGroupState.d.ts.map +0 -1
  89. package/src/checkbox/createCheckboxGroupState.ts +0 -193
  90. package/src/checkbox/index.d.ts.map +0 -1
  91. package/src/checkbox/index.ts +0 -5
  92. package/src/collections/ListCollection.d.ts.map +0 -1
  93. package/src/collections/ListCollection.ts +0 -146
  94. package/src/collections/createListState.d.ts.map +0 -1
  95. package/src/collections/createListState.ts +0 -264
  96. package/src/collections/createMenuState.d.ts.map +0 -1
  97. package/src/collections/createMenuState.ts +0 -106
  98. package/src/collections/createSelectionState.d.ts.map +0 -1
  99. package/src/collections/createSelectionState.ts +0 -336
  100. package/src/collections/index.d.ts.map +0 -1
  101. package/src/collections/index.ts +0 -46
  102. package/src/collections/types.d.ts.map +0 -1
  103. package/src/collections/types.ts +0 -169
  104. package/src/color/Color.d.ts.map +0 -1
  105. package/src/color/Color.ts +0 -951
  106. package/src/color/createColorAreaState.d.ts.map +0 -1
  107. package/src/color/createColorAreaState.ts +0 -293
  108. package/src/color/createColorFieldState.d.ts.map +0 -1
  109. package/src/color/createColorFieldState.ts +0 -292
  110. package/src/color/createColorSliderState.d.ts.map +0 -1
  111. package/src/color/createColorSliderState.ts +0 -241
  112. package/src/color/createColorWheelState.d.ts.map +0 -1
  113. package/src/color/createColorWheelState.ts +0 -211
  114. package/src/color/index.d.ts.map +0 -1
  115. package/src/color/index.ts +0 -47
  116. package/src/color/types.d.ts.map +0 -1
  117. package/src/color/types.ts +0 -127
  118. package/src/combobox/createComboBoxState.d.ts.map +0 -1
  119. package/src/combobox/createComboBoxState.ts +0 -703
  120. package/src/combobox/index.d.ts.map +0 -1
  121. package/src/combobox/index.ts +0 -13
  122. package/src/disclosure/createDisclosureState.d.ts.map +0 -1
  123. package/src/disclosure/createDisclosureState.ts +0 -193
  124. package/src/disclosure/index.d.ts.map +0 -1
  125. package/src/disclosure/index.ts +0 -9
  126. package/src/dnd/createDragState.d.ts.map +0 -1
  127. package/src/dnd/createDragState.ts +0 -153
  128. package/src/dnd/createDraggableCollectionState.d.ts.map +0 -1
  129. package/src/dnd/createDraggableCollectionState.ts +0 -165
  130. package/src/dnd/createDropState.d.ts.map +0 -1
  131. package/src/dnd/createDropState.ts +0 -212
  132. package/src/dnd/createDroppableCollectionState.d.ts.map +0 -1
  133. package/src/dnd/createDroppableCollectionState.ts +0 -357
  134. package/src/dnd/index.d.ts.map +0 -1
  135. package/src/dnd/index.ts +0 -76
  136. package/src/dnd/types.d.ts.map +0 -1
  137. package/src/dnd/types.ts +0 -317
  138. package/src/form/createFormValidationState.d.ts.map +0 -1
  139. package/src/form/createFormValidationState.ts +0 -389
  140. package/src/form/index.d.ts.map +0 -1
  141. package/src/form/index.ts +0 -15
  142. package/src/grid/createGridState.d.ts.map +0 -1
  143. package/src/grid/createGridState.ts +0 -327
  144. package/src/grid/index.d.ts.map +0 -1
  145. package/src/grid/index.ts +0 -13
  146. package/src/grid/types.d.ts.map +0 -1
  147. package/src/grid/types.ts +0 -179
  148. package/src/index.d.ts +0 -26
  149. package/src/index.d.ts.map +0 -1
  150. package/src/index.ts +0 -383
  151. package/src/numberfield/createNumberFieldState.d.ts.map +0 -1
  152. package/src/numberfield/createNumberFieldState.ts +0 -383
  153. package/src/numberfield/index.d.ts.map +0 -1
  154. package/src/numberfield/index.ts +0 -5
  155. package/src/overlays/createOverlayTriggerState.d.ts.map +0 -1
  156. package/src/overlays/createOverlayTriggerState.ts +0 -67
  157. package/src/overlays/index.d.ts.map +0 -1
  158. package/src/overlays/index.ts +0 -5
  159. package/src/radio/createRadioGroupState.d.ts.map +0 -1
  160. package/src/radio/createRadioGroupState.ts +0 -201
  161. package/src/radio/index.d.ts.map +0 -1
  162. package/src/radio/index.ts +0 -6
  163. package/src/searchfield/createSearchFieldState.d.ts.map +0 -1
  164. package/src/searchfield/createSearchFieldState.ts +0 -62
  165. package/src/searchfield/index.d.ts.map +0 -1
  166. package/src/searchfield/index.ts +0 -5
  167. package/src/select/createSelectState.d.ts.map +0 -1
  168. package/src/select/createSelectState.ts +0 -181
  169. package/src/select/index.d.ts.map +0 -1
  170. package/src/select/index.ts +0 -5
  171. package/src/slider/createSliderState.d.ts.map +0 -1
  172. package/src/slider/createSliderState.ts +0 -211
  173. package/src/slider/index.d.ts.map +0 -1
  174. package/src/slider/index.ts +0 -6
  175. package/src/ssr/index.d.ts.map +0 -1
  176. package/src/ssr/index.ts +0 -41
  177. package/src/table/TableCollection.d.ts.map +0 -1
  178. package/src/table/TableCollection.ts +0 -388
  179. package/src/table/createTableState.d.ts.map +0 -1
  180. package/src/table/createTableState.ts +0 -127
  181. package/src/table/index.d.ts.map +0 -1
  182. package/src/table/index.ts +0 -18
  183. package/src/table/types.d.ts.map +0 -1
  184. package/src/table/types.ts +0 -150
  185. package/src/tabs/createTabListState.d.ts.map +0 -1
  186. package/src/tabs/createTabListState.ts +0 -240
  187. package/src/tabs/index.d.ts.map +0 -1
  188. package/src/tabs/index.ts +0 -7
  189. package/src/textfield/createTextFieldState.d.ts.map +0 -1
  190. package/src/textfield/createTextFieldState.ts +0 -75
  191. package/src/textfield/index.d.ts.map +0 -1
  192. package/src/textfield/index.ts +0 -5
  193. package/src/toast/createToastState.d.ts.map +0 -1
  194. package/src/toast/createToastState.ts +0 -316
  195. package/src/toast/index.d.ts.map +0 -1
  196. package/src/toast/index.ts +0 -11
  197. package/src/toggle/createToggleState.d.ts.map +0 -1
  198. package/src/toggle/createToggleState.ts +0 -94
  199. package/src/toggle/index.d.ts.map +0 -1
  200. package/src/toggle/index.ts +0 -5
  201. package/src/tooltip/createTooltipTriggerState.d.ts.map +0 -1
  202. package/src/tooltip/createTooltipTriggerState.ts +0 -183
  203. package/src/tooltip/index.d.ts.map +0 -1
  204. package/src/tooltip/index.ts +0 -6
  205. package/src/tree/TreeCollection.d.ts.map +0 -1
  206. package/src/tree/TreeCollection.ts +0 -175
  207. package/src/tree/createTreeState.d.ts.map +0 -1
  208. package/src/tree/createTreeState.ts +0 -392
  209. package/src/tree/index.d.ts.map +0 -1
  210. package/src/tree/index.ts +0 -13
  211. package/src/tree/types.d.ts.map +0 -1
  212. package/src/tree/types.ts +0 -174
  213. package/src/utils/index.d.ts +0 -2
  214. package/src/utils/index.d.ts.map +0 -1
  215. package/src/utils/reactivity.d.ts.map +0 -1
  216. package/src/utils/reactivity.ts +0 -36
  217. /package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -0
@@ -1,94 +0,0 @@
1
- /**
2
- * Toggle state for Solid Stately
3
- *
4
- * Provides state management for toggle components like checkboxes and switches.
5
- *
6
- * This is a 1:1 port of @react-stately/toggle's useToggleState.
7
- */
8
-
9
- import { createSignal, Accessor } from 'solid-js';
10
- import { type MaybeAccessor, access } from '../utils';
11
-
12
- // ============================================
13
- // TYPES
14
- // ============================================
15
-
16
- export interface ToggleStateOptions {
17
- /** Whether the element should be selected (controlled). */
18
- isSelected?: boolean;
19
- /** Whether the element should be selected by default (uncontrolled). */
20
- defaultSelected?: boolean;
21
- /** Handler that is called when the element's selection state changes. */
22
- onChange?: (isSelected: boolean) => void;
23
- /** Whether the element is read only. */
24
- isReadOnly?: boolean;
25
- }
26
-
27
- export interface ToggleState {
28
- /** Whether the toggle is selected. */
29
- readonly isSelected: Accessor<boolean>;
30
- /** Whether the toggle is selected by default. */
31
- readonly defaultSelected: boolean;
32
- /** Updates selection state. */
33
- setSelected(isSelected: boolean): void;
34
- /** Toggle the selection state. */
35
- toggle(): void;
36
- }
37
-
38
- // ============================================
39
- // IMPLEMENTATION
40
- // ============================================
41
-
42
- /**
43
- * Provides state management for toggle components like checkboxes and switches.
44
- */
45
- export function createToggleState(props: MaybeAccessor<ToggleStateOptions> = {}): ToggleState {
46
- const getProps = () => access(props);
47
-
48
- // Get initial values
49
- const initialProps = getProps();
50
- const initialSelected = initialProps.isSelected ?? initialProps.defaultSelected ?? false;
51
-
52
- // Create internal signal for uncontrolled mode
53
- const [internalSelected, setInternalSelected] = createSignal(initialSelected);
54
-
55
- // Determine if controlled
56
- const isControlled = () => getProps().isSelected !== undefined;
57
-
58
- // Get current selection state
59
- const isSelected: Accessor<boolean> = () => {
60
- const p = getProps();
61
- return isControlled() ? (p.isSelected ?? false) : internalSelected();
62
- };
63
-
64
- // Update selection state
65
- function setSelected(value: boolean): void {
66
- const p = getProps();
67
- if (p.isReadOnly) {
68
- return;
69
- }
70
-
71
- if (!isControlled()) {
72
- setInternalSelected(value);
73
- }
74
-
75
- p.onChange?.(value);
76
- }
77
-
78
- // Toggle selection state
79
- function toggle(): void {
80
- const p = getProps();
81
- if (p.isReadOnly) {
82
- return;
83
- }
84
-
85
- setSelected(!isSelected());
86
- }
87
-
88
- return {
89
- isSelected,
90
- defaultSelected: initialProps.defaultSelected ?? initialSelected,
91
- setSelected,
92
- toggle,
93
- };
94
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,WAAW,GACjB,MAAM,qBAAqB,CAAC"}
@@ -1,5 +0,0 @@
1
- export {
2
- createToggleState,
3
- type ToggleStateOptions,
4
- type ToggleState,
5
- } from './createToggleState';
@@ -1 +0,0 @@
1
- {"version":3,"file":"createTooltipTriggerState.d.ts","sourceRoot":"","sources":["createTooltipTriggerState.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAOlF,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnC;;;;OAIG;IACH,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,yBAAyB;IACzB,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAClC;AASD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAYxC;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,GAAE,mBAAwB,GAC9B,mBAAmB,CAkHrB"}
@@ -1,183 +0,0 @@
1
- /**
2
- * Manages state for a tooltip trigger.
3
- * Based on @react-stately/tooltip useTooltipTriggerState.
4
- *
5
- * Tracks whether the tooltip is open, and provides methods to toggle this state.
6
- * Ensures only one tooltip is open at a time and controls the delay for showing a tooltip.
7
- */
8
-
9
- import { createSignal, onCleanup, type Accessor } from 'solid-js';
10
- import { createOverlayTriggerState, type OverlayTriggerProps } from '../overlays';
11
- import { isServer } from '../ssr';
12
-
13
- // Default delays (in ms)
14
- const TOOLTIP_DELAY = 1500;
15
- const TOOLTIP_COOLDOWN = 500;
16
-
17
- export interface TooltipTriggerProps extends OverlayTriggerProps {
18
- /** The delay time in milliseconds for the tooltip to show up. */
19
- delay?: number;
20
- /** The delay time in milliseconds for the tooltip to close. */
21
- closeDelay?: number;
22
- }
23
-
24
- export interface TooltipTriggerState {
25
- /** Whether the tooltip is currently showing. */
26
- readonly isOpen: Accessor<boolean>;
27
- /**
28
- * Shows the tooltip. By default, the tooltip becomes visible after a delay
29
- * depending on a global warmup timer. The `immediate` option shows the
30
- * tooltip immediately instead.
31
- */
32
- open(immediate?: boolean): void;
33
- /** Hides the tooltip. */
34
- close(immediate?: boolean): void;
35
- }
36
-
37
- // Global state for coordinating tooltips
38
- let tooltips: Record<string, (immediate?: boolean) => void> = {};
39
- let tooltipId = 0;
40
- let globalWarmedUp = false;
41
- let globalWarmUpTimeout: ReturnType<typeof setTimeout> | null = null;
42
- let globalCooldownTimeout: ReturnType<typeof setTimeout> | null = null;
43
-
44
- /**
45
- * Resets the global tooltip state. Useful for testing.
46
- * @internal
47
- */
48
- export function resetTooltipState(): void {
49
- tooltips = {};
50
- tooltipId = 0;
51
- globalWarmedUp = false;
52
- if (globalWarmUpTimeout) {
53
- clearTimeout(globalWarmUpTimeout);
54
- globalWarmUpTimeout = null;
55
- }
56
- if (globalCooldownTimeout) {
57
- clearTimeout(globalCooldownTimeout);
58
- globalCooldownTimeout = null;
59
- }
60
- }
61
-
62
- /**
63
- * Manages state for a tooltip trigger. Tracks whether the tooltip is open, and provides
64
- * methods to toggle this state. Ensures only one tooltip is open at a time and controls
65
- * the delay for showing a tooltip.
66
- */
67
- export function createTooltipTriggerState(
68
- props: TooltipTriggerProps = {}
69
- ): TooltipTriggerState {
70
- const delay = () => props.delay ?? TOOLTIP_DELAY;
71
- const closeDelay = () => props.closeDelay ?? TOOLTIP_COOLDOWN;
72
-
73
- const overlayState = createOverlayTriggerState(props);
74
- const id = `tooltip-${++tooltipId}`;
75
-
76
- let closeTimeout: ReturnType<typeof setTimeout> | null = null;
77
- const [closeCallback, setCloseCallback] = createSignal<() => void>(() => overlayState.close());
78
-
79
- const ensureTooltipEntry = () => {
80
- tooltips[id] = hideTooltip;
81
- };
82
-
83
- const closeOpenTooltips = () => {
84
- for (const hideTooltipId in tooltips) {
85
- if (hideTooltipId !== id) {
86
- tooltips[hideTooltipId](true);
87
- delete tooltips[hideTooltipId];
88
- }
89
- }
90
- };
91
-
92
- const showTooltip = () => {
93
- if (closeTimeout) {
94
- clearTimeout(closeTimeout);
95
- closeTimeout = null;
96
- }
97
- closeOpenTooltips();
98
- ensureTooltipEntry();
99
- globalWarmedUp = true;
100
- overlayState.open();
101
-
102
- if (globalWarmUpTimeout) {
103
- clearTimeout(globalWarmUpTimeout);
104
- globalWarmUpTimeout = null;
105
- }
106
- if (globalCooldownTimeout) {
107
- clearTimeout(globalCooldownTimeout);
108
- globalCooldownTimeout = null;
109
- }
110
- };
111
-
112
- const hideTooltip = (immediate?: boolean) => {
113
- if (immediate || closeDelay() <= 0) {
114
- if (closeTimeout) {
115
- clearTimeout(closeTimeout);
116
- closeTimeout = null;
117
- }
118
- closeCallback()();
119
- } else if (!closeTimeout) {
120
- closeTimeout = setTimeout(() => {
121
- closeTimeout = null;
122
- closeCallback()();
123
- }, closeDelay());
124
- }
125
-
126
- if (globalWarmUpTimeout) {
127
- clearTimeout(globalWarmUpTimeout);
128
- globalWarmUpTimeout = null;
129
- }
130
-
131
- if (globalWarmedUp) {
132
- if (globalCooldownTimeout) {
133
- clearTimeout(globalCooldownTimeout);
134
- }
135
- globalCooldownTimeout = setTimeout(() => {
136
- delete tooltips[id];
137
- globalCooldownTimeout = null;
138
- globalWarmedUp = false;
139
- }, Math.max(TOOLTIP_COOLDOWN, closeDelay()));
140
- }
141
- };
142
-
143
- const warmupTooltip = () => {
144
- closeOpenTooltips();
145
- ensureTooltipEntry();
146
-
147
- if (!overlayState.isOpen() && !globalWarmUpTimeout && !globalWarmedUp) {
148
- globalWarmUpTimeout = setTimeout(() => {
149
- globalWarmUpTimeout = null;
150
- globalWarmedUp = true;
151
- showTooltip();
152
- }, delay());
153
- } else if (!overlayState.isOpen()) {
154
- showTooltip();
155
- }
156
- };
157
-
158
- // Update close callback when overlayState.close changes
159
- setCloseCallback(() => overlayState.close);
160
-
161
- // Cleanup on unmount
162
- onCleanup(() => {
163
- if (closeTimeout) {
164
- clearTimeout(closeTimeout);
165
- }
166
- if (tooltips[id]) {
167
- delete tooltips[id];
168
- }
169
- });
170
-
171
- return {
172
- isOpen: overlayState.isOpen,
173
- open: (immediate?: boolean) => {
174
- if (isServer) return;
175
- if (!immediate && delay() > 0 && !closeTimeout) {
176
- warmupTooltip();
177
- } else {
178
- showTooltip();
179
- }
180
- },
181
- close: hideTooltip,
182
- };
183
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,6BAA6B,CAAC"}
@@ -1,6 +0,0 @@
1
- export {
2
- createTooltipTriggerState,
3
- resetTooltipState,
4
- type TooltipTriggerProps,
5
- type TooltipTriggerState,
6
- } from './createTooltipTriggerState';
@@ -1 +0,0 @@
1
- {"version":3,"file":"TreeCollection.d.ts","sourceRoot":"","sources":["TreeCollection.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,IAAI,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEzF;;;GAGG;AACH,qBAAa,cAAc,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,KAAK,CAAqB;gBAGhC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EACxB,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC;IAKxB,OAAO,CAAC,eAAe;IAqEvB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAExB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAID,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC;IAIxB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAIrC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAOrC,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI;IAMlC,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI;IAMjC,WAAW,IAAI,GAAG,GAAG,IAAI;IAIzB,UAAU,IAAI,GAAG,GAAG,IAAI;IAIxB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAK5C,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM;IAK9B,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI;IAKlC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;CAG3C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EACxB,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,GACrB,cAAc,CAAC,CAAC,CAAC,CAEnB"}
@@ -1,175 +0,0 @@
1
- /**
2
- * TreeCollection implementation.
3
- * Based on @react-stately/tree/TreeCollection.
4
- *
5
- * A flattened view of tree nodes that respects expanded state.
6
- * Only visible nodes (root + expanded children) are included in iteration.
7
- */
8
-
9
- import type { Key } from '../collections/types';
10
- import type { TreeCollection as ITreeCollection, TreeNode, TreeItemData } from './types';
11
-
12
- /**
13
- * Creates a TreeCollection from hierarchical data.
14
- * The collection is flattened based on expanded keys.
15
- */
16
- export class TreeCollection<T> implements ITreeCollection<T> {
17
- private keyMap: Map<Key, TreeNode<T>> = new Map();
18
- private visibleKeys: Key[] = [];
19
- private _rows: TreeNode<T>[] = [];
20
-
21
- constructor(
22
- items: TreeItemData<T>[],
23
- expandedKeys: Set<Key>
24
- ) {
25
- this.buildCollection(items, expandedKeys);
26
- }
27
-
28
- private buildCollection(items: TreeItemData<T>[], expandedKeys: Set<Key>): void {
29
- let globalIndex = 0;
30
-
31
- const visit = (
32
- item: TreeItemData<T>,
33
- level: number,
34
- parentKey: Key | null,
35
- indexInParent: number
36
- ): TreeNode<T> => {
37
- const hasChildren = item.children && item.children.length > 0;
38
- const isExpanded = hasChildren && expandedKeys.has(item.key);
39
-
40
- // Build child nodes first (even if not visible, for the map)
41
- const childNodes: TreeNode<T>[] = [];
42
- if (hasChildren && item.children) {
43
- for (let i = 0; i < item.children.length; i++) {
44
- const childNode = visit(item.children[i], level + 1, item.key, i);
45
- childNodes.push(childNode);
46
- }
47
- }
48
-
49
- const node: TreeNode<T> = {
50
- type: 'item',
51
- key: item.key,
52
- value: item.value,
53
- textValue: item.textValue || String(item.key),
54
- level,
55
- index: indexInParent,
56
- parentKey,
57
- hasChildNodes: hasChildren || false,
58
- childNodes,
59
- isDisabled: item.isDisabled,
60
- isExpandable: hasChildren,
61
- isExpanded,
62
- };
63
-
64
- // Always add to keyMap (for getItem lookups)
65
- this.keyMap.set(item.key, node);
66
-
67
- return node;
68
- };
69
-
70
- // First pass: build all nodes
71
- const rootNodes: TreeNode<T>[] = [];
72
- for (let i = 0; i < items.length; i++) {
73
- const node = visit(items[i], 0, null, i);
74
- rootNodes.push(node);
75
- }
76
-
77
- // Second pass: build visible rows list
78
- const addVisibleNodes = (nodes: TreeNode<T>[]): void => {
79
- for (const node of nodes) {
80
- // Update the row index for visible nodes
81
- node.rowIndex = globalIndex++;
82
- this._rows.push(node);
83
- this.visibleKeys.push(node.key);
84
-
85
- // Add children if expanded
86
- if (node.isExpanded && node.childNodes.length > 0) {
87
- addVisibleNodes(node.childNodes);
88
- }
89
- }
90
- };
91
-
92
- addVisibleNodes(rootNodes);
93
- }
94
-
95
- // Collection properties
96
-
97
- get size(): number {
98
- return this.visibleKeys.length;
99
- }
100
-
101
- get rows(): TreeNode<T>[] {
102
- return this._rows;
103
- }
104
-
105
- get rowCount(): number {
106
- return this._rows.length;
107
- }
108
-
109
- // Collection methods
110
-
111
- getKeys(): Iterable<Key> {
112
- return this.visibleKeys;
113
- }
114
-
115
- getItem(key: Key): TreeNode<T> | null {
116
- return this.keyMap.get(key) ?? null;
117
- }
118
-
119
- at(index: number): TreeNode<T> | null {
120
- if (index < 0 || index >= this._rows.length) {
121
- return null;
122
- }
123
- return this._rows[index];
124
- }
125
-
126
- getKeyBefore(key: Key): Key | null {
127
- const index = this.visibleKeys.indexOf(key);
128
- if (index <= 0) return null;
129
- return this.visibleKeys[index - 1];
130
- }
131
-
132
- getKeyAfter(key: Key): Key | null {
133
- const index = this.visibleKeys.indexOf(key);
134
- if (index < 0 || index >= this.visibleKeys.length - 1) return null;
135
- return this.visibleKeys[index + 1];
136
- }
137
-
138
- getFirstKey(): Key | null {
139
- return this.visibleKeys[0] ?? null;
140
- }
141
-
142
- getLastKey(): Key | null {
143
- return this.visibleKeys[this.visibleKeys.length - 1] ?? null;
144
- }
145
-
146
- getChildren(key: Key): Iterable<TreeNode<T>> {
147
- const node = this.keyMap.get(key);
148
- return node?.childNodes ?? [];
149
- }
150
-
151
- getTextValue(key: Key): string {
152
- const node = this.keyMap.get(key);
153
- return node?.textValue ?? '';
154
- }
155
-
156
- getParentKey(key: Key): Key | null {
157
- const node = this.keyMap.get(key);
158
- return node?.parentKey ?? null;
159
- }
160
-
161
- [Symbol.iterator](): Iterator<TreeNode<T>> {
162
- return this._rows[Symbol.iterator]();
163
- }
164
- }
165
-
166
- /**
167
- * Factory function to create a TreeCollection.
168
- * Useful for the collectionFactory pattern in TreeStateOptions.
169
- */
170
- export function createTreeCollection<T>(
171
- items: TreeItemData<T>[],
172
- expandedKeys: Set<Key>
173
- ): TreeCollection<T> {
174
- return new TreeCollection(items, expandedKeys);
175
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"createTreeState.d.ts","sourceRoot":"","sources":["createTreeState.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAA8C,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AACrF,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,cAAc,EAEf,MAAM,SAAS,CAAC;AAGjB;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,EAC/F,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GACxC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAiWjB"}