@sectile/dom 0.2.0 → 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.
- package/dist/accordion.d.ts +91 -0
- package/dist/accordion.d.ts.map +1 -0
- package/dist/accordion.js +289 -0
- package/dist/accordion.js.map +1 -0
- package/dist/alert-dialog.d.ts +32 -0
- package/dist/alert-dialog.d.ts.map +1 -0
- package/dist/alert-dialog.js +14 -0
- package/dist/alert-dialog.js.map +1 -0
- package/dist/calendar.d.ts +98 -0
- package/dist/calendar.d.ts.map +1 -0
- package/dist/calendar.js +296 -0
- package/dist/calendar.js.map +1 -0
- package/dist/carousel.d.ts +64 -0
- package/dist/carousel.d.ts.map +1 -0
- package/dist/carousel.js +290 -0
- package/dist/carousel.js.map +1 -0
- package/dist/cascade-select.d.ts +61 -0
- package/dist/cascade-select.d.ts.map +1 -0
- package/dist/cascade-select.js +175 -0
- package/dist/cascade-select.js.map +1 -0
- package/dist/checkbox-group.d.ts +22 -0
- package/dist/checkbox-group.d.ts.map +1 -0
- package/dist/checkbox-group.js +32 -0
- package/dist/checkbox-group.js.map +1 -0
- package/dist/checkbox.d.ts +64 -0
- package/dist/checkbox.d.ts.map +1 -0
- package/dist/checkbox.js +63 -0
- package/dist/checkbox.js.map +1 -0
- package/dist/color-picker.d.ts +54 -0
- package/dist/color-picker.d.ts.map +1 -0
- package/dist/color-picker.js +316 -0
- package/dist/color-picker.js.map +1 -0
- package/dist/combobox.d.ts +129 -0
- package/dist/combobox.d.ts.map +1 -0
- package/dist/combobox.js +397 -0
- package/dist/combobox.js.map +1 -0
- package/dist/date-field.d.ts +42 -0
- package/dist/date-field.d.ts.map +1 -0
- package/dist/date-field.js +91 -0
- package/dist/date-field.js.map +1 -0
- package/dist/date-picker.d.ts +52 -0
- package/dist/date-picker.d.ts.map +1 -0
- package/dist/date-picker.js +127 -0
- package/dist/date-picker.js.map +1 -0
- package/dist/date-range-field.d.ts +48 -0
- package/dist/date-range-field.d.ts.map +1 -0
- package/dist/date-range-field.js +114 -0
- package/dist/date-range-field.js.map +1 -0
- package/dist/date-range-picker.d.ts +52 -0
- package/dist/date-range-picker.d.ts.map +1 -0
- package/dist/date-range-picker.js +69 -0
- package/dist/date-range-picker.js.map +1 -0
- package/dist/date-time-field.d.ts +42 -0
- package/dist/date-time-field.d.ts.map +1 -0
- package/dist/date-time-field.js +166 -0
- package/dist/date-time-field.js.map +1 -0
- package/dist/date-time-picker.d.ts +54 -0
- package/dist/date-time-picker.d.ts.map +1 -0
- package/dist/date-time-picker.js +295 -0
- package/dist/date-time-picker.js.map +1 -0
- package/dist/date-time-range-picker.d.ts +57 -0
- package/dist/date-time-range-picker.d.ts.map +1 -0
- package/dist/date-time-range-picker.js +322 -0
- package/dist/date-time-range-picker.js.map +1 -0
- package/dist/dialog.d.ts +31 -0
- package/dist/dialog.d.ts.map +1 -0
- package/dist/dialog.js +15 -0
- package/dist/dialog.js.map +1 -0
- package/dist/disclosure.d.ts +70 -0
- package/dist/disclosure.d.ts.map +1 -0
- package/dist/disclosure.js +142 -0
- package/dist/disclosure.js.map +1 -0
- package/dist/editable.d.ts +37 -0
- package/dist/editable.d.ts.map +1 -0
- package/dist/editable.js +83 -0
- package/dist/editable.js.map +1 -0
- package/dist/feed.d.ts +43 -0
- package/dist/feed.d.ts.map +1 -0
- package/dist/feed.js +151 -0
- package/dist/feed.js.map +1 -0
- package/dist/form.d.ts +82 -0
- package/dist/form.d.ts.map +1 -0
- package/dist/form.js +473 -0
- package/dist/form.js.map +1 -0
- package/dist/grid.d.ts +54 -0
- package/dist/grid.d.ts.map +1 -0
- package/dist/grid.js +172 -0
- package/dist/grid.js.map +1 -0
- package/dist/index.d.ts +109 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/checked-control.d.ts +67 -0
- package/dist/internal/checked-control.d.ts.map +1 -0
- package/dist/internal/checked-control.js +137 -0
- package/dist/internal/checked-control.js.map +1 -0
- package/dist/internal/controller.d.ts +6 -0
- package/dist/internal/controller.d.ts.map +1 -0
- package/dist/internal/controller.js +35 -0
- package/dist/internal/controller.js.map +1 -0
- package/dist/internal/date-picker-cell.d.ts +2 -0
- package/dist/internal/date-picker-cell.d.ts.map +1 -0
- package/dist/internal/date-picker-cell.js +10 -0
- package/dist/internal/date-picker-cell.js.map +1 -0
- package/dist/internal/delegated-event.d.ts +2 -0
- package/dist/internal/delegated-event.d.ts.map +1 -0
- package/dist/internal/delegated-event.js +11 -0
- package/dist/internal/delegated-event.js.map +1 -0
- package/dist/internal/direction.d.ts +3 -0
- package/dist/internal/direction.d.ts.map +1 -0
- package/dist/internal/direction.js +8 -0
- package/dist/internal/direction.js.map +1 -0
- package/dist/internal/disabled-items.d.ts +6 -0
- package/dist/internal/disabled-items.d.ts.map +1 -0
- package/dist/internal/disabled-items.js +15 -0
- package/dist/internal/disabled-items.js.map +1 -0
- package/dist/internal/facade.d.ts +45 -0
- package/dist/internal/facade.d.ts.map +1 -0
- package/dist/internal/facade.js +58 -0
- package/dist/internal/facade.js.map +1 -0
- package/dist/internal/floating-position.d.ts +26 -0
- package/dist/internal/floating-position.d.ts.map +1 -0
- package/dist/internal/floating-position.js +93 -0
- package/dist/internal/floating-position.js.map +1 -0
- package/dist/internal/interaction.d.ts +14 -0
- package/dist/internal/interaction.d.ts.map +1 -0
- package/dist/internal/interaction.js +25 -0
- package/dist/internal/interaction.js.map +1 -0
- package/dist/internal/layer-binding.d.ts +16 -0
- package/dist/internal/layer-binding.d.ts.map +1 -0
- package/dist/internal/layer-binding.js +99 -0
- package/dist/internal/layer-binding.js.map +1 -0
- package/dist/internal/layer-manager.d.ts +19 -0
- package/dist/internal/layer-manager.d.ts.map +1 -0
- package/dist/internal/layer-manager.js +81 -0
- package/dist/internal/layer-manager.js.map +1 -0
- package/dist/internal/menu-control.d.ts +41 -0
- package/dist/internal/menu-control.d.ts.map +1 -0
- package/dist/internal/menu-control.js +279 -0
- package/dist/internal/menu-control.js.map +1 -0
- package/dist/internal/popup-control.d.ts +40 -0
- package/dist/internal/popup-control.d.ts.map +1 -0
- package/dist/internal/popup-control.js +189 -0
- package/dist/internal/popup-control.js.map +1 -0
- package/dist/internal/semantic-controller.d.ts +20 -0
- package/dist/internal/semantic-controller.d.ts.map +1 -0
- package/dist/internal/semantic-controller.js +42 -0
- package/dist/internal/semantic-controller.js.map +1 -0
- package/dist/internal/text-element.d.ts +16 -0
- package/dist/internal/text-element.d.ts.map +1 -0
- package/dist/internal/text-element.js +217 -0
- package/dist/internal/text-element.js.map +1 -0
- package/dist/listbox.d.ts +142 -0
- package/dist/listbox.d.ts.map +1 -0
- package/dist/listbox.js +463 -0
- package/dist/listbox.js.map +1 -0
- package/dist/menu-button.d.ts +10 -0
- package/dist/menu-button.d.ts.map +1 -0
- package/dist/menu-button.js +11 -0
- package/dist/menu-button.js.map +1 -0
- package/dist/menu.d.ts +10 -0
- package/dist/menu.d.ts.map +1 -0
- package/dist/menu.js +11 -0
- package/dist/menu.js.map +1 -0
- package/dist/menubar.d.ts +8 -0
- package/dist/menubar.d.ts.map +1 -0
- package/dist/menubar.js +11 -0
- package/dist/menubar.js.map +1 -0
- package/dist/month-picker.d.ts +5 -0
- package/dist/month-picker.d.ts.map +1 -0
- package/dist/month-picker.js +3 -0
- package/dist/month-picker.js.map +1 -0
- package/dist/month-range-picker.d.ts +4 -0
- package/dist/month-range-picker.d.ts.map +1 -0
- package/dist/month-range-picker.js +3 -0
- package/dist/month-range-picker.js.map +1 -0
- package/dist/multi-thumb-slider.d.ts +43 -0
- package/dist/multi-thumb-slider.d.ts.map +1 -0
- package/dist/multi-thumb-slider.js +190 -0
- package/dist/multi-thumb-slider.js.map +1 -0
- package/dist/navigation-menu.d.ts +8 -0
- package/dist/navigation-menu.d.ts.map +1 -0
- package/dist/navigation-menu.js +10 -0
- package/dist/navigation-menu.js.map +1 -0
- package/dist/number-field.d.ts +48 -0
- package/dist/number-field.d.ts.map +1 -0
- package/dist/number-field.js +138 -0
- package/dist/number-field.js.map +1 -0
- package/dist/pagination.d.ts +52 -0
- package/dist/pagination.d.ts.map +1 -0
- package/dist/pagination.js +199 -0
- package/dist/pagination.js.map +1 -0
- package/dist/pin-input.d.ts +31 -0
- package/dist/pin-input.d.ts.map +1 -0
- package/dist/pin-input.js +84 -0
- package/dist/pin-input.js.map +1 -0
- package/dist/popover.d.ts +54 -0
- package/dist/popover.d.ts.map +1 -0
- package/dist/popover.js +79 -0
- package/dist/popover.js.map +1 -0
- package/dist/quantity-field.d.ts +53 -0
- package/dist/quantity-field.d.ts.map +1 -0
- package/dist/quantity-field.js +190 -0
- package/dist/quantity-field.js.map +1 -0
- package/dist/radio-group.d.ts +69 -0
- package/dist/radio-group.d.ts.map +1 -0
- package/dist/radio-group.js +225 -0
- package/dist/radio-group.js.map +1 -0
- package/dist/range-calendar.d.ts +3 -0
- package/dist/range-calendar.d.ts.map +1 -0
- package/dist/range-calendar.js +2 -0
- package/dist/range-calendar.js.map +1 -0
- package/dist/rating.d.ts +23 -0
- package/dist/rating.d.ts.map +1 -0
- package/dist/rating.js +38 -0
- package/dist/rating.js.map +1 -0
- package/dist/reorder.d.ts +39 -0
- package/dist/reorder.d.ts.map +1 -0
- package/dist/reorder.js +308 -0
- package/dist/reorder.js.map +1 -0
- package/dist/select.d.ts +50 -0
- package/dist/select.d.ts.map +1 -0
- package/dist/select.js +89 -0
- package/dist/select.js.map +1 -0
- package/dist/slider.d.ts +108 -0
- package/dist/slider.d.ts.map +1 -0
- package/dist/slider.js +342 -0
- package/dist/slider.js.map +1 -0
- package/dist/spin-button.d.ts +44 -0
- package/dist/spin-button.d.ts.map +1 -0
- package/dist/spin-button.js +130 -0
- package/dist/spin-button.js.map +1 -0
- package/dist/stepper.d.ts +24 -0
- package/dist/stepper.d.ts.map +1 -0
- package/dist/stepper.js +32 -0
- package/dist/stepper.js.map +1 -0
- package/dist/switch.d.ts +45 -0
- package/dist/switch.d.ts.map +1 -0
- package/dist/switch.js +44 -0
- package/dist/switch.js.map +1 -0
- package/dist/tabs.d.ts +86 -0
- package/dist/tabs.d.ts.map +1 -0
- package/dist/tabs.js +259 -0
- package/dist/tabs.js.map +1 -0
- package/dist/tags-input.d.ts +38 -0
- package/dist/tags-input.d.ts.map +1 -0
- package/dist/tags-input.js +93 -0
- package/dist/tags-input.js.map +1 -0
- package/dist/text.d.ts +85 -0
- package/dist/text.d.ts.map +1 -0
- package/dist/text.js +225 -0
- package/dist/text.js.map +1 -0
- package/dist/time-field.d.ts +42 -0
- package/dist/time-field.d.ts.map +1 -0
- package/dist/time-field.js +59 -0
- package/dist/time-field.js.map +1 -0
- package/dist/time-range-field.d.ts +48 -0
- package/dist/time-range-field.d.ts.map +1 -0
- package/dist/time-range-field.js +98 -0
- package/dist/time-range-field.js.map +1 -0
- package/dist/timer.d.ts +32 -0
- package/dist/timer.d.ts.map +1 -0
- package/dist/timer.js +46 -0
- package/dist/timer.js.map +1 -0
- package/dist/toast.d.ts +34 -0
- package/dist/toast.d.ts.map +1 -0
- package/dist/toast.js +116 -0
- package/dist/toast.js.map +1 -0
- package/dist/toggle-button.d.ts +39 -0
- package/dist/toggle-button.d.ts.map +1 -0
- package/dist/toggle-button.js +37 -0
- package/dist/toggle-button.js.map +1 -0
- package/dist/toggle-group.d.ts +42 -0
- package/dist/toggle-group.d.ts.map +1 -0
- package/dist/toggle-group.js +91 -0
- package/dist/toggle-group.js.map +1 -0
- package/dist/toolbar.d.ts +43 -0
- package/dist/toolbar.d.ts.map +1 -0
- package/dist/toolbar.js +151 -0
- package/dist/toolbar.js.map +1 -0
- package/dist/tooltip.d.ts +44 -0
- package/dist/tooltip.d.ts.map +1 -0
- package/dist/tooltip.js +67 -0
- package/dist/tooltip.js.map +1 -0
- package/dist/tree-grid.d.ts +131 -0
- package/dist/tree-grid.d.ts.map +1 -0
- package/dist/tree-grid.js +466 -0
- package/dist/tree-grid.js.map +1 -0
- package/dist/tree-view.d.ts +104 -0
- package/dist/tree-view.d.ts.map +1 -0
- package/dist/tree-view.js +332 -0
- package/dist/tree-view.js.map +1 -0
- package/dist/window-splitter.d.ts +8 -0
- package/dist/window-splitter.d.ts.map +1 -0
- package/dist/window-splitter.js +13 -0
- package/dist/window-splitter.js.map +1 -0
- package/dist/year-picker.d.ts +3 -0
- package/dist/year-picker.d.ts.map +1 -0
- package/dist/year-picker.js +2 -0
- package/dist/year-picker.js.map +1 -0
- package/dist/year-range-picker.d.ts +3 -0
- package/dist/year-range-picker.d.ts.map +1 -0
- package/dist/year-range-picker.js +2 -0
- package/dist/year-range-picker.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { createFacadeConnection } from './internal/facade.js';
|
|
2
|
+
import { unwrap } from '@sectile/core/result';
|
|
3
|
+
import { tryCreateListbox } from './listbox.js';
|
|
4
|
+
export function createCheckboxGroup(options) {
|
|
5
|
+
return unwrap(tryCreateCheckboxGroup(options));
|
|
6
|
+
}
|
|
7
|
+
export function tryCreateCheckboxGroup(options) {
|
|
8
|
+
return createFacadeConnection(options, (options) => tryCreateCheckboxGroupConnection(options));
|
|
9
|
+
}
|
|
10
|
+
function tryCreateCheckboxGroupConnection(options) {
|
|
11
|
+
const result = tryCreateListbox({ ...options, selectionMode: 'multiple' });
|
|
12
|
+
if (!result.ok)
|
|
13
|
+
return result;
|
|
14
|
+
options.root.setAttribute('role', 'group');
|
|
15
|
+
options.root.removeAttribute('aria-multiselectable');
|
|
16
|
+
return { ok: true, value: wrap(result.value, options.root) };
|
|
17
|
+
}
|
|
18
|
+
function wrap(connection, root) {
|
|
19
|
+
return Object.freeze({
|
|
20
|
+
getSnapshot: () => connection.getSnapshot(),
|
|
21
|
+
syncControlledValues: (values) => connection.syncControlledValues(values),
|
|
22
|
+
setItemAttributes: (element, attributes) => {
|
|
23
|
+
connection.setItemAttributes(element, attributes);
|
|
24
|
+
element.setAttribute('role', 'checkbox');
|
|
25
|
+
element.setAttribute('aria-checked', element.getAttribute('aria-selected') ?? 'false');
|
|
26
|
+
element.removeAttribute('aria-selected');
|
|
27
|
+
},
|
|
28
|
+
handleEvent: (event) => connection.handleEvent(event),
|
|
29
|
+
disconnect: () => { connection.disconnect(); root.removeAttribute('role'); },
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=checkbox-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox-group.js","sourceRoot":"","sources":["../src/checkbox-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAyB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,OAAO,EAAE,gBAAgB,EAA+C,MAAM,cAAc,CAAC;AAW7F,MAAM,UAAU,mBAAmB,CAAsB,OAAiC;IACxF,OAAO,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAsB,OAAiC;IAC3F,OAAO,sBAAsB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,gCAAgC,CAAsB,OAAiC;IAC9F,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3E,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;IACrD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,IAAI,CAAsB,UAAiC,EAAE,IAAiB;IACrF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,WAAW,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE;QAC3C,oBAAoB,EAAE,CAAC,MAAiF,EAAE,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC;QACpJ,iBAAiB,EAAE,CAAC,OAAoB,EAAE,UAA4D,EAAQ,EAAE;YAC9G,UAAU,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAClD,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACzC,OAAO,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,CAAC;YACvF,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC;QACD,WAAW,EAAE,CAAC,KAA6B,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC;QAC7E,UAAU,EAAE,GAAS,EAAE,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KACnF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { type FacadeConnection } from './internal/facade.js';
|
|
2
|
+
import type { Result } from '@sectile/core';
|
|
3
|
+
import { type CheckboxEvent, type CheckboxPolicies, type CheckboxState, type CheckboxValue } from '@sectile/core/checkbox';
|
|
4
|
+
import { type CheckedControlAttributes, type CheckedControlController, type DOMCheckedControl } from './internal/checked-control.js';
|
|
5
|
+
export type { CheckboxPolicies, CheckboxState, CheckboxValue } from '@sectile/core/checkbox';
|
|
6
|
+
export interface CheckboxOptions {
|
|
7
|
+
readonly element: HTMLElement;
|
|
8
|
+
readonly value?: CheckboxValue;
|
|
9
|
+
readonly defaultValue?: CheckboxValue;
|
|
10
|
+
readonly policies?: CheckboxPolicies;
|
|
11
|
+
readonly disabled?: boolean;
|
|
12
|
+
readonly readOnly?: boolean;
|
|
13
|
+
readonly onValueChange?: (value: CheckboxValue) => void;
|
|
14
|
+
readonly onUpdate?: () => void;
|
|
15
|
+
}
|
|
16
|
+
export type CheckboxValueChangeHandler = NonNullable<CheckboxOptions['onValueChange']>;
|
|
17
|
+
export type CheckboxUpdateHandler = NonNullable<CheckboxOptions['onUpdate']>;
|
|
18
|
+
export type CheckboxConnection = DOMCheckedControl<CheckboxState, CheckboxEvent, CheckboxValue>;
|
|
19
|
+
export interface CheckboxControllerOptions {
|
|
20
|
+
readonly value?: CheckboxValue;
|
|
21
|
+
readonly defaultValue?: CheckboxValue;
|
|
22
|
+
readonly policies?: CheckboxPolicies;
|
|
23
|
+
readonly disabled?: boolean;
|
|
24
|
+
readonly readOnly?: boolean;
|
|
25
|
+
readonly onValueChange?: (value: CheckboxValue) => void;
|
|
26
|
+
}
|
|
27
|
+
export type CheckboxControllerValueChangeHandler = NonNullable<CheckboxControllerOptions['onValueChange']>;
|
|
28
|
+
export type CheckboxController = CheckedControlController<CheckboxState, CheckboxEvent, CheckboxValue>;
|
|
29
|
+
export interface CheckboxAttributeOptions {
|
|
30
|
+
readonly disabled?: boolean;
|
|
31
|
+
readonly readOnly?: boolean;
|
|
32
|
+
readonly required?: boolean;
|
|
33
|
+
readonly native?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export type CheckboxAttributes = CheckedControlAttributes & {
|
|
36
|
+
readonly 'aria-required': 'true' | undefined;
|
|
37
|
+
readonly 'data-scope': 'checkbox';
|
|
38
|
+
readonly 'data-part': 'root';
|
|
39
|
+
};
|
|
40
|
+
export interface CheckboxInputOptions {
|
|
41
|
+
readonly name?: string;
|
|
42
|
+
readonly value?: string;
|
|
43
|
+
readonly form?: string;
|
|
44
|
+
readonly required?: boolean;
|
|
45
|
+
readonly disabled?: boolean;
|
|
46
|
+
}
|
|
47
|
+
export interface CheckboxInputAttributes {
|
|
48
|
+
readonly type: 'checkbox';
|
|
49
|
+
readonly name: string | undefined;
|
|
50
|
+
readonly value: string;
|
|
51
|
+
readonly form: string | undefined;
|
|
52
|
+
readonly checked: boolean;
|
|
53
|
+
readonly indeterminate: boolean;
|
|
54
|
+
readonly required: boolean;
|
|
55
|
+
readonly disabled: boolean;
|
|
56
|
+
readonly tabIndex: -1;
|
|
57
|
+
readonly 'aria-hidden': 'true';
|
|
58
|
+
}
|
|
59
|
+
export declare function createCheckboxController(options?: CheckboxControllerOptions): Result<CheckboxController>;
|
|
60
|
+
export declare function getCheckboxAttributes(state: CheckboxState, options?: CheckboxAttributeOptions): CheckboxAttributes;
|
|
61
|
+
export declare function getCheckboxInputAttributes(state: CheckboxState, options?: CheckboxInputOptions): CheckboxInputAttributes;
|
|
62
|
+
export declare function createCheckbox(options: CheckboxOptions): FacadeConnection<CheckboxConnection>;
|
|
63
|
+
export declare function tryCreateCheckbox(options: CheckboxOptions): Result<FacadeConnection<CheckboxConnection>>;
|
|
64
|
+
//# sourceMappingURL=checkbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../src/checkbox.ts"],"names":[],"mappings":"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"}
|
package/dist/checkbox.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { createFacadeConnection } from './internal/facade.js';
|
|
2
|
+
import { unwrap } from '@sectile/core/result';
|
|
3
|
+
import { applyCheckboxEvent, tryCreateCheckboxState } from '@sectile/core/checkbox';
|
|
4
|
+
import { createCheckedControlController, createDOMCheckedControl, getCheckedControlAttributes, } from './internal/checked-control.js';
|
|
5
|
+
export function createCheckboxController(options = {}) {
|
|
6
|
+
return createCheckedControlController({
|
|
7
|
+
controlled: options.value !== undefined,
|
|
8
|
+
initial: tryCreateCheckboxState(options.value ?? options.defaultValue ?? false, options.policies),
|
|
9
|
+
reducer: (state, event) => applyCheckboxEvent(state, event, options.policies),
|
|
10
|
+
create: (value) => tryCreateCheckboxState(value, options.policies),
|
|
11
|
+
read: (state) => state.checked,
|
|
12
|
+
interaction: options,
|
|
13
|
+
onChange: options.onValueChange,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
export function getCheckboxAttributes(state, options = {}) {
|
|
17
|
+
return Object.freeze({
|
|
18
|
+
...getCheckedControlAttributes({
|
|
19
|
+
role: 'checkbox',
|
|
20
|
+
attribute: 'aria-checked',
|
|
21
|
+
value: state.checked,
|
|
22
|
+
format: String,
|
|
23
|
+
supportsReadOnly: true,
|
|
24
|
+
...(options.disabled === undefined ? {} : { disabled: options.disabled }),
|
|
25
|
+
...(options.readOnly === undefined ? {} : { readOnly: options.readOnly }),
|
|
26
|
+
...(options.native === undefined ? {} : { native: options.native }),
|
|
27
|
+
}),
|
|
28
|
+
'aria-required': options.required === true ? 'true' : undefined,
|
|
29
|
+
'data-scope': 'checkbox',
|
|
30
|
+
'data-part': 'root',
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
export function getCheckboxInputAttributes(state, options = {}) {
|
|
34
|
+
return Object.freeze({
|
|
35
|
+
type: 'checkbox',
|
|
36
|
+
name: options.name,
|
|
37
|
+
value: options.value ?? 'on',
|
|
38
|
+
form: options.form,
|
|
39
|
+
checked: state.checked === true,
|
|
40
|
+
indeterminate: state.checked === 'mixed',
|
|
41
|
+
required: options.required ?? false,
|
|
42
|
+
disabled: options.disabled ?? false,
|
|
43
|
+
tabIndex: -1,
|
|
44
|
+
'aria-hidden': 'true',
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
export function createCheckbox(options) {
|
|
48
|
+
return unwrap(tryCreateCheckbox(options));
|
|
49
|
+
}
|
|
50
|
+
export function tryCreateCheckbox(options) {
|
|
51
|
+
return createFacadeConnection(options, (options) => tryCreateCheckboxConnection(options));
|
|
52
|
+
}
|
|
53
|
+
function tryCreateCheckboxConnection(options) { return createDOMCheckedControl({ element: options.element, role: 'checkbox', attribute: 'aria-checked', controlled: options.value !== undefined, initial: tryCreateCheckboxState(options.value ?? options.defaultValue ?? false, options.policies), toggleEvent: 'toggle', reducer: (state, event) => applyCheckboxEvent(state, event, options.policies), create: (value) => tryCreateCheckboxState(value, options.policies), read: (state) => state.checked, format: String, interaction: options, supportsReadOnly: true, applyValue: applyNativeCheckboxValue, onChange: options.onValueChange, onUpdate: options.onUpdate }); }
|
|
54
|
+
function applyNativeCheckboxValue(element, value) {
|
|
55
|
+
if (!('checked' in element) || !('indeterminate' in element))
|
|
56
|
+
return;
|
|
57
|
+
const input = element;
|
|
58
|
+
if (input.type !== 'checkbox')
|
|
59
|
+
return;
|
|
60
|
+
input.checked = value === true;
|
|
61
|
+
input.indeterminate = value === 'mixed';
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../src/checkbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { Result } from '@sectile/core';
|
|
2
|
+
import { type ColorAreaValue, type ColorChannel, type ColorCoordinate, type ColorCoordinateValue, type ColorFormat, type ColorModel, type ColorPickerEvent, type ColorPickerPolicies, type ColorPickerState, type ColorValue } from '@sectile/core/color-picker';
|
|
3
|
+
import type { RevisionSnapshot } from '@sectile/core/revision';
|
|
4
|
+
import { type FacadeConnection } from './internal/facade.js';
|
|
5
|
+
export interface ColorPickerOptions extends ColorPickerPolicies {
|
|
6
|
+
readonly root: HTMLElement;
|
|
7
|
+
readonly value?: ColorValue | string;
|
|
8
|
+
readonly defaultValue?: ColorValue | string;
|
|
9
|
+
readonly draft?: string | null;
|
|
10
|
+
readonly defaultDraft?: string | null;
|
|
11
|
+
readonly format?: ColorFormat;
|
|
12
|
+
readonly defaultFormat?: ColorFormat;
|
|
13
|
+
readonly disabled?: boolean;
|
|
14
|
+
readonly readOnly?: boolean;
|
|
15
|
+
readonly label?: string;
|
|
16
|
+
readonly onValueChange?: (value: ColorValue) => void;
|
|
17
|
+
readonly onDraftChange?: (draft: string | null) => void;
|
|
18
|
+
readonly onFormatChange?: (format: ColorFormat) => void;
|
|
19
|
+
readonly onUpdate?: () => void;
|
|
20
|
+
}
|
|
21
|
+
export type ColorPickerValueChangeHandler = NonNullable<ColorPickerOptions['onValueChange']>;
|
|
22
|
+
export type ColorPickerDraftChangeHandler = NonNullable<ColorPickerOptions['onDraftChange']>;
|
|
23
|
+
export type ColorPickerFormatChangeHandler = NonNullable<ColorPickerOptions['onFormatChange']>;
|
|
24
|
+
export type ColorPickerUpdateHandler = NonNullable<ColorPickerOptions['onUpdate']>;
|
|
25
|
+
export interface ColorPickerConnection {
|
|
26
|
+
getSnapshot(): RevisionSnapshot<ColorPickerState>;
|
|
27
|
+
getText(): string;
|
|
28
|
+
getCSSColor(): string;
|
|
29
|
+
getAreaValue(): ColorAreaValue;
|
|
30
|
+
getCoordinates(format?: ColorFormat): readonly ColorCoordinateValue[];
|
|
31
|
+
syncControlledValues(values: {
|
|
32
|
+
readonly value?: ColorValue | string;
|
|
33
|
+
readonly draft?: string | null;
|
|
34
|
+
readonly format?: ColorFormat;
|
|
35
|
+
}): Result<RevisionSnapshot<ColorPickerState>>;
|
|
36
|
+
handleEvent(event: ColorPickerEvent): boolean;
|
|
37
|
+
setNativeInputAttributes(element: HTMLInputElement): void;
|
|
38
|
+
setTextInputAttributes(element: HTMLInputElement): void;
|
|
39
|
+
setChannelInputAttributes(element: HTMLInputElement, channel: ColorChannel): void;
|
|
40
|
+
setCoordinateInputAttributes(element: HTMLInputElement, format: ColorModel, coordinate: ColorCoordinate): void;
|
|
41
|
+
setCoordinateSliderAttributes(element: HTMLInputElement, format: ColorModel, coordinate: ColorCoordinate): void;
|
|
42
|
+
setAreaAttributes(element: HTMLElement): void;
|
|
43
|
+
setAreaThumbAttributes(element: HTMLElement): void;
|
|
44
|
+
setHueInputAttributes(element: HTMLInputElement): void;
|
|
45
|
+
setAlphaInputAttributes(element: HTMLInputElement): void;
|
|
46
|
+
setSwatchAttributes(element: HTMLElement): void;
|
|
47
|
+
refresh(): void;
|
|
48
|
+
disconnect(): void;
|
|
49
|
+
}
|
|
50
|
+
export declare function createColorPicker(options: ColorPickerOptions): FacadeConnection<ColorPickerConnection>;
|
|
51
|
+
export declare function tryCreateColorPicker(options: ColorPickerOptions): Result<FacadeConnection<ColorPickerConnection>>;
|
|
52
|
+
export type { ColorAreaValue, ColorChannel, ColorCoordinate, ColorCoordinateValue, ColorFormat, ColorModel, ColorPickerEvent, ColorPickerPolicies, ColorPickerState, ColorValue } from '@sectile/core/color-picker';
|
|
53
|
+
export { formatColorValue, getColorAreaValue, getColorCoordinates, parseColorValue, setColorCoordinate } from '@sectile/core/color-picker';
|
|
54
|
+
//# sourceMappingURL=color-picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-picker.d.ts","sourceRoot":"","sources":["../src/color-picker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
import { applyColorPickerEvent, tryCreateColorPickerState, formatColorValue, getColorAreaValue, getColorCoordinates } from '@sectile/core/color-picker';
|
|
2
|
+
import { unwrap } from '@sectile/core/result';
|
|
3
|
+
import { createFacadeConnection } from './internal/facade.js';
|
|
4
|
+
import { createSemanticController } from './internal/semantic-controller.js';
|
|
5
|
+
export function createColorPicker(options) { return unwrap(tryCreateColorPicker(options)); }
|
|
6
|
+
export function tryCreateColorPicker(options) { return createFacadeConnection(options, (normalized) => tryCreateColorPickerConnection(normalized)); }
|
|
7
|
+
function tryCreateColorPickerConnection(options) {
|
|
8
|
+
const valueControlled = options.value !== undefined;
|
|
9
|
+
const draftControlled = options.draft !== undefined;
|
|
10
|
+
const formatControlled = options.format !== undefined;
|
|
11
|
+
const policies = {
|
|
12
|
+
...(options.allowAlpha === undefined ? {} : { allowAlpha: options.allowAlpha }),
|
|
13
|
+
...(options.channelStep === undefined ? {} : { channelStep: options.channelStep }),
|
|
14
|
+
...(options.alphaStep === undefined ? {} : { alphaStep: options.alphaStep }),
|
|
15
|
+
};
|
|
16
|
+
const runtime = createSemanticController({
|
|
17
|
+
initial: tryCreateColorPickerState({ value: options.value ?? options.defaultValue ?? '#000000', draft: options.draft !== undefined ? options.draft : options.defaultDraft ?? null, format: options.format ?? options.defaultFormat ?? 'hex' }, policies),
|
|
18
|
+
reducer: (state, event) => applyColorPickerEvent(state, event, policies),
|
|
19
|
+
reconcile: (previous, proposed) => tryCreateColorPickerState({
|
|
20
|
+
value: valueControlled ? previous.value : proposed.value,
|
|
21
|
+
draft: draftControlled ? previous.draft : proposed.draft,
|
|
22
|
+
format: formatControlled ? previous.format : proposed.format,
|
|
23
|
+
channel: proposed.channel,
|
|
24
|
+
}, policies),
|
|
25
|
+
notify: (previous, proposed) => {
|
|
26
|
+
if (!sameColor(previous.value, proposed.value))
|
|
27
|
+
options.onValueChange?.(proposed.value);
|
|
28
|
+
if (previous.draft !== proposed.draft)
|
|
29
|
+
options.onDraftChange?.(proposed.draft);
|
|
30
|
+
if (previous.format !== proposed.format)
|
|
31
|
+
options.onFormatChange?.(proposed.format);
|
|
32
|
+
},
|
|
33
|
+
toEffect: (command) => command,
|
|
34
|
+
interaction: options,
|
|
35
|
+
});
|
|
36
|
+
return runtime.ok ? { ok: true, value: new DOMColorPicker(options, policies, runtime.value, valueControlled, draftControlled, formatControlled) } : runtime;
|
|
37
|
+
}
|
|
38
|
+
class DOMColorPicker {
|
|
39
|
+
#options;
|
|
40
|
+
#policies;
|
|
41
|
+
#runtime;
|
|
42
|
+
#controlled;
|
|
43
|
+
#native = new Map();
|
|
44
|
+
#text = new Map();
|
|
45
|
+
#channels = new Map();
|
|
46
|
+
#coordinates = new Map();
|
|
47
|
+
#areas = new Map();
|
|
48
|
+
#areaThumbs = new Set();
|
|
49
|
+
#hues = new Map();
|
|
50
|
+
#alphas = new Map();
|
|
51
|
+
#swatches = new Set();
|
|
52
|
+
constructor(options, policies, runtime, valueControlled, draftControlled, formatControlled) {
|
|
53
|
+
this.#options = options;
|
|
54
|
+
this.#policies = policies;
|
|
55
|
+
this.#runtime = runtime;
|
|
56
|
+
this.#controlled = [valueControlled, draftControlled, formatControlled];
|
|
57
|
+
options.root.setAttribute('role', 'group');
|
|
58
|
+
if (options.label !== undefined)
|
|
59
|
+
options.root.setAttribute('aria-label', options.label);
|
|
60
|
+
this.refresh();
|
|
61
|
+
}
|
|
62
|
+
getSnapshot() { return this.#runtime.getSnapshot(); }
|
|
63
|
+
getText() { const state = this.getSnapshot().state; return state.draft ?? unwrap(formatColorValue(state.value, state.format)); }
|
|
64
|
+
getCSSColor() { return unwrap(formatColorValue(this.getSnapshot().state.value, 'rgb')); }
|
|
65
|
+
getAreaValue() { return unwrap(getColorAreaValue(this.getSnapshot().state.value)); }
|
|
66
|
+
getCoordinates(format = this.getSnapshot().state.format) { return unwrap(getColorCoordinates(this.getSnapshot().state.value, format)); }
|
|
67
|
+
syncControlledValues(values) {
|
|
68
|
+
if (this.#controlled[0] !== (values.value !== undefined) || this.#controlled[1] !== (values.draft !== undefined) || this.#controlled[2] !== (values.format !== undefined))
|
|
69
|
+
return { ok: false, error: { class: 'construction', code: 'controlled-shape-mismatch', message: 'Controlled color picker values must preserve their construction-time shape.' } };
|
|
70
|
+
const state = this.getSnapshot().state;
|
|
71
|
+
const result = this.#runtime.replace(tryCreateColorPickerState({ value: values.value ?? state.value, draft: values.draft === undefined ? state.draft : values.draft, format: values.format ?? state.format, channel: state.channel }, this.#policies));
|
|
72
|
+
if (result.ok) {
|
|
73
|
+
this.refresh();
|
|
74
|
+
this.#options.onUpdate?.();
|
|
75
|
+
}
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
handleEvent(event) { const result = this.#runtime.handle(event); this.refresh(); if (result.ok)
|
|
79
|
+
this.#options.onUpdate?.(); return result.ok; }
|
|
80
|
+
setNativeInputAttributes(element) {
|
|
81
|
+
this.#removeNative(element);
|
|
82
|
+
const input = () => { this.handleEvent({ type: 'set-color', value: element.value }); };
|
|
83
|
+
const focus = () => { this.handleEvent({ type: 'focus-channel', channel: 'red' }); };
|
|
84
|
+
element.addEventListener('input', input);
|
|
85
|
+
element.addEventListener('focus', focus);
|
|
86
|
+
this.#native.set(element, [input, focus]);
|
|
87
|
+
this.refresh();
|
|
88
|
+
}
|
|
89
|
+
setTextInputAttributes(element) {
|
|
90
|
+
this.#removeText(element);
|
|
91
|
+
const input = () => { this.handleEvent({ type: 'input', text: element.value }); };
|
|
92
|
+
const key = (event) => { if (event.key === 'Enter') {
|
|
93
|
+
event.preventDefault();
|
|
94
|
+
this.handleEvent('commit');
|
|
95
|
+
}
|
|
96
|
+
else if (event.key === 'Escape') {
|
|
97
|
+
event.preventDefault();
|
|
98
|
+
this.handleEvent('cancel');
|
|
99
|
+
} };
|
|
100
|
+
const blur = () => { if (!this.handleEvent('commit'))
|
|
101
|
+
this.handleEvent('cancel'); };
|
|
102
|
+
element.addEventListener('input', input);
|
|
103
|
+
element.addEventListener('keydown', key);
|
|
104
|
+
element.addEventListener('blur', blur);
|
|
105
|
+
this.#text.set(element, [input, key, blur]);
|
|
106
|
+
this.refresh();
|
|
107
|
+
}
|
|
108
|
+
setChannelInputAttributes(element, channel) {
|
|
109
|
+
this.#removeChannel(element);
|
|
110
|
+
const input = () => { this.handleEvent({ type: 'set-channel', channel, value: Number(element.value) }); };
|
|
111
|
+
const focus = () => { this.handleEvent({ type: 'focus-channel', channel }); };
|
|
112
|
+
element.addEventListener('input', input);
|
|
113
|
+
element.addEventListener('focus', focus);
|
|
114
|
+
this.#channels.set(element, [channel, input, focus]);
|
|
115
|
+
this.refresh();
|
|
116
|
+
}
|
|
117
|
+
setCoordinateInputAttributes(element, format, coordinate) {
|
|
118
|
+
this.#setCoordinateAttributes(element, format, coordinate, 'number');
|
|
119
|
+
}
|
|
120
|
+
setCoordinateSliderAttributes(element, format, coordinate) {
|
|
121
|
+
this.#setCoordinateAttributes(element, format, coordinate, 'range');
|
|
122
|
+
}
|
|
123
|
+
#setCoordinateAttributes(element, format, coordinate, kind) {
|
|
124
|
+
this.#removeCoordinate(element);
|
|
125
|
+
const input = () => { this.handleEvent({ type: 'set-coordinate', format, coordinate, value: Number(element.value) }); };
|
|
126
|
+
element.addEventListener('input', input);
|
|
127
|
+
this.#coordinates.set(element, [format, coordinate, kind, input]);
|
|
128
|
+
this.refresh();
|
|
129
|
+
}
|
|
130
|
+
setAreaAttributes(element) {
|
|
131
|
+
this.#removeArea(element);
|
|
132
|
+
let dragging = false;
|
|
133
|
+
const update = (event) => {
|
|
134
|
+
const bounds = element.getBoundingClientRect();
|
|
135
|
+
if (bounds.width <= 0 || bounds.height <= 0)
|
|
136
|
+
return;
|
|
137
|
+
const x = Math.min(1, Math.max(0, (event.clientX - bounds.left) / bounds.width));
|
|
138
|
+
const y = 1 - Math.min(1, Math.max(0, (event.clientY - bounds.top) / bounds.height));
|
|
139
|
+
this.handleEvent({ type: 'set-area', x, y });
|
|
140
|
+
};
|
|
141
|
+
const down = (event) => { if (event.button !== 0)
|
|
142
|
+
return; event.preventDefault(); dragging = true; element.setPointerCapture?.(event.pointerId); update(event); };
|
|
143
|
+
const move = (event) => { if (dragging)
|
|
144
|
+
update(event); };
|
|
145
|
+
const end = () => { dragging = false; };
|
|
146
|
+
const key = (event) => {
|
|
147
|
+
const current = this.getAreaValue();
|
|
148
|
+
let x = current.x;
|
|
149
|
+
let y = current.y;
|
|
150
|
+
if (event.key === 'ArrowLeft')
|
|
151
|
+
x -= 0.01;
|
|
152
|
+
else if (event.key === 'ArrowRight')
|
|
153
|
+
x += 0.01;
|
|
154
|
+
else if (event.key === 'ArrowDown')
|
|
155
|
+
y -= 0.01;
|
|
156
|
+
else if (event.key === 'ArrowUp')
|
|
157
|
+
y += 0.01;
|
|
158
|
+
else
|
|
159
|
+
return;
|
|
160
|
+
event.preventDefault();
|
|
161
|
+
this.handleEvent({ type: 'set-area', x: Math.min(1, Math.max(0, x)), y: Math.min(1, Math.max(0, y)) });
|
|
162
|
+
};
|
|
163
|
+
element.addEventListener('pointerdown', down);
|
|
164
|
+
element.addEventListener('pointermove', move);
|
|
165
|
+
element.addEventListener('pointerup', end);
|
|
166
|
+
element.addEventListener('pointercancel', end);
|
|
167
|
+
element.addEventListener('keydown', key);
|
|
168
|
+
this.#areas.set(element, [down, move, end, end, key]);
|
|
169
|
+
this.refresh();
|
|
170
|
+
}
|
|
171
|
+
setAreaThumbAttributes(element) { this.#areaThumbs.add(element); this.refresh(); }
|
|
172
|
+
setHueInputAttributes(element) { this.#removeHue(element); const input = () => { this.handleEvent({ type: 'set-hue', value: Number(element.value) }); }; element.addEventListener('input', input); this.#hues.set(element, input); this.refresh(); }
|
|
173
|
+
setAlphaInputAttributes(element) { this.#removeAlpha(element); const input = () => { this.handleEvent({ type: 'set-alpha', value: Number(element.value) / 100 }); }; element.addEventListener('input', input); this.#alphas.set(element, input); this.refresh(); }
|
|
174
|
+
setSwatchAttributes(element) { this.#swatches.add(element); this.refresh(); }
|
|
175
|
+
refresh() {
|
|
176
|
+
const state = this.getSnapshot().state;
|
|
177
|
+
const opaqueHex = unwrap(formatColorValue({ ...state.value, alpha: 255 }, 'hex'));
|
|
178
|
+
this.#options.root.dataset['color'] = this.getCSSColor();
|
|
179
|
+
this.#options.root.dataset['format'] = state.format;
|
|
180
|
+
this.#options.root.dataset['channel'] = state.channel;
|
|
181
|
+
this.#options.root.setAttribute('aria-disabled', String(this.#options.disabled ?? false));
|
|
182
|
+
this.#options.root.setAttribute('aria-readonly', String(this.#options.readOnly ?? false));
|
|
183
|
+
for (const element of this.#native.keys()) {
|
|
184
|
+
element.type = 'color';
|
|
185
|
+
element.value = opaqueHex;
|
|
186
|
+
element.disabled = this.#options.disabled ?? false;
|
|
187
|
+
element.setAttribute('aria-readonly', String(this.#options.readOnly ?? false));
|
|
188
|
+
}
|
|
189
|
+
for (const element of this.#text.keys()) {
|
|
190
|
+
element.type = 'text';
|
|
191
|
+
element.inputMode = 'text';
|
|
192
|
+
if (element.value !== this.getText())
|
|
193
|
+
element.value = this.getText();
|
|
194
|
+
element.disabled = this.#options.disabled ?? false;
|
|
195
|
+
element.readOnly = this.#options.readOnly ?? false;
|
|
196
|
+
element.setAttribute('aria-invalid', String(state.draft !== null && !isValidDraft(state.draft, this.#policies)));
|
|
197
|
+
}
|
|
198
|
+
for (const [element, [channel]] of this.#channels) {
|
|
199
|
+
element.type = 'range';
|
|
200
|
+
element.min = '0';
|
|
201
|
+
element.max = '255';
|
|
202
|
+
element.step = '1';
|
|
203
|
+
element.value = String(state.value[channel]);
|
|
204
|
+
element.disabled = (this.#options.disabled ?? false) || (channel === 'alpha' && this.#policies.allowAlpha === false);
|
|
205
|
+
element.setAttribute('aria-label', `${channel} channel`);
|
|
206
|
+
element.setAttribute('aria-valuetext', String(state.value[channel]));
|
|
207
|
+
}
|
|
208
|
+
for (const [element, [format, coordinate, kind]] of this.#coordinates) {
|
|
209
|
+
const entry = unwrap(getColorCoordinates(state.value, format)).find((item) => item.coordinate === coordinate);
|
|
210
|
+
if (entry === undefined)
|
|
211
|
+
continue;
|
|
212
|
+
element.type = kind;
|
|
213
|
+
element.min = String(entry.min);
|
|
214
|
+
element.max = String(entry.max);
|
|
215
|
+
element.step = String(entry.step);
|
|
216
|
+
if (kind === 'range' || typeof document === 'undefined' || document.activeElement !== element)
|
|
217
|
+
element.value = String(entry.value);
|
|
218
|
+
element.disabled = (this.#options.disabled ?? false) || (coordinate === 'alpha' && this.#policies.allowAlpha === false);
|
|
219
|
+
element.readOnly = kind === 'number' && (this.#options.readOnly ?? false);
|
|
220
|
+
element.setAttribute('aria-readonly', String(this.#options.readOnly ?? false));
|
|
221
|
+
element.setAttribute('aria-label', entry.label);
|
|
222
|
+
element.setAttribute('aria-valuetext', `${entry.value}${entry.unit}`);
|
|
223
|
+
element.dataset['coordinate'] = coordinate;
|
|
224
|
+
element.dataset['format'] = format;
|
|
225
|
+
element.style.setProperty('--sectile-color-coordinate-color', this.getCSSColor());
|
|
226
|
+
}
|
|
227
|
+
const area = this.getAreaValue();
|
|
228
|
+
for (const element of this.#areas.keys()) {
|
|
229
|
+
element.tabIndex = this.#options.disabled ? -1 : 0;
|
|
230
|
+
element.setAttribute('aria-label', 'Color saturation and brightness');
|
|
231
|
+
element.setAttribute('aria-valuetext', `${Math.round(area.x * 100)}% saturation, ${Math.round(area.y * 100)}% brightness`);
|
|
232
|
+
element.setAttribute('aria-disabled', String(this.#options.disabled ?? false));
|
|
233
|
+
element.setAttribute('aria-readonly', String(this.#options.readOnly ?? false));
|
|
234
|
+
element.style.setProperty('--sectile-color-area-hue', `hsl(${area.hue} 100% 50%)`);
|
|
235
|
+
}
|
|
236
|
+
for (const element of this.#areaThumbs) {
|
|
237
|
+
element.style.setProperty('--sectile-color-area-x', `${area.x * 100}%`);
|
|
238
|
+
element.style.setProperty('--sectile-color-area-y', `${(1 - area.y) * 100}%`);
|
|
239
|
+
element.dataset['color'] = this.getCSSColor();
|
|
240
|
+
}
|
|
241
|
+
for (const element of this.#hues.keys()) {
|
|
242
|
+
element.type = 'range';
|
|
243
|
+
element.min = '0';
|
|
244
|
+
element.max = '360';
|
|
245
|
+
element.step = '1';
|
|
246
|
+
element.value = String(area.hue);
|
|
247
|
+
element.disabled = this.#options.disabled ?? false;
|
|
248
|
+
element.setAttribute('aria-label', 'Hue');
|
|
249
|
+
}
|
|
250
|
+
for (const element of this.#alphas.keys()) {
|
|
251
|
+
element.type = 'range';
|
|
252
|
+
element.min = '0';
|
|
253
|
+
element.max = '100';
|
|
254
|
+
element.step = '1';
|
|
255
|
+
element.value = String(Math.round(area.alpha * 100));
|
|
256
|
+
element.disabled = (this.#options.disabled ?? false) || this.#policies.allowAlpha === false;
|
|
257
|
+
element.setAttribute('aria-label', 'Alpha');
|
|
258
|
+
element.style.setProperty('--sectile-color-alpha', this.getCSSColor());
|
|
259
|
+
}
|
|
260
|
+
for (const element of this.#swatches) {
|
|
261
|
+
element.dataset['color'] = this.getCSSColor();
|
|
262
|
+
element.setAttribute('aria-label', this.getText());
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
disconnect() { for (const element of [...this.#native.keys()])
|
|
266
|
+
this.#removeNative(element); for (const element of [...this.#text.keys()])
|
|
267
|
+
this.#removeText(element); for (const element of [...this.#channels.keys()])
|
|
268
|
+
this.#removeChannel(element); for (const element of [...this.#coordinates.keys()])
|
|
269
|
+
this.#removeCoordinate(element); for (const element of [...this.#areas.keys()])
|
|
270
|
+
this.#removeArea(element); for (const element of [...this.#hues.keys()])
|
|
271
|
+
this.#removeHue(element); for (const element of [...this.#alphas.keys()])
|
|
272
|
+
this.#removeAlpha(element); this.#areaThumbs.clear(); this.#swatches.clear(); }
|
|
273
|
+
#removeNative(element) { const current = this.#native.get(element); if (current !== undefined) {
|
|
274
|
+
element.removeEventListener('input', current[0]);
|
|
275
|
+
element.removeEventListener('focus', current[1]);
|
|
276
|
+
this.#native.delete(element);
|
|
277
|
+
} }
|
|
278
|
+
#removeText(element) { const current = this.#text.get(element); if (current !== undefined) {
|
|
279
|
+
element.removeEventListener('input', current[0]);
|
|
280
|
+
element.removeEventListener('keydown', current[1]);
|
|
281
|
+
element.removeEventListener('blur', current[2]);
|
|
282
|
+
this.#text.delete(element);
|
|
283
|
+
} }
|
|
284
|
+
#removeChannel(element) { const current = this.#channels.get(element); if (current !== undefined) {
|
|
285
|
+
element.removeEventListener('input', current[1]);
|
|
286
|
+
element.removeEventListener('focus', current[2]);
|
|
287
|
+
this.#channels.delete(element);
|
|
288
|
+
} }
|
|
289
|
+
#removeCoordinate(element) { const current = this.#coordinates.get(element); if (current !== undefined) {
|
|
290
|
+
element.removeEventListener('input', current[3]);
|
|
291
|
+
this.#coordinates.delete(element);
|
|
292
|
+
} }
|
|
293
|
+
#removeArea(element) { const current = this.#areas.get(element); if (current !== undefined) {
|
|
294
|
+
element.removeEventListener('pointerdown', current[0]);
|
|
295
|
+
element.removeEventListener('pointermove', current[1]);
|
|
296
|
+
element.removeEventListener('pointerup', current[2]);
|
|
297
|
+
element.removeEventListener('pointercancel', current[3]);
|
|
298
|
+
element.removeEventListener('keydown', current[4]);
|
|
299
|
+
this.#areas.delete(element);
|
|
300
|
+
} }
|
|
301
|
+
#removeHue(element) { const current = this.#hues.get(element); if (current !== undefined) {
|
|
302
|
+
element.removeEventListener('input', current);
|
|
303
|
+
this.#hues.delete(element);
|
|
304
|
+
} }
|
|
305
|
+
#removeAlpha(element) { const current = this.#alphas.get(element); if (current !== undefined) {
|
|
306
|
+
element.removeEventListener('input', current);
|
|
307
|
+
this.#alphas.delete(element);
|
|
308
|
+
} }
|
|
309
|
+
}
|
|
310
|
+
function isValidDraft(text, policies) {
|
|
311
|
+
const result = tryCreateColorPickerState({ value: text }, policies);
|
|
312
|
+
return result.ok;
|
|
313
|
+
}
|
|
314
|
+
function sameColor(left, right) { return left.red === right.red && left.green === right.green && left.blue === right.blue && left.alpha === right.alpha; }
|
|
315
|
+
export { formatColorValue, getColorAreaValue, getColorCoordinates, parseColorValue, setColorCoordinate } from '@sectile/core/color-picker';
|
|
316
|
+
//# sourceMappingURL=color-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-picker.js","sourceRoot":"","sources":["../src/color-picker.ts"],"names":[],"mappings":"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"}
|