@ixfx/components 0.10.5 → 0.10.7

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.
Files changed (89) hide show
  1. package/bundle/index.d.ts +50 -2
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +425 -16
  4. package/bundle/index.js.map +1 -1
  5. package/dist/ac-text.d.ts +1 -1
  6. package/dist/{ac-token--_vCHXWw.d.ts → ac-token-TCLAZeVg.d.ts} +2 -2
  7. package/dist/{ac-token--_vCHXWw.d.ts.map → ac-token-TCLAZeVg.d.ts.map} +1 -1
  8. package/dist/ac-token.d.ts +1 -1
  9. package/dist/{button-BYuf72aR.d.ts → button-CTL45aBl.d.ts} +2 -2
  10. package/dist/{button-BYuf72aR.d.ts.map → button-CTL45aBl.d.ts.map} +1 -1
  11. package/dist/button.d.ts +1 -1
  12. package/dist/colour-picker.d.ts +1 -1
  13. package/dist/crumbs.d.ts +1 -1
  14. package/dist/{data-grid-DE1_gZNk.d.ts → data-grid-BDNjQv3Q.d.ts} +8 -6
  15. package/dist/data-grid-BDNjQv3Q.d.ts.map +1 -0
  16. package/dist/data-grid.d.ts +2 -2
  17. package/dist/data-grid.js +10 -5
  18. package/dist/data-grid.js.map +1 -1
  19. package/dist/{detail-list-CaStSzYN.d.ts → detail-list-BdLuOwQj.d.ts} +4 -4
  20. package/dist/{detail-list-CaStSzYN.d.ts.map → detail-list-BdLuOwQj.d.ts.map} +1 -1
  21. package/dist/detail-list.d.ts +2 -2
  22. package/dist/detail-list.js +49 -1
  23. package/dist/detail-list.js.map +1 -1
  24. package/dist/{grid-list-BJDxBL0x.d.ts → grid-list-DyphX9Fv.d.ts} +2 -2
  25. package/dist/{grid-list-BJDxBL0x.d.ts.map → grid-list-DyphX9Fv.d.ts.map} +1 -1
  26. package/dist/{grid-list-CaMcdpFJ.js → grid-list-k89JpiNy.js} +18 -1
  27. package/dist/grid-list-k89JpiNy.js.map +1 -0
  28. package/dist/grid-list.d.ts +1 -1
  29. package/dist/grid-list.js +1 -1
  30. package/dist/{grouped-item-lister-DETte0Dh.d.ts → grouped-item-lister-Bhyo-dkH.d.ts} +2 -2
  31. package/dist/{grouped-item-lister-DETte0Dh.d.ts.map → grouped-item-lister-Bhyo-dkH.d.ts.map} +1 -1
  32. package/dist/grouped-item-lister.d.ts +1 -1
  33. package/dist/{icon-CDGprSdE.d.ts → icon-DR_3rSyZ.d.ts} +2 -2
  34. package/dist/icon-DR_3rSyZ.d.ts.map +1 -0
  35. package/dist/icons.d.ts +2 -2
  36. package/dist/incr-search.d.ts +1 -1
  37. package/dist/{index-tq6f8007.d.ts → index-BOUaDIW-.d.ts} +2 -2
  38. package/dist/{index-tq6f8007.d.ts.map → index-BOUaDIW-.d.ts.map} +1 -1
  39. package/dist/{index-CoqtMSd9.d.ts → index-BUB5SICW.d.ts} +2 -2
  40. package/dist/{index-CoqtMSd9.d.ts.map → index-BUB5SICW.d.ts.map} +1 -1
  41. package/dist/{index-CsaQwNkz.d.ts → index-BXafRK-_.d.ts} +2 -2
  42. package/dist/{index-CsaQwNkz.d.ts.map → index-BXafRK-_.d.ts.map} +1 -1
  43. package/dist/{index-9AhaHIT2.d.ts → index-C59-JEPl.d.ts} +3 -3
  44. package/dist/{index-9AhaHIT2.d.ts.map → index-C59-JEPl.d.ts.map} +1 -1
  45. package/dist/{index-UvnoZUAo.d.ts → index-CJ5fshD3.d.ts} +2 -2
  46. package/dist/{index-UvnoZUAo.d.ts.map → index-CJ5fshD3.d.ts.map} +1 -1
  47. package/dist/{index-CYndvTWH.d.ts → index-garxxqgV.d.ts} +2 -2
  48. package/dist/{index-CYndvTWH.d.ts.map → index-garxxqgV.d.ts.map} +1 -1
  49. package/dist/index.d.ts +66 -19
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +344 -3
  52. package/dist/index.js.map +1 -1
  53. package/dist/{labelled-input-base-DiTme1JO.d.ts → labelled-input-base-Dp_9KP0G.d.ts} +2 -2
  54. package/dist/{labelled-input-base-DiTme1JO.d.ts.map → labelled-input-base-Dp_9KP0G.d.ts.map} +1 -1
  55. package/dist/labelled-radial-input.d.ts +2 -2
  56. package/dist/labelled-radial-input.d.ts.map +1 -1
  57. package/dist/labelled-range-input.d.ts +1 -1
  58. package/dist/labelled-slider-input.d.ts +1 -1
  59. package/dist/{menu-item-CZi9vy5O.d.ts → menu-item-ZmkXNjek.d.ts} +2 -2
  60. package/dist/{menu-item-CZi9vy5O.d.ts.map → menu-item-ZmkXNjek.d.ts.map} +1 -1
  61. package/dist/menu.d.ts +2 -2
  62. package/dist/miller.d.ts +1 -1
  63. package/dist/panel.d.ts +1 -1
  64. package/dist/{split-layout-JK3xWVX2.d.ts → split-layout-C5SYbDrq.d.ts} +2 -2
  65. package/dist/{split-layout-JK3xWVX2.d.ts.map → split-layout-C5SYbDrq.d.ts.map} +1 -1
  66. package/dist/split-layout.d.ts +1 -1
  67. package/dist/{tab-list-pqfKaVAE.d.ts → tab-list-v8mKX7Fu.d.ts} +2 -2
  68. package/dist/{tab-list-pqfKaVAE.d.ts.map → tab-list-v8mKX7Fu.d.ts.map} +1 -1
  69. package/dist/tabs.d.ts +1 -1
  70. package/dist/{titlebar-Tqu-VvMU.d.ts → titlebar-B5zSTZnF.d.ts} +2 -2
  71. package/dist/{titlebar-Tqu-VvMU.d.ts.map → titlebar-B5zSTZnF.d.ts.map} +1 -1
  72. package/dist/titlebar.d.ts +1 -1
  73. package/dist/tree.d.ts +1 -1
  74. package/dist/{vertical-list-DfcNsa4p.d.ts → vertical-list-C03PN6lx.d.ts} +2 -2
  75. package/dist/{vertical-list-DfcNsa4p.d.ts.map → vertical-list-C03PN6lx.d.ts.map} +1 -1
  76. package/dist/vertical-list.d.ts +1 -1
  77. package/docs-user/README.md +1 -0
  78. package/docs-user/data-grid.md +2 -1
  79. package/docs-user/detail-list.md +31 -3
  80. package/docs-user/grid-list.md +4 -2
  81. package/docs-user/index.json +7 -2
  82. package/docs-user/llms.txt +1 -0
  83. package/docs-user/multicol-list.md +4 -0
  84. package/docs-user/shapefill-value.md +125 -0
  85. package/llms.txt +1 -0
  86. package/package.json +1 -1
  87. package/dist/data-grid-DE1_gZNk.d.ts.map +0 -1
  88. package/dist/grid-list-CaMcdpFJ.js.map +0 -1
  89. package/dist/icon-CDGprSdE.d.ts.map +0 -1
