@fusion.dev/helix-core 0.145.0 → 0.147.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.
- package/custom-elements.json +6585 -1920
- package/dist/controllers/aria-forward-controller/aria-forward-controller.d.ts +3 -2
- package/dist/controllers/aria-forward-controller/aria-forward-controller.js +8 -17
- package/dist/controllers/chart-pointer-controller/chart-pointer-controller.d.ts +71 -3
- package/dist/controllers/chart-pointer-controller/chart-pointer-controller.js +50 -9
- package/dist/controllers/chart-pointer-controller/reading-step.d.ts +7 -1
- package/dist/controllers/chart-pointer-controller/reading-step.js +5 -0
- package/dist/controllers/copy-controller/copy-controller.d.ts +4 -1
- package/dist/controllers/copy-controller/copy-controller.js +2 -1
- package/dist/controllers/countdown-controller/countdown-controller.d.ts +4 -1
- package/dist/controllers/countdown-controller/countdown-controller.js +3 -1
- package/dist/controllers/keyboard-navigation-controller/keyboard-navigation-controller.d.ts +14 -55
- package/dist/controllers/keyboard-navigation-controller/keyboard-navigation-controller.js +7 -39
- package/dist/controllers/relative-clock-controller/relative-clock-controller.d.ts +44 -0
- package/dist/controllers/relative-clock-controller/relative-clock-controller.js +31 -0
- package/dist/controllers/source-controller/source-controller.d.ts +10 -3
- package/dist/controllers/source-controller/source-controller.js +9 -4
- package/dist/controllers/swipe-controller/swipe-controller.d.ts +10 -1
- package/dist/controllers/swipe-controller/swipe-controller.js +1 -1
- package/dist/controllers/virtualize-controller/virtualize-controller.d.ts +48 -1
- package/dist/controllers/virtualize-controller/virtualize-controller.js +52 -7
- package/dist/events/action.d.ts +12 -0
- package/dist/events/action.js +6 -0
- package/dist/events/activate.d.ts +22 -0
- package/dist/events/activate.js +11 -0
- package/dist/events/aura-fallback.d.ts +12 -0
- package/dist/events/aura-fallback.js +11 -0
- package/dist/events/band.d.ts +13 -0
- package/dist/events/band.js +11 -0
- package/dist/events/before-activate.d.ts +24 -0
- package/dist/events/before-activate.js +11 -0
- package/dist/events/before-change.d.ts +26 -0
- package/dist/events/before-change.js +11 -0
- package/dist/events/before-close.d.ts +6 -0
- package/dist/events/before-close.js +11 -0
- package/dist/events/before-collapse.d.ts +6 -0
- package/dist/events/before-collapse.js +11 -0
- package/dist/events/before-edit.d.ts +6 -0
- package/dist/events/before-edit.js +11 -0
- package/dist/events/before-move.d.ts +17 -0
- package/dist/events/before-move.js +11 -0
- package/dist/events/before-open.d.ts +17 -0
- package/dist/events/before-open.js +11 -0
- package/dist/events/before-panel-resize.d.ts +13 -0
- package/dist/events/before-panel-resize.js +11 -0
- package/dist/events/before-pin.d.ts +6 -0
- package/dist/events/before-pin.js +11 -0
- package/dist/events/before-reconnect.d.ts +14 -0
- package/dist/events/before-reconnect.js +11 -0
- package/dist/events/before-relabel.d.ts +15 -0
- package/dist/events/before-relabel.js +11 -0
- package/dist/events/before-resize.d.ts +6 -0
- package/dist/events/before-resize.js +11 -0
- package/dist/events/before-split.d.ts +12 -0
- package/dist/events/before-split.js +11 -0
- package/dist/events/before-toggle.d.ts +23 -0
- package/dist/events/before-toggle.js +11 -0
- package/dist/events/canvas-edit.d.ts +16 -0
- package/dist/events/canvas-edit.js +11 -0
- package/dist/events/canvas-pan.d.ts +13 -0
- package/dist/events/canvas-pan.js +11 -0
- package/dist/events/canvas-view.d.ts +14 -0
- package/dist/events/canvas-view.js +11 -0
- package/dist/events/canvas-zoom.d.ts +6 -0
- package/dist/events/canvas-zoom.js +11 -0
- package/dist/events/caret.d.ts +17 -0
- package/dist/events/caret.js +11 -0
- package/dist/events/clear.d.ts +11 -0
- package/dist/events/clear.js +6 -0
- package/dist/events/collapse.d.ts +12 -0
- package/dist/events/collapse.js +11 -0
- package/dist/events/complete.d.ts +26 -0
- package/dist/events/complete.js +11 -0
- package/dist/events/connect.d.ts +14 -0
- package/dist/events/connect.js +11 -0
- package/dist/events/console.d.ts +13 -0
- package/dist/events/console.js +11 -0
- package/dist/events/copy-error.d.ts +9 -0
- package/dist/events/copy-error.js +6 -0
- package/dist/events/copy.d.ts +12 -0
- package/dist/events/copy.js +10 -0
- package/dist/events/create.d.ts +18 -0
- package/dist/events/create.js +11 -0
- package/dist/events/details.d.ts +459 -0
- package/dist/events/details.js +1 -0
- package/dist/events/dismiss.d.ts +16 -0
- package/dist/events/dismiss.js +11 -0
- package/dist/events/edit.d.ts +12 -0
- package/dist/events/edit.js +11 -0
- package/dist/events/end.d.ts +9 -0
- package/dist/events/end.js +6 -0
- package/dist/events/events.d.ts +113 -1478
- package/dist/events/events.js +93 -863
- package/dist/events/expand.d.ts +10 -0
- package/dist/events/expand.js +11 -0
- package/dist/events/facet.d.ts +17 -0
- package/dist/events/facet.js +11 -0
- package/dist/events/filter.d.ts +12 -0
- package/dist/events/filter.js +11 -0
- package/dist/events/filtered.d.ts +12 -0
- package/dist/events/filtered.js +11 -0
- package/dist/events/graph-filter.d.ts +10 -0
- package/dist/events/graph-filter.js +11 -0
- package/dist/events/graph-layout.d.ts +10 -0
- package/dist/events/graph-layout.js +11 -0
- package/dist/events/graph-pan.d.ts +9 -0
- package/dist/events/graph-pan.js +11 -0
- package/dist/events/graph-part-change.d.ts +10 -0
- package/dist/events/graph-part-change.js +11 -0
- package/dist/events/graph-ready.d.ts +8 -0
- package/dist/events/graph-ready.js +6 -0
- package/dist/events/graph-signal.d.ts +11 -0
- package/dist/events/graph-signal.js +11 -0
- package/dist/events/graph-zoom.d.ts +6 -0
- package/dist/events/graph-zoom.js +11 -0
- package/dist/events/history.d.ts +16 -0
- package/dist/events/history.js +11 -0
- package/dist/events/load-more.d.ts +12 -0
- package/dist/events/load-more.js +6 -0
- package/dist/events/load.d.ts +12 -0
- package/dist/events/load.js +6 -0
- package/dist/events/map-cluster.d.ts +15 -0
- package/dist/events/map-cluster.js +11 -0
- package/dist/events/map-pan.d.ts +18 -0
- package/dist/events/map-pan.js +11 -0
- package/dist/events/map-part-change.d.ts +16 -0
- package/dist/events/map-part-change.js +11 -0
- package/dist/events/map-ready.d.ts +15 -0
- package/dist/events/map-ready.js +6 -0
- package/dist/events/map-rotate.d.ts +9 -0
- package/dist/events/map-rotate.js +11 -0
- package/dist/events/map-tilt.d.ts +9 -0
- package/dist/events/map-tilt.js +11 -0
- package/dist/events/map-zoom.d.ts +13 -0
- package/dist/events/map-zoom.js +11 -0
- package/dist/events/move.d.ts +11 -0
- package/dist/events/move.js +11 -0
- package/dist/events/names.d.ts +18 -0
- package/dist/events/names.js +13 -0
- package/dist/events/navigate.d.ts +13 -0
- package/dist/events/navigate.js +11 -0
- package/dist/events/next.d.ts +23 -0
- package/dist/events/next.js +11 -0
- package/dist/events/panel-resize.d.ts +12 -0
- package/dist/events/panel-resize.js +11 -0
- package/dist/events/pin.d.ts +12 -0
- package/dist/events/pin.js +11 -0
- package/dist/events/press.d.ts +19 -0
- package/dist/events/press.js +11 -0
- package/dist/events/preview.d.ts +14 -0
- package/dist/events/preview.js +11 -0
- package/dist/events/previous.d.ts +6 -0
- package/dist/events/previous.js +11 -0
- package/dist/events/range-change.d.ts +10 -0
- package/dist/events/range-change.js +11 -0
- package/dist/events/read.d.ts +19 -0
- package/dist/events/read.js +11 -0
- package/dist/events/reconnect.d.ts +6 -0
- package/dist/events/reconnect.js +11 -0
- package/dist/events/reject.d.ts +13 -0
- package/dist/events/reject.js +11 -0
- package/dist/events/relabel.d.ts +6 -0
- package/dist/events/relabel.js +11 -0
- package/dist/events/remove.d.ts +12 -0
- package/dist/events/remove.js +11 -0
- package/dist/events/reorder.d.ts +18 -0
- package/dist/events/reorder.js +11 -0
- package/dist/events/reordered.d.ts +12 -0
- package/dist/events/reordered.js +11 -0
- package/dist/events/resize.d.ts +19 -0
- package/dist/events/resize.js +11 -0
- package/dist/events/resized.d.ts +16 -0
- package/dist/events/resized.js +11 -0
- package/dist/events/sample-end.d.ts +5 -0
- package/dist/events/sample-end.js +6 -0
- package/dist/events/sample-start.d.ts +18 -0
- package/dist/events/sample-start.js +6 -0
- package/dist/events/scrolled.d.ts +32 -0
- package/dist/events/scrolled.js +11 -0
- package/dist/events/select.d.ts +12 -0
- package/dist/events/select.js +11 -0
- package/dist/events/selected.d.ts +12 -0
- package/dist/events/selected.js +11 -0
- package/dist/events/send.d.ts +18 -0
- package/dist/events/send.js +11 -0
- package/dist/events/shortcut.d.ts +13 -0
- package/dist/events/shortcut.js +11 -0
- package/dist/events/sort.d.ts +17 -0
- package/dist/events/sort.js +11 -0
- package/dist/events/sorted.d.ts +15 -0
- package/dist/events/sorted.js +11 -0
- package/dist/events/split.d.ts +12 -0
- package/dist/events/split.js +11 -0
- package/dist/events/toggle.d.ts +15 -0
- package/dist/events/toggle.js +11 -0
- package/dist/events/tour-ask.d.ts +16 -0
- package/dist/events/tour-ask.js +11 -0
- package/dist/events/tour-status.d.ts +14 -0
- package/dist/events/tour-status.js +11 -0
- package/dist/events/typing.d.ts +10 -0
- package/dist/events/typing.js +11 -0
- package/dist/helix-element/helix-element.js +9 -43
- package/dist/helix-element/react-bridge.d.ts +23 -0
- package/dist/helix-element/react-bridge.js +2 -2
- package/dist/helix-form-element/helix-form-element.d.ts +5 -20
- package/dist/helix-form-element/helix-form-element.js +4 -56
- package/dist/index.d.ts +30 -9
- package/dist/index.js +30 -9
- package/dist/mixins/mixin-chart-source/mixin-chart-source.d.ts +24 -2
- package/dist/mixins/mixin-chart-source/mixin-chart-source.js +23 -1
- package/dist/mixins/mixin-controller-active/mixin-controller-active.js +4 -3
- package/dist/mixins/mixin-controller-checked/mixin-controller-checked.d.ts +5 -2
- package/dist/mixins/mixin-controller-checked/mixin-controller-checked.js +2 -1
- package/dist/mixins/mixin-controller-value/mixin-controller-value.d.ts +4 -2
- package/dist/mixins/mixin-controller-value/mixin-controller-value.js +7 -2
- package/dist/mixins/mixin-dismissible/mixin-dismissible.js +44 -7
- package/dist/mixins/mixin-field/mixin-field.js +2 -2
- package/dist/mixins/mixin-picker-feedback/mixin-picker-feedback.d.ts +42 -0
- package/dist/mixins/mixin-picker-feedback/mixin-picker-feedback.js +46 -0
- package/dist/mixins/mixin-picker-field/mixin-picker-field.d.ts +7 -4
- package/dist/mixins/mixin-picker-field/mixin-picker-field.js +6 -4
- package/dist/mixins/mixin-segmented-field/mixin-segmented-field.js +19 -9
- package/dist/utils/audit-name/audit-name-off.d.ts +10 -0
- package/dist/utils/audit-name/audit-name-off.js +1 -0
- package/dist/utils/audit-name/audit-name.d.ts +26 -8
- package/dist/utils/audit-name/audit-name.js +22 -30
- package/dist/utils/audit-source/audit-source-off.d.ts +10 -0
- package/dist/utils/audit-source/audit-source-off.js +1 -0
- package/dist/utils/audit-source/audit-source.d.ts +19 -0
- package/dist/utils/audit-source/audit-source.js +27 -0
- package/dist/utils/calendar/calendar.js +7 -7
- package/dist/utils/call-listener/call-listener.d.ts +16 -0
- package/dist/utils/call-listener/call-listener.js +17 -0
- package/dist/utils/chord/chord.d.ts +14 -0
- package/dist/utils/chord/chord.js +1 -0
- package/dist/utils/clamp/clamp.d.ts +7 -0
- package/dist/utils/clamp/clamp.js +1 -0
- package/dist/utils/css-color/css-color.js +1 -1
- package/dist/utils/draw-tooltip/draw-tooltip.d.ts +1 -1
- package/dist/utils/draw-tooltip/draw-tooltip.js +3 -1
- package/dist/utils/draw-tooltip/spoken-reading.d.ts +6 -2
- package/dist/utils/draw-tooltip/spoken-reading.js +5 -4
- package/dist/utils/elapsed-time/elapsed-time.d.ts +1 -1
- package/dist/utils/elapsed-time/elapsed-time.js +2 -5
- package/dist/utils/heading-level/heading-level.d.ts +8 -0
- package/dist/utils/heading-level/heading-level.js +4 -0
- package/dist/utils/host-words/host-words.d.ts +16 -0
- package/dist/utils/host-words/host-words.js +13 -0
- package/dist/utils/implicit-submit/implicit-submit.d.ts +25 -0
- package/dist/utils/implicit-submit/implicit-submit.js +52 -0
- package/dist/utils/load-more/load-more.d.ts +25 -0
- package/dist/utils/load-more/load-more.js +1 -0
- package/dist/utils/locale-of/locale-of.d.ts +18 -0
- package/dist/utils/locale-of/locale-of.js +26 -0
- package/dist/utils/name-text/name-text.d.ts +12 -0
- package/dist/utils/name-text/name-text.js +25 -0
- package/dist/utils/nearest/nearest.d.ts +9 -0
- package/dist/utils/nearest/nearest.js +9 -0
- package/dist/utils/number-format/number-format.d.ts +11 -1
- package/dist/utils/number-format/number-format.js +17 -5
- package/dist/utils/own-rule/own-rule.d.ts +16 -0
- package/dist/utils/own-rule/own-rule.js +7 -0
- package/dist/utils/plain-click/plain-click.d.ts +10 -0
- package/dist/utils/plain-click/plain-click.js +1 -0
- package/dist/utils/platform/platform.d.ts +8 -0
- package/dist/utils/platform/platform.js +1 -0
- package/dist/utils/press-type/press-type.d.ts +20 -0
- package/dist/utils/press-type/press-type.js +15 -0
- package/dist/utils/read-series/read-series.d.ts +14 -0
- package/dist/utils/read-series/read-series.js +15 -0
- package/dist/utils/relative-time/relative-time.d.ts +8 -0
- package/dist/utils/relative-time/relative-time.js +5 -2
- package/dist/utils/report-render/report-render.js +2 -14
- package/dist/utils/report-runtime/report-runtime.d.ts +11 -4
- package/dist/utils/report-runtime/report-runtime.js +2 -14
- package/dist/utils/report-usage/report-usage.js +2 -14
- package/dist/utils/row-data/row-data.d.ts +15 -0
- package/dist/utils/row-data/row-data.js +17 -0
- package/dist/utils/row-order/row-order.d.ts +141 -0
- package/dist/utils/row-order/row-order.js +76 -0
- package/dist/utils/scroll-item-into-view/scroll-item-into-view.d.ts +33 -0
- package/dist/utils/scroll-item-into-view/scroll-item-into-view.js +13 -3
- package/dist/utils/slotted-glyph/slotted-glyph.d.ts +33 -0
- package/dist/utils/slotted-glyph/slotted-glyph.js +27 -0
- package/dist/utils/tell-disclosure/tell-disclosure.d.ts +4 -0
- package/dist/utils/tree-arrow/tree-arrow.d.ts +23 -0
- package/dist/utils/tree-arrow/tree-arrow.js +9 -0
- package/dist/utils/typeahead/typeahead.d.ts +75 -0
- package/dist/utils/typeahead/typeahead.js +37 -0
- package/dist/utils/value-as/value-as.d.ts +9 -0
- package/dist/utils/value-as/value-as.js +9 -1
- package/dist/utils/verdict-flags/verdict-flags.d.ts +13 -0
- package/dist/utils/verdict-flags/verdict-flags.js +6 -0
- package/dist/utils/watch-labels/watch-labels.d.ts +16 -0
- package/dist/utils/watch-labels/watch-labels.js +34 -0
- package/dist/utils/words-converter/words-converter.d.ts +14 -0
- package/dist/utils/words-converter/words-converter.js +15 -0
- package/dist/utils/written-list/written-list.d.ts +60 -0
- package/dist/utils/written-list/written-list.js +46 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +29 -5
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { auditName } from '#audit-name';
|
|
1
2
|
export { AriaForwardController, } from './controllers/aria-forward-controller/aria-forward-controller.js';
|
|
2
3
|
export { ArrivalController, } from './controllers/arrival-controller/arrival-controller.js';
|
|
3
4
|
export { ChartPointerController, } from './controllers/chart-pointer-controller/chart-pointer-controller.js';
|
|
@@ -15,12 +16,13 @@ export { FullscreenController } from './controllers/fullscreen-controller/fullsc
|
|
|
15
16
|
export { HostClickController } from './controllers/host-click-controller/host-click-controller.js';
|
|
16
17
|
export { IdleController } from './controllers/idle-controller/idle-controller.js';
|
|
17
18
|
export { IndicatorController, } from './controllers/indicator-controller/indicator-controller.js';
|
|
18
|
-
export { KeyboardNavigationController,
|
|
19
|
+
export { KeyboardNavigationController, } from './controllers/keyboard-navigation-controller/keyboard-navigation-controller.js';
|
|
19
20
|
export { MediaSessionController, SKIP_SECONDS, } from './controllers/media-session-controller/media-session-controller.js';
|
|
20
21
|
export { animationsSettled, OpenPhaseController, } from './controllers/open-phase-controller/open-phase-controller.js';
|
|
21
22
|
export { MAX_FRAME_STEP, PaintGateController, } from './controllers/paint-gate-controller/paint-gate-controller.js';
|
|
22
23
|
export { PlacementController } from './controllers/placement-controller/placement-controller.js';
|
|
23
24
|
export { PopoverController, } from './controllers/popover-controller/popover-controller.js';
|
|
25
|
+
export { RelativeClockController, } from './controllers/relative-clock-controller/relative-clock-controller.js';
|
|
24
26
|
export { RemotePlaybackController, } from './controllers/remote-playback-controller/remote-playback-controller.js';
|
|
25
27
|
export { SourceController, } from './controllers/source-controller/source-controller.js';
|
|
26
28
|
export { drawStatus, StatusController, } from './controllers/status-controller/status-controller.js';
|
|
@@ -28,10 +30,10 @@ export { SwipeController, } from './controllers/swipe-controller/swipe-controlle
|
|
|
28
30
|
export { TokenColorController, } from './controllers/token-color-controller/token-color-controller.js';
|
|
29
31
|
export { VirtualizeController, } from './controllers/virtualize-controller/virtualize-controller.js';
|
|
30
32
|
export { eventsForTag, registerElementEvents } from './events/element-events.js';
|
|
31
|
-
export { HelixActionEvent, HelixActivateEvent, HelixAuraFallbackEvent, HelixBeforeActivateEvent, HelixBeforeChangeEvent, HelixBeforeCloseEvent, HelixBeforeCollapseEvent, HelixBeforeEditEvent, HelixBeforeMoveEvent, HelixBeforeOpenEvent, HelixBeforePanelResizeEvent, HelixBeforePinEvent, HelixBeforeReconnectEvent, HelixBeforeRelabelEvent, HelixBeforeResizeEvent, HelixBeforeSplitEvent, HelixBeforeToggleEvent, HelixCanvasEditEvent, HelixCanvasPanEvent, HelixCanvasViewEvent, HelixCanvasZoomEvent, HelixCaretEvent, HelixClearEvent, HelixCollapseEvent, HelixCompleteEvent, HelixConnectEvent, HelixConsoleEvent, HelixCopyErrorEvent, HelixCopyEvent, HelixCreateEvent, HelixDismissEvent, HelixEditEvent, HelixEndEvent, HelixExpandEvent, HelixFacetEvent, HelixFilterEvent, HelixFilteredEvent, HelixGraphFilterEvent, HelixGraphLayoutEvent, HelixGraphPanEvent, HelixGraphPartChangeEvent, HelixGraphReadyEvent, HelixGraphSignalEvent, HelixGraphZoomEvent, HelixHistoryEvent, HelixLoadEvent, HelixLoadMoreEvent, HelixMapClusterEvent, HelixMapPanEvent, HelixMapPartChangeEvent, HelixMapReadyEvent, HelixMapRotateEvent, HelixMapTiltEvent, HelixMapZoomEvent, HelixMoveEvent, HelixNavigateEvent, HelixNextEvent, HelixPanelResizeEvent, HelixPinEvent, HelixPreviousEvent, HelixRangeChangeEvent, HelixReadEvent, HelixReconnectEvent, HelixRejectEvent, HelixRelabelEvent, HelixRemoveEvent, HelixReorderEvent, HelixReorderedEvent, HelixResizedEvent, HelixResizeEvent, HelixSampleEndEvent, HelixSampleStartEvent, HelixScrolledEvent, HelixSelectEvent, HelixSelectedEvent, HelixSendEvent, HelixShortcutEvent, HelixSortEvent, HelixSortedEvent, HelixSplitEvent, HelixToggleEvent, HelixTourAskEvent, HelixTypingEvent, } from './events/events.js';
|
|
33
|
+
export { HelixActionEvent, HelixActivateEvent, HelixAuraFallbackEvent, HelixBandEvent, HelixBeforeActivateEvent, HelixBeforeChangeEvent, HelixBeforeCloseEvent, HelixBeforeCollapseEvent, HelixBeforeEditEvent, HelixBeforeMoveEvent, HelixBeforeOpenEvent, HelixBeforePanelResizeEvent, HelixBeforePinEvent, HelixBeforeReconnectEvent, HelixBeforeRelabelEvent, HelixBeforeResizeEvent, HelixBeforeSplitEvent, HelixBeforeToggleEvent, HelixCanvasEditEvent, HelixCanvasPanEvent, HelixCanvasViewEvent, HelixCanvasZoomEvent, HelixCaretEvent, HelixClearEvent, HelixCollapseEvent, HelixCompleteEvent, HelixConnectEvent, HelixConsoleEvent, HelixCopyErrorEvent, HelixCopyEvent, HelixCreateEvent, HelixDismissEvent, HelixEditEvent, HelixEndEvent, HelixExpandEvent, HelixFacetEvent, HelixFilterEvent, HelixFilteredEvent, HelixGraphFilterEvent, HelixGraphLayoutEvent, HelixGraphPanEvent, HelixGraphPartChangeEvent, HelixGraphReadyEvent, HelixGraphSignalEvent, HelixGraphZoomEvent, HelixHistoryEvent, HelixLoadEvent, HelixLoadMoreEvent, HelixMapClusterEvent, HelixMapPanEvent, HelixMapPartChangeEvent, HelixMapReadyEvent, HelixMapRotateEvent, HelixMapTiltEvent, HelixMapZoomEvent, HelixMoveEvent, HelixNavigateEvent, HelixNextEvent, HelixPanelResizeEvent, HelixPinEvent, HelixPressEvent, HelixPreviewEvent, HelixPreviousEvent, HelixRangeChangeEvent, HelixReadEvent, HelixReconnectEvent, HelixRejectEvent, HelixRelabelEvent, HelixRemoveEvent, HelixReorderEvent, HelixReorderedEvent, HelixResizedEvent, HelixResizeEvent, HelixSampleEndEvent, HelixSampleStartEvent, HelixScrolledEvent, HelixSelectEvent, HelixSelectedEvent, HelixSendEvent, HelixShortcutEvent, HelixSortEvent, HelixSortedEvent, HelixSplitEvent, HelixToggleEvent, HelixTourAskEvent, HelixTourStatusEvent, HelixTypingEvent, } from './events/events.js';
|
|
32
34
|
export { HelixElement, whenHydrated } from './helix-element/helix-element.js';
|
|
33
35
|
export { HelixFormElement } from './helix-form-element/helix-form-element.js';
|
|
34
|
-
export { MixinChartSource, PALETTE, PLOT_HEIGHT, PLOT_WIDTH, seriesIndex, seriesNames, } from './mixins/mixin-chart-source/mixin-chart-source.js';
|
|
36
|
+
export { MixinChartSource, PALETTE, PLOT_HEIGHT, PLOT_WIDTH, POSITION_LABEL, seriesIndex, seriesNames, } from './mixins/mixin-chart-source/mixin-chart-source.js';
|
|
35
37
|
export { MixinCollection, } from './mixins/mixin-collection/mixin-collection.js';
|
|
36
38
|
export { MixinControllerActive, } from './mixins/mixin-controller-active/mixin-controller-active.js';
|
|
37
39
|
export { MixinControllerChecked, } from './mixins/mixin-controller-checked/mixin-controller-checked.js';
|
|
@@ -40,6 +42,7 @@ export { MixinControllerValue, } from './mixins/mixin-controller-value/mixin-con
|
|
|
40
42
|
export { MixinDismissible, } from './mixins/mixin-dismissible/mixin-dismissible.js';
|
|
41
43
|
export { MixinField } from './mixins/mixin-field/mixin-field.js';
|
|
42
44
|
export { MixinPickerEditing, } from './mixins/mixin-picker-editing/mixin-picker-editing.js';
|
|
45
|
+
export { MixinPickerFeedback, } from './mixins/mixin-picker-feedback/mixin-picker-feedback.js';
|
|
43
46
|
export { MixinPickerField, } from './mixins/mixin-picker-field/mixin-picker-field.js';
|
|
44
47
|
export { MixinSegmentedField, } from './mixins/mixin-segmented-field/mixin-segmented-field.js';
|
|
45
48
|
export { MixinSelectableItem, } from './mixins/mixin-selectable-item/mixin-selectable-item.js';
|
|
@@ -49,7 +52,8 @@ export { anchorElement } from './utils/anchor-element/anchor-element.js';
|
|
|
49
52
|
export { arrowReach, sideOf } from './utils/arrow/arrow.js';
|
|
50
53
|
export { addDays, addMonths, barredBy, localToday, monthOf, monthOut, periodCells, periodKey, periodMove, sameMonth, weekStartOf, YEARS_SHOWN, yearOut, yearPageOf, } from './utils/calendar/calendar.js';
|
|
51
54
|
export { capturePointer } from './utils/capture-pointer/capture-pointer.js';
|
|
52
|
-
export { ariaChord, chordParts, matchesChord, printableChord, } from './utils/chord/chord.js';
|
|
55
|
+
export { ariaChord, chordParts, matchesChord, printableChord, selectsAll, } from './utils/chord/chord.js';
|
|
56
|
+
export { clamp } from './utils/clamp/clamp.js';
|
|
53
57
|
export { clockLocale, dayPeriod, isTwelveHour, nearestTime, offeredTimes, timeBarred, timeFault, wheelParts, wholeHour, } from './utils/clock/clock.js';
|
|
54
58
|
export { closestInstance } from './utils/closest-instance/closest-instance.js';
|
|
55
59
|
export { colorName, hueName } from './utils/color-name/color-name.js';
|
|
@@ -57,6 +61,7 @@ export { countLabel } from './utils/count-label/count-label.js';
|
|
|
57
61
|
export { createSheet } from './utils/create-sheet/create-sheet.js';
|
|
58
62
|
export { formatColor, parseColor, toCss, toHsl, toRgb, } from './utils/css-color/css-color.js';
|
|
59
63
|
export { customElement, definedTags, duplicateRegistrations, } from './utils/custom-element/custom-element.js';
|
|
64
|
+
export { segmentName } from './utils/date-segments/date-segments.js';
|
|
60
65
|
export { drawDismiss, drawDismissGlyph, } from './utils/draw-dismiss/draw-dismiss.js';
|
|
61
66
|
export { drawIcon } from './utils/draw-icon/draw-icon.js';
|
|
62
67
|
export { CHART_PLOT, drawTooltip } from './utils/draw-tooltip/draw-tooltip.js';
|
|
@@ -67,20 +72,30 @@ export { deepActiveElement, deepContains, focusableElements, } from './utils/foc
|
|
|
67
72
|
export { afterLinkFollowed, followLink, } from './utils/follow-link/follow-link.js';
|
|
68
73
|
export { formatNumbers } from './utils/format-numbers/format-numbers.js';
|
|
69
74
|
export { headingIn, headingsIn } from './utils/heading-in/heading-in.js';
|
|
75
|
+
export { headingLevel } from './utils/heading-level/heading-level.js';
|
|
70
76
|
export { hostAria } from './utils/host-aria/host-aria.js';
|
|
77
|
+
export { hostWords } from './utils/host-words/host-words.js';
|
|
78
|
+
export { defaultButton, submitImplicitly, submits, submitsOnEnter, } from './utils/implicit-submit/implicit-submit.js';
|
|
71
79
|
export { forgetDisabled, inheritDisabled, } from './utils/inherit-disabled/inherit-disabled.js';
|
|
72
80
|
export { inlineStep } from './utils/inline-step/inline-step.js';
|
|
73
81
|
export { isRtl } from './utils/is-rtl/is-rtl.js';
|
|
74
82
|
export { keyClaimed } from './utils/key-claimed/key-claimed.js';
|
|
75
83
|
export { linePath } from './utils/line-path/line-path.js';
|
|
84
|
+
export { endInSight } from './utils/load-more/load-more.js';
|
|
85
|
+
export { localeOf } from './utils/locale-of/locale-of.js';
|
|
76
86
|
export { markRegion } from './utils/mark-region/mark-region.js';
|
|
77
87
|
export { copiesOf, sameCopies, } from './utils/media-copy/media-copy.js';
|
|
78
|
-
export {
|
|
88
|
+
export { nameText } from './utils/name-text/name-text.js';
|
|
89
|
+
export { nearest } from './utils/nearest/nearest.js';
|
|
90
|
+
export { formatNumber, parseNumber, readingText } from './utils/number-format/number-format.js';
|
|
79
91
|
export { onUnlessFalse } from './utils/on-unless-false/on-unless-false.js';
|
|
80
|
-
export {
|
|
92
|
+
export { applyOwnRule } from './utils/own-rule/own-rule.js';
|
|
93
|
+
export { plainClick } from './utils/plain-click/plain-click.js';
|
|
94
|
+
export { appleTouch, onAndroid, onApple } from './utils/platform/platform.js';
|
|
95
|
+
export { pressType } from './utils/press-type/press-type.js';
|
|
81
96
|
export { rangeAdd } from './utils/range-add/range-add.js';
|
|
82
97
|
export { readColor, rgbOf } from './utils/read-color/read-color.js';
|
|
83
|
-
export { byRow, readRows, readSeries, seriesKey, unbroken, } from './utils/read-series/read-series.js';
|
|
98
|
+
export { byRow, extremesOf, readRows, readSeries, seriesKey, unbroken, } from './utils/read-series/read-series.js';
|
|
84
99
|
export { linkDescription, reflectElements, unlinkDescription, } from './utils/reflect-elements/reflect-elements.js';
|
|
85
100
|
export { relativeTime, } from './utils/relative-time/relative-time.js';
|
|
86
101
|
export { measuring, RENDER_SLOT, reportRender } from './utils/report-render/report-render.js';
|
|
@@ -91,19 +106,25 @@ export { requestChange, } from './utils/request-change/request-change.js';
|
|
|
91
106
|
export { resolveActiveItem, } from './utils/resolve-active-item/resolve-active-item.js';
|
|
92
107
|
export { holdCaret, restoreValue } from './utils/restore-value/restore-value.js';
|
|
93
108
|
export { rovingStop } from './utils/roving-stop/roving-stop.js';
|
|
109
|
+
export { valueAt } from './utils/row-data/row-data.js';
|
|
110
|
+
export { arranged, cycle, filter, format, ordered, parse, sort, window_, } from './utils/row-order/row-order.js';
|
|
94
111
|
export { extent, linear } from './utils/scale/scale.js';
|
|
95
112
|
export { ticks } from './utils/scale/ticks.js';
|
|
96
|
-
export { scrollItemIntoView, } from './utils/scroll-item-into-view/scroll-item-into-view.js';
|
|
113
|
+
export { scrollItemIntoView, scrollingAncestor, } from './utils/scroll-item-into-view/scroll-item-into-view.js';
|
|
97
114
|
export { lockScroll, scrollHolders, unlockScroll } from './utils/scroll-lock/scroll-lock.js';
|
|
98
115
|
export { slotFilled } from './utils/slot-filled/slot-filled.js';
|
|
116
|
+
export { SlottedGlyph } from './utils/slotted-glyph/slotted-glyph.js';
|
|
99
117
|
export { slottedWords } from './utils/slotted-words/slotted-words.js';
|
|
100
118
|
export { splitValues } from './utils/split-values/split-values.js';
|
|
101
119
|
export { edgeOffset, FLING, parseSnapPoints, settleSwipe, snapTravel, swipeAxis, swipeEdge, swipeStep, towardEdge, } from './utils/swipe/swipe.js';
|
|
102
120
|
export { tellDisclosure } from './utils/tell-disclosure/tell-disclosure.js';
|
|
103
121
|
export { subscribe } from './utils/ticker/ticker.js';
|
|
104
122
|
export { TONE_MARKS, toneMark, } from './utils/tone-marks/tone-marks.js';
|
|
123
|
+
export { treeArrow } from './utils/tree-arrow/tree-arrow.js';
|
|
124
|
+
export { Typeahead, typeaheadBy, typeaheadByWords, typesCharacter, } from './utils/typeahead/typeahead.js';
|
|
105
125
|
export { dateAsValue, isClockValue, isDateValue, isTimeValue, minutesAsValue, numberAsValue, secondsAsValue, timeAsValue, valueAsDate, valueAsMinutes, valueAsNumber, valueAsSeconds, valueAsTime, } from './utils/value-as/value-as.js';
|
|
106
126
|
export { watchTheme } from './utils/watch-theme/watch-theme.js';
|
|
127
|
+
export { wordsConverter } from './utils/words-converter/words-converter.js';
|
|
107
128
|
export { writeClock, writeTime } from './utils/write-time/write-time.js';
|
|
108
|
-
export { commaList, toggleValue, writtenList, writtenNumbers, } from './utils/written-list/written-list.js';
|
|
129
|
+
export { anchorAt, commaList, everyState, inRowOrder, pressedValue, prunedValue, toggleEvery, toggleValue, writtenList, writtenNumbers, } from './utils/written-list/written-list.js';
|
|
109
130
|
export { VERSION } from './version.js';
|
|
@@ -136,13 +136,22 @@ export declare class MixinChartSourceInterface {
|
|
|
136
136
|
* writes them, whatever this says.
|
|
137
137
|
*/
|
|
138
138
|
locale: string;
|
|
139
|
+
/**
|
|
140
|
+
* Where a reading the keys moved to stands among the readings, said after
|
|
141
|
+
* it. `{position}` and `{count}` are replaced with the numbers, written in
|
|
142
|
+
* `locale`.
|
|
143
|
+
*
|
|
144
|
+
* Set it to the words of the page's language, such as `{position} von
|
|
145
|
+
* {count}`, or to nothing to say no position.
|
|
146
|
+
*/
|
|
147
|
+
positionLabel: string;
|
|
139
148
|
/**
|
|
140
149
|
* The table's columns, one series each. Empty when there is no table.
|
|
141
150
|
*/
|
|
142
151
|
get series(): Series[];
|
|
143
152
|
/**
|
|
144
|
-
* The chart's name: `label`
|
|
145
|
-
*
|
|
153
|
+
* The chart's name: an `aria-label` written on the chart, then `label`,
|
|
154
|
+
* then the table's caption.
|
|
146
155
|
*/
|
|
147
156
|
get named(): string;
|
|
148
157
|
/**
|
|
@@ -163,6 +172,12 @@ export declare class MixinChartSourceInterface {
|
|
|
163
172
|
* reading the same table hid it.
|
|
164
173
|
*/
|
|
165
174
|
showsSeries(name: string): boolean;
|
|
175
|
+
/**
|
|
176
|
+
* Whether the series read from the cell at this place in a row is drawn,
|
|
177
|
+
* by its column's heading. The keys and the readout pass over one a legend
|
|
178
|
+
* hid.
|
|
179
|
+
*/
|
|
180
|
+
showsColumn(cell: number): boolean;
|
|
166
181
|
/**
|
|
167
182
|
* The number of readings, which the pointer position maps onto.
|
|
168
183
|
*/
|
|
@@ -172,6 +187,13 @@ export declare class MixinChartSourceInterface {
|
|
|
172
187
|
*/
|
|
173
188
|
pointer: ChartPointerController;
|
|
174
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* The words a chart says a reading's place in by default, such as "2 of 12":
|
|
192
|
+
* every chart's `position-label`, and Sparkline's, which is no chart source.
|
|
193
|
+
* The property keeps the words written out, which is what its reference page
|
|
194
|
+
* shows as the default; a spec holds the two together.
|
|
195
|
+
*/
|
|
196
|
+
export declare const POSITION_LABEL = "{position} of {count}";
|
|
175
197
|
/**
|
|
176
198
|
* The half of a chart that is about finding its numbers rather than drawing.
|
|
177
199
|
*
|
|
@@ -14,6 +14,7 @@ export const seriesIndex = (depth) => (depth % PALETTE) + 1;
|
|
|
14
14
|
export const PLOT_WIDTH = 100;
|
|
15
15
|
export const PLOT_HEIGHT = 100;
|
|
16
16
|
export const seriesNames = (list) => writtenList(list).map(seriesKey);
|
|
17
|
+
export const POSITION_LABEL = '{position} of {count}';
|
|
17
18
|
export const MixinChartSource = (Base) => {
|
|
18
19
|
class ChartSourceElement extends Base {
|
|
19
20
|
constructor() {
|
|
@@ -23,6 +24,17 @@ export const MixinChartSource = (Base) => {
|
|
|
23
24
|
this.for = '';
|
|
24
25
|
this.label = '';
|
|
25
26
|
this.locale = '';
|
|
27
|
+
this.positionLabel = '{position} of {count}';
|
|
28
|
+
}
|
|
29
|
+
static get observedAttributes() {
|
|
30
|
+
const inherited = Reflect.get(Base, 'observedAttributes', this);
|
|
31
|
+
return [...(inherited ?? []), 'aria-label'];
|
|
32
|
+
}
|
|
33
|
+
attributeChangedCallback(name, old, value) {
|
|
34
|
+
super.attributeChangedCallback(name, old, value);
|
|
35
|
+
if (name === 'aria-label') {
|
|
36
|
+
this.requestUpdate();
|
|
37
|
+
}
|
|
26
38
|
}
|
|
27
39
|
willUpdate(changed) {
|
|
28
40
|
super.willUpdate(changed);
|
|
@@ -34,7 +46,10 @@ export const MixinChartSource = (Base) => {
|
|
|
34
46
|
return this.source.series;
|
|
35
47
|
}
|
|
36
48
|
get named() {
|
|
37
|
-
return this.
|
|
49
|
+
return (this.getAttribute?.('aria-label') ||
|
|
50
|
+
this.label ||
|
|
51
|
+
this.source.element?.querySelector('caption')?.textContent?.trim() ||
|
|
52
|
+
'');
|
|
38
53
|
}
|
|
39
54
|
get sourceRows() {
|
|
40
55
|
return this.source.rows;
|
|
@@ -51,6 +66,10 @@ export const MixinChartSource = (Base) => {
|
|
|
51
66
|
showsSeries(name) {
|
|
52
67
|
return !this.source.hidden.has(seriesKey(name));
|
|
53
68
|
}
|
|
69
|
+
showsColumn(cell) {
|
|
70
|
+
const name = this.sourceRows[0]?.cells[cell]?.name;
|
|
71
|
+
return name === undefined || this.showsSeries(name);
|
|
72
|
+
}
|
|
54
73
|
get readings() {
|
|
55
74
|
return this.sourceRows.length;
|
|
56
75
|
}
|
|
@@ -64,5 +83,8 @@ export const MixinChartSource = (Base) => {
|
|
|
64
83
|
__decorate([
|
|
65
84
|
property()
|
|
66
85
|
], ChartSourceElement.prototype, "locale", void 0);
|
|
86
|
+
__decorate([
|
|
87
|
+
property({ attribute: 'position-label' })
|
|
88
|
+
], ChartSourceElement.prototype, "positionLabel", void 0);
|
|
67
89
|
return ChartSourceElement;
|
|
68
90
|
};
|
|
@@ -27,6 +27,7 @@ export const MixinControllerActive = (Base) => {
|
|
|
27
27
|
if (next === this.active) {
|
|
28
28
|
return true;
|
|
29
29
|
}
|
|
30
|
+
const before = this.active;
|
|
30
31
|
const applied = requestChange({
|
|
31
32
|
apply: (value) => {
|
|
32
33
|
const previous = this.active;
|
|
@@ -38,12 +39,12 @@ export const MixinControllerActive = (Base) => {
|
|
|
38
39
|
next,
|
|
39
40
|
});
|
|
40
41
|
if (applied) {
|
|
41
|
-
this.announceActivated(next);
|
|
42
|
+
this.announceActivated(next, before);
|
|
42
43
|
}
|
|
43
44
|
return applied;
|
|
44
45
|
}
|
|
45
|
-
announceActivated(value) {
|
|
46
|
-
this.dispatchEvent(new HelixActivateEvent({ value }));
|
|
46
|
+
announceActivated(value, previous) {
|
|
47
|
+
this.dispatchEvent(new HelixActivateEvent({ previous, value }));
|
|
47
48
|
}
|
|
48
49
|
resolveActive(items) {
|
|
49
50
|
return resolveActiveItem(this.active, items);
|
|
@@ -17,7 +17,9 @@ export declare class MixinControllerCheckedInterface {
|
|
|
17
17
|
*/
|
|
18
18
|
checked: boolean;
|
|
19
19
|
/**
|
|
20
|
-
* Whether the control starts checked. A form reset returns it to this state
|
|
20
|
+
* Whether the control starts checked. A form reset returns it to this state,
|
|
21
|
+
* and to the `checked` attribute where this one is not written, as a native
|
|
22
|
+
* checkbox resets to the `checked` it declares.
|
|
21
23
|
*/
|
|
22
24
|
defaultChecked: boolean;
|
|
23
25
|
/**
|
|
@@ -40,7 +42,8 @@ export declare class MixinControllerCheckedInterface {
|
|
|
40
42
|
/** Requests the opposite of the current state. */
|
|
41
43
|
toggleChecked(): boolean;
|
|
42
44
|
/**
|
|
43
|
-
*
|
|
45
|
+
* Returns the control to what its markup declared: `defaultChecked` where
|
|
46
|
+
* `default-checked` is written, and the `checked` attribute where it is not.
|
|
44
47
|
*
|
|
45
48
|
* A form reset has to return a control to what its markup declared, and
|
|
46
49
|
* assigning `checked` cannot do it: any assignment records a state, and the
|
|
@@ -59,7 +59,8 @@ export const MixinControllerChecked = (Base) => {
|
|
|
59
59
|
}
|
|
60
60
|
resetChecked() {
|
|
61
61
|
const previous = this.checked;
|
|
62
|
-
this.checkedState =
|
|
62
|
+
this.checkedState =
|
|
63
|
+
this.hasAttribute('default-checked') || !this.hasAttribute('checked') ? undefined : true;
|
|
63
64
|
this.requestUpdate('checked', previous);
|
|
64
65
|
}
|
|
65
66
|
}
|
|
@@ -8,7 +8,9 @@ type Constructor<T> = new (...args: any[]) => T;
|
|
|
8
8
|
*/
|
|
9
9
|
export declare class MixinControllerValueInterface {
|
|
10
10
|
/**
|
|
11
|
-
* The value the control starts with. A form reset returns it to this value
|
|
11
|
+
* The value the control starts with. A form reset returns it to this value,
|
|
12
|
+
* and to the `value` attribute where this one is not written, as a native
|
|
13
|
+
* control resets to the `value` it declares.
|
|
12
14
|
*
|
|
13
15
|
* Separate from `value`, which is where the control is now, and gone from the
|
|
14
16
|
* reader's view the moment they change anything.
|
|
@@ -37,7 +39,7 @@ export declare class MixinControllerValueInterface {
|
|
|
37
39
|
protected readonly announcesInput: boolean;
|
|
38
40
|
/** Requests a new value, and returns whether the change was applied. */
|
|
39
41
|
requestValue(next: string): boolean;
|
|
40
|
-
/** Returns the control to its `defaultValue
|
|
42
|
+
/** Returns the control to its `defaultValue`, or to its `value` attribute where there is none. */
|
|
41
43
|
formResetCallback(): void;
|
|
42
44
|
/** Restores the value when the browser brings a form back. */
|
|
43
45
|
formStateRestoreCallback(state: string | File | FormData | null): void;
|
|
@@ -48,15 +48,20 @@ export const MixinControllerValue = (Base) => {
|
|
|
48
48
|
}
|
|
49
49
|
return applied;
|
|
50
50
|
}
|
|
51
|
+
get declared() {
|
|
52
|
+
return this.hasAttribute('default-value')
|
|
53
|
+
? undefined
|
|
54
|
+
: (this.getAttribute('value') ?? undefined);
|
|
55
|
+
}
|
|
51
56
|
formResetCallback() {
|
|
52
57
|
super.formResetCallback();
|
|
53
58
|
const previous = this.value;
|
|
54
|
-
this.valueState =
|
|
59
|
+
this.valueState = this.declared;
|
|
55
60
|
this.requestUpdate('value', previous);
|
|
56
61
|
}
|
|
57
62
|
formStateRestoreCallback(state) {
|
|
58
63
|
const previous = this.value;
|
|
59
|
-
this.valueState = typeof state === 'string' ? state :
|
|
64
|
+
this.valueState = typeof state === 'string' ? state : this.declared;
|
|
60
65
|
this.requestUpdate('value', previous);
|
|
61
66
|
}
|
|
62
67
|
}
|
|
@@ -7,12 +7,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { property } from 'lit/decorators.js';
|
|
8
8
|
import { HelixDismissEvent } from '../../events/events.js';
|
|
9
9
|
import { deepActiveElement, deepContains, } from '../../utils/focusable-elements/focusable-elements.js';
|
|
10
|
+
import { tabStops } from '../../utils/tab-stops/tab-stops.js';
|
|
10
11
|
export const MixinDismissible = (Base) => {
|
|
11
12
|
class Dismissible extends Base {
|
|
12
13
|
constructor() {
|
|
13
14
|
super(...arguments);
|
|
14
15
|
this.dismissible = false;
|
|
15
16
|
this.dismissLabel = 'Dismiss';
|
|
17
|
+
this.handOff = undefined;
|
|
18
|
+
this.forgetFocus = undefined;
|
|
16
19
|
}
|
|
17
20
|
dismissEvent() {
|
|
18
21
|
const own = [...this.childNodes]
|
|
@@ -25,14 +28,26 @@ export const MixinDismissible = (Base) => {
|
|
|
25
28
|
return this.shadowRoot?.querySelector('[part~="dismiss"]') ?? null;
|
|
26
29
|
}
|
|
27
30
|
dismiss() {
|
|
28
|
-
const
|
|
31
|
+
const inside = deepContains(this, deepActiveElement());
|
|
32
|
+
const neighbors = inside ? this.neighbors() : [];
|
|
33
|
+
const beside = inside && neighbors.length === 0 ? this.stopBeside() : undefined;
|
|
29
34
|
const event = this.dismissEvent();
|
|
30
35
|
this.dispatchEvent(event);
|
|
31
|
-
if (neighbors.length > 0 && !event.defaultPrevented) {
|
|
32
|
-
this.keepFocus(neighbors);
|
|
36
|
+
if ((neighbors.length > 0 || beside) && !event.defaultPrevented) {
|
|
37
|
+
this.keepFocus(neighbors, beside);
|
|
33
38
|
}
|
|
34
39
|
return !event.defaultPrevented;
|
|
35
40
|
}
|
|
41
|
+
stopBeside() {
|
|
42
|
+
const stops = tabStops(document.body);
|
|
43
|
+
const own = stops.flatMap((stop, at) => (deepContains(this, stop) ? [at] : []));
|
|
44
|
+
const first = own[0];
|
|
45
|
+
const last = own.at(-1);
|
|
46
|
+
if (first === undefined || last === undefined) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
return stops[last + 1] ?? stops[first - 1];
|
|
50
|
+
}
|
|
36
51
|
neighbors() {
|
|
37
52
|
const same = (node) => node instanceof HTMLElement && node.localName === this.localName;
|
|
38
53
|
const after = [];
|
|
@@ -49,8 +64,9 @@ export const MixinDismissible = (Base) => {
|
|
|
49
64
|
}
|
|
50
65
|
return [...after, ...before];
|
|
51
66
|
}
|
|
52
|
-
keepFocus(neighbors) {
|
|
53
|
-
|
|
67
|
+
keepFocus(neighbors, beside) {
|
|
68
|
+
this.forgetFocus?.();
|
|
69
|
+
const settle = (late) => {
|
|
54
70
|
const active = document.activeElement;
|
|
55
71
|
if (this.isConnected || (active !== null && active !== document.body)) {
|
|
56
72
|
return;
|
|
@@ -64,9 +80,30 @@ export const MixinDismissible = (Base) => {
|
|
|
64
80
|
}
|
|
65
81
|
}
|
|
66
82
|
}
|
|
83
|
+
if (late && beside?.isConnected) {
|
|
84
|
+
beside.focus();
|
|
85
|
+
}
|
|
67
86
|
};
|
|
68
|
-
settle();
|
|
69
|
-
requestAnimationFrame(settle);
|
|
87
|
+
settle(false);
|
|
88
|
+
requestAnimationFrame(() => settle(true));
|
|
89
|
+
if (this.isConnected) {
|
|
90
|
+
const forget = () => {
|
|
91
|
+
this.handOff = undefined;
|
|
92
|
+
this.forgetFocus = undefined;
|
|
93
|
+
document.removeEventListener('focusin', forget, true);
|
|
94
|
+
};
|
|
95
|
+
this.handOff = settle;
|
|
96
|
+
this.forgetFocus = forget;
|
|
97
|
+
document.addEventListener('focusin', forget, true);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
disconnectedCallback() {
|
|
101
|
+
super.disconnectedCallback();
|
|
102
|
+
const settle = this.handOff;
|
|
103
|
+
if (settle) {
|
|
104
|
+
this.forgetFocus?.();
|
|
105
|
+
requestAnimationFrame(() => settle(true));
|
|
106
|
+
}
|
|
70
107
|
}
|
|
71
108
|
}
|
|
72
109
|
__decorate([
|
|
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { html, nothing } from 'lit';
|
|
8
8
|
import { property, state } from 'lit/decorators.js';
|
|
9
|
-
import { auditName } from '
|
|
9
|
+
import { auditName } from '#audit-name';
|
|
10
10
|
import { hostAria } from '../../utils/host-aria/host-aria.js';
|
|
11
11
|
const HINT_ID = 'helix-hint';
|
|
12
12
|
const FEEDBACK_ID = 'helix-feedback';
|
|
@@ -167,7 +167,7 @@ export const MixinField = (Base) => {
|
|
|
167
167
|
this.addEventListener('change', touch);
|
|
168
168
|
this.renderRoot.addEventListener('slotchange', this.noteSlotted);
|
|
169
169
|
auditName(this, () => this.namedControl, 'Give it a `label`, an `aria-label`, words in its label, or a `<label for>` that names it.', () => this.labeled ||
|
|
170
|
-
[...this.children].some((child) => child.slot === 'label' && (child.textContent ?? '').trim() !== ''));
|
|
170
|
+
[...this.children].some((child) => child.slot === 'label' && (child.textContent ?? '').trim() !== ''), () => this.partNamed('value'));
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
173
|
__decorate([
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { nothing, type TemplateResult } from 'lit';
|
|
2
|
+
import type { HelixFormElement } from '../../helix-form-element/helix-form-element.js';
|
|
3
|
+
type Constructor<T> = new (...args: any[]) => T;
|
|
4
|
+
export declare class MixinPickerFeedbackInterface {
|
|
5
|
+
/**
|
|
6
|
+
* A message under the picker, such as what is wrong with the answer.
|
|
7
|
+
*
|
|
8
|
+
* While set, the picker is invalid and does not submit, as a field's
|
|
9
|
+
* `feedback` is, it is marked invalid to a reader and to CSS, and the
|
|
10
|
+
* controls a reader answers with are described by it.
|
|
11
|
+
*/
|
|
12
|
+
feedback: string;
|
|
13
|
+
/**
|
|
14
|
+
* Whether the answer fails validation, marked on the controls a reader
|
|
15
|
+
* answers with and as `:state(invalid)`.
|
|
16
|
+
*
|
|
17
|
+
* A flag a field that wraps the picker sets, since that field owns the
|
|
18
|
+
* label, the hint and the message; on its own, `feedback` both marks the
|
|
19
|
+
* picker and says why.
|
|
20
|
+
*/
|
|
21
|
+
invalid: boolean;
|
|
22
|
+
/** Whether a reader is told the answer is wrong: `invalid`, or `feedback`. */
|
|
23
|
+
protected get marked(): boolean;
|
|
24
|
+
/** The `feedback` line, or nothing while there is none. */
|
|
25
|
+
protected renderPickerFeedback(): TemplateResult | typeof nothing;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* `feedback` and `invalid` for a picker that stands on its own as a form
|
|
29
|
+
* control: Color Picker, Date Picker and Time Picker.
|
|
30
|
+
*
|
|
31
|
+
* **One mark for both.** `invalid` is the flag a wrapping field sets, and
|
|
32
|
+
* `feedback` is the message a picker on its own shows; either one marks the
|
|
33
|
+
* picker invalid on its internals (`aria-invalid` on the host) and as
|
|
34
|
+
* `:state(invalid)`, and each picker marks the controls it draws by `marked`.
|
|
35
|
+
* Measured on Color Picker before this: `feedback` set `customError` in its
|
|
36
|
+
* validity while every control reported `invalid: false`.
|
|
37
|
+
*
|
|
38
|
+
* The message is the validity's too, as a field's `feedback` is, through
|
|
39
|
+
* `HelixFormElement`'s `validityFeedback`, so a form with one does not submit.
|
|
40
|
+
*/
|
|
41
|
+
export declare const MixinPickerFeedback: <T extends Constructor<HelixFormElement>>(Base: T) => Constructor<MixinPickerFeedbackInterface> & T;
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { html, nothing } from 'lit';
|
|
8
|
+
import { property } from 'lit/decorators.js';
|
|
9
|
+
import { hostAria } from '../../utils/host-aria/host-aria.js';
|
|
10
|
+
export const MixinPickerFeedback = (Base) => {
|
|
11
|
+
class PickerFeedbackElement extends Base {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.feedback = '';
|
|
15
|
+
this.invalid = false;
|
|
16
|
+
}
|
|
17
|
+
get marked() {
|
|
18
|
+
return this.invalid || this.feedback !== '';
|
|
19
|
+
}
|
|
20
|
+
get validityFeedback() {
|
|
21
|
+
return this.feedback;
|
|
22
|
+
}
|
|
23
|
+
willUpdate(changed) {
|
|
24
|
+
super.willUpdate(changed);
|
|
25
|
+
this.internals.ariaInvalid = this.marked ? 'true' : null;
|
|
26
|
+
this.toggleState('invalid', this.marked);
|
|
27
|
+
}
|
|
28
|
+
updated(changed) {
|
|
29
|
+
super.updated(changed);
|
|
30
|
+
const line = this.partNamed('feedback');
|
|
31
|
+
hostAria(this.internals, { describedBy: line ? [line] : [] });
|
|
32
|
+
}
|
|
33
|
+
renderPickerFeedback() {
|
|
34
|
+
return this.feedback === ''
|
|
35
|
+
? nothing
|
|
36
|
+
: html `<p part="feedback" id="feedback">${this.feedback}</p>`;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
__decorate([
|
|
40
|
+
property()
|
|
41
|
+
], PickerFeedbackElement.prototype, "feedback", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
property({ reflect: true, type: Boolean })
|
|
44
|
+
], PickerFeedbackElement.prototype, "invalid", void 0);
|
|
45
|
+
return PickerFeedbackElement;
|
|
46
|
+
};
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { PopoverController } from '../../controllers/popover-controller/popover-controller.js';
|
|
2
2
|
import type { HelixFormElement } from '../../helix-form-element/helix-form-element.js';
|
|
3
|
+
import { type PickerVerdict } from '../../utils/verdict-flags/verdict-flags.js';
|
|
3
4
|
import type { MixinControllerOpenInterface } from '../mixin-controller-open/mixin-controller-open.js';
|
|
4
5
|
import type { MixinControllerValueInterface } from '../mixin-controller-value/mixin-controller-value.js';
|
|
5
6
|
import type { MixinFieldInterface } from '../mixin-field/mixin-field.js';
|
|
7
|
+
export type { PickerVerdict } from '../../utils/verdict-flags/verdict-flags.js';
|
|
6
8
|
type Constructor<T> = new (...args: any[]) => T;
|
|
7
9
|
/**
|
|
8
10
|
* What this is applied over: a form field that opens, holds a value and has a
|
|
@@ -92,10 +94,12 @@ export declare class MixinPickerFieldInterface {
|
|
|
92
94
|
*
|
|
93
95
|
* The one check the platform cannot make: the control is `type="text"` and
|
|
94
96
|
* has no idea what a date, a time or a color is, so the family says what one
|
|
95
|
-
* looks like
|
|
96
|
-
*
|
|
97
|
+
* looks like. A message alone is reported as `badInput`; a flag and a
|
|
98
|
+
* message, such as `['rangeUnderflow', 'Choose a date on or after…']`, sets
|
|
99
|
+
* that flag, as a native date input does for its `min`. Empty means the
|
|
100
|
+
* platform's own verdict stands.
|
|
97
101
|
*/
|
|
98
|
-
protected validate():
|
|
102
|
+
protected validate(): PickerVerdict;
|
|
99
103
|
}
|
|
100
104
|
/**
|
|
101
105
|
* Grafts a floating picker onto a text field, and the protocol between them.
|
|
@@ -154,4 +158,3 @@ export declare class MixinPickerFieldInterface {
|
|
|
154
158
|
* `sync`, which is not a protocol.
|
|
155
159
|
*/
|
|
156
160
|
export declare const MixinPickerField: <T extends Constructor<PickerBase>>(Base: T) => Constructor<MixinPickerFieldInterface> & T;
|
|
157
|
-
export {};
|
|
@@ -6,8 +6,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { property } from 'lit/decorators.js';
|
|
8
8
|
import { PopoverController } from '../../controllers/popover-controller/popover-controller.js';
|
|
9
|
+
import { submitImplicitly } from '../../utils/implicit-submit/implicit-submit.js';
|
|
9
10
|
import { reportValues } from '../../utils/report-values/report-values.js';
|
|
10
11
|
import { tabStops } from '../../utils/tab-stops/tab-stops.js';
|
|
12
|
+
import { verdictFlags } from '../../utils/verdict-flags/verdict-flags.js';
|
|
11
13
|
export const MixinPickerField = (Base) => {
|
|
12
14
|
class PickerFieldElement extends Base {
|
|
13
15
|
constructor() {
|
|
@@ -91,7 +93,7 @@ export const MixinPickerField = (Base) => {
|
|
|
91
93
|
this.fromTrigger = false;
|
|
92
94
|
this.handleKeypress = (event) => {
|
|
93
95
|
if (event.key === 'Enter' && !event.defaultPrevented) {
|
|
94
|
-
this.
|
|
96
|
+
submitImplicitly(this.form);
|
|
95
97
|
}
|
|
96
98
|
};
|
|
97
99
|
this.handleTriggerClick = () => {
|
|
@@ -136,12 +138,12 @@ export const MixinPickerField = (Base) => {
|
|
|
136
138
|
if (!control) {
|
|
137
139
|
return;
|
|
138
140
|
}
|
|
139
|
-
const
|
|
140
|
-
if (
|
|
141
|
+
const fault = verdictFlags(this.validate());
|
|
142
|
+
if (fault === null) {
|
|
141
143
|
this.copyValidity(control);
|
|
142
144
|
}
|
|
143
145
|
else {
|
|
144
|
-
this.internals.setValidity(
|
|
146
|
+
this.internals.setValidity(fault[0], fault[1], control);
|
|
145
147
|
}
|
|
146
148
|
this.refreshFeedback();
|
|
147
149
|
}
|