@proyecto-viviana/solidaria-components 0.2.9 → 0.3.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 (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 +23253 -18564
  139. package/dist/index.js.map +1 -1
  140. package/dist/index.jsx +18116 -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 +251 -176
  186. package/src/NumberField.tsx +139 -143
  187. package/src/Popover.tsx +396 -234
  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 +216 -158
  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 +49 -60
  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,7 +5,7 @@
5
5
  * into a complete color editing UI. Pure composition — no new ARIA hooks needed.
6
6
  */
7
7
 
8
- import { type JSX, createSignal, For, Show, splitProps, createMemo } from 'solid-js'
8
+ import { type JSX, createSignal, For, Show, splitProps, createMemo } from "solid-js";
9
9
  import {
10
10
  ColorPicker,
11
11
  ColorArea,
@@ -16,47 +16,39 @@ import {
16
16
  ColorSliderThumb,
17
17
  ColorField,
18
18
  ColorFieldInput,
19
- } from './Color'
20
- import { getColorChannels } from '@proyecto-viviana/solid-stately'
21
- import type { Color, ColorChannel, ColorSpace } from '@proyecto-viviana/solid-stately'
19
+ } from "./Color";
20
+ import { getColorChannels } from "@proyecto-viviana/solid-stately";
21
+ import type { Color, ColorChannel, ColorSpace } from "@proyecto-viviana/solid-stately";
22
22
 
23
- // ============================================
24
- // TYPES
25
- // ============================================
26
-
27
- export type ColorEditorColorSpace = 'rgb' | 'hsl' | 'hsb'
23
+ export type ColorEditorColorSpace = "rgb" | "hsl" | "hsb";
28
24
 
29
25
  export interface ColorEditorRenderProps {
30
- colorSpace: ColorEditorColorSpace | 'hex'
26
+ colorSpace: ColorEditorColorSpace | "hex";
31
27
  }
32
28
 
33
29
  export interface ColorEditorProps {
34
30
  /** The current color value (controlled). */
35
- value?: Color | string
31
+ value?: Color | string;
36
32
  /** The default color value (uncontrolled). */
37
- defaultValue?: Color | string
33
+ defaultValue?: Color | string;
38
34
  /** Handler called when the color changes. */
39
- onChange?: (color: Color) => void
35
+ onChange?: (color: Color) => void;
40
36
  /** Whether to hide the alpha channel. */
41
- hideAlphaChannel?: boolean
37
+ hideAlphaChannel?: boolean;
42
38
  /** The initial color space. @default 'hex' */
43
- colorSpace?: ColorEditorColorSpace | 'hex'
39
+ colorSpace?: ColorEditorColorSpace | "hex";
44
40
  /** Handler called when the color space changes. */
45
- onColorSpaceChange?: (colorSpace: ColorEditorColorSpace | 'hex') => void
41
+ onColorSpaceChange?: (colorSpace: ColorEditorColorSpace | "hex") => void;
46
42
  /** The CSS class name. */
47
- class?: string | ((renderProps: ColorEditorRenderProps) => string)
43
+ class?: string | ((renderProps: ColorEditorRenderProps) => string);
48
44
  /** The inline style. */
49
- style?: JSX.CSSProperties
45
+ style?: JSX.CSSProperties;
50
46
  /** Children override. If provided, replaces the default layout. */
51
- children?: JSX.Element
47
+ children?: JSX.Element;
52
48
  /** Whether the editor is disabled. */
53
- isDisabled?: boolean
49
+ isDisabled?: boolean;
54
50
  }
55
51
 
56
- // ============================================
57
- // COMPONENT
58
- // ============================================
59
-
60
52
  /**
61
53
  * ColorEditor provides a default UI for editing colors.
62
54
  *
@@ -65,63 +57,76 @@ export interface ColorEditorProps {
65
57
  */
66
58
  export function ColorEditor(props: ColorEditorProps): JSX.Element {
67
59
  const [local] = splitProps(props, [
68
- 'value',
69
- 'defaultValue',
70
- 'onChange',
71
- 'hideAlphaChannel',
72
- 'colorSpace',
73
- 'onColorSpaceChange',
74
- 'class',
75
- 'style',
76
- 'children',
77
- 'isDisabled',
78
- ])
79
-
80
- const [activeSpace, setActiveSpace] = createSignal<ColorEditorColorSpace | 'hex'>(
81
- local.colorSpace ?? 'hex'
82
- )
83
-
84
- const handleSpaceChange = (space: ColorEditorColorSpace | 'hex') => {
85
- setActiveSpace(space)
86
- local.onColorSpaceChange?.(space)
87
- }
60
+ "value",
61
+ "defaultValue",
62
+ "onChange",
63
+ "hideAlphaChannel",
64
+ "colorSpace",
65
+ "onColorSpaceChange",
66
+ "class",
67
+ "style",
68
+ "children",
69
+ "isDisabled",
70
+ ]);
71
+
72
+ const [activeSpace, setActiveSpace] = createSignal<ColorEditorColorSpace | "hex">(
73
+ local.colorSpace ?? "hex",
74
+ );
75
+
76
+ const handleSpaceChange = (space: ColorEditorColorSpace | "hex") => {
77
+ setActiveSpace(space);
78
+ local.onColorSpaceChange?.(space);
79
+ };
88
80
 
