@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
package/dist/index.esm.js CHANGED
@@ -17094,12 +17094,12 @@ class RawUserAttribute extends createBaseClass({
17094
17094
  <descope-text st-text-align="auto" data-id="value-text" variant="body1" mode="primary" class="value"></descope-text>
17095
17095
  <div class="btn-wrapper">
17096
17096
  <descope-badge mode="default" bordered="true" size="xs"></descope-badge>
17097
- <descope-button size="xs" data-id="edit-btn" square="true" variant="link" mode="primary">
17098
- <slot name="edit-icon"></slot>
17099
- </descope-button>
17100
- <descope-button size="xs" data-id="delete-btn" square="true" variant="link" mode="primary">
17097
+ <descope-button size="sm" data-id="delete-btn" variant="link" mode="primary">
17101
17098
  <slot name="delete-icon"></slot>
17102
17099
  </descope-button>
17100
+ <descope-button size="sm" data-id="edit-btn" variant="link" mode="primary">
17101
+ <slot name="edit-icon"></slot>
17102
+ </descope-button>
17103
17103
  </div>
17104
17104
  </div>
17105
17105
  </div>
@@ -17118,7 +17118,7 @@ class RawUserAttribute extends createBaseClass({
17118
17118
  height: 100%;
17119
17119
  align-items: center;
17120
17120
  }
17121
-
17121
+
17122
17122
  ::slotted(*) {
17123
17123
  display: flex;
17124
17124
  align-items: center;
@@ -17136,6 +17136,14 @@ class RawUserAttribute extends createBaseClass({
17136
17136
  justify-content: space-between;
17137
17137
  align-items: center;
17138
17138
  flex-grow: 0;
17139
+ flex-shrink: 0;
17140
+ }
17141
+
17142
+ slot[name="edit-icon"],
17143
+ slot[name="delete-icon"] {
17144
+ display: inline-flex;
17145
+ flex-shrink: 0;
17146
+ align-items: center;
17139
17147
  }
17140
17148
 
17141
17149
  .content-wrapper {
@@ -17172,6 +17180,7 @@ class RawUserAttribute extends createBaseClass({
17172
17180
 
17173
17181
  .hidden {
17174
17182
  visibility: hidden;
17183
+ width: 0;
17175
17184
  }
17176
17185
 
17177
17186
  descope-text[data-id="label-text"].required:after {
@@ -17181,6 +17190,7 @@ class RawUserAttribute extends createBaseClass({
17181
17190
 
17182
17191
  :host([readonly="true"]) descope-button {
17183
17192
  visibility: hidden;
17193
+ width: 0;
17184
17194
  }
17185
17195
  `,
17186
17196
  this
@@ -17220,6 +17230,21 @@ class RawUserAttribute extends createBaseClass({
17220
17230
  this.badge.setAttribute('title', this.badgeTooltipText || this.badgeLabel);
17221
17231
  }
17222
17232
 
17233
+ updateButtonLabel(btnRef, label) {
17234
+ let textSpanEle = btnRef.querySelector('span.btn-label');
17235
+
17236
+ if (label) {
17237
+ if (!textSpanEle) {
17238
+ textSpanEle = document.createElement('span');
17239
+ textSpanEle.classList.add('btn-label');
17240
+ btnRef.appendChild(textSpanEle);
17241
+ }
17242
+ textSpanEle.innerText = label;
17243
+ } else {
17244
+ textSpanEle?.remove();
17245
+ }
17246
+ }
17247
+
17223
17248
  onIsRequiredChange() {
17224
17249
  this.labelText.classList.toggle('required', this.isRequired);
17225
17250
  }
@@ -17248,12 +17273,26 @@ class RawUserAttribute extends createBaseClass({
17248
17273
  return this.getAttribute('badge-tooltip-text') || '';
17249
17274
  }
17250
17275
 
17276
+ get editButtonLabel() {
17277
+ return this.getAttribute('edit-button-label') || '';
17278
+ }
17279
+
17280
+ get deleteButtonLabel() {
17281
+ return this.getAttribute('delete-button-label') || '';
17282
+ }
17283
+
17284
+ get isDeleteHidden() {
17285
+ return this.getAttribute('hide-delete') === 'true';
17286
+ }
17287
+
17251
17288
  init() {
17252
17289
  this.onLabelChange();
17253
17290
  this.onValueOrPlaceholderChange();
17254
17291
  this.onIsRequiredChange();
17255
17292
  this.onBadgeLabelChange();
17256
17293
  this.onBadgeTooltipTextChange();
17294
+ this.updateButtonLabel(this.editButton, this.editButtonLabel);
17295
+ this.updateButtonLabel(this.deleteButton, this.deleteButtonLabel);
17257
17296
  this.handleDeleteButtonVisibility();
17258
17297
 
17259
17298
  this.deleteButton.addEventListener('click', () =>
@@ -17289,11 +17328,17 @@ class RawUserAttribute extends createBaseClass({
17289
17328
  'required',
17290
17329
  'badge-label',
17291
17330
  'badge-tooltip-text',
17331
+ 'edit-button-label',
17332
+ 'delete-button-label',
17333
+ 'hide-delete',
17292
17334
  ].concat(super.observedAttributes);
17293
17335
  }
17294
17336
 
17295
17337
  handleDeleteButtonVisibility() {
17296
- this.deleteButton.classList.toggle('hidden', this.isRequired || !this.value);
17338
+ this.deleteButton.classList.toggle(
17339
+ 'hidden',
17340
+ this.isRequired || !this.value || this.isDeleteHidden
17341
+ );
17297
17342
  }
17298
17343
 
17299
17344
  attributeChangedCallback(name, oldValue, newValue) {
@@ -17313,9 +17358,13 @@ class RawUserAttribute extends createBaseClass({
17313
17358
  this.onBadgeLabelChange();
17314
17359
  } else if (name === 'badge-tooltip-text') {
17315
17360
  this.onBadgeTooltipTextChange();
17361
+ } else if (name === 'edit-button-label') {
17362
+ this.updateButtonLabel(this.editButton, this.editButtonLabel);
17363
+ } else if (name === 'delete-button-label') {
17364
+ this.updateButtonLabel(this.deleteButton, this.deleteButtonLabel);
17316
17365
  }
17317
17366
 
17318
- if (name === 'value' || name === 'required') {
17367
+ if (name === 'value' || name === 'required' || name === 'hide-delete') {
17319
17368
  this.handleDeleteButtonVisibility();
17320
17369
  }
17321
17370
  }
@@ -17346,6 +17395,7 @@ const UserAttributeClass = compose(
17346
17395
  contentMinWidth: { ...contentWrapper, property: 'min-width' },
17347
17396
  badgeMaxWidth: { ...badge$3, property: 'max-width' },
17348
17397
  itemsGap: [{ property: 'gap' }, { ...contentWrapper, property: 'gap' }],
17398
+ iconColor: [{ selector: () => '::slotted(*)', property: IconClass.cssVarList.fill }],
17349
17399
  },
17350
17400
  }),
17351
17401
  draggableMixin,
@@ -27459,6 +27509,7 @@ const userAttribute = {
27459
27509
  [vars$g.hostMinWidth]: '310px',
27460
27510
  [vars$g.hostWidth]: '530px',
27461
27511
  [vars$g.hostMaxWidth]: '100%',
27512
+ [vars$g.iconColor]: 'currentcolor',
27462
27513
 
27463
27514
  _fullWidth: {
27464
27515
  [vars$g.hostWidth]: '100%',