package/dist/index.js CHANGED
@@ -38,9 +38,11 @@ import { DetailListElement } from "./detail-list.js";
38
38
  import { a as distribute, c as toSnapshot, i as buildModel, l as walk, n as SplitPanelElement, o as normalise, r as applySnapshot, s as resolveTracks, t as SplitLayoutElement } from "./split-layout-BJEU1W0d.js";
39
39
  import { TabListElement } from "./tabs.js";
40
40
  import { EditableLabel } from "./editable-label.js";
41
+ import { t as resolveAxisStep } from "./keyboard-B5xD7Fz-.js";
42
+ import { t as WheelNudgeMixin } from "./wheel-nudge-D5rmht3v.js";
41
43
  import { n as EditableNumber, t as LabelledSliderInput } from "./labelled-slider-input-CF2RtzgG.js";
42
44
  import { t as FormElement } from "./form-CsXJX15p.js";
43
- import { t as GridListElement } from "./grid-list-CaMcdpFJ.js";
45
+ import { t as GridListElement } from "./grid-list-k89JpiNy.js";
44
46
  import { PanelElement } from "./panel.js";
45
47
  import { GroupedItemListerElement } from "./grouped-item-lister.js";
46
48
  import { VerticalListElement } from "./vertical-list.js";
@@ -63,7 +65,7 @@ import { SwipeElement } from "./swipe.js";
63
65
  import { a as resolveCssVars, i as attachTimelineInteractions, n as TimelineTrackTabElement, o as resolveGrid, r as timelineStyles, s as TimelineController, t as IxfxTimelineElement } from "./timeline-BP1Ux2EV.js";
