@proyecto-viviana/solidaria-components 0.2.9 → 0.3.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 (222) hide show
  1. package/README.md +39 -272
  2. package/dist/ActionBar.d.ts +21 -13
  3. package/dist/ActionBar.d.ts.map +1 -1
  4. package/dist/ActionGroup.d.ts +8 -8
  5. package/dist/ActionGroup.d.ts.map +1 -1
  6. package/dist/Alert.d.ts +5 -5
  7. package/dist/Alert.d.ts.map +1 -1
  8. package/dist/Autocomplete.d.ts +5 -5
  9. package/dist/Autocomplete.d.ts.map +1 -1
  10. package/dist/Breadcrumbs.d.ts +18 -7
  11. package/dist/Breadcrumbs.d.ts.map +1 -1
  12. package/dist/Button.d.ts +24 -5
  13. package/dist/Button.d.ts.map +1 -1
  14. package/dist/Calendar.d.ts +38 -7
  15. package/dist/Calendar.d.ts.map +1 -1
  16. package/dist/Checkbox.d.ts +32 -7
  17. package/dist/Checkbox.d.ts.map +1 -1
  18. package/dist/Collection.d.ts +19 -14
  19. package/dist/Collection.d.ts.map +1 -1
  20. package/dist/Color.d.ts +103 -14
  21. package/dist/Color.d.ts.map +1 -1
  22. package/dist/ColorEditor.d.ts +6 -6
  23. package/dist/ColorEditor.d.ts.map +1 -1
  24. package/dist/ComboBox.d.ts +85 -19
  25. package/dist/ComboBox.d.ts.map +1 -1
  26. package/dist/ContextualHelpTrigger.d.ts +2 -2
  27. package/dist/ContextualHelpTrigger.d.ts.map +1 -1
  28. package/dist/DateField.d.ts +8 -6
  29. package/dist/DateField.d.ts.map +1 -1
  30. package/dist/DatePicker.d.ts +53 -22
  31. package/dist/DatePicker.d.ts.map +1 -1
  32. package/dist/DateRangePickerContext.d.ts +30 -0
  33. package/dist/DateRangePickerContext.d.ts.map +1 -0
  34. package/dist/Dialog.d.ts +5 -5
  35. package/dist/Dialog.d.ts.map +1 -1
  36. package/dist/Disclosure.d.ts +23 -5
  37. package/dist/Disclosure.d.ts.map +1 -1
  38. package/dist/DragAndDrop.d.ts +6 -6
  39. package/dist/DragAndDrop.d.ts.map +1 -1
  40. package/dist/DragPreview.d.ts +2 -2
  41. package/dist/DragPreview.d.ts.map +1 -1
  42. package/dist/DropZone.d.ts +4 -4
  43. package/dist/DropZone.d.ts.map +1 -1
  44. package/dist/FieldError.d.ts +9 -5
  45. package/dist/FieldError.d.ts.map +1 -1
  46. package/dist/FileTrigger.d.ts +3 -3
  47. package/dist/FileTrigger.d.ts.map +1 -1
  48. package/dist/Focusable.d.ts +2 -2
  49. package/dist/Focusable.d.ts.map +1 -1
  50. package/dist/Form.d.ts +18 -4
  51. package/dist/Form.d.ts.map +1 -1
  52. package/dist/GridList.d.ts +32 -12
  53. package/dist/GridList.d.ts.map +1 -1
  54. package/dist/HiddenDateInput.d.ts +26 -0
  55. package/dist/HiddenDateInput.d.ts.map +1 -0
  56. package/dist/HiddenTimeInput.d.ts +25 -0
  57. package/dist/HiddenTimeInput.d.ts.map +1 -0
  58. package/dist/Icon.d.ts +5 -5
  59. package/dist/Icon.d.ts.map +1 -1
  60. package/dist/Keyboard.d.ts +1 -1
  61. package/dist/Landmark.d.ts +3 -3
  62. package/dist/Landmark.d.ts.map +1 -1
  63. package/dist/Link.d.ts +10 -4
  64. package/dist/Link.d.ts.map +1 -1
  65. package/dist/ListBox.d.ts +32 -12
  66. package/dist/ListBox.d.ts.map +1 -1
  67. package/dist/ListDropTargetDelegate.d.ts +6 -6
  68. package/dist/ListDropTargetDelegate.d.ts.map +1 -1
  69. package/dist/Menu.d.ts +65 -14
  70. package/dist/Menu.d.ts.map +1 -1
  71. package/dist/Meter.d.ts +3 -3
  72. package/dist/Meter.d.ts.map +1 -1
  73. package/dist/Modal.d.ts +5 -5
  74. package/dist/Modal.d.ts.map +1 -1
  75. package/dist/NumberField.d.ts +8 -12
  76. package/dist/NumberField.d.ts.map +1 -1
  77. package/dist/Popover.d.ts +28 -5
  78. package/dist/Popover.d.ts.map +1 -1
  79. package/dist/Pressable.d.ts +2 -2
  80. package/dist/Pressable.d.ts.map +1 -1
  81. package/dist/ProgressBar.d.ts +5 -3
  82. package/dist/ProgressBar.d.ts.map +1 -1
  83. package/dist/RadioGroup.d.ts +43 -9
  84. package/dist/RadioGroup.d.ts.map +1 -1
  85. package/dist/RangeCalendar.d.ts +34 -7
  86. package/dist/RangeCalendar.d.ts.map +1 -1
  87. package/dist/RouterProvider.d.ts +2 -2
  88. package/dist/RouterProvider.d.ts.map +1 -1
  89. package/dist/SearchField.d.ts +23 -20
  90. package/dist/SearchField.d.ts.map +1 -1
  91. package/dist/Select.d.ts +41 -11
  92. package/dist/Select.d.ts.map +1 -1
  93. package/dist/SelectionIndicator.d.ts +3 -3
  94. package/dist/SelectionIndicator.d.ts.map +1 -1
  95. package/dist/Separator.d.ts +9 -3
  96. package/dist/Separator.d.ts.map +1 -1
  97. package/dist/SharedElementTransition.d.ts +6 -4
  98. package/dist/SharedElementTransition.d.ts.map +1 -1
  99. package/dist/Slider.d.ts +12 -8
  100. package/dist/Slider.d.ts.map +1 -1
  101. package/dist/StepList.d.ts +90 -0
  102. package/dist/StepList.d.ts.map +1 -0
  103. package/dist/Switch.d.ts +11 -5
  104. package/dist/Switch.d.ts.map +1 -1
  105. package/dist/Table.d.ts +187 -23
  106. package/dist/Table.d.ts.map +1 -1
  107. package/dist/Tabs.d.ts +45 -9
  108. package/dist/Tabs.d.ts.map +1 -1
  109. package/dist/TagGroup.d.ts +12 -10
  110. package/dist/TagGroup.d.ts.map +1 -1
  111. package/dist/Text.d.ts +2 -2
  112. package/dist/TextField.d.ts +15 -11
  113. package/dist/TextField.d.ts.map +1 -1
  114. package/dist/TimeField.d.ts +6 -6
  115. package/dist/TimeField.d.ts.map +1 -1
  116. package/dist/Toast.d.ts +29 -14
  117. package/dist/Toast.d.ts.map +1 -1
  118. package/dist/ToggleButton.d.ts +11 -5
  119. package/dist/ToggleButton.d.ts.map +1 -1
  120. package/dist/ToggleButtonGroup.d.ts +7 -7
  121. package/dist/ToggleButtonGroup.d.ts.map +1 -1
  122. package/dist/Toolbar.d.ts +7 -3
  123. package/dist/Toolbar.d.ts.map +1 -1
  124. package/dist/Tooltip.d.ts +50 -8
  125. package/dist/Tooltip.d.ts.map +1 -1
  126. package/dist/Tree.d.ts +66 -17
  127. package/dist/Tree.d.ts.map +1 -1
  128. package/dist/Virtualizer.d.ts +12 -12
  129. package/dist/Virtualizer.d.ts.map +1 -1
  130. package/dist/VirtualizerLayouts.d.ts +2 -2
  131. package/dist/VirtualizerLayouts.d.ts.map +1 -1
  132. package/dist/VisuallyHidden.d.ts +1 -1
  133. package/dist/VisuallyHidden.d.ts.map +1 -1
  134. package/dist/contexts.d.ts +5 -1
  135. package/dist/contexts.d.ts.map +1 -1
  136. package/dist/index.d.ts +73 -71
  137. package/dist/index.d.ts.map +1 -1
  138. package/dist/index.js +23247 -18564
  139. package/dist/index.js.map +1 -1
  140. package/dist/index.jsx +18110 -0
  141. package/dist/index.jsx.map +1 -0
  142. package/dist/useDragAndDrop.d.ts +13 -13
  143. package/dist/useDragAndDrop.d.ts.map +1 -1
  144. package/dist/utils.d.ts +2 -2
  145. package/dist/utils.d.ts.map +1 -1
  146. package/dist/virtualizer/Layout.d.ts +1 -1
  147. package/dist/virtualizer/Layout.d.ts.map +1 -1
  148. package/package.json +31 -32
  149. package/src/ActionBar.tsx +75 -72
  150. package/src/ActionGroup.tsx +53 -61
  151. package/src/Alert.tsx +17 -42
  152. package/src/Autocomplete.tsx +39 -44
  153. package/src/Breadcrumbs.tsx +149 -80
  154. package/src/Button.tsx +267 -70
  155. package/src/Calendar.tsx +218 -138
  156. package/src/Checkbox.tsx +413 -121
  157. package/src/Collection.tsx +67 -58
  158. package/src/Color.tsx +803 -380
  159. package/src/ColorEditor.tsx +131 -149
  160. package/src/ComboBox.tsx +414 -249
  161. package/src/ContextualHelpTrigger.tsx +86 -74
  162. package/src/DateField.tsx +185 -91
  163. package/src/DatePicker.tsx +524 -213
  164. package/src/DateRangePickerContext.tsx +44 -0
  165. package/src/Dialog.tsx +156 -118
  166. package/src/Disclosure.tsx +127 -80
  167. package/src/DragAndDrop.tsx +60 -54
  168. package/src/DragPreview.tsx +13 -11
  169. package/src/DropZone.tsx +42 -22
  170. package/src/FieldError.tsx +45 -23
  171. package/src/FileTrigger.tsx +19 -19
  172. package/src/Focusable.tsx +21 -24
  173. package/src/Form.tsx +71 -16
  174. package/src/GridList.tsx +273 -197
  175. package/src/HiddenDateInput.tsx +153 -0
  176. package/src/HiddenTimeInput.tsx +133 -0
  177. package/src/Icon.tsx +22 -43
  178. package/src/Keyboard.tsx +3 -3
  179. package/src/Landmark.tsx +37 -63
  180. package/src/Link.tsx +125 -75
  181. package/src/ListBox.tsx +332 -233
  182. package/src/ListDropTargetDelegate.ts +81 -80
  183. package/src/Menu.tsx +1023 -274
  184. package/src/Meter.tsx +38 -56
  185. package/src/Modal.tsx +243 -175
  186. package/src/NumberField.tsx +139 -143
  187. package/src/Popover.tsx +386 -233
  188. package/src/Pressable.tsx +21 -21
  189. package/src/ProgressBar.tsx +48 -57
  190. package/src/RadioGroup.tsx +524 -122
  191. package/src/RangeCalendar.tsx +157 -90
  192. package/src/RouterProvider.tsx +30 -47
  193. package/src/SearchField.tsx +362 -143
  194. package/src/Select.tsx +656 -233
  195. package/src/SelectionIndicator.tsx +18 -15
  196. package/src/Separator.tsx +47 -49
  197. package/src/SharedElementTransition.tsx +103 -97
  198. package/src/Slider.tsx +138 -98
  199. package/src/StepList.tsx +272 -0
  200. package/src/Switch.tsx +93 -46
  201. package/src/Table.tsx +1308 -342
  202. package/src/Tabs.tsx +324 -103
  203. package/src/TagGroup.tsx +139 -126
  204. package/src/Text.tsx +3 -3
  205. package/src/TextField.tsx +389 -79
  206. package/src/TimeField.tsx +136 -76
  207. package/src/Toast.tsx +209 -157
  208. package/src/ToggleButton.tsx +47 -37
  209. package/src/ToggleButtonGroup.tsx +39 -34
  210. package/src/Toolbar.tsx +54 -69
  211. package/src/Tooltip.tsx +387 -119
  212. package/src/Tree.tsx +651 -368
  213. package/src/Virtualizer.tsx +208 -180
  214. package/src/VirtualizerLayouts.ts +45 -30
  215. package/src/VisuallyHidden.tsx +19 -19
  216. package/src/contexts.ts +29 -37
  217. package/src/index.ts +110 -195
  218. package/src/useDragAndDrop.ts +87 -71
  219. package/src/utils.tsx +40 -55
  220. package/src/virtualizer/Layout.ts +14 -22
  221. package/dist/index.ssr.js +0 -16996
  222. package/dist/index.ssr.js.map +0 -1
