@proyecto-viviana/solidaria 0.2.2 → 0.2.4
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.
- package/dist/autocomplete/createAutocomplete.d.ts +2 -2
- package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
- package/dist/index.js +233 -234
- package/dist/index.js.map +2 -2
- package/dist/index.ssr.js +233 -234
- package/dist/index.ssr.js.map +2 -2
- package/dist/interactions/PressEvent.d.ts +13 -10
- package/dist/interactions/PressEvent.d.ts.map +1 -1
- package/dist/interactions/createPress.d.ts.map +1 -1
- package/dist/interactions/index.d.ts +1 -1
- package/dist/interactions/index.d.ts.map +1 -1
- package/dist/select/createHiddenSelect.d.ts.map +1 -1
- package/dist/toolbar/createToolbar.d.ts.map +1 -1
- package/dist/tooltip/createTooltipTrigger.d.ts.map +1 -1
- package/package.json +9 -7
- package/src/autocomplete/createAutocomplete.ts +341 -0
- package/src/autocomplete/index.ts +9 -0
- package/src/breadcrumbs/createBreadcrumbs.ts +196 -0
- package/src/breadcrumbs/index.ts +8 -0
- package/src/button/createButton.ts +142 -0
- package/src/button/createToggleButton.ts +101 -0
- package/src/button/index.ts +4 -0
- package/src/button/types.ts +78 -0
- package/src/calendar/createCalendar.ts +138 -0
- package/src/calendar/createCalendarCell.ts +187 -0
- package/src/calendar/createCalendarGrid.ts +140 -0
- package/src/calendar/createRangeCalendar.ts +136 -0
- package/src/calendar/createRangeCalendarCell.ts +186 -0
- package/src/calendar/index.ts +34 -0
- package/src/checkbox/createCheckbox.ts +135 -0
- package/src/checkbox/createCheckboxGroup.ts +137 -0
- package/src/checkbox/createCheckboxGroupItem.ts +117 -0
- package/src/checkbox/createCheckboxGroupState.ts +193 -0
- package/src/checkbox/index.ts +13 -0
- package/src/color/createColorArea.ts +314 -0
- package/src/color/createColorField.ts +137 -0
- package/src/color/createColorSlider.ts +197 -0
- package/src/color/createColorSwatch.ts +40 -0
- package/src/color/createColorWheel.ts +208 -0
- package/src/color/index.ts +24 -0
- package/src/color/types.ts +116 -0
- package/src/combobox/createComboBox.ts +647 -0
- package/src/combobox/index.ts +6 -0
- package/src/combobox/intl/en-US.json +7 -0
- package/src/combobox/intl/es-ES.json +7 -0
- package/src/combobox/intl/index.ts +23 -0
- package/src/datepicker/createDateField.ts +154 -0
- package/src/datepicker/createDatePicker.ts +206 -0
- package/src/datepicker/createDateSegment.ts +229 -0
- package/src/datepicker/createTimeField.ts +154 -0
- package/src/datepicker/index.ts +28 -0
- package/src/dialog/createDialog.ts +120 -0
- package/src/dialog/index.ts +2 -0
- package/src/dialog/types.ts +19 -0
- package/src/disclosure/createDisclosure.ts +131 -0
- package/src/disclosure/createDisclosureGroup.ts +62 -0
- package/src/disclosure/index.ts +11 -0
- package/src/dnd/createDrag.ts +209 -0
- package/src/dnd/createDraggableCollection.ts +63 -0
- package/src/dnd/createDraggableItem.ts +243 -0
- package/src/dnd/createDrop.ts +321 -0
- package/src/dnd/createDroppableCollection.ts +293 -0
- package/src/dnd/createDroppableItem.ts +213 -0
- package/src/dnd/index.ts +47 -0
- package/src/dnd/types.ts +89 -0
- package/src/dnd/utils.ts +294 -0
- package/src/focus/FocusScope.tsx +408 -0
- package/src/focus/createAutoFocus.ts +321 -0
- package/src/focus/createFocusRestore.ts +313 -0
- package/src/focus/createVirtualFocus.ts +396 -0
- package/src/focus/index.ts +35 -0
- package/src/form/createFormReset.ts +51 -0
- package/src/form/createFormValidation.ts +224 -0
- package/src/form/index.ts +11 -0
- package/src/grid/GridKeyboardDelegate.ts +429 -0
- package/src/grid/createGrid.ts +261 -0
- package/src/grid/createGridCell.ts +182 -0
- package/src/grid/createGridRow.ts +153 -0
- package/src/grid/index.ts +18 -0
- package/src/grid/types.ts +133 -0
- package/src/gridlist/createGridList.ts +185 -0
- package/src/gridlist/createGridListItem.ts +180 -0
- package/src/gridlist/createGridListSelectionCheckbox.ts +59 -0
- package/src/gridlist/index.ts +16 -0
- package/src/gridlist/types.ts +81 -0
- package/src/i18n/NumberFormatter.ts +266 -0
- package/src/i18n/createCollator.ts +79 -0
- package/src/i18n/createDateFormatter.ts +83 -0
- package/src/i18n/createFilter.ts +131 -0
- package/src/i18n/createNumberFormatter.ts +52 -0
- package/src/i18n/createStringFormatter.ts +87 -0
- package/src/i18n/index.ts +40 -0
- package/src/i18n/locale.tsx +188 -0
- package/src/i18n/utils.ts +99 -0
- package/src/index.ts +670 -0
- package/src/interactions/FocusableProvider.tsx +44 -0
- package/src/interactions/PressEvent.ts +126 -0
- package/src/interactions/createFocus.ts +163 -0
- package/src/interactions/createFocusRing.ts +89 -0
- package/src/interactions/createFocusWithin.ts +206 -0
- package/src/interactions/createFocusable.ts +168 -0
- package/src/interactions/createHover.ts +254 -0
- package/src/interactions/createInteractionModality.ts +424 -0
- package/src/interactions/createKeyboard.ts +82 -0
- package/src/interactions/createLongPress.ts +174 -0
- package/src/interactions/createMove.ts +289 -0
- package/src/interactions/createPress.ts +834 -0
- package/src/interactions/index.ts +78 -0
- package/src/label/createField.ts +145 -0
- package/src/label/createLabel.ts +117 -0
- package/src/label/createLabels.ts +50 -0
- package/src/label/index.ts +19 -0
- package/src/landmark/createLandmark.ts +377 -0
- package/src/landmark/index.ts +8 -0
- package/src/link/createLink.ts +182 -0
- package/src/link/index.ts +1 -0
- package/src/listbox/createListBox.ts +269 -0
- package/src/listbox/createOption.ts +151 -0
- package/src/listbox/index.ts +12 -0
- package/src/live-announcer/announce.ts +322 -0
- package/src/live-announcer/index.ts +9 -0
- package/src/menu/createMenu.ts +396 -0
- package/src/menu/createMenuItem.ts +149 -0
- package/src/menu/createMenuTrigger.ts +88 -0
- package/src/menu/index.ts +18 -0
- package/src/meter/createMeter.ts +75 -0
- package/src/meter/index.ts +1 -0
- package/src/numberfield/createNumberField.ts +268 -0
- package/src/numberfield/index.ts +5 -0
- package/src/overlays/ariaHideOutside.ts +219 -0
- package/src/overlays/createInteractOutside.ts +149 -0
- package/src/overlays/createModal.tsx +202 -0
- package/src/overlays/createOverlay.ts +155 -0
- package/src/overlays/createOverlayTrigger.ts +85 -0
- package/src/overlays/createPreventScroll.ts +266 -0
- package/src/overlays/index.ts +44 -0
- package/src/popover/calculatePosition.ts +766 -0
- package/src/popover/createOverlayPosition.ts +356 -0
- package/src/popover/createPopover.ts +170 -0
- package/src/popover/index.ts +24 -0
- package/src/progress/createProgressBar.ts +128 -0
- package/src/progress/index.ts +5 -0
- package/src/radio/createRadio.ts +287 -0
- package/src/radio/createRadioGroup.ts +189 -0
- package/src/radio/createRadioGroupState.ts +201 -0
- package/src/radio/index.ts +23 -0
- package/src/searchfield/createSearchField.ts +186 -0
- package/src/searchfield/index.ts +2 -0
- package/src/select/createHiddenSelect.tsx +236 -0
- package/src/select/createSelect.ts +395 -0
- package/src/select/index.ts +14 -0
- package/src/selection/createTypeSelect.ts +201 -0
- package/src/selection/index.ts +6 -0
- package/src/separator/createSeparator.ts +82 -0
- package/src/separator/index.ts +6 -0
- package/src/slider/createSlider.ts +349 -0
- package/src/slider/index.ts +2 -0
- package/src/ssr/index.tsx +370 -0
- package/src/switch/createSwitch.ts +70 -0
- package/src/switch/index.ts +1 -0
- package/src/table/createTable.ts +526 -0
- package/src/table/createTableCell.ts +147 -0
- package/src/table/createTableColumnHeader.ts +115 -0
- package/src/table/createTableHeaderRow.ts +40 -0
- package/src/table/createTableRow.ts +155 -0
- package/src/table/createTableRowGroup.ts +32 -0
- package/src/table/createTableSelectAllCheckbox.ts +73 -0
- package/src/table/createTableSelectionCheckbox.ts +59 -0
- package/src/table/index.ts +30 -0
- package/src/table/types.ts +165 -0
- package/src/tabs/createTabs.ts +472 -0
- package/src/tabs/index.ts +14 -0
- package/src/tag/createTag.ts +194 -0
- package/src/tag/createTagGroup.ts +154 -0
- package/src/tag/index.ts +12 -0
- package/src/textfield/createTextField.ts +198 -0
- package/src/textfield/index.ts +5 -0
- package/src/toast/createToast.ts +118 -0
- package/src/toast/createToastRegion.ts +100 -0
- package/src/toast/index.ts +11 -0
- package/src/toggle/createToggle.ts +223 -0
- package/src/toggle/createToggleState.ts +94 -0
- package/src/toggle/index.ts +7 -0
- package/src/toolbar/createToolbar.ts +369 -0
- package/src/toolbar/index.ts +6 -0
- package/src/tooltip/createTooltip.ts +79 -0
- package/src/tooltip/createTooltipTrigger.ts +222 -0
- package/src/tooltip/index.ts +6 -0
- package/src/tree/createTree.ts +246 -0
- package/src/tree/createTreeItem.ts +233 -0
- package/src/tree/createTreeSelectionCheckbox.ts +68 -0
- package/src/tree/index.ts +16 -0
- package/src/tree/types.ts +87 -0
- package/src/utils/createDescription.ts +137 -0
- package/src/utils/dom.ts +327 -0
- package/src/utils/env.ts +54 -0
- package/src/utils/events.ts +106 -0
- package/src/utils/filterDOMProps.ts +116 -0
- package/src/utils/focus.ts +151 -0
- package/src/utils/geometry.ts +115 -0
- package/src/utils/globalListeners.ts +142 -0
- package/src/utils/index.ts +80 -0
- package/src/utils/mergeProps.ts +52 -0
- package/src/utils/platform.ts +52 -0
- package/src/utils/reactivity.ts +36 -0
- package/src/utils/textSelection.ts +114 -0
- package/src/visually-hidden/createVisuallyHidden.ts +124 -0
- package/src/visually-hidden/index.ts +6 -0
- package/dist/index.jsx +0 -15845
- package/dist/index.jsx.map +0 -7
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* createColorWheel hook.
|
|
3
|
+
*
|
|
4
|
+
* Provides ARIA attributes and keyboard/pointer handling for a circular hue selector.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { createMemo, type Accessor } from 'solid-js';
|
|
8
|
+
import type { ColorWheelState } from '@proyecto-viviana/solid-stately';
|
|
9
|
+
import { createId } from '../ssr';
|
|
10
|
+
import type { AriaColorWheelOptions, ColorWheelAria } from './types';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Creates ARIA props for a color wheel.
|
|
14
|
+
*/
|
|
15
|
+
export function createColorWheel(
|
|
16
|
+
props: Accessor<AriaColorWheelOptions>,
|
|
17
|
+
state: Accessor<ColorWheelState>,
|
|
18
|
+
wheelRef: Accessor<HTMLDivElement | null>
|
|
19
|
+
): ColorWheelAria {
|
|
20
|
+
const getProps = () => props();
|
|
21
|
+
const getState = () => state();
|
|
22
|
+
|
|
23
|
+
// Generate IDs
|
|
24
|
+
const inputId = createId();
|
|
25
|
+
|
|
26
|
+
// Calculate angle from pointer position
|
|
27
|
+
const getAngleFromEvent = (e: MouseEvent | PointerEvent) => {
|
|
28
|
+
const wheel = wheelRef();
|
|
29
|
+
if (!wheel) return null;
|
|
30
|
+
|
|
31
|
+
const rect = wheel.getBoundingClientRect();
|
|
32
|
+
const centerX = rect.left + rect.width / 2;
|
|
33
|
+
const centerY = rect.top + rect.height / 2;
|
|
34
|
+
|
|
35
|
+
const dx = e.clientX - centerX;
|
|
36
|
+
const dy = e.clientY - centerY;
|
|
37
|
+
|
|
38
|
+
return Math.atan2(-dy, dx); // Negative dy because Y is inverted in screen coords
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
// Handle pointer down
|
|
42
|
+
const onPointerDown = (e: PointerEvent) => {
|
|
43
|
+
if (getProps().isDisabled || getState().isDisabled) return;
|
|
44
|
+
|
|
45
|
+
const angle = getAngleFromEvent(e);
|
|
46
|
+
if (angle === null) return;
|
|
47
|
+
|
|
48
|
+
getState().setHueFromAngle(angle);
|
|
49
|
+
getState().setDragging(true);
|
|
50
|
+
|
|
51
|
+
(e.target as HTMLElement).setPointerCapture?.(e.pointerId);
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
// Handle pointer move
|
|
55
|
+
const onPointerMove = (e: PointerEvent) => {
|
|
56
|
+
if (!getState().isDragging) return;
|
|
57
|
+
|
|
58
|
+
const angle = getAngleFromEvent(e);
|
|
59
|
+
if (angle === null) return;
|
|
60
|
+
|
|
61
|
+
getState().setHueFromAngle(angle);
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// Handle pointer up
|
|
65
|
+
const onPointerUp = (e: PointerEvent) => {
|
|
66
|
+
if (getState().isDragging) {
|
|
67
|
+
getState().setDragging(false);
|
|
68
|
+
(e.target as HTMLElement).releasePointerCapture?.(e.pointerId);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
// Handle keyboard
|
|
73
|
+
const onKeyDown = (e: KeyboardEvent) => {
|
|
74
|
+
if (getProps().isDisabled || getState().isDisabled) return;
|
|
75
|
+
|
|
76
|
+
const s = getState();
|
|
77
|
+
let handled = true;
|
|
78
|
+
|
|
79
|
+
switch (e.key) {
|
|
80
|
+
case 'ArrowRight':
|
|
81
|
+
case 'ArrowUp':
|
|
82
|
+
s.increment();
|
|
83
|
+
break;
|
|
84
|
+
case 'ArrowLeft':
|
|
85
|
+
case 'ArrowDown':
|
|
86
|
+
s.decrement();
|
|
87
|
+
break;
|
|
88
|
+
case 'PageUp':
|
|
89
|
+
s.increment(s.pageStep);
|
|
90
|
+
break;
|
|
91
|
+
case 'PageDown':
|
|
92
|
+
s.decrement(s.pageStep);
|
|
93
|
+
break;
|
|
94
|
+
case 'Home':
|
|
95
|
+
s.setHue(0);
|
|
96
|
+
break;
|
|
97
|
+
case 'End':
|
|
98
|
+
s.setHue(359);
|
|
99
|
+
break;
|
|
100
|
+
default:
|
|
101
|
+
handled = false;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if (handled) {
|
|
105
|
+
e.preventDefault();
|
|
106
|
+
e.stopPropagation();
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
// Track props (the wheel container)
|
|
111
|
+
const trackProps = createMemo(() => {
|
|
112
|
+
const s = getState();
|
|
113
|
+
const p = getProps();
|
|
114
|
+
|
|
115
|
+
return {
|
|
116
|
+
role: 'presentation' as const,
|
|
117
|
+
onPointerDown,
|
|
118
|
+
onPointerMove,
|
|
119
|
+
onPointerUp,
|
|
120
|
+
style: {
|
|
121
|
+
position: 'relative' as const,
|
|
122
|
+
'touch-action': 'none',
|
|
123
|
+
},
|
|
124
|
+
'data-disabled': s.isDisabled || p.isDisabled || undefined,
|
|
125
|
+
};
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
// Thumb props
|
|
129
|
+
const thumbProps = createMemo(() => {
|
|
130
|
+
const s = getState();
|
|
131
|
+
const p = getProps();
|
|
132
|
+
const angle = s.getThumbAngle();
|
|
133
|
+
|
|
134
|
+
// Calculate thumb position on the wheel edge
|
|
135
|
+
// Assumes wheel is circular and thumb is at the outer edge
|
|
136
|
+
// Angle 0 = right (3 o'clock)
|
|
137
|
+
const thumbX = Math.cos(angle);
|
|
138
|
+
const thumbY = -Math.sin(angle); // Negative because CSS Y is inverted
|
|
139
|
+
|
|
140
|
+
return {
|
|
141
|
+
role: 'presentation' as const,
|
|
142
|
+
style: {
|
|
143
|
+
position: 'absolute' as const,
|
|
144
|
+
// Position relative to center, scaled to radius
|
|
145
|
+
// These will be overridden by the component with actual radius
|
|
146
|
+
left: `calc(50% + ${thumbX * 50}%)`,
|
|
147
|
+
top: `calc(50% + ${thumbY * 50}%)`,
|
|
148
|
+
transform: 'translate(-50%, -50%)',
|
|
149
|
+
'touch-action': 'none',
|
|
150
|
+
},
|
|
151
|
+
'data-dragging': s.isDragging || undefined,
|
|
152
|
+
'data-disabled': s.isDisabled || p.isDisabled || undefined,
|
|
153
|
+
};
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
// Input props (hidden, for accessibility)
|
|
157
|
+
const inputProps = createMemo(() => {
|
|
158
|
+
const s = getState();
|
|
159
|
+
const p = getProps();
|
|
160
|
+
|
|
161
|
+
return {
|
|
162
|
+
type: 'range',
|
|
163
|
+
id: inputId,
|
|
164
|
+
min: 0,
|
|
165
|
+
max: 360,
|
|
166
|
+
step: s.step,
|
|
167
|
+
value: s.getHue(),
|
|
168
|
+
disabled: s.isDisabled || p.isDisabled,
|
|
169
|
+
'aria-label': p['aria-label'] ?? 'Hue',
|
|
170
|
+
'aria-labelledby': p['aria-labelledby'],
|
|
171
|
+
'aria-describedby': p['aria-describedby'],
|
|
172
|
+
'aria-valuetext': `${s.getHue()}°`,
|
|
173
|
+
onKeyDown,
|
|
174
|
+
onChange: (e: Event) => {
|
|
175
|
+
const target = e.target as HTMLInputElement;
|
|
176
|
+
s.setHue(parseFloat(target.value));
|
|
177
|
+
},
|
|
178
|
+
onBlur: () => {
|
|
179
|
+
if (s.isDragging) {
|
|
180
|
+
s.setDragging(false);
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
style: {
|
|
184
|
+
position: 'absolute' as const,
|
|
185
|
+
width: '1px',
|
|
186
|
+
height: '1px',
|
|
187
|
+
padding: '0',
|
|
188
|
+
margin: '-1px',
|
|
189
|
+
overflow: 'hidden',
|
|
190
|
+
clip: 'rect(0, 0, 0, 0)',
|
|
191
|
+
'white-space': 'nowrap',
|
|
192
|
+
border: '0',
|
|
193
|
+
},
|
|
194
|
+
};
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
return {
|
|
198
|
+
get trackProps() {
|
|
199
|
+
return trackProps();
|
|
200
|
+
},
|
|
201
|
+
get thumbProps() {
|
|
202
|
+
return thumbProps();
|
|
203
|
+
},
|
|
204
|
+
get inputProps() {
|
|
205
|
+
return inputProps();
|
|
206
|
+
},
|
|
207
|
+
};
|
|
208
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Color ARIA hooks exports.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// Types
|
|
6
|
+
export type {
|
|
7
|
+
AriaColorSliderOptions,
|
|
8
|
+
ColorSliderAria,
|
|
9
|
+
AriaColorAreaOptions,
|
|
10
|
+
ColorAreaAria,
|
|
11
|
+
AriaColorWheelOptions,
|
|
12
|
+
ColorWheelAria,
|
|
13
|
+
AriaColorFieldOptions,
|
|
14
|
+
ColorFieldAria,
|
|
15
|
+
AriaColorSwatchOptions,
|
|
16
|
+
ColorSwatchAria,
|
|
17
|
+
} from './types';
|
|
18
|
+
|
|
19
|
+
// Hooks
|
|
20
|
+
export { createColorSlider } from './createColorSlider';
|
|
21
|
+
export { createColorArea } from './createColorArea';
|
|
22
|
+
export { createColorWheel } from './createColorWheel';
|
|
23
|
+
export { createColorField } from './createColorField';
|
|
24
|
+
export { createColorSwatch } from './createColorSwatch';
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Color ARIA types.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import type { JSX } from 'solid-js';
|
|
6
|
+
import type { ColorChannel, Color } from '@proyecto-viviana/solid-stately';
|
|
7
|
+
|
|
8
|
+
export interface AriaColorSliderOptions {
|
|
9
|
+
/** The channel this slider controls. */
|
|
10
|
+
channel: ColorChannel;
|
|
11
|
+
/** Accessible label for the slider. */
|
|
12
|
+
'aria-label'?: string;
|
|
13
|
+
/** ID of element that labels the slider. */
|
|
14
|
+
'aria-labelledby'?: string;
|
|
15
|
+
/** ID of element that describes the slider. */
|
|
16
|
+
'aria-describedby'?: string;
|
|
17
|
+
/** Whether the slider is disabled. */
|
|
18
|
+
isDisabled?: boolean;
|
|
19
|
+
/** Localized channel name. */
|
|
20
|
+
channelName?: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface ColorSliderAria {
|
|
24
|
+
/** Props for the slider track element. */
|
|
25
|
+
trackProps: JSX.HTMLAttributes<HTMLDivElement>;
|
|
26
|
+
/** Props for the thumb/handle element. */
|
|
27
|
+
thumbProps: JSX.HTMLAttributes<HTMLDivElement>;
|
|
28
|
+
/** Props for the hidden input element. */
|
|
29
|
+
inputProps: JSX.InputHTMLAttributes<HTMLInputElement>;
|
|
30
|
+
/** Props for the output element showing the value. */
|
|
31
|
+
outputProps: JSX.HTMLAttributes<HTMLOutputElement>;
|
|
32
|
+
/** Props for the label element. */
|
|
33
|
+
labelProps: JSX.LabelHTMLAttributes<HTMLLabelElement>;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface AriaColorAreaOptions {
|
|
37
|
+
/** The X channel. */
|
|
38
|
+
xChannel?: ColorChannel;
|
|
39
|
+
/** The Y channel. */
|
|
40
|
+
yChannel?: ColorChannel;
|
|
41
|
+
/** Accessible label for the area. */
|
|
42
|
+
'aria-label'?: string;
|
|
43
|
+
/** ID of element that labels the area. */
|
|
44
|
+
'aria-labelledby'?: string;
|
|
45
|
+
/** ID of element that describes the area. */
|
|
46
|
+
'aria-describedby'?: string;
|
|
47
|
+
/** Whether the area is disabled. */
|
|
48
|
+
isDisabled?: boolean;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface ColorAreaAria {
|
|
52
|
+
/** Props for the color area container. */
|
|
53
|
+
colorAreaProps: JSX.HTMLAttributes<HTMLDivElement>;
|
|
54
|
+
/** Props for the gradient element. */
|
|
55
|
+
gradientProps: JSX.HTMLAttributes<HTMLDivElement>;
|
|
56
|
+
/** Props for the thumb element. */
|
|
57
|
+
thumbProps: JSX.HTMLAttributes<HTMLDivElement>;
|
|
58
|
+
/** Props for the hidden X input element. */
|
|
59
|
+
xInputProps: JSX.InputHTMLAttributes<HTMLInputElement>;
|
|
60
|
+
/** Props for the hidden Y input element. */
|
|
61
|
+
yInputProps: JSX.InputHTMLAttributes<HTMLInputElement>;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export interface AriaColorWheelOptions {
|
|
65
|
+
/** Accessible label for the wheel. */
|
|
66
|
+
'aria-label'?: string;
|
|
67
|
+
/** ID of element that labels the wheel. */
|
|
68
|
+
'aria-labelledby'?: string;
|
|
69
|
+
/** ID of element that describes the wheel. */
|
|
70
|
+
'aria-describedby'?: string;
|
|
71
|
+
/** Whether the wheel is disabled. */
|
|
72
|
+
isDisabled?: boolean;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export interface ColorWheelAria {
|
|
76
|
+
/** Props for the wheel track element. */
|
|
77
|
+
trackProps: JSX.HTMLAttributes<HTMLDivElement>;
|
|
78
|
+
/** Props for the thumb element. */
|
|
79
|
+
thumbProps: JSX.HTMLAttributes<HTMLDivElement>;
|
|
80
|
+
/** Props for the hidden input element. */
|
|
81
|
+
inputProps: JSX.InputHTMLAttributes<HTMLInputElement>;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export interface AriaColorFieldOptions {
|
|
85
|
+
/** Accessible label for the field. */
|
|
86
|
+
'aria-label'?: string;
|
|
87
|
+
/** ID of element that labels the field. */
|
|
88
|
+
'aria-labelledby'?: string;
|
|
89
|
+
/** ID of element that describes the field. */
|
|
90
|
+
'aria-describedby'?: string;
|
|
91
|
+
/** Whether the field is disabled. */
|
|
92
|
+
isDisabled?: boolean;
|
|
93
|
+
/** Whether the field is read-only. */
|
|
94
|
+
isReadOnly?: boolean;
|
|
95
|
+
/** The color channel being edited (for single channel mode). */
|
|
96
|
+
channel?: ColorChannel;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export interface ColorFieldAria {
|
|
100
|
+
/** Props for the label element. */
|
|
101
|
+
labelProps: JSX.LabelHTMLAttributes<HTMLLabelElement>;
|
|
102
|
+
/** Props for the input element. */
|
|
103
|
+
inputProps: JSX.InputHTMLAttributes<HTMLInputElement>;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export interface AriaColorSwatchOptions {
|
|
107
|
+
/** The color to display. */
|
|
108
|
+
color: Color | string;
|
|
109
|
+
/** Accessible label for the swatch. */
|
|
110
|
+
'aria-label'?: string;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export interface ColorSwatchAria {
|
|
114
|
+
/** Props for the swatch element. */
|
|
115
|
+
swatchProps: JSX.HTMLAttributes<HTMLDivElement>;
|
|
116
|
+
}
|