64
66
  import { TransitoryLabelElement } from "./transitory-label.js";
65
67
  import { XyPad } from "./xy-pad.js";
66
- import { LitElement, css, html, nothing } from "lit";
68
+ import { LitElement, css, html, nothing, svg } from "lit";
67
69
  import { customElement, eventOptions, property, query, queryAssignedElements, state } from "lit/decorators.js";
68
70
  import { unsafeHTML } from "lit/directives/unsafe-html.js";
69
71
  import { createCommandRegistry } from "@clinth/ui-commands";
@@ -7500,6 +7502,62 @@ let MulticolListElement = class MulticolListElement extends LitElement {
7500
7502
  composed: true
7501
7503
  }));
7502
7504
  }
7505
+ async autoSizeColumns(options) {
7506
+ return new Promise((resolve) => {
7507
+ setTimeout(() => {
7508
+ const minWidth = options?.minWidth ?? MIN_COLUMN_WIDTH;
7509
+ const maxWidth = options?.maxWidth ?? MAX_COLUMN_WIDTH;
7510
+ const measure = (text) => {
7511
+ const span = document.createElement(`span`);
7512
+ span.style.position = `absolute`;
7513
+ span.style.visibility = `hidden`;
7514
+ span.style.whiteSpace = `nowrap`;
7515
+ span.style.font = getComputedStyle(this).font;
7516
+ span.textContent = text;
7517
+ document.body.appendChild(span);
7518
+ const w = span.getBoundingClientRect().width;
7519
+ document.body.removeChild(span);
7520
+ return w;
7521
+ };
7522
+ for (const col of this._columns) {
7523
+ const colEl = this.shadowRoot?.querySelector(`[data-col-id="${col.id}"]`);
7524
+ if (!colEl) continue;
7525
+ const headerEl = colEl.querySelector(`.column-header`);
7526
+ const listerHost = colEl.querySelector(`.lister-host`);
7527
+ let contentWidth = 0;
7528
+ if (listerHost) {
7529
+ const allLabel = listerHost.querySelector(`.all-label`);
7530
+ if (allLabel) contentWidth = Math.max(contentWidth, measure(allLabel.textContent ?? ``));
7531
+ const groupedLister = listerHost.querySelector(`ixfx-grouped-item-lister`);
7532
+ if (groupedLister) {
7533
+ const verticalLists = groupedLister.querySelectorAll(`ixfx-vertical-list`);
7534
+ for (const vl of verticalLists) {
7535
+ const itemEls = vl.querySelectorAll(`li`);
7536
+ for (const li of itemEls) {
7537
+ const labelEl = li.querySelector(`.item-label`);
7538
+ const countEl = li.querySelector(`.count`);
7539
+ const combinedText = (labelEl?.textContent ?? ``) + (countEl?.textContent ?? ``);
7540
+ contentWidth = Math.max(contentWidth, measure(combinedText));
7541
+ }
7542
+ }
7543
+ }
7544
+ }
7545
+ let headerWidth = 0;
7546
+ if (headerEl) {
7547
+ const labelBtn = headerEl.querySelector(`.column-label`);
7548
+ if (labelBtn) headerWidth = measure(labelBtn.textContent ?? ``);
7549
+ }
7550
+ const neededWidth = Math.max(headerWidth, contentWidth + 24 + 16);
7551
+ const clampedWidth = Math.max(minWidth, Math.min(maxWidth, Math.ceil(neededWidth)));
7552
+ col.setWidth(clampedWidth);
7553
+ }
7554
+ this._updateColOffsets();
7555
+ this._emitColumnsChange(`resize`);
7556
+ this.requestUpdate();
7557
+ resolve();
7558
+ }, 0);
7559
+ });
7560
+ }
7503
7561
  };
7504
7562
  __decorate([property({ attribute: false })], MulticolListElement.prototype, "categories", void 0);
7505
7563
  __decorate([property({ attribute: false })], MulticolListElement.prototype, "dataProvider", void 0);