@@ -5,36 +5,39 @@
5
5
  * Uses existing overlay infrastructure.
6
6
  */
7
7
 
8
- import { type JSX, createSignal, splitProps, Show, onCleanup, createEffect, createUniqueId } from 'solid-js'
9
-
10
- // ============================================
11
- // TYPES
12
- // ============================================
13
-
14
- export interface ContextualHelpTriggerProps extends Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, 'class' | 'children'> {
8
+ import {
9
+ type JSX,
10
+ createSignal,
11
+ splitProps,
12
+ Show,
13
+ onCleanup,
14
+ createEffect,
15
+ createUniqueId,
16
+ } from "solid-js";
17
+
18
+ export interface ContextualHelpTriggerProps extends Omit<
19
+ JSX.ButtonHTMLAttributes<HTMLButtonElement>,
20
+ "class" | "children"
21
+ > {
15
22
  /** Whether the trigger is currently unavailable (shows different styling). */
16
- isUnavailable?: boolean
23
+ isUnavailable?: boolean;
17
24
  /**
18
25
  * Two children: [trigger element, help content].
19
26
  * The trigger renders as a button, the content opens in a popover.
20
27
  */
21
- children?: [JSX.Element, JSX.Element]
28
+ children?: [JSX.Element, JSX.Element];
22
29
  /** CSS class name. */
23
- class?: string
30
+ class?: string;
24
31
  /** Whether the trigger is disabled. */
25
- isDisabled?: boolean
32
+ isDisabled?: boolean;
26
33
  }
27
34
 
28
35
  export interface ContextualHelpTriggerRenderProps {
29
- isOpen: boolean
30
- isUnavailable: boolean
31
- isDisabled: boolean
36
+ isOpen: boolean;
37
+ isUnavailable: boolean;
38
+ isDisabled: boolean;
32
39
  }
33
40
 
34
- // ============================================
35
- // COMPONENT
36
- // ============================================
37
-
38
41
  /**
39
42
  * A trigger that opens contextual help content.
40
43
  *
@@ -49,58 +52,67 @@ export interface ContextualHelpTriggerRenderProps {
49
52
  * ```
50
53
  */
51
54
  export function ContextualHelpTrigger(props: ContextualHelpTriggerProps): JSX.Element {
52
- const [local, triggerProps] = splitProps(props, ['isUnavailable', 'children', 'class', 'isDisabled'])
53
- const [isOpen, setIsOpen] = createSignal(false)
54
- const triggerId = createUniqueId()
55
- const contentId = createUniqueId()
56
- let triggerRef: HTMLButtonElement | undefined
57
- let contentRef: HTMLDivElement | undefined
58
-
59
- const isUnavailable = () => local.isUnavailable ?? false
60
- const isDisabled = () => local.isDisabled ?? false
55
+ const [local, triggerProps] = splitProps(props, [
56
+ "isUnavailable",
57
+ "children",
58
+ "class",
59
+ "isDisabled",
60
+ ]);
61
+ const [isOpen, setIsOpen] = createSignal(false);
62
+ const triggerId = createUniqueId();
63
+ const contentId = createUniqueId();
64
+ let triggerRef: HTMLButtonElement | undefined;
65
+ let contentRef: HTMLDivElement | undefined;
66
+
67
+ const isUnavailable = () => local.isUnavailable ?? false;
68
+ const isDisabled = () => local.isDisabled ?? false;
61
69
 
62
70
  const toggle = () => {
63
71
  if (!isDisabled()) {
64
- setIsOpen(!isOpen())
72
+ setIsOpen(!isOpen());
65
73
  }
66
- }
74
+ };
67
75
 
68
- const close = () => setIsOpen(false)
76
+ const close = () => setIsOpen(false);
69
77
 
70
78
  const callHandler = <E extends Event>(
71
79
  handler: JSX.EventHandlerUnion<HTMLButtonElement, E> | undefined,
72
- event: E
80
+ event: E,
73
81
  ) => {
74
- if (!handler) return
82
+ if (!handler) return;
75
83
  if (Array.isArray(handler)) {
76
- handler[1].call(handler[0], event)
77
- return
84
+ handler[1].call(handler[0], event);
85
+ return;
78
86
  }
79
- if (typeof handler === 'function') {
80
- (handler as (evt: E) => void)(event)
81
- return
87
+ if (typeof handler === "function") {
88
+ (handler as (evt: E) => void)(event);
89
+ return;
82
90
  }
83
- if (typeof handler === 'object' && 'handleEvent' in handler && typeof handler.handleEvent === 'function') {
84
- (handler.handleEvent as (evt: E) => void)(event)
91
+ if (
92
+ typeof handler === "object" &&
93
+ "handleEvent" in handler &&
94
+ typeof handler.handleEvent === "function"
95
+ ) {
96
+ (handler.handleEvent as (evt: E) => void)(event);
85
97
  }
86
- }
98
+ };
87
99
 
88
100
  const handleTriggerClick = (e: MouseEvent) => {
89
- callHandler(triggerProps.onClick, e)
90
- if (e.defaultPrevented) return
91
- toggle()
92
- }
101
+ callHandler(triggerProps.onClick, e);
102
+ if (e.defaultPrevented) return;
103
+ toggle();
104
+ };
93
105
 
94
106
  const handleTriggerKeyDown = (e: KeyboardEvent) => {
95
- callHandler(triggerProps.onKeyDown, e)
96
- if (e.defaultPrevented) return
97
- if (e.key === 'Escape' && isOpen()) {
98
- e.preventDefault()
99
- e.stopPropagation()
100
- close()
101
- triggerRef?.focus()
107
+ callHandler(triggerProps.onKeyDown, e);
108
+ if (e.defaultPrevented) return;
109
+ if (e.key === "Escape" && isOpen()) {
110
+ e.preventDefault();
111
+ e.stopPropagation();
112
+ close();
113
+ triggerRef?.focus();
102
114
  }
103
- }
115
+ };
104
116
 
105
117
  // Close on outside click
106
118
  const handleDocumentClick = (e: MouseEvent) => {
@@ -111,33 +123,33 @@ export function ContextualHelpTrigger(props: ContextualHelpTriggerProps): JSX.El
111
123
  !triggerRef.contains(e.target as Node) &&
112
124
  !contentRef.contains(e.target as Node)
113
125
  ) {
114
- close()
126
+ close();
115
127
  }
116
- }
128
+ };
117
129
 
