@descope/web-components-ui 1.0.200 → 1.0.202

Sign up to get free protection for your applications and to get access to all the features.
@@ -7569,13 +7569,17 @@ class ButtonSelectionGroupInternalClass extends createBaseInputClass({
7569
7569
  return this.getAttribute('size') || 'md';
7570
7570
  }
7571
7571
 
7572
+ get allowDeselect() {
7573
+ return this.getAttribute('allow-deselect') === 'true';
7574
+ }
7575
+
7572
7576
  removeSelected() {
7573
7577
  this.getSelectedNode()?.removeAttribute('selected');
7574
7578
  }
7575
7579
 
7576
7580
  onClick(e) {
7577
- if (!this.isReadonly && e.target !== e.currentTarget) {
7578
- if (e.target === this.getSelectedNode()) {
7581
+ if (e.target !== e.currentTarget) {
7582
+ if (e.target === this.getSelectedNode() && this.allowDeselect) {
7579
7583
  this.removeSelected();
7580
7584
  } else {
7581
7585
  this.setSelected(e.target);
@@ -7620,6 +7624,10 @@ class ButtonSelectionGroupInternalClass extends createBaseInputClass({
7620
7624
  });
7621
7625
  }
7622
7626
 
7627
+ onReadOnlyChange() {
7628
+ this.querySelector('slot').toggleAttribute('inert', this.isReadonly);
7629
+ }
7630
+
7623
7631
  getValidity() {
7624
7632
  if (this.isRequired && !this.value) {
7625
7633
  return { valueMissing: true };
@@ -7634,6 +7642,9 @@ class ButtonSelectionGroupInternalClass extends createBaseInputClass({
7634
7642
  case 'size':
7635
7643
  this.onSizeChange();
7636
7644
  break;
7645
+ case 'readonly':
7646
+ this.onReadOnlyChange();
7647
+ break;
7637
7648
  }
7638
7649
  });
7639
7650
  }
@@ -7643,14 +7654,16 @@ class ButtonSelectionGroupInternalClass extends createBaseInputClass({
7643
7654
  this.addEventListener('focus', (e) => {
7644
7655
  // we want to ignore focus events we are dispatching
7645
7656
  if (e.isTrusted) {
7646
- this.items[0].focus();
7657
+ this.items[0]?.focus();
7647
7658
  }
7648
7659
  });
7649
7660
 
7650
7661
  super.init?.();
7651
7662
  this.setDefaultValue();
7652
7663
 
7653
- observeAttributes(this, this.onObservedAttributeChange.bind(this), { includeAttrs: ['size'] });
7664
+ observeAttributes(this, this.onObservedAttributeChange.bind(this), {
7665
+ includeAttrs: ['size', 'readonly'],
7666
+ });
7654
7667
 
7655
7668
  this.querySelector('slot').addEventListener('click', this.onClick.bind(this));
7656
7669
  }
@@ -7744,7 +7757,9 @@ const customMixin = (superclass) =>
7744
7757
 
7745
7758
  this.inputElement = this.shadowRoot.querySelector(componentName$2);
7746
7759
 
7747
- forwardAttrs(this, this.inputElement, { includeAttrs: ['size', 'default-value'] });
7760
+ forwardAttrs(this, this.inputElement, {
7761
+ includeAttrs: ['size', 'default-value', 'allow-deselect'],
7762
+ });
7748
7763
 
7749
7764
  this.renderItems();
7750
7765