@@ -8915,6 +8973,289 @@ __decorate([property({ type: String })], RatingElement.prototype, "variant", voi
8915
8973
  __decorate([state()], RatingElement.prototype, "_preview", void 0);
8916
8974
  RatingElement = __decorate([customElement(`ixfx-rating`)], RatingElement);
8917
8975
  //#endregion
8976
+ //#region src/util/clamp.ts
8977
+ function clampValue(v, min, max) {
8978
+ return Math.min(Math.max(v, min), max);
8979
+ }
8980
+ //#endregion
8981
+ //#region src/util/geometry.ts
8982
+ function scale(v, fromMin, fromMax, toMin, toMax) {
8983
+ if (fromMax === fromMin) return toMin;
8984
+ return toMin + (v - fromMin) / (fromMax - fromMin) * (toMax - toMin);
8985
+ }
8986
+ //#endregion
8987
+ //#region src/shapefill-value/shapefill-value.ts
8988
+ let ShapefillValueElement = class ShapefillValueElement extends WheelNudgeMixin(LitElement) {
8989
+ constructor(..._args) {
8990
+ super(..._args);
8991
+ this.display = `circle`;
8992
+ this.fillMode = `centre`;
8993
+ this.value = 0;
8994
+ this.min = 0;
8995
+ this.max = 100;
8996
+ this.step = void 0;
8997
+ this.disabled = false;
8998
+ this.#dragging = false;
8999
+ this.#dragStartY = 0;
9000
+ this.#valueAtDragStart = 0;
9001
+ this.#onPointerDown = (event) => {
9002
+ if (this.disabled) return;
9003
+ event.preventDefault();
9004
+ const svgEl = this.renderRoot.querySelector(`svg`);
9005
+ svgEl?.focus();
9006
+ this.#dragging = true;
9007
+ this.#dragStartY = event.clientY;
9008
+ this.#valueAtDragStart = this.value;
9009
+ this.toggleAttribute(`dragging`, true);
9010
+ if (svgEl) svgEl.setPointerCapture(event.pointerId);
9011
+ window.addEventListener(`pointermove`, this.#onPointerMove);
9012
+ window.addEventListener(`pointerup`, this.#onPointerUp);
9013
+ window.addEventListener(`pointercancel`, this.#onPointerUp);
9014
+ };
9015
+ this.#onPointerMove = (event) => {
9016
+ if (!this.#dragging) return;
9017
+ event.preventDefault();
9018
+ const effectiveSensitivity = this.clientHeight * 2 * (event.shiftKey ? 10 : 1);
9019
+ const deltaValue = (this.#dragStartY - event.clientY) / effectiveSensitivity * (this.max - this.min);
9020
+ const relativeValue = scale(this.#valueAtDragStart + deltaValue, this.min, this.max, 0, 1);
9021
+ this.#setValueFromRelative(clampValue(relativeValue, 0, 1), true);
9022
+ };
9023
+ this.#onPointerUp = () => {
9024
+ this.#dragging = false;
9025
+ this.toggleAttribute(`dragging`, false);
9026
+ const svgEl = this.renderRoot.querySelector(`svg`);
9027
+ if (svgEl && `hasPointerCapture` in svgEl && typeof svgEl.hasPointerCapture === `function`) {
9028
+ if (svgEl.hasPointerCapture(1)) svgEl.releasePointerCapture(1);
9029
+ }
9030
+ window.removeEventListener(`pointermove`, this.#onPointerMove);
9031
+ window.removeEventListener(`pointerup`, this.#onPointerUp);
9032
+ window.removeEventListener(`pointercancel`, this.#onPointerUp);
9033
+ };
9034
+ this.#onKeyDown = (event) => {
9035
+ if (this.disabled) return;
9036
+ const range = this.max - this.min;
9037
+ const effectiveStep = resolveAxisStep(range, this.stops, this.step, event.shiftKey);
9038
+ let handled = false;
9039
+ switch (event.key) {
9040
+ case `ArrowUp`:
9041
+ case `ArrowRight`:
9042
+ this.#stepByRelativeDelta(effectiveStep / range, true);
9043
+ handled = true;
9044
+ break;
9045
+ case `ArrowDown`:
9046
+ case `ArrowLeft`:
9047
+ this.#stepByRelativeDelta(-effectiveStep / range, true);
9048
+ handled = true;
9049
+ break;
9050
+ case `Home`:
9051
+ this.#setValueFromRelative(0, true);
9052
+ handled = true;
9053
+ break;
9054
+ case `End`:
9055
+ this.#setValueFromRelative(1, true);
9056
+ handled = true;
9057
+ }
9058
+ if (handled) event.preventDefault();
9059
+ };
9060
+ }
9061
+ #dragging;
9062
+ #dragStartY;
9063
+ #valueAtDragStart;
9064
+ #changeDebounceTimer;
9065
+ #getRelativeValue() {
9066
+ return scale(this.value, this.min, this.max, 0, 1);
9067
+ }
9068
+ #quantise(value) {
9069
+ if (this.stops && this.stops > 1) {
9070
+ const step = (this.max - this.min) / this.stops;
9071
+ return Math.round((value - this.min) / step) * step + this.min;
9072
+ }
9073
+ return value;
9074
+ }
9075
+ #setValueFromRelative(relativeValue, isUserInteraction = false) {
9076
+ const newValue = scale(relativeValue, 0, 1, this.min, this.max);
9077
+ const clampedValue = this.#quantise(clampValue(newValue, this.min, this.max));
9078
+ if (clampedValue === this.value) return;
9079
+ const previousValue = this.value;
9080
+ this.value = clampedValue;
9081
+ if (this.hasAttribute(`data-tooltip-live`)) {
9082
+ const percentage = Math.round(this.#getRelativeValue() * 100);
9083
+ this.setAttribute(`data-tooltip`, `${percentage}%`);
9084
+ }
9085
+ if (isUserInteraction) {
9086
+ this.dispatchEvent(new CustomEvent(`input`, {
9087
+ detail: {
9088
+ value: this.value,
9089
+ valueRelative: this.#getRelativeValue()
9090
+ },
9091
+ bubbles: true,
9092
+ composed: true
9093
+ }));
9094
+ this.#scheduleChangeEvent(previousValue);
9095
+ } else this.#fireChangeEvent(previousValue);
9096
+ }
9097
+ #scheduleChangeEvent(previousValue) {
9098
+ if (this.#changeDebounceTimer !== void 0) clearTimeout(this.#changeDebounceTimer);
9099
+ this.#changeDebounceTimer = window.setTimeout(() => {
9100
+ this.#fireChangeEvent(previousValue);
9101
+ this.#changeDebounceTimer = void 0;
9102
+ }, 150);
9103
+ }
9104
+ #fireChangeEvent(previousValue) {
9105
+ this.dispatchEvent(new CustomEvent(`change`, {
9106
+ detail: {
9107
+ value: this.value,
9108
+ valueRelative: this.#getRelativeValue(),
9109
+ previousValue
9110
+ },
9111
+ bubbles: true,
9112
+ composed: true
9113
+ }));
9114
+ }
9115
+ #onPointerDown;
9116
+ #onPointerMove;
9117
+ #onPointerUp;
9118
+ #onKeyDown;
9119
+ /**
9120
+ * Apply a relative-delta nudge to the current value, clamped to [min, max] and
9121
+ * quantised. Shared between keyboard arrow keys and the wheel handler.
9122
+ */
9123
+ #stepByRelativeDelta(relativeDelta, isUserInteraction) {
9124
+ this.#setValueFromRelative(clampValue(this.#getRelativeValue() + relativeDelta, 0, 1), isUserInteraction);
9125
+ }
9126
+ _applyWheelDelta(direction, event) {
9127
+ const range = this.max - this.min;
9128
+ const effectiveStep = resolveAxisStep(range, this.stops, this.step, event.shiftKey);
9129
+ this.#stepByRelativeDelta(direction * effectiveStep / range, true);
9130
+ }
9131
+ #renderCircle() {
9132
+ const relativeValue = this.#getRelativeValue();
9133
+ const outerRadius = 45;
9134
+ const innerRadius = outerRadius * relativeValue;
9135
+ const outerCx = 50;
9136
+ const outerCy = 50;
9137
+ let cx = outerCx;
9138
+ if (this.fillMode === `left`) cx = 5 + outerRadius * relativeValue;
9139
+ else if (this.fillMode === `right`) cx = 95 - outerRadius * relativeValue;
9140
+ return svg`
9141
+ <circle class="fill" cx="${cx}" cy="${outerCy}" r="${innerRadius}" />
9142
+ <circle class="outline" cx="${outerCx}" cy="${outerCy}" r="${outerRadius}" fill="none" />
9143
+ `;
9144
+ }
9145
+ #renderRectangle() {
9146
+ const relativeValue = this.#getRelativeValue();
9147
+ const outerSize = 90;
9148
+ const outerOffset = 5;
9149
+ if (this.fillMode === `left` || this.fillMode === `right`) {
9150
+ const innerWidth = outerSize * relativeValue;
9151
+ const x = this.fillMode === `left` ? outerOffset : 95 - innerWidth;
9152
+ return svg`
9153
+ <rect class="fill" x="${x}" y="${outerOffset}" width="${innerWidth}" height="${outerSize}" />
9154
+ <rect class="outline" x="${outerOffset}" y="${outerOffset}" width="${outerSize}" height="${outerSize}" fill="none" />
9155
+ `;
9156
+ }
9157
+ const innerSize = outerSize * relativeValue;
9158
+ const innerOffset = (100 - innerSize) / 2;
9159
+ return svg`
9160
+ <rect class="fill" x="${innerOffset}" y="${innerOffset}" width="${innerSize}" height="${innerSize}" />
9161
+ <rect class="outline" x="${outerOffset}" y="${outerOffset}" width="${outerSize}" height="${outerSize}" fill="none" />
9162
+ `;
9163
+ }
9164
+ render() {
9165
+ const preserveAspectRatio = this.display === `rectangle` ? `none` : `xMidYMid meet`;
9166
+ return html`
9167
+ <svg
9168
+ viewBox="0 0 100 100"
9169
+ preserveAspectRatio="${preserveAspectRatio}"
9170
+ tabindex="${this.disabled ? -1 : 0}"
9171
+ @pointerdown="${this.#onPointerDown}"
9172
+ @keydown="${this.#onKeyDown}"
9173
+ style="cursor: ${this.#dragging ? `ns-resize` : `grab`}"
9174
+ >
9175
+ ${this.display === `rectangle` ? this.#renderRectangle() : this.#renderCircle()}
9176
+ </svg>
9177
+ `;
9178
+ }
9179
+ updated(changed) {
9180
+ super.updated(changed);
9181
+ this.style.setProperty(`--shapefill-value-relative`, this.#getRelativeValue().toString());
9182
+ }
9183
+ disconnectedCallback() {
9184
+ super.disconnectedCallback();
9185
+ if (this.#changeDebounceTimer !== void 0) clearTimeout(this.#changeDebounceTimer);
9186
+ this.#onPointerUp();
9187
+ }
9188
+ static {
9189
+ this.styles = [
9190
+ themeFallbacks,
9191
+ prominenceStyles,
9192
+ css`
9193
+ :host {
9194
+ display: inline-block;
9195
+ width: 2em;
9196
+ height: 2em;
9197
+ touch-action: none;
9198
+ user-select: none;
9199
+
9200
+ /* Dynamic value - set by JS */
9201
+ --shapefill-value-relative: 0;
9202
+
9203
+ /* Public styling variables — consumer customisable */
9204
+ --shapefill-value-outline-color: var(--surface-4);
9205
+ --shapefill-value-outline-width: 2;
9206
+ --shapefill-value-fill-color: var(--accent);
9207
+ }
9208
+
9209
+ :host([disabled]) {
9210
+ cursor: not-allowed;
9211
+ }
9212
+
9213
+ svg {
9214
+ width: 100%;
9215
+ height: 100%;
9216
+ outline: none;
9217
+ display: block;
9218
+ }
9219
+
9220
+ svg:active {
9221
+ cursor: grabbing;
9222
+ }
9223
+
9224
+ svg:focus-visible {
9225
+ outline: var(--shapefill-value-focus-outline, 2px solid var(--accent));
9226
+ outline-offset: var(--shapefill-value-focus-outline-offset, 2px);
9227
+ }
9228
+
9229
+ .outline {
9230
+ stroke: var(--shapefill-value-outline-color, var(--surface-4));
9231
+ stroke-width: var(--shapefill-value-outline-width, 2);
9232
+ vector-effect: non-scaling-stroke;
9233
+ }
9234
+
9235
+ .fill {
9236
+ fill: var(--shapefill-value-fill-color, var(--accent));
9237
+ transition: var(--shapefill-value-fill-transition, none);
9238
+ }
9239
+ `
9240
+ ];
9241
+ }
9242
+ };
9243
+ __decorate([property({ type: String })], ShapefillValueElement.prototype, "display", void 0);
9244
+ __decorate([property({
9245
+ type: String,
9246
+ attribute: `fill-mode`
9247
+ })], ShapefillValueElement.prototype, "fillMode", void 0);
9248
+ __decorate([property({ type: Number })], ShapefillValueElement.prototype, "value", void 0);
9249
+ __decorate([property({ type: Number })], ShapefillValueElement.prototype, "min", void 0);
9250
+ __decorate([property({ type: Number })], ShapefillValueElement.prototype, "max", void 0);
9251
+ __decorate([property({ type: Number })], ShapefillValueElement.prototype, "step", void 0);
9252
+ __decorate([property({ type: Number })], ShapefillValueElement.prototype, "stops", void 0);
9253
+ __decorate([property({
9254
+ type: Boolean,
9255
+ reflect: true
9256
+ })], ShapefillValueElement.prototype, "disabled", void 0);
9257
+ ShapefillValueElement = __decorate([safeCustomElement(`ixfx-shapefill-value`)], ShapefillValueElement);
9258
+ //#endregion
8918
9259
  //#region src/sliding-number/sliding-number.ts
8919
9260
  const REEL_DIGITS = Array.from({ length: 30 }, (_, index) => index % 10);
8920
9261
  const SECTION_RANK = {
@@ -12578,6 +12919,6 @@ function init() {
12578
12919
  console.log(`Init`);
12579
12920
  }
12580
12921
  //#endregion
12581
- export { AcTextElement, AcTokenElement, BottomDrawerElement, ButtonElement, Checkbox, ColourPicker, ColourPickerPopup, CrumbNavigationElement, CrumbPathController, CrumbPathElement, DataController, DataDisplayComponent, DataGridElement, DataTableElement, DetailListElement, DockHostElement, DockPanelElement, EditableLabel, EditableNumber, FormElement, FormGroupElement, FormPartElement, GridListElement, GroupedItemListerElement, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IcicleTreeListElement, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, IxfxHexEditorElement, IxfxIconElement, IxfxTimelineElement, KeyedElementIndex, LIST_ITEM_MOTION_MS, LIST_SEARCH_COMMAND_IDS, LIST_SEARCH_MODES, LabelledRadialInput, LabelledRangeInput, LabelledSliderInput, LedElement, ListDragSelectController, ListNativeDragController, ListSearchController, ListSelectionController, menu_exports as Menu, MillerBaseElement, MillerListElement, MillerTreeController, MulticolListElement, NarrowedTextElement, NotificationManager, NotificationPillElement, PanTextElement, PanelElement, PanelGroupElement, PlotDataSeries, PlotHistogram, PlotMultiAxis, PlotSingleAxis, PlotXyAxis, PolarPad, RadialInputElement, RadioGroup, RangeElement, RangeInput, RangeMultiElement, RatingElement, SelectHorizElement, SliderInputElement, SlidingNumberElement, SnackbarElement, SnapContainer, SplitButton, SplitLayoutElement, SplitPanelElement, SwipeElement, TabController, TabListElement, TabListItemElement, TabPanelElement, TabPanelsElement, TextShimmerElement, TickledController, TimelineController, TimelineTrackTabElement, TitlebarElement, ToolbarElement, ToolbarGroupElement, TooltipElement, TransitoryLabelElement, TreeBaseElement, TreeController, TreeDataModel, TreeDropController, TreeKeyboardNavController, TreeListElement, TreemapListElement, TwoSplitLayoutElement, VerticalListElement, XyPad, addPanelToStack, animateListItemIn, animateListItemOut, applyAgeModification, applyHighlights, applySnapshot, applyTreeDrop, attachTimelineInteractions, bottomDrawerCommandId, buildHighlightTargets, buildModel, captionForEntry, clearHighlights, collectContainerNames, collectDataResult, collectPanelIds, collectStackPaths, computeColour, computeIcicleLayout, computeLeafGeoms, computeTreemapLayout, createAcCompletionProvider, createDataListSearchAdapter, createDefaultListDragPreview, createElementIncrSearch, createElementListSearchAdapter, createEmptyLayout, createEmptyStack, createFuzzySearch, createIncrSearch, createPillRenderer, createSplit, createStack, createTreeListAdapter, createTreeListSearchAdapter, createVerticalListAdapter, distribute, dropTargetFor, extractStack, findIcicleNode, findIciclePath, findNode, findParentOf, findStackOf, findStackPathByName, findTreemapNode, findTreemapPath, getActiveDragPanelId, getIcon, getIconEntry, getIconFont, getLeafNeighbours, hasIcon, iconBus, init, insertBeside, isDragging, isMultiMode, isSplit, isStack, keyForElement, listItemFadeKeyframes, listSearchStyles, monitorIndeterminate, moveLeafNodeToEdge, moveLeafStep, normalise, normaliseValue, normalize, panelGapIndex, parseColourScaleAttr, parseLayout, pointerOverAnyHost, prefersReducedMotion, pruneDraggedDescendants, readBaseColour, registerFontIcon, registerIcon, registerListSearchCommands, removePanelFromStack, resolveCssVars, resolveGrid, resolveLeafPath, resolveTracks, serializeLayout, setActive, setIconFont, startListItemOutAnimation, svgToDataUri, swapLeaves, tickledItemStyles, tickledStyles, timelineStyles, toSnapshot, toolbarGapIndex, walk, wrapRoot };
12922
+ export { AcTextElement, AcTokenElement, BottomDrawerElement, ButtonElement, Checkbox, ColourPicker, ColourPickerPopup, CrumbNavigationElement, CrumbPathController, CrumbPathElement, DataController, DataDisplayComponent, DataGridElement, DataTableElement, DetailListElement, DockHostElement, DockPanelElement, EditableLabel, EditableNumber, FormElement, FormGroupElement, FormPartElement, GridListElement, GroupedItemListerElement, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IcicleTreeListElement, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, IxfxHexEditorElement, IxfxIconElement, IxfxTimelineElement, KeyedElementIndex, LIST_ITEM_MOTION_MS, LIST_SEARCH_COMMAND_IDS, LIST_SEARCH_MODES, LabelledRadialInput, LabelledRangeInput, LabelledSliderInput, LedElement, ListDragSelectController, ListNativeDragController, ListSearchController, ListSelectionController, menu_exports as Menu, MillerBaseElement, MillerListElement, MillerTreeController, MulticolListElement, NarrowedTextElement, NotificationManager, NotificationPillElement, PanTextElement, PanelElement, PanelGroupElement, PlotDataSeries, PlotHistogram, PlotMultiAxis, PlotSingleAxis, PlotXyAxis, PolarPad, RadialInputElement, RadioGroup, RangeElement, RangeInput, RangeMultiElement, RatingElement, SelectHorizElement, ShapefillValueElement, SliderInputElement, SlidingNumberElement, SnackbarElement, SnapContainer, SplitButton, SplitLayoutElement, SplitPanelElement, SwipeElement, TabController, TabListElement, TabListItemElement, TabPanelElement, TabPanelsElement, TextShimmerElement, TickledController, TimelineController, TimelineTrackTabElement, TitlebarElement, ToolbarElement, ToolbarGroupElement, TooltipElement, TransitoryLabelElement, TreeBaseElement, TreeController, TreeDataModel, TreeDropController, TreeKeyboardNavController, TreeListElement, TreemapListElement, TwoSplitLayoutElement, VerticalListElement, XyPad, addPanelToStack, animateListItemIn, animateListItemOut, applyAgeModification, applyHighlights, applySnapshot, applyTreeDrop, attachTimelineInteractions, bottomDrawerCommandId, buildHighlightTargets, buildModel, captionForEntry, clearHighlights, collectContainerNames, collectDataResult, collectPanelIds, collectStackPaths, computeColour, computeIcicleLayout, computeLeafGeoms, computeTreemapLayout, createAcCompletionProvider, createDataListSearchAdapter, createDefaultListDragPreview, createElementIncrSearch, createElementListSearchAdapter, createEmptyLayout, createEmptyStack, createFuzzySearch, createIncrSearch, createPillRenderer, createSplit, createStack, createTreeListAdapter, createTreeListSearchAdapter, createVerticalListAdapter, distribute, dropTargetFor, extractStack, findIcicleNode, findIciclePath, findNode, findParentOf, findStackOf, findStackPathByName, findTreemapNode, findTreemapPath, getActiveDragPanelId, getIcon, getIconEntry, getIconFont, getLeafNeighbours, hasIcon, iconBus, init, insertBeside, isDragging, isMultiMode, isSplit, isStack, keyForElement, listItemFadeKeyframes, listSearchStyles, monitorIndeterminate, moveLeafNodeToEdge, moveLeafStep, normalise, normaliseValue, normalize, panelGapIndex, parseColourScaleAttr, parseLayout, pointerOverAnyHost, prefersReducedMotion, pruneDraggedDescendants, readBaseColour, registerFontIcon, registerIcon, registerListSearchCommands, removePanelFromStack, resolveCssVars, resolveGrid, resolveLeafPath, resolveTracks, serializeLayout, setActive, setIconFont, startListItemOutAnimation, svgToDataUri, swapLeaves, tickledItemStyles, tickledStyles, timelineStyles, toSnapshot, toolbarGapIndex, walk, wrapRoot };
12582
12923
 
12583
12924
  //# sourceMappingURL=index.js.map