@descope/web-components-ui 3.5.1 → 3.7.0

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 (70) hide show
  1. package/dist/cjs/index.cjs.js +58 -7
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +58 -7
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/umd/DescopeDev.js +1 -1
  6. package/dist/umd/DescopeDev.js.map +1 -1
  7. package/dist/umd/descope-user-attribute-index-js.js +4 -4
  8. package/dist/umd/descope-user-attribute-index-js.js.map +1 -1
  9. package/dist/umd/index.js +1 -1
  10. package/package.json +34 -33
  11. package/src/components/descope-user-attribute/UserAttributeClass.js +58 -7
  12. package/src/theme/components/userAttribute.js +1 -0
  13. package/stories/commonControls.js +359 -0
  14. package/stories/descope-alert.stories.js +102 -0
  15. package/stories/descope-button-multi-selection-group.stories.js +130 -0
  16. package/stories/descope-button-selection-group.stories.js +131 -0
  17. package/stories/descope-calendar.stories.js +115 -0
  18. package/stories/descope-checkbox.stories.js +74 -0
  19. package/stories/descope-code-snippet.stories.js +118 -0
  20. package/stories/descope-container.stories.js +96 -0
  21. package/stories/descope-date-field.stories.js +169 -0
  22. package/stories/descope-divider.stories.js +43 -0
  23. package/stories/descope-email-field.stories.js +109 -0
  24. package/stories/descope-grid.stories.js +218 -0
  25. package/stories/descope-hcaptcha.stories.js +29 -0
  26. package/stories/descope-hybrid-field.stories.js +151 -0
  27. package/stories/descope-loader-linear.stories.js +29 -0
  28. package/stories/descope-loader-radial.stories.js +29 -0
  29. package/stories/descope-logo.stories.js +40 -0
  30. package/stories/descope-mappings-field.stories.js +108 -0
  31. package/stories/descope-modal.stories.js +48 -0
  32. package/stories/descope-multi-select-combo-box.stories.js +183 -0
  33. package/stories/descope-new-password.stories.js +206 -0
  34. package/stories/descope-notification.stories.js +81 -0
  35. package/stories/descope-notp-image.stories.js +29 -0
  36. package/stories/descope-number-field.stories.js +83 -0
  37. package/stories/descope-passcode.stories.js +89 -0
  38. package/stories/descope-password.stories.js +89 -0
  39. package/stories/descope-phone-field.stories.js +137 -0
  40. package/stories/descope-phone-input-box-field.stories.js +128 -0
  41. package/stories/descope-policy-validation.stories.js +92 -0
  42. package/stories/descope-radio-group.stories.js +142 -0
  43. package/stories/descope-recaptcha.stories.js +38 -0
  44. package/stories/descope-saml-group-mappings.stories.js +109 -0
  45. package/stories/descope-scopes-list.stories.js +81 -0
  46. package/stories/descope-security-questions-setup.stories.js +125 -0
  47. package/stories/descope-security-questions-verify.stories.js +111 -0
  48. package/stories/descope-switch-toggle.stories.js +74 -0
  49. package/stories/descope-text-area.stories.js +77 -0
  50. package/stories/descope-text-field.stories.js +98 -0
  51. package/stories/descope-third-party-app-logo.stories.js +42 -0
  52. package/stories/descope-totp-image.stories.js +29 -0
  53. package/stories/descope-upload-file.stories.js +113 -0
  54. package/stories/descope-user-attribute.stories.js +103 -0
  55. package/stories/descope-user-auth-method.stories.js +77 -0
  56. package/stories/helpers.js +86 -0
  57. package/stories/icons/alert.svg +9 -0
  58. package/stories/icons/apple.svg +10 -0
  59. package/stories/icons/base64png.js +1 -0
  60. package/stories/icons/base64svg.js +1 -0
  61. package/stories/icons/button-icon.svg +3 -0
  62. package/stories/icons/errorMessageIconBase64.js +1 -0
  63. package/stories/icons/fulfilled-button-icon.svg +3 -0
  64. package/stories/icons/google.svg +25 -0
  65. package/stories/icons/method-icon.svg +3 -0
  66. package/stories/images/150x200.jpg +0 -0
  67. package/stories/images/800x150.jpg +0 -0
  68. package/stories/images/avatar.jpeg +0 -0
  69. package/stories/images/demo.jpg +0 -0
  70. package/stories/images/game.png +0 -0