89
81
  const channels = createMemo<ColorChannel[]>(() => {
90
- const space = activeSpace()
91
- if (space === 'hex') return []
92
- return getColorChannels(space as ColorSpace)
93
- })
82
+ const space = activeSpace();
83
+ if (space === "hex") return [];
84
+ return getColorChannels(space as ColorSpace);
85
+ });
94
86
 
95
87
  const resolvedClass = () => {
96
- if (typeof local.class === 'function') {
97
- return local.class({ colorSpace: activeSpace() })
88
+ if (typeof local.class === "function") {
89
+ return local.class({ colorSpace: activeSpace() });
98
90
  }
99
- return local.class ?? ''
100
- }
91
+ return local.class ?? "";
92
+ };
101
93
 
102
- // If children are provided, render them instead of the default layout
103
94
  if (local.children) {
104
95
  return (
105
96
  <div class={resolvedClass()} style={local.style}>
106
- <ColorPicker value={local.value} defaultValue={local.defaultValue} onChange={local.onChange}>
97
+ <ColorPicker
98
+ value={local.value}
99
+ defaultValue={local.defaultValue}
100
+ onChange={local.onChange}
101
+ >
107
102
  {() => local.children}
108
103
  </ColorPicker>
109
104
  </div>
110
- )
105
+ );
111
106
  }
112
107
 
113
- // Determine ColorArea channels based on active color space
114
108
  const areaChannels = createMemo(() => {
115
- const space = activeSpace()
116
- if (space === 'hsb' || space === 'hex') {
117
- return { x: 'saturation' as ColorChannel, y: 'brightness' as ColorChannel, colorSpace: 'hsb' as ColorSpace }
109
+ const space = activeSpace();
110
+ if (space === "hsb" || space === "hex") {
111
+ return {
112
+ x: "saturation" as ColorChannel,
113
+ y: "brightness" as ColorChannel,
114
+ colorSpace: "hsb" as ColorSpace,
115
+ };
118
116
  }
119
- if (space === 'hsl') {
120
- return { x: 'saturation' as ColorChannel, y: 'lightness' as ColorChannel, colorSpace: 'hsl' as ColorSpace }
117
+ if (space === "hsl") {
118
+ return {
119
+ x: "saturation" as ColorChannel,
120
+ y: "lightness" as ColorChannel,
121
+ colorSpace: "hsl" as ColorSpace,
122
+ };
121
123
  }
122
- // rgb: use green and blue on area
123
- return { x: 'green' as ColorChannel, y: 'blue' as ColorChannel, colorSpace: 'rgb' as ColorSpace }
124
- })
124
+ return {
125
+ x: "green" as ColorChannel,
126
+ y: "blue" as ColorChannel,
127
+ colorSpace: "rgb" as ColorSpace,
128
+ };
129
+ });
125
130
 
