@emuanalytics/flow-rdf-ui 4.0.3 → 4.0.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.cjs CHANGED
@@ -1782,6 +1782,32 @@ function waitForEvent(el, eventName) {
1782
1782
  });
1783
1783
  }
1784
1784
 
1785
+ function watch(propertyName, options) {
1786
+ const resolvedOptions = {
1787
+ waitUntilFirstUpdate: false,
1788
+ ...options
1789
+ };
1790
+ return (proto, decoratedFnName) => {
1791
+ const { update } = proto;
1792
+ const watchedProperties = Array.isArray(propertyName) ? propertyName : [propertyName];
1793
+ proto.update = function(changedProps) {
1794
+ watchedProperties.forEach((property) => {
1795
+ const key = property;
1796
+ if (changedProps.has(key)) {
1797
+ const oldValue = changedProps.get(key);
1798
+ const newValue = this[key];
1799
+ if (oldValue !== newValue) {
1800
+ if (!resolvedOptions.waitUntilFirstUpdate || this.hasUpdated) {
1801
+ this[decoratedFnName](oldValue, newValue);
1802
+ }
1803
+ }
1804
+ }
1805
+ });
1806
+ update.call(this, changedProps);
1807
+ };
1808
+ };
1809
+ }
1810
+
1785
1811
  var __defProp$Z = Object.defineProperty;
1786
1812
  var __getOwnPropDesc$Z = Object.getOwnPropertyDescriptor;