@@ -19903,12 +19903,12 @@ class RawUserAttribute extends createBaseClass({
19903
19903
  <descope-text st-text-align="auto" data-id="value-text" variant="body1" mode="primary" class="value"></descope-text>
19904
19904
  <div class="btn-wrapper">
19905
19905
  <descope-badge mode="default" bordered="true" size="xs"></descope-badge>
19906
- <descope-button size="xs" data-id="edit-btn" square="true" variant="link" mode="primary">
19907
- <slot name="edit-icon"></slot>
19908
- </descope-button>
19909
- <descope-button size="xs" data-id="delete-btn" square="true" variant="link" mode="primary">
19906
+ <descope-button size="sm" data-id="delete-btn" variant="link" mode="primary">
19910
19907
  <slot name="delete-icon"></slot>
19911
19908
  </descope-button>
19909
+ <descope-button size="sm" data-id="edit-btn" variant="link" mode="primary">
19910
+ <slot name="edit-icon"></slot>
19911
+ </descope-button>
19912
19912
  </div>
19913
19913
  </div>
19914
19914
  </div>
@@ -19927,7 +19927,7 @@ class RawUserAttribute extends createBaseClass({
19927
19927
  height: 100%;
19928
19928
  align-items: center;
19929
19929
  }
19930
-
19930
+
19931
19931
  ::slotted(*) {
19932
19932
  display: flex;
19933
19933
  align-items: center;
@@ -19945,6 +19945,14 @@ class RawUserAttribute extends createBaseClass({
19945
19945
  justify-content: space-between;
19946
19946
  align-items: center;
19947
19947
  flex-grow: 0;
19948
+ flex-shrink: 0;
19949
+ }
19950
+
19951
+ slot[name="edit-icon"],
19952
+ slot[name="delete-icon"] {
19953
+ display: inline-flex;
19954
+ flex-shrink: 0;
19955
+ align-items: center;
19948
19956
  }
19949
19957
 
19950
19958
  .content-wrapper {
@@ -19981,6 +19989,7 @@ class RawUserAttribute extends createBaseClass({
19981
19989
 
19982
19990
  .hidden {
19983
19991
  visibility: hidden;
19992
+ width: 0;
19984
19993
  }
19985
19994
 
19986
19995
  descope-text[data-id="label-text"].required:after {
@@ -19990,6 +19999,7 @@ class RawUserAttribute extends createBaseClass({
19990
19999
 
19991
20000
  :host([readonly="true"]) descope-button {
19992
20001
  visibility: hidden;
20002
+ width: 0;
19993
20003
  }
19994
20004
  `,
19995
20005
  this
@@ -20029,6 +20039,21 @@ class RawUserAttribute extends createBaseClass({
20029
20039
  this.badge.setAttribute('title', this.badgeTooltipText || this.badgeLabel);
20030
20040
  }
20031
20041
 
20042
+ updateButtonLabel(btnRef, label) {
20043
+ let textSpanEle = btnRef.querySelector('span.btn-label');
20044
+
20045
+ if (label) {
20046
+ if (!textSpanEle) {
20047
+ textSpanEle = document.createElement('span');
20048
+ textSpanEle.classList.add('btn-label');
20049
+ btnRef.appendChild(textSpanEle);
20050
+ }
20051
+ textSpanEle.innerText = label;
20052
+ } else {
20053
+ textSpanEle?.remove();
20054
+ }
20055
+ }
20056
+
20032
20057
  onIsRequiredChange() {
20033
20058
  this.labelText.classList.toggle('required', this.isRequired);
20034
20059
  }
@@ -20057,12 +20082,26 @@ class RawUserAttribute extends createBaseClass({
20057
20082
  return this.getAttribute('badge-tooltip-text') || '';
20058
20083
  }
20059
20084
 
20085
+ get editButtonLabel() {
20086
+ return this.getAttribute('edit-button-label') || '';
20087
+ }
20088
+
20089
+ get deleteButtonLabel() {
20090
+ return this.getAttribute('delete-button-label') || '';
20091
+ }
20092
+
20093
+ get isDeleteHidden() {
20094
+ return this.getAttribute('hide-delete') === 'true';
20095
+ }
20096
+
20060
20097
  init() {
20061
20098
  this.onLabelChange();
20062
20099
  this.onValueOrPlaceholderChange();
20063
20100
  this.onIsRequiredChange();
20064
20101
  this.onBadgeLabelChange();
20065
20102
  this.onBadgeTooltipTextChange();
20103
+ this.updateButtonLabel(this.editButton, this.editButtonLabel);
20104
+ this.updateButtonLabel(this.deleteButton, this.deleteButtonLabel);
20066
20105
  this.handleDeleteButtonVisibility();
20067
20106
 
20068
20107
  this.deleteButton.addEventListener('click', () =>
@@ -20098,11 +20137,17 @@ class RawUserAttribute extends createBaseClass({
20098
20137
  'required',
20099
20138
  'badge-label',
20100
20139
  'badge-tooltip-text',
20140
+ 'edit-button-label',
20141
+ 'delete-button-label',
20142
+ 'hide-delete',
20101
20143
  ].concat(super.observedAttributes);
20102
20144
  }
20103
20145
 
20104
20146
  handleDeleteButtonVisibility() {
20105
- this.deleteButton.classList.toggle('hidden', this.isRequired || !this.value);
20147
+ this.deleteButton.classList.toggle(
20148
+ 'hidden',
20149
+ this.isRequired || !this.value || this.isDeleteHidden
20150
+ );
20106
20151
  }
20107
20152
 
20108
20153
  attributeChangedCallback(name, oldValue, newValue) {
@@ -20122,9 +20167,13 @@ class RawUserAttribute extends createBaseClass({
20122
20167
  this.onBadgeLabelChange();
20123
20168
  } else if (name === 'badge-tooltip-text') {
20124
20169
  this.onBadgeTooltipTextChange();
20170
+ } else if (name === 'edit-button-label') {
20171
+ this.updateButtonLabel(this.editButton, this.editButtonLabel);
20172
+ } else if (name === 'delete-button-label') {
20173
+ this.updateButtonLabel(this.deleteButton, this.deleteButtonLabel);
20125
20174
  }
20126
20175
 
20127
- if (name === 'value' || name === 'required') {
20176
+ if (name === 'value' || name === 'required' || name === 'hide-delete') {
20128
20177
  this.handleDeleteButtonVisibility();
20129
20178
  }
20130
20179
  }
@@ -20155,6 +20204,7 @@ const UserAttributeClass = compose$1(
20155
20204
  contentMinWidth: { ...contentWrapper, property: 'min-width' },
20156
20205
  badgeMaxWidth: { ...badge$1, property: 'max-width' },
20157
20206
  itemsGap: [{ property: 'gap' }, { ...contentWrapper, property: 'gap' }],
20207
+ iconColor: [{ selector: () => '::slotted(*)', property: IconClass.cssVarList.fill }],
20158
20208
  },
20159
20209
  }),
20160
20210
  draggableMixin,
@@ -20173,6 +20223,7 @@ const userAttribute = {
20173
20223
  [vars$g.hostMinWidth]: '310px',
20174
20224
  [vars$g.hostWidth]: '530px',
20175
20225
  [vars$g.hostMaxWidth]: '100%',
20226
+ [vars$g.iconColor]: 'currentcolor',
20176
20227
 
20177
20228
  _fullWidth: {
20178
20229
  [vars$g.hostWidth]: '100%',