126
131
  return (
127
132
  <div
@@ -132,100 +137,77 @@ export function ColorEditor(props: ColorEditorProps): JSX.Element {
132
137
  <ColorPicker value={local.value} defaultValue={local.defaultValue} onChange={local.onChange}>
133
138
  {() => (
134
139
  <>
135
- {/* Top row: ColorArea + vertical sliders */}
136
- <div class="solidaria-ColorEditor-top">
137
- <ColorArea
138
- xChannel={areaChannels().x}
139
- yChannel={areaChannels().y}
140
- isDisabled={local.isDisabled}
141
- >
142
- {() => (
143
- <>
144
- <ColorAreaGradient />
145
- <ColorAreaThumb />
146
- </>
147
- )}
148
- </ColorArea>
149
-
150
- <ColorSlider
151
- channel="hue"
152
- isDisabled={local.isDisabled}
153
- aria-label="Hue"
154
- >
155
- {() => (
156
- <ColorSliderTrack>
157
- {() => <ColorSliderThumb />}
158
- </ColorSliderTrack>
159
- )}
160
- </ColorSlider>
161
-
162
- <Show when={!local.hideAlphaChannel}>
163
- <ColorSlider
164
- channel="alpha"
140
+ <div class="solidaria-ColorEditor-top">
141
+ <ColorArea
142
+ xChannel={areaChannels().x}
143
+ yChannel={areaChannels().y}
165
144
  isDisabled={local.isDisabled}
166
- aria-label="Alpha"
167
145
  >
168
146
  {() => (
169
- <ColorSliderTrack>
170
- {() => <ColorSliderThumb />}
171
- </ColorSliderTrack>
147
+ <>
148
+ <ColorAreaGradient />
149
+ <ColorAreaThumb />
150
+ </>
172
151
  )}
152
+ </ColorArea>
153
+
154
+ <ColorSlider channel="hue" isDisabled={local.isDisabled} aria-label="Hue">
155
+ {() => <ColorSliderTrack>{() => <ColorSliderThumb />}</ColorSliderTrack>}
173
156
  </ColorSlider>
174
- </Show>
175
- </div>
176
-
177
- {/* Bottom row: color space selector + channel fields */}
178
- <div class="solidaria-ColorEditor-bottom">
179
- <select
180
- value={activeSpace()}
181
- onChange={(e) => handleSpaceChange(e.currentTarget.value as ColorEditorColorSpace | 'hex')}
182
- disabled={local.isDisabled}
183
- aria-label="Color format"
184
- class="solidaria-ColorEditor-format"
185
- >
186
- <option value="hex">Hex</option>
187
- <option value="rgb">RGB</option>
188
- <option value="hsl">HSL</option>
189
- <option value="hsb">HSB</option>
190
- </select>
191
-
192
- <Show
193
- when={activeSpace() !== 'hex'}
194
- fallback={
195
- <ColorField
196
- isDisabled={local.isDisabled}
197
- aria-label="Hex color"
198
- >
199
- {() => <ColorFieldInput />}
200
- </ColorField>
201
- }
202
- >
203
- <For each={channels()}>
204
- {(channel) => (
205
- <ColorField
206
- channel={channel}
207
- isDisabled={local.isDisabled}
208
- aria-label={channel}
209
- >
157
+
158
+ <Show when={!local.hideAlphaChannel}>
159
+ <ColorSlider channel="alpha" isDisabled={local.isDisabled} aria-label="Alpha">
160
+ {() => <ColorSliderTrack>{() => <ColorSliderThumb />}</ColorSliderTrack>}
161
+ </ColorSlider>
162
+ </Show>
163
+ </div>
164
+
165
+ <div class="solidaria-ColorEditor-bottom">
166
+ <select
167
+ value={activeSpace()}
168
+ onChange={(e) =>
169
+ handleSpaceChange(e.currentTarget.value as ColorEditorColorSpace | "hex")
170
+ }
171
+ disabled={local.isDisabled}
172
+ aria-label="Color format"
173
+ class="solidaria-ColorEditor-format"
174
+ >
175
+ <option value="hex">Hex</option>
176
+ <option value="rgb">RGB</option>
177
+ <option value="hsl">HSL</option>
178
+ <option value="hsb">HSB</option>
179
+ </select>
180
+
181
+ <Show
182
+ when={activeSpace() !== "hex"}
183
+ fallback={
184
+ <ColorField isDisabled={local.isDisabled} aria-label="Hex color">
210
185
  {() => <ColorFieldInput />}
211
186
  </ColorField>
212
- )}
213
- </For>
214
- </Show>
215
-
216
- <Show when={!local.hideAlphaChannel && activeSpace() !== 'hex'}>
217
- <ColorField
218
- channel="alpha"
219
- isDisabled={local.isDisabled}
220
- aria-label="Alpha"
187
+ }
221
188
  >
222
- {() => <ColorFieldInput />}
223
- </ColorField>
224
- </Show>
225
- </div>
226
- </>
189
+ <For each={channels()}>
190
+ {(channel) => (
191
+ <ColorField
192
+ channel={channel}
193
+ isDisabled={local.isDisabled}
194
+ aria-label={channel}
195
+ >
196
+ {() => <ColorFieldInput />}
197
+ </ColorField>
198
+ )}
199
+ </For>
200
+ </Show>
201
+
202
+ <Show when={!local.hideAlphaChannel && activeSpace() !== "hex"}>
203
+ <ColorField channel="alpha" isDisabled={local.isDisabled} aria-label="Alpha">
204
+ {() => <ColorFieldInput />}
205
+ </ColorField>
206
+ </Show>
207
+ </div>
208
+ </>
227
209
  )}
228
210
  </ColorPicker>
229
211
  </div>
230
- )
212
+ );
231
213
  }