1787
1813
  var __decorateClass$Z = (decorators, target, key, kind) => {
@@ -1820,6 +1846,23 @@ __decorateClass$Z([
1820
1846
  __decorateClass$Z([
1821
1847
  decorators_js.property()
1822
1848
  ], FlowRdfElement.prototype, "lang", 2);
1849
+ const _FlowRdfFormControl = class _FlowRdfFormControl extends FlowRdfElement {
1850
+ handleClassChange() {
1851
+ this.classList.add(_FlowRdfFormControl.FLOW_UI_FORM_CONTROL_CLASS);
1852
+ }
1853
+ connectedCallback() {
1854
+ super.connectedCallback();
1855
+ this.classList.add(_FlowRdfFormControl.FLOW_UI_FORM_CONTROL_CLASS);
1856
+ }
1857
+ };
1858
+ _FlowRdfFormControl.FLOW_UI_FORM_CONTROL_CLASS = "flow-ui-form-control";
1859
+ __decorateClass$Z([
1860
+ decorators_js.property({ reflect: true })
1861
+ ], _FlowRdfFormControl.prototype, "class", 2);
1862
+ __decorateClass$Z([
1863
+ watch("class")
1864
+ ], _FlowRdfFormControl.prototype, "handleClassChange", 1);
1865
+ let FlowRdfFormControl = _FlowRdfFormControl;
1823
1866
 
1824
1867
  class HasSlotController {
1825
1868
  constructor(host, ...slotNames) {
@@ -1879,32 +1922,6 @@ function getTextContent(slot) {
1879
1922
  return text;
1880
1923
  }
1881
1924
 
1882
- function watch(propertyName, options) {
1883
- const resolvedOptions = {
1884
- waitUntilFirstUpdate: false,
1885
- ...options
1886
- };
1887
- return (proto, decoratedFnName) => {
1888
- const { update } = proto;
1889
- const watchedProperties = Array.isArray(propertyName) ? propertyName : [propertyName];
1890
- proto.update = function(changedProps) {
1891
- watchedProperties.forEach((property) => {
1892
- const key = property;
1893
- if (changedProps.has(key)) {
1894
- const oldValue = changedProps.get(key);
1895
- const newValue = this[key];
1896
- if (oldValue !== newValue) {
1897
- if (!resolvedOptions.waitUntilFirstUpdate || this.hasUpdated) {
1898
- this[decoratedFnName](oldValue, newValue);
1899
- }
1900
- }
1901
- }
1902
- });
1903
- update.call(this, changedProps);
1904
- };
1905
- };
1906
- }
1907
-
1908
1925
  const defaultAnimationRegistry = /* @__PURE__ */ new Map();
1909
1926
  const customAnimationRegistry = /* @__PURE__ */ new WeakMap();
1910
1927
  function ensureAnimation(animation) {
@@ -5511,7 +5528,7 @@ var __decorateClass$N = (decorators, target, key, kind) => {
5511
5528
  __defProp$N(target, key, result);
5512
5529
  return result;
5513
5530
  };
5514
- let FlowUiButton = class extends FlowRdfElement {
5531
+ let FlowUiButton = class extends FlowRdfFormControl {
5515
5532
  constructor() {
5516
5533
  super(...arguments);
5517
5534
  this.formControlController = new FormControlController(this, {
@@ -7346,6 +7363,7 @@ const styles$K = lit.css`
7346
7363
  cursor: pointer;
7347
7364
  }
7348
7365
 
7366
+ /* Sizes */
7349
7367
  .checkbox--small {
7350
7368
  --toggle-size: var(--flow-ui-toggle-size-small);
7351
7369
  font-size: var(--flow-ui-input-font-size-small);
@@ -7361,6 +7379,7 @@ const styles$K = lit.css`
7361
7379
  font-size: var(--flow-ui-input-font-size-large);
7362
7380
  }
7363
7381
 
7382
+ /* Color variants */
7364
7383
  .checkbox--primary {
7365
7384
  --checkbox-color: var(--flow-ui-color-primary-500);
7366
7385
  --checkbox-hover-color: var(--flow-ui-color-primary-400);
@@ -7391,6 +7410,23 @@ const styles$K = lit.css`
7391
7410
  --checkbox-hover-color: var(--flow-ui-color-neutral-400);
7392
7411
  }
7393
7412
 
7413
+ /* Alternative 'full-width' style */
7414
+ :host([full-width]) {
7415
+ display: block;
7416
+ margin-top: var(--flow-ui-spacing-small);
7417
+ }
7418
+
7419
+ .checkbox--full-width {
7420
+ display: flex;
7421
+ flex-direction: row-reverse;
7422
+ align-items: center;
7423
+ }
7424
+
7425
+ .checkbox--full-width .checkbox__label {
7426
+ flex: 1;
7427
+ margin: 0;
7428
+ }
7429
+
7394
7430
  .checkbox__control {
7395
7431
  flex: 0 0 auto;
7396
7432
  position: relative;
@@ -7489,7 +7525,7 @@ var __decorateClass$I = (decorators, target, key, kind) => {
7489
7525
  __defProp$I(target, key, result);
7490
7526
  return result;
7491
7527
  };
7492
- let FlowUiCheckbox = class extends FlowRdfElement {
7528
+ let FlowUiCheckbox = class extends FlowRdfFormControl {
7493
7529
  constructor() {
7494
7530
  super(...arguments);
7495
7531
  this.hasSlotController = new HasSlotController(this, "[default]");
@@ -7508,6 +7544,7 @@ let FlowUiCheckbox = class extends FlowRdfElement {
7508
7544
  this.defaultChecked = false;
7509
7545
  this.form = "";
7510
7546
  this.required = false;
7547
+ this.fullWidth = false;
7511
7548
  }
7512
7549
  connectedCallback() {
7513
7550
  super.connectedCallback();
@@ -7515,6 +7552,7 @@ let FlowUiCheckbox = class extends FlowRdfElement {
7515
7552
  this.indeterminate = boolean(this.indeterminate, true);
7516
7553
  this.disabled = boolean(this.disabled, true);
7517
7554
  this.required = boolean(this.required, true);
7555
+ this.fullWidth = boolean(this.fullWidth, true);
7518
7556
  }
7519
7557
  /** Gets the validity state object */
7520
7558
  get validity() {
@@ -7605,7 +7643,8 @@ let FlowUiCheckbox = class extends FlowRdfElement {
7605
7643
  "checkbox--success": this.variant === "success",
7606
7644
  "checkbox--warning": this.variant === "warning",
7607
7645
  "checkbox--danger": this.variant === "danger",
7608
- "checkbox--neutral": this.variant === "neutral"
7646
+ "checkbox--neutral": this.variant === "neutral",
7647
+ "checkbox--full-width": this.fullWidth
7609
7648
  })}
7610
7649
  >
7611
7650
  <input
@@ -7697,6 +7736,9 @@ __decorateClass$I([
7697
7736
  __decorateClass$I([
7698
7737
  decorators_js.property()
7699
7738
  ], FlowUiCheckbox.prototype, "variant", 2);
7739
+ __decorateClass$I([
7740
+ decorators_js.property({ type: Boolean, reflect: true, attribute: "full-width" })
7741
+ ], FlowUiCheckbox.prototype, "fullWidth", 2);
7700
7742
  __decorateClass$I([
7701
7743
  watch("disabled", { waitUntilFirstUpdate: true })
7702
7744
  ], FlowUiCheckbox.prototype, "handleDisabledChange", 1);
@@ -7860,8 +7902,12 @@ class FlowUiColorMapper extends FlowRdfElement {
7860
7902
  }
7861
7903
  connectedCallback() {
7862
7904
  super.connectedCallback();
7905
+ this.classList.add(FlowRdfFormControl.FLOW_UI_FORM_CONTROL_CLASS);
7863
7906
  this.defaultColorStop = boolean(this.defaultColorStop, true);
7864
7907
  }
7908
+ handleClassChange() {
7909
+ this.classList.add(FlowRdfFormControl.FLOW_UI_FORM_CONTROL_CLASS);
7910
+ }
7865
7911
  handleFixedPickerClick(event) {
7866
7912
  event.stopPropagation();
7867
7913
  }
@@ -8043,6 +8089,9 @@ __decorateClass$H([
8043
8089
  __decorateClass$H([
8044
8090
  decorators_js.query(".dialog-info")
8045
8091
  ], FlowUiColorMapper.prototype, "infoDialog", 2);
8092
+ __decorateClass$H([
8093
+ decorators_js.property({ reflect: true })
8094
+ ], FlowUiColorMapper.prototype, "class", 2);
8046
8095
  __decorateClass$H([
8047
8096
  decorators_js.property({ type: Object })
8048
8097
  ], FlowUiColorMapper.prototype, "options", 2);
@@ -8058,6 +8107,9 @@ __decorateClass$H([
8058
8107
  __decorateClass$H([
8059
8108
  decorators_js.property()
8060
8109
  ], FlowUiColorMapper.prototype, "swatches", 2);
8110
+ __decorateClass$H([
8111
+ watch("class")
8112
+ ], FlowUiColorMapper.prototype, "handleClassChange", 1);
8061
8113
  __decorateClass$H([
8062
8114
  throttle(100)
8063
8115
  ], FlowUiColorMapper.prototype, "emitChange", 1);
@@ -8939,7 +8991,7 @@ const d3Format = d3Format$1.formatLocale({
8939
8991
  currency: ["\xA3", ""]
8940
8992
  }).format;
8941
8993
  const DEFAULT_FORMATTER$1 = (val) => isNil(val) ? "--" : val.toString();
8942
- class FlowUiInput extends FlowRdfElement {
8994
+ class FlowUiInput extends FlowRdfFormControl {
8943
8995
  constructor() {
8944
8996
  super(...arguments);
8945
8997
  this.formControlController = new FormControlController(this, {
@@ -9822,7 +9874,7 @@ var __decorateClass$E = (decorators, target, key, kind) => {
9822
9874
  return result;
9823
9875
  };
9824
9876
  const hasEyeDropper = typeof window !== "undefined" && "EyeDropper" in window;
9825
- class FlowUiColorPicker extends FlowRdfElement {
9877
+ class FlowUiColorPicker extends FlowRdfFormControl {
9826
9878
  constructor() {
9827
9879
  super(...arguments);
9828
9880
  this.formControlController = new FormControlController(this);
@@ -10822,7 +10874,7 @@ var __decorateClass$D = (decorators, target, key, kind) => {
10822
10874
  __defProp$D(target, key, result);
10823
10875
  return result;
10824
10876
  };
10825
- class FlowUiColorStop extends FlowRdfElement {
10877
+ class FlowUiColorStop extends FlowRdfFormControl {
10826
10878
  constructor() {
10827
10879
  super(...arguments);
10828
10880
  // private readonly localize = new LocalizeController(this);
@@ -11569,7 +11621,7 @@ const popupOptions = {
11569
11621
  medium: { distance: -3, skidding: -9 },
11570
11622
  large: { distance: -5, skidding: -15 }
11571
11623
  };
11572
- class FlowUiDateTimePicker extends FlowRdfElement {
11624
+ class FlowUiDateTimePicker extends FlowRdfFormControl {
11573
11625
  constructor() {
11574
11626
  super(...arguments);
11575
11627
  this.formControlController = new FormControlController(this, {
@@ -15622,7 +15674,7 @@ const styles$n = lit.css`
15622
15674
  /* Footer */
15623
15675
  .query-builder__footer {
15624
15676
  text-align: right;
15625
- padding-block: var(--footer-spacing);
15677
+ padding-top: var(--footer-spacing);
15626
15678
  }
15627
15679
 
15628
15680
  .query-builder__footer ::slotted(flow-ui-button:not(:first-of-type)) {
@@ -15649,7 +15701,7 @@ const _FlowUiQueryBuilder = class _FlowUiQueryBuilder extends FlowRdfElement {
15649
15701
  constructor() {
15650
15702
  super(...arguments);
15651
15703
  this._value = { condition: "and", rules: [] };
15652
- this.hasSlotController = new HasSlotController(this, "help-text", "label");
15704
+ this.hasSlotController = new HasSlotController(this, "help-text", "label", "footer");
15653
15705
  this.value = { condition: "and", rules: [] };
15654
15706
  this.config = { fields: {} };
15655
15707
  this.size = "medium";
@@ -15676,8 +15728,12 @@ const _FlowUiQueryBuilder = class _FlowUiQueryBuilder extends FlowRdfElement {
15676
15728
  }
15677
15729
  connectedCallback() {
15678
15730
  super.connectedCallback();
15731
+ this.classList.add(FlowRdfFormControl.FLOW_UI_FORM_CONTROL_CLASS);
15679
15732
  this.disabled = boolean(this.disabled, true);
15680
15733
  }
15734
+ handleClassChange() {
15735
+ this.classList.add(FlowRdfFormControl.FLOW_UI_FORM_CONTROL_CLASS);
15736
+ }
15681
15737
  handleValueChange() {
15682
15738
  this._value = this.subQueryBuilder ? this.value : cloneDeep__default(this.value);
15683
15739
  if (isNil(this._value)) {
@@ -16007,9 +16063,11 @@ const _FlowUiQueryBuilder = class _FlowUiQueryBuilder extends FlowRdfElement {
16007
16063
  ${this.helpText}
16008
16064
  </slot>
16009
16065
 
16010
- <footer part="footer" class="query-builder__footer">
16011
- <slot name="footer"></slot>
16012
- </footer>
16066
+ ${this.hasSlotController.test("footer") ? lit.html`
16067
+ <footer part="footer" class="query-builder__footer">
16068
+ <slot name="footer"></slot>
16069
+ </footer>
16070
+ ` : lit.nothing}
16013
16071
  </div>
16014
16072
  </div>
16015
16073
  `;
@@ -16020,6 +16078,9 @@ _FlowUiQueryBuilder.fieldDefinitions = /* @__PURE__ */ new Map();
16020
16078
  __decorateClass$m([
16021
16079
  decorators_js.state()
16022
16080
  ], _FlowUiQueryBuilder.prototype, "_value", 2);
16081
+ __decorateClass$m([
16082
+ decorators_js.property({ reflect: true })
16083
+ ], _FlowUiQueryBuilder.prototype, "class", 2);
16023
16084
  __decorateClass$m([
16024
16085
  decorators_js.property({ attribute: false })
16025
16086
  ], _FlowUiQueryBuilder.prototype, "value", 2);
@@ -16044,6 +16105,9 @@ __decorateClass$m([
16044
16105
  __decorateClass$m([
16045
16106
  decorators_js.property({ type: Boolean, attribute: "sub-query-builder" })
16046
16107
  ], _FlowUiQueryBuilder.prototype, "subQueryBuilder", 2);
16108
+ __decorateClass$m([
16109
+ watch("class")
16110
+ ], _FlowUiQueryBuilder.prototype, "handleClassChange", 1);
16047
16111
  __decorateClass$m([
16048
16112
  watch("value")
16049
16113
  ], _FlowUiQueryBuilder.prototype, "handleValueChange", 1);
@@ -16081,6 +16145,14 @@ const styles$m = lit.css`
16081
16145
  display: block;
16082
16146
  }
16083
16147
 
16148
+ .form-control-input {
16149
+ line-height: 1;
16150
+ }
16151
+
16152
+ ::slotted(flow-ui-radio:not(:first-child)) {
16153
+ margin-top: var(--flow-ui-form-spacing, var(--flow-ui-form-spacing-dense));
16154
+ }
16155
+
16084
16156
  .form-control {
16085
16157
  border: none;
16086
16158
  padding: 0;
@@ -16120,7 +16192,7 @@ var __decorateClass$l = (decorators, target, key, kind) => {
16120
16192
  __defProp$l(target, key, result);
16121
16193
  return result;
16122
16194
  };
16123
- class FlowUiRadioGroup extends FlowRdfElement {
16195
+ class FlowUiRadioGroup extends FlowRdfFormControl {
16124
16196
  constructor() {
16125
16197
  super(...arguments);
16126
16198
  this.formControlController = new FormControlController(this);
@@ -16136,7 +16208,7 @@ class FlowUiRadioGroup extends FlowRdfElement {
16136
16208
  this.variant = "secondary";
16137
16209
  this.form = "";
16138
16210
  this.required = false;
16139
- this.vertical = false;
16211
+ this.fullWidth = false;
16140
16212
  }
16141
16213
  /** Gets the validity state object */
16142
16214
  get validity() {
@@ -16163,7 +16235,7 @@ class FlowUiRadioGroup extends FlowRdfElement {
16163
16235
  connectedCallback() {
16164
16236
  super.connectedCallback();
16165
16237
  this.required = boolean(this.required, true);
16166
- this.vertical = boolean(this.vertical, true);
16238
+ this.fullWidth = boolean(this.fullWidth, true);
16167
16239
  this.defaultValue = this.value;
16168
16240
  }
16169
16241
  firstUpdated() {
@@ -16234,6 +16306,7 @@ class FlowUiRadioGroup extends FlowRdfElement {
16234
16306
  radio.checked = radio.value === this.value;
16235
16307
  radio.size = this.size;
16236
16308
  radio.variant = this.variant;
16309
+ radio.fullWidth = this.fullWidth;
16237
16310
  });
16238
16311
  if (!radios.some((radio) => radio.checked)) {
16239
16312
  radios[0].tabIndex = 0;
@@ -16247,10 +16320,7 @@ class FlowUiRadioGroup extends FlowRdfElement {
16247
16320
  radios.forEach((radio) => radio.checked = radio.value === this.value);
16248
16321
  this.formControlController.setValidity(this.validity.valid);
16249
16322
  }
16250
- handleSizeChange() {
16251
- this.syncRadios();
16252
- }
16253
- handleVariantChange() {
16323
+ handleStyleChange() {
16254
16324
  this.syncRadios();
16255
16325
  }
16256
16326
  handleValueChange() {
@@ -16401,14 +16471,11 @@ __decorateClass$l([
16401
16471
  decorators_js.property({ type: Boolean, reflect: true })
16402
16472
  ], FlowUiRadioGroup.prototype, "required", 2);
16403
16473
  __decorateClass$l([
16404
- decorators_js.property({ type: Boolean, reflect: true })
16405
- ], FlowUiRadioGroup.prototype, "vertical", 2);
16474
+ decorators_js.property({ type: Boolean, reflect: true, attribute: "full-width" })
16475
+ ], FlowUiRadioGroup.prototype, "fullWidth", 2);
16406
16476
  __decorateClass$l([
16407
- watch("size", { waitUntilFirstUpdate: true })
16408
- ], FlowUiRadioGroup.prototype, "handleSizeChange", 1);
16409
- __decorateClass$l([
16410
- watch("variant", { waitUntilFirstUpdate: true })
16411
- ], FlowUiRadioGroup.prototype, "handleVariantChange", 1);
16477
+ watch(["size", "variant", "fullWidth"], { waitUntilFirstUpdate: true })
16478
+ ], FlowUiRadioGroup.prototype, "handleStyleChange", 1);
16412
16479
  __decorateClass$l([
16413
16480
  watch("value")
16414
16481
  ], FlowUiRadioGroup.prototype, "handleValueChange", 1);
@@ -16437,6 +16504,19 @@ const styles$l = lit.css`
16437
16504
  cursor: pointer;
16438
16505
  }
16439
16506
 
16507
+ /* Alternative 'full-width' style */
16508
+ .radio--full-width {
16509
+ display: flex;
16510
+ flex-direction: row-reverse;
16511
+ align-items: center;
16512
+ }
16513
+
16514
+ .radio--full-width .radio__label {
16515
+ flex: 1;
16516
+ margin: 0;
16517
+ }
16518
+
16519
+ /* Variants */
16440
16520
  .radio--primary {
16441
16521
  --radio-color: var(--flow-ui-color-primary-500);
16442
16522
  --radio-hover-color: var(--flow-ui-color-primary-400);
@@ -16579,10 +16659,12 @@ class FlowUiRadio extends FlowRdfElement {
16579
16659
  this.size = "medium";
16580
16660
  this.variant = "secondary";
16581
16661
  this.disabled = false;
16662
+ this.fullWidth = false;
16582
16663
  }
16583
16664
  connectedCallback() {
16584
16665
  super.connectedCallback();
16585
16666
  this.disabled = boolean(this.disabled, true);
16667
+ this.fullWidth = boolean(this.fullWidth, true);
16586
16668
  this.handleBlur = this.handleBlur.bind(this);
16587
16669
  this.handleClick = this.handleClick.bind(this);
16588
16670
  this.handleFocus = this.handleFocus.bind(this);
@@ -16644,7 +16726,8 @@ class FlowUiRadio extends FlowRdfElement {
16644
16726
  "radio--success": this.variant === "success",
16645
16727
  "radio--warning": this.variant === "warning",
16646
16728
  "radio--danger": this.variant === "danger",
16647
- "radio--neutral": this.variant === "neutral"
16729
+ "radio--neutral": this.variant === "neutral",
16730
+ "radio--full-width": this.fullWidth
16648
16731
  })}
16649
16732
  >
16650
16733
  <span part="${`control${this.checked ? " control--checked" : ""}`}" class="radio__control">
@@ -16682,6 +16765,9 @@ __decorateClass$k([
16682
16765
  __decorateClass$k([
16683
16766
  decorators_js.property({ type: Boolean, reflect: true })
16684
16767
  ], FlowUiRadio.prototype, "disabled", 2);
16768
+ __decorateClass$k([
16769
+ decorators_js.property({ type: Boolean, reflect: true, attribute: "full-width" })
16770
+ ], FlowUiRadio.prototype, "fullWidth", 2);
16685
16771
  __decorateClass$k([
16686
16772
  watch("checked")
16687
16773
  ], FlowUiRadio.prototype, "handleCheckedChange", 1);
@@ -16928,7 +17014,7 @@ var __decorateClass$j = (decorators, target, key, kind) => {
16928
17014
  __defProp$j(target, key, result);
16929
17015
  return result;
16930
17016
  };
16931
- class FlowUiRange extends FlowRdfElement {
17017
+ class FlowUiRange extends FlowRdfFormControl {
16932
17018
  constructor() {
16933
17019
  super(...arguments);
16934
17020
  this.formControlController = new FormControlController(this);
@@ -18505,7 +18591,7 @@ var __decorateClass$g = (decorators, target, key, kind) => {
18505
18591
  __defProp$g(target, key, result);
18506
18592
  return result;
18507
18593
  };
18508
- class FlowUiSelect extends FlowRdfElement {
18594
+ class FlowUiSelect extends FlowRdfFormControl {
18509
18595
  constructor() {
18510
18596
  super(...arguments);
18511
18597
  this.formControlController = new FormControlController(this, {
@@ -20708,7 +20794,7 @@ var __decorateClass$9 = (decorators, target, key, kind) => {
20708
20794
  __defProp$9(target, key, result);
20709
20795
  return result;
20710
20796
  };
20711
- class FlowUiSwitch extends FlowRdfElement {
20797
+ class FlowUiSwitch extends FlowRdfFormControl {
20712
20798
  constructor() {
20713
20799
  super(...arguments);
20714
20800
  this.formControlController = new FormControlController(this, {
@@ -22208,7 +22294,7 @@ var __decorateClass$5 = (decorators, target, key, kind) => {
22208
22294
  __defProp$5(target, key, result);
22209
22295
  return result;
22210
22296
  };
22211
- class FlowUiTextarea extends FlowRdfElement {
22297
+ class FlowUiTextarea extends FlowRdfFormControl {
22212
22298
  constructor() {
22213
22299
  super(...arguments);
22214
22300
  this.formControlController = new FormControlController(this, {
@@ -23113,7 +23199,7 @@ var __decorateClass$3 = (decorators, target, key, kind) => {
23113
23199
  __defProp$3(target, key, result);
23114
23200
  return result;
23115
23201
  };
23116
- class FlowUiToolButtonGroup extends FlowRdfElement {
23202
+ class FlowUiToolButtonGroup extends FlowRdfFormControl {
23117
23203
  constructor() {
23118
23204
  super(...arguments);
23119
23205
  /** @internal */
@@ -24466,6 +24552,7 @@ class FlowUiTree extends FlowRdfElement {
24466
24552
  }
24467
24553
  async connectedCallback() {
24468
24554
  super.connectedCallback();
24555
+ this.classList.add(FlowRdfFormControl.FLOW_UI_FORM_CONTROL_CLASS);
24469
24556
  this.handleTreeChanged = this.handleTreeChanged.bind(this);
24470
24557
  this.handleFocusIn = this.handleFocusIn.bind(this);
24471
24558
  this.handleFocusOut = this.handleFocusOut.bind(this);
@@ -24485,6 +24572,9 @@ class FlowUiTree extends FlowRdfElement {
24485
24572
  this.removeEventListener("focusout", this.handleFocusOut);
24486
24573
  this.removeEventListener("flow-ui-lazy-change", this.handleSlotChange);
24487
24574
  }
24575
+ handleClassChange() {
24576
+ this.classList.add(FlowRdfFormControl.FLOW_UI_FORM_CONTROL_CLASS);
24577
+ }
24488
24578
  // Generates a clone of the expand icon element to use for each tree item
24489
24579
  getExpandButtonIcon(status) {
24490
24580
  const slot = status === "expand" ? this.expandedIconSlot : this.collapsedIconSlot;
@@ -24723,6 +24813,9 @@ __decorateClass([
24723
24813
  __decorateClass([
24724
24814
  decorators_js.query("slot[name=collapse-icon]")
24725
24815
  ], FlowUiTree.prototype, "collapsedIconSlot", 2);
24816
+ __decorateClass([
24817
+ decorators_js.property({ reflect: true })
24818
+ ], FlowUiTree.prototype, "class", 2);
24726
24819
  __decorateClass([
24727
24820
  decorators_js.property({
24728
24821
  converter: {
@@ -24737,6 +24830,9 @@ __decorateClass([
24737
24830
  __decorateClass([
24738
24831
  decorators_js.property({ reflect: true })
24739
24832
  ], FlowUiTree.prototype, "size", 2);
24833
+ __decorateClass([
24834
+ watch("class")
24835
+ ], FlowUiTree.prototype, "handleClassChange", 1);
24740
24836
  __decorateClass([
24741
24837
  watch("size", { waitUntilFirstUpdate: true })
24742
24838
  ], FlowUiTree.prototype, "handleSizeChange", 1);
@@ -24908,7 +25004,7 @@ async function registerComponents() {
24908
25004
  });
24909
25005
  }
24910
25006
 
24911
- const version = "4.0.3";
25007
+ const version = "4.0.4";
24912
25008
 
24913
25009
  const CONSOLE_HIGHLIGHT_STYLE = `
24914
25010
  padding: 2px 4px;