@ixfx/components 0.5.17 → 0.5.19
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/bundle/index.d.ts +71 -8
- package/bundle/index.d.ts.map +1 -1
- package/bundle/index.js +563 -116
- package/bundle/index.js.map +1 -1
- package/bundle/style.css +4 -2
- package/dist/ac-text.d.ts +1 -1
- package/dist/button.d.ts +1 -1
- package/dist/button.d.ts.map +1 -1
- package/dist/{colour-picker-DbypcEp6.js → colour-picker-37NyVenk.js} +2 -2
- package/dist/{colour-picker-DbypcEp6.js.map → colour-picker-37NyVenk.js.map} +1 -1
- package/dist/colour-picker.d.ts +1 -1
- package/dist/colour-picker.js +1 -1
- package/dist/{crumb-navigation-DFqTzElw.js → crumb-navigation-BrB0r14u.js} +169 -98
- package/dist/crumb-navigation-BrB0r14u.js.map +1 -0
- package/dist/crumbs.d.ts +3 -1
- package/dist/crumbs.d.ts.map +1 -1
- package/dist/crumbs.js +1 -1
- package/dist/{defaults-DcE8RQJc.js → defaults-BkWCPJFL.js} +7 -1
- package/dist/{defaults-DcE8RQJc.js.map → defaults-BkWCPJFL.js.map} +1 -1
- package/dist/{icon-DpA9x2Ve.d.ts → icon-BUwP1CZ1.d.ts} +2 -2
- package/dist/icon-BUwP1CZ1.d.ts.map +1 -0
- package/dist/icons.d.ts +2 -2
- package/dist/icons.js +1 -1
- package/dist/{index-D_ftz_IT.d.ts → index-BKAlRgbq.d.ts} +2 -2
- package/dist/{index-D_ftz_IT.d.ts.map → index-BKAlRgbq.d.ts.map} +1 -1
- package/dist/{index-CoqtMSd9.d.ts → index-BUB5SICW.d.ts} +2 -2
- package/dist/{index-CoqtMSd9.d.ts.map → index-BUB5SICW.d.ts.map} +1 -1
- package/dist/{index-DfEkTGvT.d.ts → index-DkhBGHgF.d.ts} +3 -3
- package/dist/{index-DfEkTGvT.d.ts.map → index-DkhBGHgF.d.ts.map} +1 -1
- package/dist/{index-BtGFYfaK.d.ts → index-RqMh1i-O.d.ts} +2 -2
- package/dist/{index-BtGFYfaK.d.ts.map → index-RqMh1i-O.d.ts.map} +1 -1
- package/dist/index.d.ts +55 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +288 -10
- package/dist/index.js.map +1 -1
- package/dist/{labelled-input-base-DiTme1JO.d.ts → labelled-input-base-Dp_9KP0G.d.ts} +2 -2
- package/dist/{labelled-input-base-DiTme1JO.d.ts.map → labelled-input-base-Dp_9KP0G.d.ts.map} +1 -1
- package/dist/labelled-radial-input.d.ts +2 -2
- package/dist/labelled-radial-input.d.ts.map +1 -1
- package/dist/labelled-range-input.d.ts +1 -1
- package/dist/{menu-B8gE2MSo.js → menu-CdwSe_XN.js} +2 -2
- package/dist/{menu-B8gE2MSo.js.map → menu-CdwSe_XN.js.map} +1 -1
- package/dist/{menu-item-DSyf9f_L.d.ts → menu-item-BG5w7fi4.d.ts} +4 -2
- package/dist/menu-item-BG5w7fi4.d.ts.map +1 -0
- package/dist/{menu-item-BYRvfyXK.js → menu-item-CrmUwIoJ.js} +7 -2
- package/dist/menu-item-CrmUwIoJ.js.map +1 -0
- package/dist/menu.d.ts +2 -2
- package/dist/menu.js +2 -2
- package/dist/panel.d.ts +1 -1
- package/dist/split-layout.d.ts +7 -1
- package/dist/split-layout.d.ts.map +1 -1
- package/dist/split-layout.js +84 -14
- package/dist/split-layout.js.map +1 -1
- package/dist/style.css +4 -2
- package/dist/{tab-list-ih-0I0NE.d.ts → tab-list-Beuh2nom.d.ts} +10 -3
- package/dist/tab-list-Beuh2nom.d.ts.map +1 -0
- package/dist/{tab-list-6W5CgXix.js → tab-list-mAoD6L0e.js} +20 -2
- package/dist/tab-list-mAoD6L0e.js.map +1 -0
- package/dist/tabs.d.ts +1 -1
- package/dist/tabs.js +1 -1
- package/docs-user/README.md +1 -0
- package/docs-user/crumbs.md +4 -0
- package/docs-user/select-horiz.md +114 -0
- package/docs-user/split-layout.md +29 -7
- package/package.json +3 -1
- package/dist/crumb-navigation-DFqTzElw.js.map +0 -1
- package/dist/icon-DpA9x2Ve.d.ts.map +0 -1
- package/dist/menu-item-BYRvfyXK.js.map +0 -1
- package/dist/menu-item-DSyf9f_L.d.ts.map +0 -1
- package/dist/tab-list-6W5CgXix.js.map +0 -1
- package/dist/tab-list-ih-0I0NE.d.ts.map +0 -1
package/dist/index.js
CHANGED
|
@@ -7,17 +7,18 @@ import { a as svgToDataUri, i as registerIcon, n as hasIcon, r as iconBus, t as
|
|
|
7
7
|
import { t as IxfxIconElement } from "./icon-DG9Lm3LT.js";
|
|
8
8
|
import { AcTextElement } from "./ac-text.js";
|
|
9
9
|
import { a as createFuzzySearch, i as createAcCompletionProvider, n as IncrSearchTreeController, r as createIncrSearch, t as createElementIncrSearch } from "./incr-search-2pz21xtR.js";
|
|
10
|
-
import { i as ICON_CLOSE, n as ICON_CHECK, r as ICON_CHEVRON_DOWN, t as ICON_CARET_RIGHT } from "./defaults-
|
|
10
|
+
import { i as ICON_CLOSE, n as ICON_CHECK, r as ICON_CHEVRON_DOWN, t as ICON_CARET_RIGHT } from "./defaults-BkWCPJFL.js";
|
|
11
11
|
import "./icons.js";
|
|
12
12
|
import { t as prominenceStyles } from "./prominence-DlFShic3.js";
|
|
13
13
|
import { n as buttonStyles, t as ButtonElement } from "./button-CphdEaZd.js";
|
|
14
|
-
import "./
|
|
14
|
+
import "./interaction-D6efrBLo.js";
|
|
15
|
+
import "./menu-item-CrmUwIoJ.js";
|
|
15
16
|
import { Checkbox } from "./checkbox.js";
|
|
16
|
-
import { n as ColourPicker, t as ColourPickerPopup } from "./colour-picker-
|
|
17
|
+
import { n as ColourPicker, t as ColourPickerPopup } from "./colour-picker-37NyVenk.js";
|
|
17
18
|
import { LabelledRangeInput } from "./labelled-range-input.js";
|
|
18
19
|
import { t as collectDataResult } from "./data-provider-35TyWclX.js";
|
|
19
20
|
import { i as TreeDataModel, n as TreeListElement, r as TreeBaseElement, t as TreeController } from "./tree-BtiiDX1a.js";
|
|
20
|
-
import { n as scrollFadeStyles, t as CrumbNavigationElement } from "./crumb-navigation-
|
|
21
|
+
import { n as scrollFadeStyles, t as CrumbNavigationElement } from "./crumb-navigation-BrB0r14u.js";
|
|
21
22
|
import { NarrowedTextElement } from "./narrowed-text.js";
|
|
22
23
|
import { DataDisplayComponent } from "./data-display.js";
|
|
23
24
|
import { EditableLabel } from "./editable-label.js";
|
|
@@ -28,7 +29,7 @@ import { t as IxfxHexEditorElement } from "./hex-editor-Bk6rxhfg.js";
|
|
|
28
29
|
import { t as RadialInputElement } from "./radial-input-CVxGH-Cp.js";
|
|
29
30
|
import { LabelledRadialInput } from "./labelled-radial-input.js";
|
|
30
31
|
import { LedElement } from "./led.js";
|
|
31
|
-
import { t as menu_exports } from "./menu-
|
|
32
|
+
import { t as menu_exports } from "./menu-CdwSe_XN.js";
|
|
32
33
|
import { MillerBaseElement, MillerListElement, MillerTreeController } from "./miller.js";
|
|
33
34
|
import { a as TooltipElement, c as computeColour, i as PlotMultiAxis, l as parseColourScaleAttr, n as PlotSingleAxis, o as PlotDataSeries, r as PlotHistogram, s as applyAgeModification, t as PlotXyAxis, u as readBaseColour } from "./xy-axis-CxHC8z5E.js";
|
|
34
35
|
import { PolarPad } from "./polar-pad.js";
|
|
@@ -40,7 +41,7 @@ import { t as SliderInputElement } from "./slider-input-CzmSVgm7.js";
|
|
|
40
41
|
import { SnapContainer } from "./snap-container.js";
|
|
41
42
|
import { SplitLayoutElement } from "./split-layout.js";
|
|
42
43
|
import { SwipeElement } from "./swipe.js";
|
|
43
|
-
import { t as TabListElement } from "./tab-list-
|
|
44
|
+
import { t as TabListElement } from "./tab-list-mAoD6L0e.js";
|
|
44
45
|
import { a as resolveCssVars, i as attachTimelineInteractions, n as TimelineTrackTabElement, o as resolveGrid, r as timelineStyles, s as TimelineController, t as IxfxTimelineElement } from "./timeline-B2fgDL4U.js";
|
|
45
46
|
import { XyPad } from "./xy-pad.js";
|
|
46
47
|
import { LitElement, css, html, nothing, render } from "lit";
|
|
@@ -5232,6 +5233,258 @@ __decorate([eventOptions({ capture: true })], RangeMultiElement.prototype, "_onI
|
|
|
5232
5233
|
__decorate([eventOptions({ capture: true })], RangeMultiElement.prototype, "_onPointerDown", null);
|
|
5233
5234
|
RangeMultiElement = __decorate([safeCustomElement(`ixfx-range-multi`)], RangeMultiElement);
|
|
5234
5235
|
//#endregion
|
|
5236
|
+
//#region src/select-horiz/select-horiz.ts
|
|
5237
|
+
let SelectHorizElement = class SelectHorizElement extends WheelNudgeMixin(LitElement) {
|
|
5238
|
+
constructor(..._args) {
|
|
5239
|
+
super(..._args);
|
|
5240
|
+
this._selectedIndex = -1;
|
|
5241
|
+
this._slottedItems = [];
|
|
5242
|
+
this.tickled = new TickledController(this, {
|
|
5243
|
+
getItems: () => this._slottedItems.map((_, i) => ({
|
|
5244
|
+
id: i,
|
|
5245
|
+
enabled: true
|
|
5246
|
+
})),
|
|
5247
|
+
onStateChange: () => this._syncTickled()
|
|
5248
|
+
});
|
|
5249
|
+
this._onSlotChange = () => {
|
|
5250
|
+
this._slottedItems = Array.from(this.shadowRoot?.querySelector(`slot`)?.assignedElements() ?? []);
|
|
5251
|
+
const declaredIndex = this._slottedItems.findIndex((item) => item.hasAttribute(`selected`));
|
|
5252
|
+
let resolvedIndex = declaredIndex >= 0 ? declaredIndex : this._selectedIndex;
|
|
5253
|
+
if (resolvedIndex >= this._slottedItems.length) resolvedIndex = this._slottedItems.length - 1;
|
|
5254
|
+
if (resolvedIndex < 0 && this._slottedItems.length > 0) resolvedIndex = 0;
|
|
5255
|
+
this.selectedIndex = resolvedIndex;
|
|
5256
|
+
};
|
|
5257
|
+
this._syncTickled = () => {
|
|
5258
|
+
this._slottedItems.forEach((item, i) => {
|
|
5259
|
+
const isTickled = this.tickled.isTickled(i);
|
|
5260
|
+
item.classList.toggle(`tickled`, isTickled);
|
|
5261
|
+
item.tabIndex = isTickled && this.tickled.inputMode === `keyboard` ? 0 : -1;
|
|
5262
|
+
});
|
|
5263
|
+
};
|
|
5264
|
+
this._findSlottedItem = (target) => {
|
|
5265
|
+
let el = target instanceof Element ? target : null;
|
|
5266
|
+
while (el) {
|
|
5267
|
+
if (this._slottedItems.includes(el)) return el;
|
|
5268
|
+
el = el.parentElement;
|
|
5269
|
+
}
|
|
5270
|
+
};
|
|
5271
|
+
this._handlePointerOver = (e) => {
|
|
5272
|
+
const item = this._findSlottedItem(e.target);
|
|
5273
|
+
if (item) this.tickled.handlePointerEnter(this._slottedItems.indexOf(item));
|
|
5274
|
+
};
|
|
5275
|
+
this._handleKeyDown = (e) => {
|
|
5276
|
+
if (e.key === `ArrowLeft`) {
|
|
5277
|
+
e.preventDefault();
|
|
5278
|
+
this.tickled.handleKeyboardNavigation(`previous`);
|
|
5279
|
+
this._applyTickledSelection();
|
|
5280
|
+
} else if (e.key === `ArrowRight`) {
|
|
5281
|
+
e.preventDefault();
|
|
5282
|
+
this.tickled.handleKeyboardNavigation(`next`);
|
|
5283
|
+
this._applyTickledSelection();
|
|
5284
|
+
} else if (e.key === `Home`) {
|
|
5285
|
+
e.preventDefault();
|
|
5286
|
+
this.tickled.handleKeyboardNavigation(`first`);
|
|
5287
|
+
this._applyTickledSelection();
|
|
5288
|
+
} else if (e.key === `End`) {
|
|
5289
|
+
e.preventDefault();
|
|
5290
|
+
this.tickled.handleKeyboardNavigation(`last`);
|
|
5291
|
+
this._applyTickledSelection();
|
|
5292
|
+
}
|
|
5293
|
+
};
|
|
5294
|
+
this._applyTickledSelection = () => {
|
|
5295
|
+
const id = this.tickled.tickledId;
|
|
5296
|
+
if (id !== void 0 && id !== this._selectedIndex) this.selectedIndex = id;
|
|
5297
|
+
};
|
|
5298
|
+
this._wheelCooldown = false;
|
|
5299
|
+
this._handleClick = (e) => {
|
|
5300
|
+
e.currentTarget.focus();
|
|
5301
|
+
const item = this._findSlottedItem(e.target);
|
|
5302
|
+
const index = item ? this._slottedItems.indexOf(item) : -1;
|
|
5303
|
+
if (index >= 0 && index !== this._selectedIndex) this.selectedIndex = index;
|
|
5304
|
+
};
|
|
5305
|
+
this._updateSelectedAttribute = () => {
|
|
5306
|
+
this._slottedItems.forEach((item, i) => {
|
|
5307
|
+
if (i === this._selectedIndex) item.setAttribute(`selected`, ``);
|
|
5308
|
+
else item.removeAttribute(`selected`);
|
|
5309
|
+
});
|
|
5310
|
+
};
|
|
5311
|
+
this._scrollSelectedIntoView = () => {
|
|
5312
|
+
const item = this._slottedItems[this._selectedIndex];
|
|
5313
|
+
if (item) item.scrollIntoView({
|
|
5314
|
+
inline: `center`,
|
|
5315
|
+
behavior: `smooth`
|
|
5316
|
+
});
|
|
5317
|
+
};
|
|
5318
|
+
this._emitChange = () => {
|
|
5319
|
+
this.dispatchEvent(new CustomEvent(`change`, {
|
|
5320
|
+
detail: {
|
|
5321
|
+
selectedIndex: this._selectedIndex,
|
|
5322
|
+
selectedItem: this.selectedItem,
|
|
5323
|
+
selectedValue: this.selectedValue
|
|
5324
|
+
},
|
|
5325
|
+
bubbles: true,
|
|
5326
|
+
composed: true
|
|
5327
|
+
}));
|
|
5328
|
+
};
|
|
5329
|
+
}
|
|
5330
|
+
static {
|
|
5331
|
+
this.styles = [
|
|
5332
|
+
themeFallbacks,
|
|
5333
|
+
tickledStyles,
|
|
5334
|
+
tickledItemStyles,
|
|
5335
|
+
scrollFadeStyles(`x`),
|
|
5336
|
+
css`
|
|
5337
|
+
:host {
|
|
5338
|
+
--select-horiz-item-width: 80%;
|
|
5339
|
+
--select-horiz-gap: var(--space-s);
|
|
5340
|
+
--select-horiz-bg: var(--surface-3);
|
|
5341
|
+
--select-horiz-border: var(--border);
|
|
5342
|
+
--select-horiz-radius: var(--radius-l);
|
|
5343
|
+
display: flex;
|
|
5344
|
+
width: 100%;
|
|
5345
|
+
background: var(--select-horiz-bg);
|
|
5346
|
+
border: var(--select-horiz-border);
|
|
5347
|
+
border-radius: var(--select-horiz-radius);
|
|
5348
|
+
}
|
|
5349
|
+
|
|
5350
|
+
/* Edge fade (the scroll-fade-x class, see ../styles/scroll-fade.ts) must sit on
|
|
5351
|
+
* the element that actually scrolls - its mask is sized to this element's own
|
|
5352
|
+
* box, and content overflowing a *different*, non-scrolling ancestor gets the
|
|
5353
|
+
* mask tiled across it instead of fading correctly. */
|
|
5354
|
+
.items {
|
|
5355
|
+
display: flex;
|
|
5356
|
+
align-items: center;
|
|
5357
|
+
gap: var(--select-horiz-gap);
|
|
5358
|
+
padding: var(--space-xs) var(--scroll-fade-width, 30px);
|
|
5359
|
+
width: 100%;
|
|
5360
|
+
min-height: 48px;
|
|
5361
|
+
overflow-x: scroll;
|
|
5362
|
+
overflow-y: hidden;
|
|
5363
|
+
scrollbar-width: none;
|
|
5364
|
+
scroll-snap-type: x mandatory;
|
|
5365
|
+
-webkit-overflow-scrolling: touch;
|
|
5366
|
+
cursor: grab;
|
|
5367
|
+
|
|
5368
|
+
box-sizing: border-box;
|
|
5369
|
+
}
|
|
5370
|
+
|
|
5371
|
+
.items:focus-within {
|
|
5372
|
+
cursor: default;
|
|
5373
|
+
}
|
|
5374
|
+
|
|
5375
|
+
.spacer {
|
|
5376
|
+
flex: 0 0 var(--select-horiz-spacer-width, 10%);
|
|
5377
|
+
pointer-events: none;
|
|
5378
|
+
user-select: none;
|
|
5379
|
+
}
|
|
5380
|
+
|
|
5381
|
+
::slotted(*) {
|
|
5382
|
+
flex: 0 0 var(--select-horiz-item-width);
|
|
5383
|
+
scroll-snap-align: center;
|
|
5384
|
+
user-select: none;
|
|
5385
|
+
min-height: 100%;
|
|
5386
|
+
box-sizing: border-box;
|
|
5387
|
+
transition: opacity var(--transition), background var(--transition), border-color var(--transition), color var(--transition);
|
|
5388
|
+
background: var(--item-bg);
|
|
5389
|
+
border: var(--item-border);
|
|
5390
|
+
border-radius: var(--item-border-radius);
|
|
5391
|
+
padding: var(--item-padding);
|
|
5392
|
+
display: grid;
|
|
5393
|
+
align-content: center;
|
|
5394
|
+
justify-content: center;
|
|
5395
|
+
}
|
|
5396
|
+
|
|
5397
|
+
::slotted(.tickled) {
|
|
5398
|
+
background: var(--item-bg-tickled);
|
|
5399
|
+
border-color: var(--item-border-tickled);
|
|
5400
|
+
color: var(--item-text-tickled);
|
|
5401
|
+
}
|
|
5402
|
+
|
|
5403
|
+
::slotted([selected]) {
|
|
5404
|
+
background: var(--item-bg-selected);
|
|
5405
|
+
border-color: var(--item-border-selected);
|
|
5406
|
+
color: var(--item-text-selected);
|
|
5407
|
+
}
|
|
5408
|
+
|
|
5409
|
+
::slotted([selected].tickled) {
|
|
5410
|
+
background: var(--item-bg-selected-tickled);
|
|
5411
|
+
outline: 2px dashed var(--surface-3);
|
|
5412
|
+
outline-offset: -2px;
|
|
5413
|
+
}
|
|
5414
|
+
|
|
5415
|
+
::-webkit-scrollbar {
|
|
5416
|
+
display: none;
|
|
5417
|
+
}
|
|
5418
|
+
`
|
|
5419
|
+
];
|
|
5420
|
+
}
|
|
5421
|
+
get selectedIndex() {
|
|
5422
|
+
return this._selectedIndex;
|
|
5423
|
+
}
|
|
5424
|
+
set selectedIndex(value) {
|
|
5425
|
+
const oldValue = this._selectedIndex;
|
|
5426
|
+
if (value < -1 || this._slottedItems.length > 0 && value >= this._slottedItems.length) return;
|
|
5427
|
+
this._selectedIndex = value;
|
|
5428
|
+
this._updateSelectedAttribute();
|
|
5429
|
+
this._scrollSelectedIntoView();
|
|
5430
|
+
this.tickled.setTickled(value === -1 ? void 0 : value);
|
|
5431
|
+
if (oldValue !== value) this._emitChange();
|
|
5432
|
+
}
|
|
5433
|
+
get selectedValue() {
|
|
5434
|
+
return this._slottedItems[this._selectedIndex]?.getAttribute(`value`) ?? null;
|
|
5435
|
+
}
|
|
5436
|
+
set selectedValue(value) {
|
|
5437
|
+
if (value === null) return;
|
|
5438
|
+
const index = this._slottedItems.findIndex((item) => item.getAttribute(`value`) === value);
|
|
5439
|
+
if (index >= 0) this.selectedIndex = index;
|
|
5440
|
+
}
|
|
5441
|
+
get selectedItem() {
|
|
5442
|
+
return this._slottedItems[this._selectedIndex] ?? null;
|
|
5443
|
+
}
|
|
5444
|
+
get items() {
|
|
5445
|
+
return this._slottedItems;
|
|
5446
|
+
}
|
|
5447
|
+
render() {
|
|
5448
|
+
return html`
|
|
5449
|
+
<div
|
|
5450
|
+
class="items scroll-fade-x"
|
|
5451
|
+
tabindex="0"
|
|
5452
|
+
data-input-mode=${this.tickled.inputMode}
|
|
5453
|
+
@pointerover=${this._handlePointerOver}
|
|
5454
|
+
@pointerleave=${(e) => this.tickled.handlePointerLeave(e)}
|
|
5455
|
+
@keydown=${this._handleKeyDown}
|
|
5456
|
+
@click=${this._handleClick}
|
|
5457
|
+
>
|
|
5458
|
+
<div class="spacer"></div>
|
|
5459
|
+
<slot @slotchange=${this._onSlotChange}></slot>
|
|
5460
|
+
<div class="spacer"></div>
|
|
5461
|
+
</div>
|
|
5462
|
+
`;
|
|
5463
|
+
}
|
|
5464
|
+
willUpdate(changed) {
|
|
5465
|
+
super.willUpdate(changed);
|
|
5466
|
+
this.setAttribute(`data-input-mode`, this.tickled.inputMode);
|
|
5467
|
+
}
|
|
5468
|
+
_applyWheelDelta(direction, _event) {
|
|
5469
|
+
if (this._wheelCooldown) return;
|
|
5470
|
+
this._wheelCooldown = true;
|
|
5471
|
+
this.tickled.handleKeyboardNavigation(direction === 1 ? `next` : `previous`);
|
|
5472
|
+
this._applyTickledSelection();
|
|
5473
|
+
setTimeout(() => {
|
|
5474
|
+
this._wheelCooldown = false;
|
|
5475
|
+
}, 250);
|
|
5476
|
+
}
|
|
5477
|
+
};
|
|
5478
|
+
__decorate([state()], SelectHorizElement.prototype, "_selectedIndex", void 0);
|
|
5479
|
+
__decorate([state()], SelectHorizElement.prototype, "_slottedItems", void 0);
|
|
5480
|
+
__decorate([property({
|
|
5481
|
+
type: Number,
|
|
5482
|
+
reflect: true,
|
|
5483
|
+
attribute: `selected-index`
|
|
5484
|
+
})], SelectHorizElement.prototype, "selectedIndex", null);
|
|
5485
|
+
__decorate([property({ type: String })], SelectHorizElement.prototype, "selectedValue", null);
|
|
5486
|
+
SelectHorizElement = __decorate([safeCustomElement(`ixfx-select-horiz`)], SelectHorizElement);
|
|
5487
|
+
//#endregion
|
|
5235
5488
|
//#region src/snackbar/snackbar.ts
|
|
5236
5489
|
let _instanceCounter = 0;
|
|
5237
5490
|
let SnackbarElement = class SnackbarElement extends LitElement {
|
|
@@ -5494,11 +5747,16 @@ let TabListItemElement = class TabListItemElement extends LitElement {
|
|
|
5494
5747
|
constructor(..._args) {
|
|
5495
5748
|
super(..._args);
|
|
5496
5749
|
this.closeable = false;
|
|
5750
|
+
this.hideLabels = false;
|
|
5497
5751
|
this.iconName = void 0;
|
|
5498
5752
|
this.description = void 0;
|
|
5499
5753
|
this.commandActive = void 0;
|
|
5500
5754
|
this.registry = void 0;
|
|
5501
5755
|
this._compact = false;
|
|
5756
|
+
this._hasToolbarContent = false;
|
|
5757
|
+
this._onToolbarSlotChange = () => {
|
|
5758
|
+
this._updateToolbarContent();
|
|
5759
|
+
};
|
|
5502
5760
|
}
|
|
5503
5761
|
connectedCallback() {
|
|
5504
5762
|
super.connectedCallback();
|
|
@@ -5506,6 +5764,7 @@ let TabListItemElement = class TabListItemElement extends LitElement {
|
|
|
5506
5764
|
this._compact = entry.contentRect.width < 64;
|
|
5507
5765
|
});
|
|
5508
5766
|
this._resizeObserver.observe(this);
|
|
5767
|
+
(this.shadowRoot?.querySelector(`slot[name="toolbar"]`))?.addEventListener(`slotchange`, this._onToolbarSlotChange);
|
|
5509
5768
|
}
|
|
5510
5769
|
disconnectedCallback() {
|
|
5511
5770
|
super.disconnectedCallback();
|
|
@@ -5513,6 +5772,7 @@ let TabListItemElement = class TabListItemElement extends LitElement {
|
|
|
5513
5772
|
this._resizeObserver = void 0;
|
|
5514
5773
|
this._commandCleanup?.();
|
|
5515
5774
|
this._commandCleanup = void 0;
|
|
5775
|
+
(this.shadowRoot?.querySelector(`slot[name="toolbar"]`))?.removeEventListener(`slotchange`, this._onToolbarSlotChange);
|
|
5516
5776
|
}
|
|
5517
5777
|
updated(changed) {
|
|
5518
5778
|
super.updated(changed);
|
|
@@ -5535,12 +5795,21 @@ let TabListItemElement = class TabListItemElement extends LitElement {
|
|
|
5535
5795
|
if (id === this.commandActive) this.click();
|
|
5536
5796
|
});
|
|
5537
5797
|
}
|
|
5798
|
+
_updateToolbarContent() {
|
|
5799
|
+
const slot = this.shadowRoot?.querySelector(`slot[name="toolbar"]`);
|
|
5800
|
+
this._hasToolbarContent = (slot?.assignedElements().length ?? 0) > 0;
|
|
5801
|
+
}
|
|
5802
|
+
firstUpdated() {
|
|
5803
|
+
this._updateToolbarContent();
|
|
5804
|
+
}
|
|
5538
5805
|
render() {
|
|
5539
|
-
const showLabel = !this.
|
|
5806
|
+
const showLabel = !this.hideLabels || !this.iconName;
|
|
5807
|
+
const hasActions = this.closeable || this._hasToolbarContent;
|
|
5540
5808
|
return html`
|
|
5541
5809
|
<div>
|
|
5542
5810
|
${this.iconName ? html`<ixfx-icon name="${this.iconName}"></ixfx-icon>` : nothing}
|
|
5543
5811
|
${showLabel ? html`<span class="label"><slot></slot></span>` : nothing}
|
|
5812
|
+
${hasActions ? html`
|
|
5544
5813
|
<div class="actions">
|
|
5545
5814
|
<div class="toolbar"><slot name="toolbar"></slot></div>
|
|
5546
5815
|
${this.closeable ? html`
|
|
@@ -5554,6 +5823,7 @@ let TabListItemElement = class TabListItemElement extends LitElement {
|
|
|
5554
5823
|
</button>
|
|
5555
5824
|
` : nothing}
|
|
5556
5825
|
</div>
|
|
5826
|
+
` : nothing}
|
|
5557
5827
|
</div>
|
|
5558
5828
|
`;
|
|
5559
5829
|
}
|
|
@@ -5580,17 +5850,19 @@ let TabListItemElement = class TabListItemElement extends LitElement {
|
|
|
5580
5850
|
min-width: 0;
|
|
5581
5851
|
user-select: none;
|
|
5582
5852
|
box-sizing: border-box;
|
|
5853
|
+
height:fit-content;
|
|
5583
5854
|
}
|
|
5584
5855
|
|
|
5585
5856
|
:host > div {
|
|
5586
5857
|
display: flex;
|
|
5587
5858
|
align-items: center;
|
|
5588
|
-
|
|
5589
|
-
padding: var(--tab-padding) calc(2 * var(--tab-padding));
|
|
5859
|
+
padding: var(--tab-padding) calc(2 * var(--tab-padding-horizontal, var(--tab-padding)));
|
|
5590
5860
|
min-width: 0;
|
|
5591
5861
|
width: 100%;
|
|
5592
5862
|
font-weight: 500;
|
|
5593
5863
|
border: var(--selected-tab-border-width) solid transparent;
|
|
5864
|
+
gap: var(--space-s);
|
|
5865
|
+
|
|
5594
5866
|
}
|
|
5595
5867
|
|
|
5596
5868
|
:host([selected]) > div {
|
|
@@ -5601,6 +5873,7 @@ let TabListItemElement = class TabListItemElement extends LitElement {
|
|
|
5601
5873
|
border-right-color: var(--indicator-color-right, transparent);
|
|
5602
5874
|
background: var(--selected-background);
|
|
5603
5875
|
font-weight: var(--selected-tab-weight);
|
|
5876
|
+
border-radius:var(--radius-m);
|
|
5604
5877
|
}
|
|
5605
5878
|
|
|
5606
5879
|
.label {
|
|
@@ -5675,6 +5948,10 @@ let TabListItemElement = class TabListItemElement extends LitElement {
|
|
|
5675
5948
|
}
|
|
5676
5949
|
};
|
|
5677
5950
|
__decorate([property({ type: Boolean })], TabListItemElement.prototype, "closeable", void 0);
|
|
5951
|
+
__decorate([property({
|
|
5952
|
+
type: Boolean,
|
|
5953
|
+
attribute: `hide-labels`
|
|
5954
|
+
})], TabListItemElement.prototype, "hideLabels", void 0);
|
|
5678
5955
|
__decorate([property({
|
|
5679
5956
|
type: String,
|
|
5680
5957
|
attribute: `icon-name`
|
|
@@ -5686,6 +5963,7 @@ __decorate([property({
|
|
|
5686
5963
|
})], TabListItemElement.prototype, "commandActive", void 0);
|
|
5687
5964
|
__decorate([property({ attribute: false })], TabListItemElement.prototype, "registry", void 0);
|
|
5688
5965
|
__decorate([state()], TabListItemElement.prototype, "_compact", void 0);
|
|
5966
|
+
__decorate([state()], TabListItemElement.prototype, "_hasToolbarContent", void 0);
|
|
5689
5967
|
TabListItemElement = __decorate([safeCustomElement(`ixfx-tab-list-item`)], TabListItemElement);
|
|
5690
5968
|
//#endregion
|
|
5691
5969
|
//#region src/tabs/tab-panel.ts
|
|
@@ -6409,6 +6687,6 @@ function init() {
|
|
|
6409
6687
|
console.log(`Init`);
|
|
6410
6688
|
}
|
|
6411
6689
|
//#endregion
|
|
6412
|
-
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, SnackbarElement, 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 };
|
|
6690
|
+
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, SelectHorizElement, SelectHorizontalElement, SliderInputElement, SnackbarElement, 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 };
|
|
6413
6691
|
|
|
6414
6692
|
//# sourceMappingURL=index.js.map
|