118
130
  createEffect(() => {
119
- if (!isOpen()) return
120
- document.addEventListener('mousedown', handleDocumentClick)
131
+ if (!isOpen()) return;
132
+ document.addEventListener("mousedown", handleDocumentClick);
121
133
  onCleanup(() => {
122
- document.removeEventListener('mousedown', handleDocumentClick)
123
- })
124
- })
134
+ document.removeEventListener("mousedown", handleDocumentClick);
135
+ });
136
+ });
125
137
 
126
138
  // Focus trap: return focus to trigger on close
127
139
  createEffect(() => {
128
- if (!isOpen()) return
140
+ if (!isOpen()) return;
129
141
  // Focus the content on open
130
- contentRef?.focus()
131
- })
142
+ contentRef?.focus();
143
+ });
132
144
 
133
- const children = () => local.children ?? [null, null] as [JSX.Element, JSX.Element]
134
- const trigger = () => children()[0]
135
- const content = () => children()[1]
145
+ const children = () => local.children ?? ([null, null] as [JSX.Element, JSX.Element]);
146
+ const trigger = () => children()[0];
147
+ const content = () => children()[1];
136
148
 
137
149
  return (
138
150
  <div
139
- class={`solidaria-ContextualHelpTrigger ${local.class ?? ''}`}
140
- style={{ position: 'relative', display: 'inline-block' }}
151
+ class={`solidaria-ContextualHelpTrigger ${local.class ?? ""}`}
152
+ style={{ position: "relative", display: "inline-block" }}
141
153
  >
142
154
  <button
143
155
  {...triggerProps}
@@ -165,13 +177,13 @@ export function ContextualHelpTrigger(props: ContextualHelpTriggerProps): JSX.El
165
177
  aria-labelledby={triggerId}
166
178
  tabIndex={-1}
167
179
  class="solidaria-ContextualHelpTrigger-content"
168
- style={{ position: 'absolute', 'z-index': '50' }}
180
+ style={{ position: "absolute", "z-index": "50" }}
169
181
  onKeyDown={(e) => {
170
- if (e.key === 'Escape') {
171
- e.preventDefault()
172
- e.stopPropagation()
173
- close()
174
- triggerRef?.focus()
182
+ if (e.key === "Escape") {
183
+ e.preventDefault();
184
+ e.stopPropagation();
185
+ close();
186
+ triggerRef?.focus();
175
187
  }
176
188
  }}
177
189
  >
@@ -179,5 +191,5 @@ export function ContextualHelpTrigger(props: ContextualHelpTriggerProps): JSX.El
179
191
  </div>
180
192
  </Show>
181
193
  </div>
182
- )
194
+ );
183
195
  }