@ixfx/components 0.5.2 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -733,6 +733,14 @@ interface CustomCheckboxOptions {
733
733
  margin?: string;
734
734
  width?: string;
735
735
  }
736
+ interface AddItemOptions {
737
+ /**
738
+ * In `checked` interaction mode, adds the item without a checkbox column and
739
+ * without the ability to be checked/selected. Equivalent to setting the
740
+ * `not-checked` attribute on the item. Ignored outside `checked` mode.
741
+ */
742
+ notChecked?: boolean;
743
+ }
736
744
  declare class VerticalListElement extends LitElement {
737
745
  #private;
738
746
  selectionMode: ListSelectionMode;
@@ -770,7 +778,7 @@ declare class VerticalListElement extends LitElement {
770
778
  get selectedItem(): Element | undefined;
771
779
  /** The full current selection set (read-only). */
772
780
  get selectedItems(): ReadonlySet<Element>;
773
- addItem(item: Element | string): void;
781
+ addItem(item: Element | string, options?: AddItemOptions): void;
774
782
  removeItem(item: Element): void;
775
783
  clearItems(): void;
776
784
  /**
@@ -798,6 +806,7 @@ declare class VerticalListElement extends LitElement {
798
806
  private _handleClickSelection;
799
807
  private _handleSpaceKey;
800
808
  private _getVisibleItems;
809
+ private _isCheckable;
801
810
  private _syncItemStates;
802
811
  private _syncCheckboxes;
803
812
  /**
@@ -1113,6 +1122,92 @@ declare global {
1113
1122
  }
1114
1123
  }
1115
1124
  //#endregion
1125
+ //#region src/tabs/tab-controller.d.ts
1126
+ /** A single tab managed by a {@link TabController}. */
1127
+ type Tab = {
1128
+ /** id of the `ixfx-tab-list-item` */
1129
+ readonly id: string;
1130
+ /** id of the `ixfx-tab-panel` (the item's `for` value) */
1131
+ readonly forId: string;
1132
+ readonly item: TabListItemElement;
1133
+ readonly panel: TabPanelElement;
1134
+ label: string;
1135
+ iconName?: string;
1136
+ };
1137
+ type TabAddOptions = {
1138
+ label: string;
1139
+ /** id for the tab item; derived from the label if omitted */
1140
+ id?: string;
1141
+ /** id for the panel (and the item's `for`); derived from the label if omitted */
1142
+ forId?: string;
1143
+ iconName?: string;
1144
+ description?: string;
1145
+ closeable?: boolean;
1146
+ /** Elements to slot into the tab's `slot="toolbar"` */
1147
+ toolbar?: HTMLElement[];
1148
+ /** Panel content: a node, text, or a callback given the fresh panel element */
1149
+ content?: Node | string | ((panel: TabPanelElement) => void);
1150
+ /** Select the new tab immediately (default `true`) */
1151
+ select?: boolean;
1152
+ /** Insertion index among existing tabs (default: append) */
1153
+ index?: number;
1154
+ };
1155
+ type TabControllerOptions = {
1156
+ /**
1157
+ * When provided, a command is registered per tab (id = tab id). Invoking
1158
+ * `commands.invoke(id)` selects the tab.
1159
+ */
1160
+ commands?: CommandRegistry;
1161
+ /** Fired after a tab becomes selected (via click or programmatic select) */
1162
+ onSelect?: (tab: Tab, previous: Tab | undefined) => void;
1163
+ onAdd?: (tab: Tab) => void;
1164
+ onRemove?: (tab: Tab) => void;
1165
+ onReorder?: (tabs: Tab[]) => void;
1166
+ };
1167
+ /**
1168
+ * Connects an `ixfx-tab-list` to an `ixfx-tab-panels` container, handling the
1169
+ * wiring between them (header clicks show the matching panel, closing a tab
1170
+ * removes its panel, etc.) and offering an API to select, add, remove, rename
1171
+ * and reorder tabs.
1172
+ *
1173
+ * @example
1174
+ * ```ts
1175
+ * const ctrl = new TabController(
1176
+ * document.querySelector('ixfx-tab-list'),
1177
+ * document.querySelector('ixfx-tab-panels'),
1178
+ * );
1179
+ * ctrl.connect();
1180
+ *
1181
+ * ctrl.addTab({ label: 'Console', content: 'Console panel' });
1182
+ * ctrl.selectTab('Console');
1183
+ * ```
1184
+ */
1185
+ declare class TabController {
1186
+ #private;
1187
+ constructor(list: TabListElement, panels: TabPanelsElement, options?: TabControllerOptions);
1188
+ connect(): void;
1189
+ disconnect(): void;
1190
+ /**
1191
+ * Select a tab as if it was clicked — activates the header (deactivating the
1192
+ * others) and shows its panel.
1193
+ *
1194
+ * `sel` may be a tab id, the panel id its `for` points at, its label text
1195
+ * (case-insensitive), or the tab item element itself.
1196
+ *
1197
+ * Returns true if a tab was found.
1198
+ */
1199
+ selectTab(sel: string | TabListItemElement): boolean;
1200
+ selectNext(): boolean;
1201
+ selectPrevious(): boolean;
1202
+ getSelected(): Tab | undefined;
1203
+ getTabs(): Tab[];
1204
+ getTab(id: string): Tab | undefined;
1205
+ addTab(opts: TabAddOptions): Tab;
1206
+ removeTab(sel: string | TabListItemElement): boolean;
1207
+ renameTab(sel: string | TabListItemElement, label: string): boolean;
1208
+ setTabIcon(sel: string | TabListItemElement, iconName?: string): boolean;
1209
+ }
1210
+ //#endregion
1116
1211
  //#region src/transitory-label/transitory-label.d.ts
1117
1212
  type Effect = `slide-right` | `slide-left` | `slide-up` | `slide-down` | `fade` | `character-swap`;
1118
1213
  declare class TransitoryLabelElement extends LitElement {
@@ -1146,5 +1241,5 @@ declare function monitorIndeterminate(targetElOrQuery: string | HTMLElement, wat
1146
1241
  //#region src/index.d.ts
1147
1242
  declare function init(): void;
1148
1243
  //#endregion
1149
- export { AcTextChangeDetail, AcTextChangeEvent, AcTextCompletionProvider, AcTextElement, AcTextItem, AcTextSelectDetail, AcTextSelectEvent, type AcTokenAddDetail, type AcTokenAddEvent, AcTokenElement, type AcTokenElementEventMap, type AcTokenItem, type AcTokenRemoveDetail, type AcTokenRemoveEvent, type AcTokenizerFn, type AcTokensChangeDetail, type AcTokensChangeEvent, ButtonElement, Checkbox, CheckboxChangeDetail, CheckboxChangeEvent, CheckboxEventMap, ClickSnapMode, ColourMapConfig, ColourMode, ColourPicker, type ColourPickerChangeEvent, type ColourPickerEventDetail, type ColourPickerInputEvent, ColourPickerPopup, ColourResult, ConfigEntry, ContiguousSelectEventDetail, CrossoverBehaviour, CrumbNavChangeDetail, CrumbNavChangeEvent, CrumbNavExpandDetail, CrumbNavExpandEvent, CrumbNavNavigateDetail, CrumbNavNavigateEvent, CrumbNavigationChangeDetail, CrumbNavigationChangeEvent, CrumbNavigationElement, CrumbNavigationElementEventMap, CrumbNavigationExpandDetail, CrumbNavigationExpandEvent, CrumbNavigationItemClickDetail, CrumbNavigationItemClickEvent, CrumbPathController, CrumbPathControllerOptions, CrumbPathElement, CrumbPathElementEventMap, CrumbSegment, CrumbSiblingLookupFn, type CssVars, CustomCheckboxOptions, DataBatch, DataController, DataControllerOptions, DataDisplayComponent, DataProviderResult, DisplayTextLogic, DragSnappingFn, DragTarget, EditableLabel, EditableLabelChangeDetail, EditableLabelChangeEvent, EditableMode, EditableNumber, Effect, type ElementIncrSearch, type ElementIncrSearchOptions, Endpoints, EntryMode, FormElement, FormGroupElement, FormPartElement, FormatValueForHuman, FormattingOptions, type FuzzySearch, type FuzzySearchOptions, FuzzySearchResult, GridMode, GridResolution, GroupedItemListerElement, type GroupedItemListerElementEventMap, type GroupedSelectDetail, type GroupedSelectEvent, HexChangeDetail, HexChangeEvent, type HighlightOptions, type HighlightTarget, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IDataProvider, type IGroupedSubComponent, type IGroupedSubComponentEventMap, type IconChangedDetail, type IconChangedEvent, type IncrSearch, type IncrSearchChangeCallback, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, type IncrSearchTreeOptions as IncrSearchMillerOptions, type IncrSearchTreeOptions, type IncrSearchOptions, type IncrSearchResult, type IncrSearchState, ItemsProvider, IxfxHexEditorElement, IxfxIconElement, IxfxTimelineElement, LabelledRadialInput, LabelledRangeInput, LaneData, LaneType, LedElement, type ListActivateDetail, type ListActivateEvent, type ListElementEventMap, type ListInteractionMode, type ListItemClickDetail, type ListItemClickEvent, type ListSelectDetail, type ListSelectEvent, type ListSelectionMode, type ListTickleDetail, type ListTickleEvent, LoadChildrenCallback, MarkerStyle, index_d_exports as Menu, type TreeActivateDetail as MillerActivateDetail, TreeActivateDetail, type TreeActivateEvent as MillerActivateEvent, TreeActivateEvent, MillerBaseElement, MillerBaseElementEventMap, type TreeCollapseDetail as MillerCollapseDetail, TreeCollapseDetail, type TreeCollapseEvent as MillerCollapseEvent, TreeCollapseEvent, MillerConfig, type TreeExpandDetail as MillerExpandDetail, TreeExpandDetail, type TreeExpandEvent as MillerExpandEvent, TreeExpandEvent, MillerHeaderClickDetail, MillerHeaderClickEvent, MillerHeaderRightClickDetail, MillerHeaderRightClickEvent, type TreeItem as MillerItem, TreeItem, type TreeItemClickDetail as MillerItemClickDetail, TreeItemClickDetail, type TreeItemClickEvent as MillerItemClickEvent, TreeItemClickEvent, MillerItemDblClickDetail, MillerItemDblClickEvent, MillerItemRightClickDetail, MillerItemRightClickEvent, MillerItemState, MillerListElement, type TreeNode as MillerNode, TreeNode, type TreeSelectDetail as MillerSelectDetail, TreeSelectDetail, type TreeSelectEvent as MillerSelectEvent, TreeSelectEvent, MillerSelectionMode, type TreeTickleDetail as MillerTickleDetail, TreeTickleDetail, type TreeTickleEvent as MillerTickleEvent, TreeTickleEvent, MillerTreeController, MillerTreeControllerOptions, NarrowedTextChangeDetail, NarrowedTextChangeEvent, NarrowedTextElement, NarrowedTextItem, NoneSelectEventDetail, Notification, NotificationContent, NotificationManager, NotificationPillElement, NotificationPillElementEventMap, NotificationRenderer, NotificationRendererHooks, NotificationType, NotifierOptions, type OklchValue, Orientation, PanelCloseEvent, PanelElement, PanelElementEventMap, PanelGroupElement, PanelGroupOrientation, PanelOrientation, PanelToggleDetail, PanelToggleEvent, PanelToggleInteraction, PanelVariant, PillPosition, PillQueueDisplay, PillRendererOptions, PillSafeArea, PillTapDetail, PillTapEvent, PlotDataSeries, PlotDataSeriesOptions, PlotHistogram, PlotHistogramBucketClickDetail, PlotHistogramBucketClickEvent, PlotHistogramElementEventMap, PlotHistogramOrientation, PlotHistogramValueTooltips, PlotMultiAxis, PlotMultiAxisDataPointClickDetail, PlotMultiAxisDataPointClickEvent, PlotMultiAxisElementEventMap, PlotMultiAxisLayout, PlotSingleAxis, PlotSingleAxisElementEventMap, PlotSingleAxisPointerMoveDetail, PlotSingleAxisPointerMoveEvent, PlotXyAxis, PolarPad, PolarPadInputDetail, PolarPadInputEvent, PopupItem, RadialInputChangeDetail, RadialInputChangeEvent, RadialInputElement, RadialInputInputDetail, RadialInputInputEvent, RadioGroup, RadioGroupChangeDetail, RadioGroupChangeEvent, RadioGroupMode, RadioItem, RangeElement, RangeInput, RangeMultiElement, RangeMultiInputDetail, RangeMultiInputEvent, type Rect, RectangularSelectEventDetail, RendererStyle, ResizeMode, SelectEventDetail, SelectHorizontalElement, SelectionMode, SingleAxisAgeStyle, SingleAxisDrawStyle, SingleSelectEventDetail, SliderChangedField, SliderCrossover, SliderHandleKey, SliderInputChangeDetail, SliderInputChangeEvent, SliderInputElement, SliderInputElementEventMap, SliderInputInputDetail, SliderInputInputEvent, SliderLaneData, SliderLaneType, SliderMarkerStyle, SliderOrientation, SliderSingleStyle, SliderValueCFollow, SliderValueDrag, SliderValueMode, SnapChangeDetail, SnapChangeEvent, SnapContainer, SnapInputDetail, SnapInputEvent, SnapLogic, SplitButton, SplitButtonMode, SplitButtonSelectDetail, SplitButtonSelectEvent, SplitLayoutElement, type SubComponentActivateDetail, type SubComponentActivateEvent, type SubComponentFactory, type SubComponentItemClickDetail, type SubComponentItemClickEvent, type SubComponentSelectDetail, type SubComponentSelectEvent, type SubComponentTickleDetail, type SubComponentTickleEvent, SwipeElement, SwipeElementEventMap, SwipeInputDetail, SwipeInputEvent, SwitcherItem, TabListChangeDetail, TabListChangeEvent, TabListDragMode, TabListElement, TabListItemElement, TabListReorderDetail, TabListReorderEvent, TabPanelElement, TabPanelsElement, TimelineController, TimelineControllerConfig, TimelineDraggingCallbackDetail, TimelineDraggingDetail, TimelineDraggingEvent, TimelineElementEventMap, TimelineEvent, TimelineEventMoveDetail, TimelineEventMoveEvent, TimelineEventResizeDetail, TimelineEventResizeEvent, TimelineSelectionChangeDetail, TimelineSelectionChangeEvent, TimelineTickleChangeDetail, TimelineTickleChangeEvent, TimelineTrack, TimelineTrackReorderDetail, TimelineTrackReorderEvent, TimelineTrackResizeDetail, TimelineTrackResizeEvent, TimelineTrackSelectDetail, TimelineTrackSelectEvent, TimelineTrackTabElement, TooltipElement, TooltipOrientations, TrackHeightMode, TrackLayout, TransitoryLabelElement, TreeBaseElement, TreeBaseElementEventMap, TreeComponent, TreeComponentEventMap, TreeConfig, TreeController, TreeControllerOptions, TreeDataModel, TreeDataModelOptions, TreeExclusivity, TreeFilterPredicate, TreeInteractionMode, TreeListAdapterOptions, TreeListElement, TreeSearchHost, TreeSelectionFilter, UserScale, ValueMode, VerticalListAdapterOptions, VerticalListElement, ViewRange, XyAgeStyle, XyDrawStyle, XyPad, XyPadEventMap, XyPadInputDetail, XyPadInputEvent, applyAgeModification, applyHighlights, attachTimelineInteractions, buildHighlightTargets, clearHighlights, collectDataResult, computeColour, createAcCompletionProvider, createElementIncrSearch, createFuzzySearch, createIncrSearch, createPillRenderer, createTreeListAdapter, createVerticalListAdapter, getIcon, hasIcon, iconBus, init, monitorIndeterminate, parseColourScaleAttr, readBaseColour, registerIcon, resolveCssVars, resolveGrid, svgToDataUri, timelineStyles };
1244
+ export { AcTextChangeDetail, AcTextChangeEvent, AcTextCompletionProvider, AcTextElement, AcTextItem, AcTextSelectDetail, AcTextSelectEvent, type AcTokenAddDetail, type AcTokenAddEvent, AcTokenElement, type AcTokenElementEventMap, type AcTokenItem, type AcTokenRemoveDetail, type AcTokenRemoveEvent, type AcTokenizerFn, type AcTokensChangeDetail, type AcTokensChangeEvent, AddItemOptions, ButtonElement, Checkbox, CheckboxChangeDetail, CheckboxChangeEvent, CheckboxEventMap, ClickSnapMode, ColourMapConfig, ColourMode, ColourPicker, type ColourPickerChangeEvent, type ColourPickerEventDetail, type ColourPickerInputEvent, ColourPickerPopup, ColourResult, ConfigEntry, ContiguousSelectEventDetail, CrossoverBehaviour, CrumbNavChangeDetail, CrumbNavChangeEvent, CrumbNavExpandDetail, CrumbNavExpandEvent, CrumbNavNavigateDetail, CrumbNavNavigateEvent, CrumbNavigationChangeDetail, CrumbNavigationChangeEvent, CrumbNavigationElement, CrumbNavigationElementEventMap, CrumbNavigationExpandDetail, CrumbNavigationExpandEvent, CrumbNavigationItemClickDetail, CrumbNavigationItemClickEvent, CrumbPathController, CrumbPathControllerOptions, CrumbPathElement, CrumbPathElementEventMap, CrumbSegment, CrumbSiblingLookupFn, type CssVars, CustomCheckboxOptions, DataBatch, DataController, DataControllerOptions, DataDisplayComponent, DataProviderResult, DisplayTextLogic, DragSnappingFn, DragTarget, EditableLabel, EditableLabelChangeDetail, EditableLabelChangeEvent, EditableMode, EditableNumber, Effect, type ElementIncrSearch, type ElementIncrSearchOptions, Endpoints, EntryMode, FormElement, FormGroupElement, FormPartElement, FormatValueForHuman, FormattingOptions, type FuzzySearch, type FuzzySearchOptions, FuzzySearchResult, GridMode, GridResolution, GroupedItemListerElement, type GroupedItemListerElementEventMap, type GroupedSelectDetail, type GroupedSelectEvent, HexChangeDetail, HexChangeEvent, type HighlightOptions, type HighlightTarget, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IDataProvider, type IGroupedSubComponent, type IGroupedSubComponentEventMap, type IconChangedDetail, type IconChangedEvent, type IncrSearch, type IncrSearchChangeCallback, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, type IncrSearchTreeOptions as IncrSearchMillerOptions, type IncrSearchTreeOptions, type IncrSearchOptions, type IncrSearchResult, type IncrSearchState, ItemsProvider, IxfxHexEditorElement, IxfxIconElement, IxfxTimelineElement, LabelledRadialInput, LabelledRangeInput, LaneData, LaneType, LedElement, type ListActivateDetail, type ListActivateEvent, type ListElementEventMap, type ListInteractionMode, type ListItemClickDetail, type ListItemClickEvent, type ListSelectDetail, type ListSelectEvent, type ListSelectionMode, type ListTickleDetail, type ListTickleEvent, LoadChildrenCallback, MarkerStyle, index_d_exports as Menu, type TreeActivateDetail as MillerActivateDetail, TreeActivateDetail, type TreeActivateEvent as MillerActivateEvent, TreeActivateEvent, MillerBaseElement, MillerBaseElementEventMap, type TreeCollapseDetail as MillerCollapseDetail, TreeCollapseDetail, type TreeCollapseEvent as MillerCollapseEvent, TreeCollapseEvent, MillerConfig, type TreeExpandDetail as MillerExpandDetail, TreeExpandDetail, type TreeExpandEvent as MillerExpandEvent, TreeExpandEvent, MillerHeaderClickDetail, MillerHeaderClickEvent, MillerHeaderRightClickDetail, MillerHeaderRightClickEvent, type TreeItem as MillerItem, TreeItem, type TreeItemClickDetail as MillerItemClickDetail, TreeItemClickDetail, type TreeItemClickEvent as MillerItemClickEvent, TreeItemClickEvent, MillerItemDblClickDetail, MillerItemDblClickEvent, MillerItemRightClickDetail, MillerItemRightClickEvent, MillerItemState, MillerListElement, type TreeNode as MillerNode, TreeNode, type TreeSelectDetail as MillerSelectDetail, TreeSelectDetail, type TreeSelectEvent as MillerSelectEvent, TreeSelectEvent, MillerSelectionMode, type TreeTickleDetail as MillerTickleDetail, TreeTickleDetail, type TreeTickleEvent as MillerTickleEvent, TreeTickleEvent, MillerTreeController, MillerTreeControllerOptions, NarrowedTextChangeDetail, NarrowedTextChangeEvent, NarrowedTextElement, NarrowedTextItem, NoneSelectEventDetail, Notification, NotificationContent, NotificationManager, NotificationPillElement, NotificationPillElementEventMap, NotificationRenderer, NotificationRendererHooks, NotificationType, NotifierOptions, type OklchValue, Orientation, PanelCloseEvent, PanelElement, PanelElementEventMap, PanelGroupElement, PanelGroupOrientation, PanelOrientation, PanelToggleDetail, PanelToggleEvent, PanelToggleInteraction, PanelVariant, PillPosition, PillQueueDisplay, PillRendererOptions, PillSafeArea, PillTapDetail, PillTapEvent, PlotDataSeries, PlotDataSeriesOptions, PlotHistogram, PlotHistogramBucketClickDetail, PlotHistogramBucketClickEvent, PlotHistogramElementEventMap, PlotHistogramOrientation, PlotHistogramValueTooltips, PlotMultiAxis, PlotMultiAxisDataPointClickDetail, PlotMultiAxisDataPointClickEvent, PlotMultiAxisElementEventMap, PlotMultiAxisLayout, PlotSingleAxis, PlotSingleAxisElementEventMap, PlotSingleAxisPointerMoveDetail, PlotSingleAxisPointerMoveEvent, PlotXyAxis, PolarPad, PolarPadInputDetail, PolarPadInputEvent, PopupItem, RadialInputChangeDetail, RadialInputChangeEvent, RadialInputElement, RadialInputInputDetail, RadialInputInputEvent, RadioGroup, RadioGroupChangeDetail, RadioGroupChangeEvent, RadioGroupMode, RadioItem, RangeElement, RangeInput, RangeMultiElement, RangeMultiInputDetail, RangeMultiInputEvent, type Rect, RectangularSelectEventDetail, RendererStyle, ResizeMode, SelectEventDetail, SelectHorizontalElement, SelectionMode, SingleAxisAgeStyle, SingleAxisDrawStyle, SingleSelectEventDetail, SliderChangedField, SliderCrossover, SliderHandleKey, SliderInputChangeDetail, SliderInputChangeEvent, SliderInputElement, SliderInputElementEventMap, SliderInputInputDetail, SliderInputInputEvent, SliderLaneData, SliderLaneType, SliderMarkerStyle, SliderOrientation, SliderSingleStyle, SliderValueCFollow, SliderValueDrag, SliderValueMode, SnapChangeDetail, SnapChangeEvent, SnapContainer, SnapInputDetail, SnapInputEvent, SnapLogic, SplitButton, SplitButtonMode, SplitButtonSelectDetail, SplitButtonSelectEvent, SplitLayoutElement, type SubComponentActivateDetail, type SubComponentActivateEvent, type SubComponentFactory, type SubComponentItemClickDetail, type SubComponentItemClickEvent, type SubComponentSelectDetail, type SubComponentSelectEvent, type SubComponentTickleDetail, type SubComponentTickleEvent, SwipeElement, SwipeElementEventMap, SwipeInputDetail, SwipeInputEvent, SwitcherItem, Tab, TabAddOptions, TabController, TabControllerOptions, TabListChangeDetail, TabListChangeEvent, TabListDragMode, TabListElement, TabListItemElement, TabListReorderDetail, TabListReorderEvent, TabPanelElement, TabPanelsElement, TimelineController, TimelineControllerConfig, TimelineDraggingCallbackDetail, TimelineDraggingDetail, TimelineDraggingEvent, TimelineElementEventMap, TimelineEvent, TimelineEventMoveDetail, TimelineEventMoveEvent, TimelineEventResizeDetail, TimelineEventResizeEvent, TimelineSelectionChangeDetail, TimelineSelectionChangeEvent, TimelineTickleChangeDetail, TimelineTickleChangeEvent, TimelineTrack, TimelineTrackReorderDetail, TimelineTrackReorderEvent, TimelineTrackResizeDetail, TimelineTrackResizeEvent, TimelineTrackSelectDetail, TimelineTrackSelectEvent, TimelineTrackTabElement, TooltipElement, TooltipOrientations, TrackHeightMode, TrackLayout, TransitoryLabelElement, TreeBaseElement, TreeBaseElementEventMap, TreeComponent, TreeComponentEventMap, TreeConfig, TreeController, TreeControllerOptions, TreeDataModel, TreeDataModelOptions, TreeExclusivity, TreeFilterPredicate, TreeInteractionMode, TreeListAdapterOptions, TreeListElement, TreeSearchHost, TreeSelectionFilter, UserScale, ValueMode, VerticalListAdapterOptions, VerticalListElement, ViewRange, XyAgeStyle, XyDrawStyle, XyPad, XyPadEventMap, XyPadInputDetail, XyPadInputEvent, applyAgeModification, applyHighlights, attachTimelineInteractions, buildHighlightTargets, clearHighlights, collectDataResult, computeColour, createAcCompletionProvider, createElementIncrSearch, createFuzzySearch, createIncrSearch, createPillRenderer, createTreeListAdapter, createVerticalListAdapter, getIcon, hasIcon, iconBus, init, monitorIndeterminate, parseColourScaleAttr, readBaseColour, registerIcon, resolveCssVars, resolveGrid, svgToDataUri, timelineStyles };
1150
1245
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/ac-token/types.ts","../src/ac-token/ac-token.ts","../src/button/radio-group.ts","../src/button/types.ts","../src/button/split-button.ts","../src/common/data-controller.ts","../src/crumbs/crumb-path.ts","../src/crumbs/crumb-path-controller.ts","../src/editable-label/editable-number.ts","../src/form/form-group.ts","../src/form/form-part.ts","../src/form/form.ts","../src/vertical-list/types.ts","../src/grouped-item-lister/types.ts","../src/grouped-item-lister/grouped-item-lister.ts","../src/grouped-item-lister/tree-list-adapter.ts","../src/vertical-list/vertical-list.ts","../src/grouped-item-lister/vertical-list-adapter.ts","../src/notifier/types.ts","../src/notifier/notification-pill.ts","../src/notifier/manager.ts","../src/notifier/pill-renderer.ts","../src/panel/panel-group.ts","../src/range/range-multi.ts","../src/tabs/tab-panel.ts","../src/tabs/tab-panels.ts","../src/transitory-label/transitory-label.ts","../src/util/checkbox.ts","../src/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/ac-token/types.ts","../src/ac-token/ac-token.ts","../src/button/radio-group.ts","../src/button/types.ts","../src/button/split-button.ts","../src/common/data-controller.ts","../src/crumbs/crumb-path.ts","../src/crumbs/crumb-path-controller.ts","../src/editable-label/editable-number.ts","../src/form/form-group.ts","../src/form/form-part.ts","../src/form/form.ts","../src/vertical-list/types.ts","../src/grouped-item-lister/types.ts","../src/grouped-item-lister/grouped-item-lister.ts","../src/grouped-item-lister/tree-list-adapter.ts","../src/vertical-list/vertical-list.ts","../src/grouped-item-lister/vertical-list-adapter.ts","../src/notifier/types.ts","../src/notifier/notification-pill.ts","../src/notifier/manager.ts","../src/notifier/pill-renderer.ts","../src/panel/panel-group.ts","../src/range/range-multi.ts","../src/tabs/tab-panel.ts","../src/tabs/tab-panels.ts","../src/tabs/tab-controller.ts","../src/transitory-label/transitory-label.ts","../src/util/checkbox.ts","../src/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAAY;WACD;WACA;WACA;WACA;WACA;WACA,YAAY;;KAGX,iBAAiB;KAEjB;WACD,iBAAiB;;KAEhB,sBAAsB,YAAY;KAElC;WACD,MAAM;WACN;;KAEC,kBAAkB,YAAY;KAE9B;WACD,MAAM;WACN;;KAEC,qBAAqB,YAAY;UAE5B;EACf,mBAAmB;EACnB,gBAAgB;EAChB,mBAAmB;;;;;;;;;;;;;;;;;;;;cCgDR,uBAAuB;;;EAGlC,oBAAoB,sBAAsB;;EAI1C,WAAW;;EAIX;;EAIA;;EAIA;;;;;EAOA;;;;;;EAQA;UAEiB;UACA;UACA;UACA;UAET;;MAqBJ,mBAAmB;MAInB,OAAO,gBAAgB;;MAMvB;EAMK;EAKA;YASU,QAAQ,cAAc;YAwbtB,wBAAM;SA+BT,sBAAM;;QAkLhB;YACI;IACR,iBAAiB;;;UAIJ;EACf,oBAAoB,gBAAgB,wBAClC,MAAM,GACN,WAAW,MAAM,gBAAgB,OAAO,uBAAuB,aAC/D,oBAAoB,sCAEpB,cACA,UAAU,oCACV,oBAAoB;;;;KCzzBZ;KAEA,YAAY;EACtB;EACA;EACA;EACA;EACA;;cAIW,mBAAmB;;EACF;EACA;EACD,OAAO;EACN;EACA,MAAM;EACL;EACuB;EACA;EACI;EACD;UAEtC;UACA;UACM;cAEX;cAIA;YAMO;YAIA,QAAQ,mBAAmB;YAyG3B;SA2DH,sBAAM;;KA2JZ;WACD;WACA;;KAGC,wBAAwB,YAAY;QAExC;YACI;IACR,oBAAoB;;;;;KC1XZ;WACD;WACA;;KAGC,yBAAyB,YAAY;KAErC;WACD;WACA;WACA;;KAGC;WACD;WACA;WACA;WACA;;KAGC,sBAAsB,cAAc,QAAQ;;;KCL5C;cAGC,oBAAoB;EACC,WAAW;EACX,kBAAkB;EACtB,MAAM;EACsB;;EAExB,gBAAgB;;EAEhB,QAAQ;UAEJ;UAEnB;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UAET;UACA;EAIC;EAcA;EAOA;EAMA,QAAQ,mBAAmB;UAU5B;UAeA;;EAUR,cAAc;;cAaF;UAYJ;UAOA;UAgBA;UAYA;UAsBA;UAYA;UA8BA;UAOA;YASW,wBAAM;UAMjB;UAmBA;UAcA;UAgCA;SAgDQ,sBAAM;;QAyHhB;YACI;IACR,qBAAqB;;;;;KCreb;;;;;;;EAOV;;;;;EAKA,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;cAgCA,eAAe,QAAQ,kBAAkB;;EAclD,YAAA,MAAM,wBACN,WAAW,cAAc,QAAQ,QACjC,UAAU;EAaZ;EAEA;MAMI,YAAY,cAAc,QAAQ;MAIlC,SAAS,OAAO,cAAc,QAAQ;;MAOtC,kBAAkB;;MAKlB;;MAKA;;;;;MAQA;;;;;MAQA;;MAOA;;;;;EAUJ,QAAQ,OAAO;;EAsBf;;;;KCnJU;EACV;EACA;EACA;;KAGU,wBACV,wBACA,eACA,QAAQ,gBACL,QAAQ;KAED;EAA2B;EAAe;EAAe;EAAoB;;KAC7E,wBAAwB,YAAY;KACpC;EAAyB;EAAe;EAAoB;;KAC5D,sBAAsB,YAAY;KAClC;EAAyB;EAAe;EAAoB;EAAc,QAAQ;;KAClF,sBAAsB,YAAY;cAGjC,yBAAyB;;EAEpC;EAGA;EAGA;EAGA,eAAe;UAGP;UAGA;UAGA;UAGA;UAGA;UAGA;UAGA;UAGA;UAGA;YAkCW,QAAQ,mBAAmB;EA+DvC,QAAQ;EAYR;YA8UY,wBAAM;SAoDT,sBAAM;;QAgLhB;YACI;IACR,mBAAmB;;;UAIN;EACf,UAAU;EACV,QAAQ;EACR,QAAQ;;UAGO;EACf,oBAAoB,gBAAgB,0BAClC,MAAM,GACN,WAAW,MAAM,kBAAkB,OAAO,yBAAyB,aACnE,oBAAoB,sCAEpB,cACA,UAAU,oCACV,oBAAoB;;;;KCtvBZ;EACV;EACA;EACA,WAAW,2BAA2B,QAAQ;;cAGnC;;EAMC,YAAA,UAAS;MAWjB;EAIJ,QAAQ;EAUR,SAAS;EAMT;EAIA,QAAQ;EAIR,QAAQ,SAAS;EAMjB;;;;;cCTW,uBAAuB;;EACN;EACA;EACA;;EAEA;EAC+B;EACpB;EACE;EACE;EACQ;EACvB;;EAqBnB,wBAAM;UAoBP;EAMC;EAWA;UAWD;UAWA;;YAkBE;;YAOS;;gBAGL,cAAc;EAKnB,aAAa,mBAAmB;YAU/B;UA0BF;EAaC,QAAQ,mBAAmB;UAW5B;YAyCW;YAuBA;YAaA,qBAAsB,GAAG;YA6BzB,iBAAkB,GAAG;UA8BhC;UAiBA;;;;;UA4CA;EAmCC;EAMA,iBAAiB,WAAW,gBAAgB,OAAO;UAQpD;UAkBA;UA2CA;UA0BA;UASA;;;;;;UASA;UAYA;UAQA;UAYA;UAYA;;UAKA;SAUQ,QAAQ;;QAoKlB;YACI;IACR,wBAAwB;;;;;cCtyBf,yBAAyB;EAEpC;UAEQ;UACA;YAEW;EAIV;EAKA;EAQA;UAKD;YAWW,wBAAM;;QAKnB;YACI;IACR,mBAAmB;;;;;cC7CV,wBAAwB;EAEnC;UAEQ;YAEW;EAIV;UAKD;YAcW,wBAAM;;QASnB;YACI;IACR,kBAAkB;;;;;cC1CT,oBAAoB;YACZ;EAInB,aAAa;EAIb,UAAU,MAAM;;QAKV;YACI;IACR,aAAa;;;;;KCtBL;;;;;;;;;;;;KAaA;KAEA;WACD,UAAU,YAAY;WACtB,UAAU,YAAY;;KAGrB;WACD,MAAM;;KAGL;WACD,MAAM;;KAGL;WACD,MAAM;;KAGL,kBAAkB,YAAY;KAC9B,kBAAkB,YAAY;KAC9B,oBAAoB,YAAY;KAChC,qBAAqB,YAAY;UAE5B;EACf,eAAe;EACf,eAAe;EACf,iBAAiB;EACjB,mBAAmB;;;;;;;;KC9BT,yBAAyB;WAC1B,UAAU,YAAY;WACtB,UAAU,YAAY;;;;;;KAOrB,2BAA2B;WAC5B,MAAM;;;;;;KAOL,4BAA4B;WAC7B,MAAM;;;;;;KAOL,yBAAyB;WAC1B,MAAM;;KAGL,wBAAwB,KAAK,YAAY,yBAAyB;KAClE,0BAA0B,KAAK,YAAY,2BAA2B;KACtE,2BAA2B,KAAK,YAAY,4BAA4B;KACxE,wBAAwB,KAAK,YAAY,yBAAyB;UAE7D,6BAA6B;EAC5C,UAAU,wBAAwB;EAClC,YAAY,0BAA0B;EACtC,cAAc,2BAA2B;EACzC,UAAU,wBAAwB;;;;;;;;UAanB,qBAAqB,WAAW;;EAE/C,WAAW,gBAAgB;;EAG3B;;WAGS,eAAe,YAAY;;EAGpC,eAAe;;;;;EAMf,WAAW,WAAW,WAAW,OAAO;EAExC,oBAAoB,gBAAgB,6BAA6B,IAC/D,MAAM,GACN,WAAW,OAAO,6BAA6B,GAAG,aAClD,oBAAoB,sCAEpB,cACA,UAAU,oCACV,oBAAoB;;;;;;KAQZ,oBAAoB,MAAM,iCAAiC,cAAc,qBAAqB;;;;;;KAW9F,oBAAoB;WACrB,UAAU,YAAY;WACtB;;KAGC,mBAAmB,KAAK,YAAY,oBAAoB;UAEnD,iCAAiC;EAChD,kBAAkB,mBAAmB;;;;cC9E1B,yBAAyB,qBAAqB;;EACb;EAG5C;MAgBI,aAAa,MAAM;MAInB,QAAQ,SAAS,MAAM;MAKvB,WAAW,oBAAoB;MAI/B,QAAQ,OAAO,oBAAoB;MAQnC,YAAY,oBAAoB;MAIhC,SAAS,OAAO,oBAAoB;;MAWpC,iBAAiB,YAAY;;;;;EAcjC,SAAS,WAAW,WAAW,OAAO;YAUnB;EAIV;EAKA;YAKU,QAAQ,SAAS;YAQjB,iBAAM,wBAAA;;QAuJnB;YACI;IACR,4BAA4B;;;UAIf,yBAAyB;EACxC,oBAAoB,gBAAgB,iCAAiC,IACnE,MAAM,GACN,WAAW,MAAM,yBAAyB,IAAI,OAAO,iCAAiC,GAAG,aACzF,oBAAoB,sCAEpB,cACA,UAAU,oCACV,oBAAoB;;;;KC/RZ,uBAAuB;;;;;EAKjC,eAAe,MAAM,eAAe;;EAGpC,kBAAkB;;;;;EAMlB,kBAAkB;;;;;EAMlB,cAAc;;;;;;EAOd,cACE,WAAW,WACX,MAAM,qCACN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuCM,sBAAsB,GACpC,aAAa,MAAM,MAAM,KAAK,mBAC9B,UAAU,uBAAuB,KAChC,cAAc,qBAAqB;;;UCxDrB;EACf,WAAW;EACX;EACA;;UAGe;;;;;;EAMf;;cAWW,4BAA4B;;EAEvC,eAAe;EAGf,iBAAiB;EAGjB,mBAAmB,IAAI;;;;;;;;;;;;;;;;;;;EAqBvB,oBAAoB,gCAAgC;UAEnC;UACA;UACA;UAGT;UAOA;EAUC;EAWA;EAWA;EAcA,QAAQ,SAAS;;MAoCtB,gBAAgB;;MAKhB,iBAAiB,YAAY;EAIjC,QAAQ,MAAM,kBAAkB,UAAU;EAgB1C,WAAW,MAAM;EAIjB;;;;;;EAaA,SAAS,gBAAgB;;;;;;EAczB,SAAS,YAAY,WAAW,QAAQ;EAExC,OAAO,MAAM;EAIb,WAAW,OAAO,SAAS;EAc3B,SAAS,MAAM;EAWf;EAIA;UASQ;UAcA;UAwBA;UAuBA;UASA;UAeA;UAqCA;UAeA;UAcA;UAOA;UAeA;;;;;;;UA2FA;;;;;UAuBA;UAcA;UAYA;UAQA;UAKA;UASA;UAMA;UAIA;UA+DA;UAQA;UAMA;UAQA;UAMA;SAwBQ,sBAAM;EAmKb,wBAAM;;QA0BT;YACI;IACR,sBAAsB;;YAGd,4BAA4B;;;;KC75B5B;;EAEV,gBAAgB;;EAGhB,kBAAkB;;;;;;;;;;;;;;;;;;EAmBlB,cACE,WAAW,WACX,MAAM,qCACN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;iBA+BM,0BAA0B,GACxC,aAAa,MAAM,MAAM,SACzB,UAAU,6BACT,cAAc,qBAAqB;;;KCvE1B;KAEA;WACD,MAAM;WACN;WACA;WACA,SAAS;;KAGR,eAAe;WAChB;WACA;WACA;;UAGM;EACf,QAAQ;;UAGO;;EAEf,SAAS,OAAO;;EAEhB;;;;;;EAMA,mBAAmB,eAAe,gBAAgB;;KAGxC;EACV,WAAW;EACX;EACA;EACA;EACA;EACA;EACA,qBAAqB,cAAc;;;;KC9BzB;WAA2B;;KAC3B,eAAe,YAAY;UAEtB;EACf,YAAY;;cAID,gCAAgC;;EAE3C,kBAAkB;EAGlB;EAGA;EAGA;EAGA;YAsCU,wBAAM;SAgBT,sBAAM;;QA6EP;YACI;IACR,0BAA0B;;;UAIb;EACf,oBAAoB,gBAAgB,iCAClC,MAAM,GACN,WAAW,MAAM,yBAAyB,OAAO,gCAAgC,aACjF,oBAAoB,sCAEpB,cACA,UAAU,oCACV,oBAAoB;;;;cCvGX;EACK,UAAA,MAAA;EA0CA,OAAA,SAAA;EAgCL,OAAA,YAAM,SAAW,QAAQ;EAexB,QAAA;EAIE;;;;KCpKJ;KACA;UAEK;WACN;WACA;WACA;WACA;;UAGM;EACf,WAAW;;EAEX,eAAe;;EAEf,WAAW;;iBA0DG,mBAAmB,UAAS,sBAA2B;;;KCvE3D;cAGC,0BAA0B;EACM,aAAa;EAC5B,SAAS;EACwB,mBAAmB;EACtB;EAC9C;UAEiC;UAErC;YAiBW;YAMA,QAAQ,SAAS;UAS5B;YAWW,wBAAM;SAQT,sBAAM;;QA4BhB;YACI;IACR,oBAAoB;;;;;KCpFZ;KAEA;KAEA;KAEA;WACD;WACA;WACA;;KAGC,uBAAuB,YAAY;;;;;;;;;;;;;;;;;;;cAqBlC,0BAA0B;;EAErC;EAGA,oBAAoB;EAGpB,WAAW;EAGX,YAAY;EAGZ;EAGA;EAGA;EAGA;MAkBI,IAAI;MAKJ;MAKA,IAAI;MAKJ;EAIJ;IAAmC;IAAW;;EAC9C;EAGA,SAAS,OAAO;EA6GhB,SAAS,WAAW;EAapB,eAAe,OAAO;YA+OZ,aAAa,oBAAoB;YAIjC;SAoBH,sBAAM;;QAyJP;YACI;IACR,oBAAoB;;;;;cCtoBX,wBAAwB;EACnC,wBAAM;SAIC,sBAAM;;QAcP;YACI;IACR,kBAAkB;;;;;cClBT,yBAAyB;;EAEpC,YAAa;;;;EAWb,qBAAqB,YAAY,IAAI;;;;EAIrC,oBAAoB,YAAY,IAAI;;;;EAIpC,mBAAmB,YAAY,IAAI;EACnC,wBAAM;EAIN,sBAAkB;EA8BlB,aAAa,IAAI;EAejB,YAAY;;;;;;;;;;;;;;;;EAiCZ,UAAU;SAsCH,sBAAM;;QAQP;YACI;IACR,mBAAmB;;;;;;KCvJX;;WAED;;WAEA;WACA,MAAM;WACN,OAAO;EAChB;EACA;;KAGU;EACV;;EAEA;;EAEA;EACA;EACA;EACA;;EAEA,UAAU;;EAEV,UAAU,kBAAkB,OAAO;;EAEnC;;EAEA;;KAGU;;;;;EAKV,WAAW;;EAEX,YAAY,KAAK,KAAK,UAAU;EAChC,SAAS,KAAK;EACd,YAAY,KAAK;EACjB,aAAa,MAAM;;;;;;;;;;;;;;;;;;;;cAqBR;;EAYT,YAAA,MAAM,gBACN,QAAQ,kBACR,UAAS;EAQX;EAwBA;;;;;;;;;;EAwBA,UAAU,cAAc;EAkBxB;EAIA;EAIA,eAAe;EAIf,WAAW;EAIX,OAAO,aAAa;EAMpB,OAAO,MAAM,gBAAgB;EAgD7B,UAAU,cAAc;EAqBxB,UAAU,cAAc,oBAAoB;EAmB5C,WAAW,cAAc,oBAAoB;;;;KCtQnC;cAKC,+BAA+B;;EACd;EACA,QAAQ;EACR;EACA;UAEX;UACA;UACA;UACA;UAET;UACA;EAER,QAAQ,aAAa,QAAQ;YAKV,QAAQ,SAAS;UAa5B;UAWA;YAgDW,wBAAM;SA4BT,sBAAM;;QAuIhB;YACI;IACR,yBAAyB;;;;;iBCtPb,qBACd,0BAA0B,aAC1B,qBAAqB,eAAe;;;iBCmDtB"}
package/dist/index.js CHANGED
@@ -3495,12 +3495,15 @@ let VerticalListElement = class VerticalListElement extends LitElement {
3495
3495
  get selectedItems() {
3496
3496
  return this._selectedItems;
3497
3497
  }
3498
- addItem(item) {
3498
+ addItem(item, options) {
3499
+ let el;
3499
3500
  if (typeof item === `string`) {
3500
3501
  const li = document.createElement(`li`);
3501
3502
  li.textContent = item;
3502
- this.appendChild(li);
3503
- } else this.appendChild(item);
3503
+ el = li;
3504
+ } else el = item;
3505
+ if (options?.notChecked) el.setAttribute(`not-checked`, ``);
3506
+ this.appendChild(el);
3504
3507
  if (this.interactionMode === `checked`) this._syncCheckboxes();
3505
3508
  }
3506
3509
  removeItem(item) {
@@ -3535,7 +3538,7 @@ let VerticalListElement = class VerticalListElement extends LitElement {
3535
3538
  selectMany(items) {
3536
3539
  if (this.selectionMode !== `multiple`) throw new Error(`selectMany requires selectionMode="multiple" (current: "${this.selectionMode}")`);
3537
3540
  const previous = this._selectedItems;
3538
- const next = new Set(items);
3541
+ const next = new Set([...items].filter((el) => this._isCheckable(el)));
3539
3542
  if (next.size === 0) return;
3540
3543
  this._selectedItems = next;
3541
3544
  this.#selectionAnchor = [...next].at(-1);
@@ -3565,6 +3568,7 @@ let VerticalListElement = class VerticalListElement extends LitElement {
3565
3568
  }
3566
3569
  _replaceSelection(item) {
3567
3570
  if (this.selectionMode === `none`) return;
3571
+ if (!this._isCheckable(item)) return;
3568
3572
  const previous = this._selectedItems;
3569
3573
  const next = /* @__PURE__ */ new Set([item]);
3570
3574
  this._selectedItems = next;
@@ -3576,6 +3580,7 @@ let VerticalListElement = class VerticalListElement extends LitElement {
3576
3580
  });
3577
3581
  }
3578
3582
  _toggleItem(item) {
3583
+ if (!this._isCheckable(item)) return;
3579
3584
  const effectiveMultiple = this.selectionMode === `multiple` || isMultiMode(this.interactionMode);
3580
3585
  if (this.selectionMode === `none` && this.interactionMode !== `checked`) return;
3581
3586
  const previous = this._selectedItems;
@@ -3608,7 +3613,7 @@ let VerticalListElement = class VerticalListElement extends LitElement {
3608
3613
  const start = Math.min(anchorIdx, targetIdx);
3609
3614
  const end = Math.max(anchorIdx, targetIdx);
3610
3615
  const previous = this._selectedItems;
3611
- const next = new Set(visible.slice(start, end + 1));
3616
+ const next = new Set(visible.slice(start, end + 1).filter((el) => this._isCheckable(el)));
3612
3617
  this._selectedItems = next;
3613
3618
  this._syncItemStates();
3614
3619
  this._dispatch(`list-select`, {
@@ -3630,7 +3635,8 @@ let VerticalListElement = class VerticalListElement extends LitElement {
3630
3635
  const visible = this._getVisibleItems();
3631
3636
  if (visible.length === 0) return;
3632
3637
  const previous = this._selectedItems;
3633
- const next = new Set(visible);
3638
+ const next = new Set(visible.filter((el) => this._isCheckable(el)));
3639
+ if (next.size === 0) return;
3634
3640
  this._selectedItems = next;
3635
3641
  this._syncItemStates();
3636
3642
  this._dispatch(`list-select`, {
@@ -3669,11 +3675,16 @@ let VerticalListElement = class VerticalListElement extends LitElement {
3669
3675
  return true;
3670
3676
  });
3671
3677
  }
3678
+ _isCheckable(item) {
3679
+ if (this.interactionMode !== `checked`) return true;
3680
+ return !(this.#customWrappers.get(item) ?? item).hasAttribute(`not-checked`);
3681
+ }
3672
3682
  _syncItemStates() {
3673
3683
  for (const el of this.querySelectorAll(ITEM_SELECTOR)) {
3684
+ const item = this.#customWrappers.get(el) ?? el;
3674
3685
  el.toggleAttribute(`data-tickled`, this.tickled.isTickled(el));
3675
3686
  el.toggleAttribute(`data-selected`, this._selectedItems.has(el));
3676
- if (this.interactionMode === `checked`) el.toggleAttribute(`data-checked`, this._selectedItems.has(el));
3687
+ if (this.interactionMode === `checked`) el.toggleAttribute(`data-checked`, !item.hasAttribute(`not-checked`) && this._selectedItems.has(el));
3677
3688
  else el.removeAttribute(`data-checked`);
3678
3689
  }
3679
3690
  this.dataset.inputMode = this.tickled.inputMode;
@@ -3711,6 +3722,10 @@ let VerticalListElement = class VerticalListElement extends LitElement {
3711
3722
  if (existing) existing.remove();
3712
3723
  continue;
3713
3724
  }
3725
+ if ((this.#customWrappers.get(el) ?? el).hasAttribute(`not-checked`)) {
3726
+ if (existing) existing.remove();
3727
+ continue;
3728
+ }
3714
3729
  const existingIsCustom = existing?.classList.contains(`ixfx-list-checkbox-custom`) ?? false;
3715
3730
  if (existing && existingIsCustom !== wantsCustom) existing.remove();
3716
3731
  let cb = el.querySelector(`.ixfx-list-checkbox`);
@@ -5398,6 +5413,309 @@ let TabPanelElement = class TabPanelElement extends LitElement {
5398
5413
  };
5399
5414
  TabPanelElement = __decorate([safeCustomElement(`ixfx-tab-panel`)], TabPanelElement);
5400
5415
  //#endregion
5416
+ //#region src/tabs/tab-controller.ts
5417
+ /**
5418
+ * Connects an `ixfx-tab-list` to an `ixfx-tab-panels` container, handling the
5419
+ * wiring between them (header clicks show the matching panel, closing a tab
5420
+ * removes its panel, etc.) and offering an API to select, add, remove, rename
5421
+ * and reorder tabs.
5422
+ *
5423
+ * @example
5424
+ * ```ts
5425
+ * const ctrl = new TabController(
5426
+ * document.querySelector('ixfx-tab-list'),
5427
+ * document.querySelector('ixfx-tab-panels'),
5428
+ * );
5429
+ * ctrl.connect();
5430
+ *
5431
+ * ctrl.addTab({ label: 'Console', content: 'Console panel' });
5432
+ * ctrl.selectTab('Console');
5433
+ * ```
5434
+ */
5435
+ var TabController = class {
5436
+ #list;
5437
+ #panels;
5438
+ #opts;
5439
+ #tabs = [];
5440
+ #signal;
5441
+ #observer;
5442
+ #commands;
5443
+ #registeredCommands = /* @__PURE__ */ new Set();
5444
+ constructor(list, panels, options = {}) {
5445
+ this.#list = list;
5446
+ this.#panels = panels;
5447
+ this.#opts = options;
5448
+ this.#commands = options.commands;
5449
+ }
5450
+ connect() {
5451
+ this.disconnect();
5452
+ this.#signal = new AbortController();
5453
+ const { signal } = this.#signal;
5454
+ this.#list.addEventListener(`change`, this.#onChange, { signal });
5455
+ this.#list.addEventListener(`reorder`, this.#onReorder, { signal });
5456
+ this.#list.addEventListener(`close`, this.#onClose, { signal });
5457
+ this.#observer = new MutationObserver(() => this.#rebuild());
5458
+ this.#observer.observe(this.#list, { childList: true });
5459
+ this.#observer.observe(this.#panels, { childList: true });
5460
+ this.#rebuild();
5461
+ this.#panels.syncWithList(this.#list);
5462
+ for (const tab of this.#tabs) this.#registerCommand(tab);
5463
+ }
5464
+ disconnect() {
5465
+ this.#signal?.abort();
5466
+ this.#signal = void 0;
5467
+ this.#observer?.disconnect();
5468
+ this.#observer = void 0;
5469
+ for (const tab of this.#tabs) this.#unregisterCommand(tab);
5470
+ this.#registeredCommands.clear();
5471
+ this.#tabs = [];
5472
+ }
5473
+ /**
5474
+ * Select a tab as if it was clicked — activates the header (deactivating the
5475
+ * others) and shows its panel.
5476
+ *
5477
+ * `sel` may be a tab id, the panel id its `for` points at, its label text
5478
+ * (case-insensitive), or the tab item element itself.
5479
+ *
5480
+ * Returns true if a tab was found.
5481
+ */
5482
+ selectTab(sel) {
5483
+ const tab = this.#resolveTab(sel);
5484
+ if (!tab) return false;
5485
+ const previous = this.getSelected();
5486
+ if (previous?.id === tab.id) {
5487
+ this.#panels.selectPanel(tab.forId);
5488
+ return true;
5489
+ }
5490
+ this.#list.selectElement(tab.item);
5491
+ this.#panels.selectPanel(tab.forId);
5492
+ this.#opts.onSelect?.(tab, previous);
5493
+ return true;
5494
+ }
5495
+ selectNext() {
5496
+ return this.#selectOffset(1);
5497
+ }
5498
+ selectPrevious() {
5499
+ return this.#selectOffset(-1);
5500
+ }
5501
+ getSelected() {
5502
+ return this.#tabs.find((t) => t.item.hasAttribute(`selected`));
5503
+ }
5504
+ getTabs() {
5505
+ return [...this.#tabs];
5506
+ }
5507
+ getTab(id) {
5508
+ return this.#tabs.find((t) => t.id === id);
5509
+ }
5510
+ addTab(opts) {
5511
+ const { id, forId } = this.#idsFor(opts);
5512
+ const item = document.createElement(`ixfx-tab-list-item`);
5513
+ item.id = id;
5514
+ item.setAttribute(`for`, forId);
5515
+ item.closeable = opts.closeable ?? true;
5516
+ item.append(opts.label);
5517
+ if (opts.iconName) item.iconName = opts.iconName;
5518
+ if (opts.description) item.description = opts.description;
5519
+ for (const el of opts.toolbar ?? []) {
5520
+ el.slot = `toolbar`;
5521
+ item.append(el);
5522
+ }
5523
+ const panel = document.createElement(`ixfx-tab-panel`);
5524
+ panel.id = forId;
5525
+ if (opts.content !== void 0) this.#fillContent(panel, opts.content);
5526
+ const index = Math.max(0, Math.min(opts.index ?? this.#tabs.length, this.#tabs.length));
5527
+ this.#insertElement(this.#list, item, index);
5528
+ this.#insertElement(this.#panels, panel, index);
5529
+ const tab = {
5530
+ id,
5531
+ forId,
5532
+ item,
5533
+ panel,
5534
+ label: opts.label,
5535
+ iconName: opts.iconName
5536
+ };
5537
+ this.#tabs.splice(index, 0, tab);
5538
+ this.#registerCommand(tab);
5539
+ this.#opts.onAdd?.(tab);
5540
+ if (opts.select ?? true) this.selectTab(id);
5541
+ return tab;
5542
+ }
5543
+ removeTab(sel) {
5544
+ const tab = this.#resolveTab(sel);
5545
+ if (!tab) return false;
5546
+ const index = this.#tabs.indexOf(tab);
5547
+ const adjacent = tab.item.hasAttribute(`selected`) ? this.#adjacentTab(index) : void 0;
5548
+ tab.item.remove();
5549
+ tab.panel.remove();
5550
+ this.#removeFromIndex(tab);
5551
+ this.#unregisterCommand(tab);
5552
+ this.#opts.onRemove?.(tab);
5553
+ if (adjacent) this.selectTab(adjacent.id);
5554
+ return true;
5555
+ }
5556
+ renameTab(sel, label) {
5557
+ const tab = this.#resolveTab(sel);
5558
+ if (!tab) return false;
5559
+ for (const child of [...tab.item.childNodes]) {
5560
+ if (child.nodeType === Node.ELEMENT_NODE && child.slot === `toolbar`) continue;
5561
+ tab.item.removeChild(child);
5562
+ }
5563
+ tab.item.prepend(label);
5564
+ tab.label = label;
5565
+ this.#reregisterCommand(tab);
5566
+ return true;
5567
+ }
5568
+ setTabIcon(sel, iconName) {
5569
+ const tab = this.#resolveTab(sel);
5570
+ if (!tab) return false;
5571
+ if (iconName) {
5572
+ tab.item.iconName = iconName;
5573
+ tab.iconName = iconName;
5574
+ } else {
5575
+ tab.item.iconName = void 0;
5576
+ tab.item.removeAttribute(`icon-name`);
5577
+ tab.iconName = void 0;
5578
+ }
5579
+ return true;
5580
+ }
5581
+ #onChange = (event) => {
5582
+ const detail = event.detail;
5583
+ this.#panels.selectPanel(detail.for);
5584
+ const tab = this.#tabs.find((t) => t.forId === detail.for);
5585
+ if (!tab) return;
5586
+ const previous = detail.previous ? this.#tabs.find((t) => t.id === detail.previous) : void 0;
5587
+ this.#opts.onSelect?.(tab, previous);
5588
+ };
5589
+ #onReorder = () => {
5590
+ this.#rebuild();
5591
+ this.#opts.onReorder?.(this.#tabs);
5592
+ };
5593
+ #onClose = (event) => {
5594
+ const item = event.target?.closest(`ixfx-tab-list-item`);
5595
+ const tab = item ? this.#tabByItem(item) : void 0;
5596
+ if (!tab) return;
5597
+ const index = this.#tabs.indexOf(tab);
5598
+ const adjacent = tab.item.hasAttribute(`selected`) ? this.#adjacentTab(index) : void 0;
5599
+ tab.panel.remove();
5600
+ this.#removeFromIndex(tab);
5601
+ this.#unregisterCommand(tab);
5602
+ this.#opts.onRemove?.(tab);
5603
+ if (adjacent) this.selectTab(adjacent.id);
5604
+ };
5605
+ #selectOffset(offset) {
5606
+ const tabs = this.#tabs;
5607
+ if (tabs.length === 0) return false;
5608
+ const current = this.getSelected();
5609
+ const next = ((current ? tabs.indexOf(current) : offset === 1 ? -1 : 0) + offset + tabs.length) % tabs.length;
5610
+ return this.selectTab(tabs[next].id);
5611
+ }
5612
+ #resolveTab(sel) {
5613
+ if (typeof sel !== `string`) return this.#tabs.find((t) => t.item === sel);
5614
+ const label = sel.trim().toLowerCase();
5615
+ return this.#tabs.find((t) => t.id === sel) ?? this.#tabs.find((t) => t.forId === sel) ?? this.#tabs.find((t) => t.label.toLowerCase() === label);
5616
+ }
5617
+ #tabByItem(item) {
5618
+ return this.#tabs.find((t) => t.item === item);
5619
+ }
5620
+ #adjacentTab(index) {
5621
+ const tabs = this.#tabs;
5622
+ if (tabs.length <= 1) return void 0;
5623
+ return tabs[index + 1] ?? tabs[index - 1];
5624
+ }
5625
+ #removeFromIndex(tab) {
5626
+ const index = this.#tabs.indexOf(tab);
5627
+ if (index >= 0) this.#tabs.splice(index, 1);
5628
+ }
5629
+ #idsFor(opts) {
5630
+ const base = this.#slug(opts.label) || `tab`;
5631
+ return {
5632
+ id: opts.id ?? this.#uniqueId(`tab-${base}`),
5633
+ forId: opts.forId ?? this.#uniqueId(`panel-${base}`)
5634
+ };
5635
+ }
5636
+ #slug(value) {
5637
+ return value.toLowerCase().replace(/[^a-z0-9]+/g, `-`).replace(/^-+|-+$/g, ``);
5638
+ }
5639
+ #uniqueId(base) {
5640
+ let candidate = base;
5641
+ let n = 2;
5642
+ while (document.getElementById(candidate)) candidate = `${base}-${n++}`;
5643
+ return candidate;
5644
+ }
5645
+ #fillContent(panel, content) {
5646
+ if (typeof content === `function`) {
5647
+ content(panel);
5648
+ return;
5649
+ }
5650
+ if (typeof content === `string`) {
5651
+ panel.append(document.createTextNode(content));
5652
+ return;
5653
+ }
5654
+ panel.append(content);
5655
+ }
5656
+ #insertElement(container, el, index) {
5657
+ const children = Array.from(container.children);
5658
+ container.insertBefore(el, children[index] ?? null);
5659
+ }
5660
+ #rebuild() {
5661
+ const panels = /* @__PURE__ */ new Map();
5662
+ for (const el of this.#panels.querySelectorAll(`ixfx-tab-panel`)) panels.set(el.id, el);
5663
+ const tabs = [];
5664
+ for (const item of this.#list.querySelectorAll(`ixfx-tab-list-item`)) {
5665
+ const forId = item.getAttribute(`for`) ?? ``;
5666
+ const panel = panels.get(forId);
5667
+ if (!panel) continue;
5668
+ tabs.push({
5669
+ id: item.id || forId,
5670
+ forId,
5671
+ item,
5672
+ panel,
5673
+ label: this.#labelOf(item),
5674
+ iconName: item.iconName
5675
+ });
5676
+ }
5677
+ this.#tabs = tabs;
5678
+ }
5679
+ /** The tab's visible label text, excluding any `slot="toolbar"` content. */
5680
+ #labelOf(item) {
5681
+ const clone = item.cloneNode(true);
5682
+ clone.querySelectorAll(`[slot="toolbar"]`).forEach((el) => el.remove());
5683
+ return (clone.textContent ?? ``).trim();
5684
+ }
5685
+ #registerCommand(tab) {
5686
+ if (!this.#commands) return;
5687
+ if (tab.item.commandActive) return;
5688
+ if (this.#commands.has(tab.id)) return;
5689
+ this.#commands.register({
5690
+ id: tab.id,
5691
+ label: tab.label,
5692
+ description: tab.item.description ?? tab.label,
5693
+ icon: tab.iconName,
5694
+ execute: () => {
5695
+ this.selectTab(tab.id);
5696
+ }
5697
+ });
5698
+ this.#registeredCommands.add(tab.id);
5699
+ }
5700
+ #unregisterCommand(tab) {
5701
+ if (!this.#commands) return;
5702
+ if (this.#registeredCommands.has(tab.id)) {
5703
+ this.#commands.unregister(tab.id);
5704
+ this.#registeredCommands.delete(tab.id);
5705
+ }
5706
+ }
5707
+ #reregisterCommand(tab) {
5708
+ if (!this.#commands || !this.#registeredCommands.has(tab.id)) return;
5709
+ const existing = this.#commands.get(tab.id);
5710
+ if (!existing) return;
5711
+ this.#commands.unregister(tab.id);
5712
+ this.#commands.register({
5713
+ ...existing,
5714
+ label: tab.label
5715
+ });
5716
+ }
5717
+ };
5718
+ //#endregion
5401
5719
  //#region src/tabs/tab-panels.ts
5402
5720
  let TabPanelsElement = class TabPanelsElement extends LitElement {
5403
5721
  /**
@@ -5794,6 +6112,6 @@ function init() {
5794
6112
  console.log(`Init`);
5795
6113
  }
5796
6114
  //#endregion
5797
- export { AcTextElement, AcTokenElement, ButtonElement, Checkbox, ColourPicker, ColourPickerPopup, CrumbNavigationElement, CrumbPathController, CrumbPathElement, DataController, DataDisplayComponent, EditableLabel, EditableNumber, FormElement, FormGroupElement, FormPartElement, GroupedItemListerElement, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, IxfxHexEditorElement, IxfxIconElement, IxfxTimelineElement, LabelledRadialInput, LabelledRangeInput, LedElement, menu_exports as Menu, MillerBaseElement, MillerListElement, MillerTreeController, NarrowedTextElement, NotificationManager, NotificationPillElement, PanelElement, PanelGroupElement, PlotDataSeries, PlotHistogram, PlotMultiAxis, PlotSingleAxis, PlotXyAxis, PolarPad, RadialInputElement, RadioGroup, RangeElement, RangeInput, RangeMultiElement, SelectHorizontalElement, SliderInputElement, SnapContainer, SplitButton, SplitLayoutElement, SwipeElement, TabListElement, TabListItemElement, TabPanelElement, TabPanelsElement, TimelineController, TimelineTrackTabElement, TooltipElement, TransitoryLabelElement, TreeBaseElement, TreeController, TreeDataModel, TreeListElement, VerticalListElement, XyPad, applyAgeModification, applyHighlights, attachTimelineInteractions, buildHighlightTargets, clearHighlights, collectDataResult, computeColour, createAcCompletionProvider, createElementIncrSearch, createFuzzySearch, createIncrSearch, createPillRenderer, createTreeListAdapter, createVerticalListAdapter, getIcon, hasIcon, iconBus, init, monitorIndeterminate, parseColourScaleAttr, readBaseColour, registerIcon, resolveCssVars, resolveGrid, svgToDataUri, timelineStyles };
6115
+ export { AcTextElement, AcTokenElement, ButtonElement, Checkbox, ColourPicker, ColourPickerPopup, CrumbNavigationElement, CrumbPathController, CrumbPathElement, DataController, DataDisplayComponent, EditableLabel, EditableNumber, FormElement, FormGroupElement, FormPartElement, GroupedItemListerElement, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, IxfxHexEditorElement, IxfxIconElement, IxfxTimelineElement, LabelledRadialInput, LabelledRangeInput, LedElement, menu_exports as Menu, MillerBaseElement, MillerListElement, MillerTreeController, NarrowedTextElement, NotificationManager, NotificationPillElement, PanelElement, PanelGroupElement, PlotDataSeries, PlotHistogram, PlotMultiAxis, PlotSingleAxis, PlotXyAxis, PolarPad, RadialInputElement, RadioGroup, RangeElement, RangeInput, RangeMultiElement, SelectHorizontalElement, SliderInputElement, SnapContainer, SplitButton, SplitLayoutElement, SwipeElement, TabController, TabListElement, TabListItemElement, TabPanelElement, TabPanelsElement, TimelineController, TimelineTrackTabElement, TooltipElement, TransitoryLabelElement, TreeBaseElement, TreeController, TreeDataModel, TreeListElement, VerticalListElement, XyPad, applyAgeModification, applyHighlights, attachTimelineInteractions, buildHighlightTargets, clearHighlights, collectDataResult, computeColour, createAcCompletionProvider, createElementIncrSearch, createFuzzySearch, createIncrSearch, createPillRenderer, createTreeListAdapter, createVerticalListAdapter, getIcon, hasIcon, iconBus, init, monitorIndeterminate, parseColourScaleAttr, readBaseColour, registerIcon, resolveCssVars, resolveGrid, svgToDataUri, timelineStyles };
5798
6116
 
5799
6117
  //# sourceMappingURL=index.js.map