@descope/flow-components 2.2.15 → 2.2.17

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.js CHANGED
@@ -93927,6 +93927,14 @@ descope-enriched-text {
93927
93927
  [compVars$4.hostWidth]: '98px',
93928
93928
  [compVars$4.hostHeight]: '98px',
93929
93929
  },
93930
+ xl: {
93931
+ [compVars$4.hostWidth]: '120px',
93932
+ [compVars$4.hostHeight]: '120px',
93933
+ },
93934
+ '2xl': {
93935
+ [compVars$4.hostWidth]: '140px',
93936
+ [compVars$4.hostHeight]: '140px',
93937
+ },
93930
93938
  },
93931
93939
  };
93932
93940
 
@@ -94150,9 +94158,9 @@ descope-enriched-text {
94150
94158
  vars: vars$x
94151
94159
  });
94152
94160
 
94153
- var deleteIcon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxNCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEgMTZDMSAxNy4xIDEuOSAxOCAzIDE4SDExQzEyLjEgMTggMTMgMTcuMSAxMyAxNlY0SDFWMTZaTTMgNkgxMVYxNkgzVjZaTTEwLjUgMUw5LjUgMEg0LjVMMy41IDFIMFYzSDE0VjFIMTAuNVoiIGZpbGw9ImN1cnJlbnRjb2xvciIvPgo8L3N2Zz4K";
94161
+ var deleteIcon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxNCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNMSAxNkMxIDE3LjEgMS45IDE4IDMgMThIMTFDMTIuMSAxOCAxMyAxNy4xIDEzIDE2VjRIMVYxNlpNMyA2SDExVjE2SDNWNlpNMTAuNSAxTDkuNSAwSDQuNUwzLjUgMUgwVjNIMTRWMUgxMC41WiIgZmlsbD0iY3VycmVudGNvbG9yIi8+Cjwvc3ZnPg==";
94154
94162
 
94155
- var editIcon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAxNSAxNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEwLjAwMDIgMC45OTIxNDlDMTAuMDAwMiAxLjAxNjE1IDEwLjAwMDIgMS4wMTYxNSAxMC4wMDAyIDEuMDE2MTVMOC4yMjQxOSAzLjAwODE1SDIuOTkyMTlDMi40NjQxOSAzLjAwODE1IDIuMDA4MTkgMy40NDAxNSAyLjAwODE5IDMuOTkyMTVWMTIuMDA4MkMyLjAwODE5IDEyLjUzNjIgMi40NDAxOSAxMi45OTIyIDIuOTkyMTkgMTIuOTkyMkg1LjUzNjE5QzUuODQ4MTkgMTMuMDQwMiA2LjE2MDE5IDEzLjA0MDIgNi40NzIxOSAxMi45OTIySDExLjAwODJDMTEuNTM2MiAxMi45OTIyIDExLjk5MjIgMTIuNTYwMiAxMS45OTIyIDEyLjAwODJWNy43ODQxNkwxMy45MzYyIDUuNjI0MTVMMTQuMDA4MiA1LjY3MjE1VjExLjk4NDJDMTQuMDA4MiAxMy42NjQyIDEyLjY2NDIgMTUuMDA4MiAxMS4wMDgyIDE1LjAwODJIMy4wMTYxOUMxLjMzNjE5IDE1LjAwODIgLTAuMDA3ODEyNSAxMy42NjQyIC0wLjAwNzgxMjUgMTEuOTg0MlYzLjk5MjE1Qy0wLjAwNzgxMjUgMi4zMzYxNSAxLjMzNjE5IDAuOTkyMTQ5IDMuMDE2MTkgMC45OTIxNDlIMTAuMDAwMlpNMTEuMjcyMiAyLjYyNDE1TDEyLjYxNjIgNC4xMTIxNUw3LjcyMDE5IDkuNjgwMTZDNy41MDQxOSA5LjkyMDE2IDYuODMyMTkgMTAuMjMyMiA1LjY4MDE5IDEwLjYxNjJDNS42NTYxOSAxMC42NDAyIDUuNjA4MTkgMTAuNjQwMiA1LjU2MDE5IDEwLjYxNjJDNS40NjQxOSAxMC41OTIyIDUuMzkyMTkgMTAuNDcyMiA1LjQ0MDE5IDEwLjM3NjJDNS43NTIxOSA5LjI0ODE2IDYuMDQwMTkgOC41NTIxNiA2LjI1NjE5IDguMzEyMTZMMTEuMjcyMiAyLjYyNDE1Wk0xMS45MjAyIDEuODU2MTVMMTMuMjg4MiAwLjMyMDE0OUMxMy42NDgyIC0wLjA4Nzg1MTYgMTQuMjcyMiAtMC4xMTE4NTIgMTQuNjgwMiAwLjI3MjE0OUMxNS4wODgyIDAuNjMyMTQ5IDE1LjExMjIgMS4yODAxNSAxNC43NTIyIDEuNjg4MTVMMTMuMjY0MiAzLjM2ODE1TDExLjkyMDIgMS44NTYxNVoiIGZpbGw9ImN1cnJlbnRjb2xvciIvPgo8L3N2Zz4K";
94163
+ var editIcon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxNSAxNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNMTAuMDAwMiAwLjk5MjE0OUMxMC4wMDAyIDEuMDE2MTUgMTAuMDAwMiAxLjAxNjE1IDEwLjAwMDIgMS4wMTYxNUw4LjIyNDE5IDMuMDA4MTVIMi45OTIxOUMyLjQ2NDE5IDMuMDA4MTUgMi4wMDgxOSAzLjQ0MDE1IDIuMDA4MTkgMy45OTIxNVYxMi4wMDgyQzIuMDA4MTkgMTIuNTM2MiAyLjQ0MDE5IDEyLjk5MjIgMi45OTIxOSAxMi45OTIySDUuNTM2MTlDNS44NDgxOSAxMy4wNDAyIDYuMTYwMTkgMTMuMDQwMiA2LjQ3MjE5IDEyLjk5MjJIMTEuMDA4MkMxMS41MzYyIDEyLjk5MjIgMTEuOTkyMiAxMi41NjAyIDExLjk5MjIgMTIuMDA4MlY3Ljc4NDE2TDEzLjkzNjIgNS42MjQxNUwxNC4wMDgyIDUuNjcyMTVWMTEuOTg0MkMxNC4wMDgyIDEzLjY2NDIgMTIuNjY0MiAxNS4wMDgyIDExLjAwODIgMTUuMDA4MkgzLjAxNjE5QzEuMzM2MTkgMTUuMDA4MiAtMC4wMDc4MTI1IDEzLjY2NDIgLTAuMDA3ODEyNSAxMS45ODQyVjMuOTkyMTVDLTAuMDA3ODEyNSAyLjMzNjE1IDEuMzM2MTkgMC45OTIxNDkgMy4wMTYxOSAwLjk5MjE0OUgxMC4wMDAyWk0xMS4yNzIyIDIuNjI0MTVMMTIuNjE2MiA0LjExMjE1TDcuNzIwMTkgOS42ODAxNkM3LjUwNDE5IDkuOTIwMTYgNi44MzIxOSAxMC4yMzIyIDUuNjgwMTkgMTAuNjE2MkM1LjY1NjE5IDEwLjY0MDIgNS42MDgxOSAxMC42NDAyIDUuNTYwMTkgMTAuNjE2MkM1LjQ2NDE5IDEwLjU5MjIgNS4zOTIxOSAxMC40NzIyIDUuNDQwMTkgMTAuMzc2MkM1Ljc1MjE5IDkuMjQ4MTYgNi4wNDAxOSA4LjU1MjE2IDYuMjU2MTkgOC4zMTIxNkwxMS4yNzIyIDIuNjI0MTVaTTExLjkyMDIgMS44NTYxNUwxMy4yODgyIDAuMzIwMTQ5QzEzLjY0ODIgLTAuMDg3ODUxNiAxNC4yNzIyIC0wLjExMTg1MiAxNC42ODAyIDAuMjcyMTQ5QzE1LjA4ODIgMC42MzIxNDkgMTUuMTEyMiAxLjI4MDE1IDE0Ljc1MjIgMS42ODgxNUwxMy4yNjQyIDMuMzY4MTVMMTEuOTIwMiAxLjg1NjE1WiIgZmlsbD0iY3VycmVudGNvbG9yIi8+Cjwvc3ZnPgo=";
94156
94164
 
94157
94165
  const componentName$x = getComponentName$1('user-attribute');
94158
94166
  class RawUserAttribute extends createBaseClass({
@@ -94170,10 +94178,10 @@ descope-enriched-text {
94170
94178
  <div class="btn-wrapper">
94171
94179
  <descope-badge mode="default" bordered="true" size="xs"></descope-badge>
94172
94180
  <descope-button size="xs" data-id="edit-btn" square="true" variant="link" mode="primary">
94173
- <vaadin-icon src=${editIcon}></vaadin-icon>
94181
+ <slot name="edit-icon"></slot>
94174
94182
  </descope-button>
94175
94183
  <descope-button size="xs" data-id="delete-btn" square="true" variant="link" mode="primary">
94176
- <vaadin-icon src=${deleteIcon}></vaadin-icon>
94184
+ <slot name="delete-icon"></slot>
94177
94185
  </descope-button>
94178
94186
  </div>
94179
94187
  </div>
@@ -94187,16 +94195,18 @@ descope-enriched-text {
94187
94195
  container-type: inline-size;
94188
94196
  }
94189
94197
 
94190
- vaadin-icon {
94191
- color: currentcolor;
94192
- }
94193
-
94194
94198
  .root {
94195
94199
  display: flex;
94196
94200
  width: 100%;
94197
94201
  height: 100%;
94198
94202
  align-items: center;
94199
94203
  }
94204
+
94205
+ ::slotted(*) {
94206
+ display: flex;
94207
+ align-items: center;
94208
+ justify-content: center;
94209
+ }
94200
94210
 
94201
94211
  @container (max-width: 529px) {
94202
94212
  .root {
@@ -94336,6 +94346,22 @@ descope-enriched-text {
94336
94346
  this.editButton.addEventListener('click', () =>
94337
94347
  this.dispatchEvent(new CustomEvent('edit-clicked', { bubbles: true, composed: true }))
94338
94348
  );
94349
+
94350
+ this.setDefaultChildren();
94351
+ }
94352
+
94353
+ #addIcon(src, slotName) {
94354
+ const icon = document.createElement('descope-icon');
94355
+ icon.setAttribute('src', src);
94356
+ icon.setAttribute('src-dark', src);
94357
+ icon.setAttribute('slot', slotName);
94358
+ this.appendChild(icon);
94359
+ }
94360
+
94361
+ setDefaultChildren() {
94362
+ if (this.children.length) return;
94363
+ this.#addIcon(deleteIcon, 'delete-icon');
94364
+ this.#addIcon(editIcon, 'edit-icon');
94339
94365
  }
94340
94366
 
94341
94367
  static get observedAttributes() {
@@ -97979,6 +98005,9 @@ descope-enriched-text {
97979
98005
  selector: () => '::slotted(:not([slot]))',
97980
98006
  property: 'min-width',
97981
98007
  },
98008
+ maxRowItems: {
98009
+ property: 'max-row-items',
98010
+ },
97982
98011
  itemsHorizontalAlign: {
97983
98012
  selector: () => '::slotted(*)',
97984
98013
  property: 'justify-self',
@@ -98000,7 +98029,7 @@ descope-enriched-text {
98000
98029
  const componentName$m = getComponentName('apps-list');
98001
98030
 
98002
98031
  const itemRenderer$4 = ({ name, icon, url }, _, ref) => `
98003
- <a ${url ? `href="${url}" title="${url}"` : ''} target="_blank">
98032
+ <a ${url ? `href="${url}" title="${url}"` : ''} ${ref.openInSameWindow ? '' : 'target="_blank"'}>
98004
98033
  <descope-list-item>
98005
98034
  <div class="avatar-wrapper">
98006
98035
  <descope-avatar
@@ -98031,6 +98060,10 @@ descope-enriched-text {
98031
98060
  get logoSize() {
98032
98061
  return this.getAttribute('logo-size');
98033
98062
  }
98063
+
98064
+ get openInSameWindow() {
98065
+ return this.getAttribute('open-in-same-window') === 'true';
98066
+ }
98034
98067
  };
98035
98068
 
98036
98069
  const AppsListClass = compose(
@@ -98039,6 +98072,14 @@ descope-enriched-text {
98039
98072
  maxHeight: { selector: () => ':host' },
98040
98073
  minHeight: { selector: () => ':host' },
98041
98074
  hostDirection: { selector: () => ':host', property: 'direction' },
98075
+ gap: {
98076
+ selector: ListClass.componentName,
98077
+ property: ListClass.cssVarList.gap,
98078
+ },
98079
+ maxRowItems: {
98080
+ selector: ListClass.componentName,
98081
+ property: ListClass.cssVarList.maxRowItems,
98082
+ },
98042
98083
  itemsFontWeight: {
98043
98084
  selector: TextClass.componentName,
98044
98085
  property: TextClass.cssVarList.fontWeightOverride,
@@ -98055,6 +98096,10 @@ descope-enriched-text {
98055
98096
  selector: ListItemClass.componentName,
98056
98097
  property: ListItemClass.cssVarList.backgroundColor,
98057
98098
  },
98099
+ itemHoverBackgroundColor: {
98100
+ selector: `${ListItemClass.componentName}:hover`,
98101
+ property: ListItemClass.cssVarList.backgroundColor,
98102
+ },
98058
98103
  backgroundColor: {
98059
98104
  selector: ListClass.componentName,
98060
98105
  property: ListClass.cssVarList.backgroundColorOverride,
@@ -98081,14 +98126,25 @@ descope-enriched-text {
98081
98126
  },
98082
98127
  itemAlignment: [
98083
98128
  { selector: () => '.avatar-wrapper', property: 'text-align' },
98084
- { selector: TextClass.componentName, property: TextClass.cssVarList.textAlign },
98085
- ]
98129
+ {
98130
+ selector: TextClass.componentName,
98131
+ property: TextClass.cssVarList.textAlign,
98132
+ },
98133
+ ],
98086
98134
  },
98087
98135
  }),
98088
- createDynamicDataMixin$1({ itemRenderer: itemRenderer$4, rerenderAttrsList: ['size', 'item-text-variant', 'logo-size'] }),
98136
+ createDynamicDataMixin$1({
98137
+ itemRenderer: itemRenderer$4,
98138
+ rerenderAttrsList: [
98139
+ 'size',
98140
+ 'item-text-variant',
98141
+ 'logo-size',
98142
+ 'open-in-same-window',
98143
+ ],
98144
+ }),
98089
98145
  draggableMixin$1,
98090
98146
  componentNameValidationMixin$1,
98091
- customMixin$2
98147
+ customMixin$2,
98092
98148
  )(
98093
98149
  createProxy$1({
98094
98150
  slots: ['empty-state'],
@@ -98126,7 +98182,7 @@ descope-enriched-text {
98126
98182
  width: 100%;
98127
98183
  }
98128
98184
  `,
98129
- })
98185
+ }),
98130
98186
  );
98131
98187
 
98132
98188
  const vars$l = AppsListClass.cssVarList;
@@ -98138,6 +98194,7 @@ descope-enriched-text {
98138
98194
  [vars$l.itemsTextAlign]: 'start',
98139
98195
  [vars$l.hostDirection]: globalRefs$b.direction,
98140
98196
  [vars$l.maxHeight]: defaultHeight,
98197
+ [vars$l.itemHoverBackgroundColor]: globalRefs$b.colors.surface.highlight,
98141
98198
 
98142
98199
  _empty: {
98143
98200
  [vars$l.minHeight]: defaultHeight,
@@ -98198,7 +98255,7 @@ descope-enriched-text {
98198
98255
 
98199
98256
  const [helperTheme$2, helperRefs$2, helperVars$2] = createHelperVars$1(
98200
98257
  { shadowColor: '#00000020' },
98201
- componentName$n
98258
+ componentName$n,
98202
98259
  );
98203
98260
 
98204
98261
  const { shadowColor: shadowColor$2 } = helperRefs$2;
@@ -98220,6 +98277,7 @@ descope-enriched-text {
98220
98277
  [compVars$3.maxHeight]: '100%',
98221
98278
  [compVars$3.hostDirection]: globalRefs$a.direction,
98222
98279
  [compVars$3.minItemsWidth]: '150px',
98280
+ [compVars$3.maxRowItems]: '1000', // effectively no limit
98223
98281
 
98224
98282
  _empty: {
98225
98283
  [compVars$3.minHeight]: '150px',
@@ -98229,13 +98287,33 @@ descope-enriched-text {
98229
98287
 
98230
98288
  variant: {
98231
98289
  tiles: {
98232
- [compVars$3.gridTemplateColumns]: `repeat(auto-fit, minmax(min(${useVar$1(
98233
- compVars$3.minItemsWidth
98234
- )}, 100%), 1fr))`,
98290
+ [compVars$3.gridTemplateColumns]: `repeat(auto-fit, minmax(
98291
+ max(
98292
+ min(${useVar$1(compVars$3.minItemsWidth)}, 100%),
98293
+ calc((100% - (${useVar$1(compVars$3.maxRowItems)} - 1) * ${useVar$1(compVars$3.gap)}) / ${useVar$1(compVars$3.maxRowItems)})),
98294
+ 1fr))`,
98235
98295
  [compVars$3.maxItemsWidth]: '200px',
98236
98296
  [compVars$3.itemsHorizontalAlign]: 'center',
98237
98297
  },
98238
98298
  },
98299
+
98300
+ gap: {
98301
+ xs: {
98302
+ [compVars$3.gap]: globalRefs$a.spacing.xs,
98303
+ },
98304
+ sm: {
98305
+ [compVars$3.gap]: globalRefs$a.spacing.sm,
98306
+ },
98307
+ md: {
98308
+ [compVars$3.gap]: globalRefs$a.spacing.md,
98309
+ },
98310
+ lg: {
98311
+ [compVars$3.gap]: globalRefs$a.spacing.lg,
98312
+ },
98313
+ xl: {
98314
+ [compVars$3.gap]: globalRefs$a.spacing.xl,
98315
+ },
98316
+ },
98239
98317
  };
98240
98318
 
98241
98319
  const vars$k = {
@@ -101663,7 +101741,6 @@ descope-enriched-text {
101663
101741
  init() {
101664
101742
  super.init();
101665
101743
 
101666
-
101667
101744
  this.icon.addEventListener('click', this.onCopy.bind(this));
101668
101745
 
101669
101746
  forwardAttrs(this, this.iconWrapper, { includeAttrs: ['variant', 'mode'] });
@@ -101688,7 +101765,7 @@ descope-enriched-text {
101688
101765
  onReadOnly(isReadOnly) {
101689
101766
  this.icon.classList.toggle('readonly', isReadOnly);
101690
101767
  }
101691
-
101768
+
101692
101769
  attributeChangedCallback(attrName, oldValue, newValue) {
101693
101770
  super.attributeChangedCallback?.(attrName, oldValue, newValue);
101694
101771
 
@@ -101709,20 +101786,20 @@ descope-enriched-text {
101709
101786
  { selector: () => ':host', property: 'direction' },
101710
101787
  {
101711
101788
  selector: () => TextClass.componentName,
101712
- property: TextClass.cssVarList.hostDirection
101789
+ property: TextClass.cssVarList.hostDirection,
101713
101790
  },
101714
101791
  ],
101715
101792
  textAlign: { selector: () => '.list', property: 'align-items' },
101716
101793
  iconColor: { selector: () => 'vaadin-icon', property: 'color' },
101717
101794
  iconSize: { selector: () => 'vaadin-icon', property: 'font-size' },
101718
101795
  iconGap: { selector: () => '.wrapper', property: 'gap' },
101719
- bulletGap: { selector: () => 'descope-text span', property: 'gap' }
101796
+ bulletGap: { selector: () => 'descope-text span', property: 'gap' },
101720
101797
  },
101721
101798
  }),
101722
101799
  createDynamicDataMixin$1({
101723
101800
  itemRenderer: itemRenderer$2,
101724
101801
  rerenderAttrsList: ['variant', 'mode'],
101725
- targetSelector: '.list'
101802
+ targetSelector: '.list',
101726
101803
  }),
101727
101804
  draggableMixin$1,
101728
101805
  componentNameValidationMixin$1,
@@ -103656,7 +103733,7 @@ const Icon = ({ icon, noColor, ...props }) => {
103656
103733
  if (icons[icon]) {
103657
103734
  return (React__default.default.createElement("descope-icon", { src: icons[icon], ...(noColor && { 'st-fill': 'currentColor' }), ...props }));
103658
103735
  }
103659
- return React__default.default.createElement("descope-icon", { "fill-color": noColor, src: icon });
103736
+ return React__default.default.createElement("descope-icon", { "fill-color": noColor, src: icon, ...props });
103660
103737
  };
103661
103738
 
103662
103739
  const Tooltip = React__default.default.forwardRef(({ text, hideDelay = 0, hoverDelay = 0, children, readonly, staticDisplay, ...props }, ref) => (React__default.default.createElement("descope-tooltip", { text: text, "hide-delay": hideDelay, "hover-delay": hoverDelay, readonly: readonly, "static-display": staticDisplay, ref: ref, ...props }, children)));
@@ -103792,6 +103869,9 @@ const defaultProps = {
103792
103869
  'policy-label': 'Passwords must have:',
103793
103870
  // in the future, 'active-policies' can be injected in runtime
103794
103871
  'active-policies': [],
103872
+ /* these patterns are cloned in the orchestration service (context.go file)
103873
+ * make sure to update both places when changing it
103874
+ */
103795
103875
  // non-user-editable patterns
103796
103876
  'data-password-policy-pattern-minlength': '^.{{{value}},}$',
103797
103877
  'data-password-policy-pattern-lowercase': '[a-z]',
@@ -103814,6 +103894,9 @@ const defaultProps = {
103814
103894
  };
103815
103895
  const NewPassword = React__default.default.forwardRef((props, ref) => {
103816
103896
  const mergedProps = { ...defaultProps, ...props };
103897
+ /* this logic is cloned in the orchestration service (context.go file)
103898
+ * make sure to update both places when changing it
103899
+ */
103817
103900
  const availablePolicies = mergedProps?.['active-policies']?.map((id) => ({
103818
103901
  id,
103819
103902
  message: mergedProps[`data-password-policy-message-${id}`],
@@ -104003,7 +104086,9 @@ const UserAuthMethod = React__default.default.forwardRef(({ methodIcon, buttonIc
104003
104086
  React__default.default.createElement(Icon, { icon: methodIcon, slot: "method-icon", noColor: true }),
104004
104087
  React__default.default.createElement(Icon, { icon: buttonIcon, slot: "button-icon", noColor: true, width: "1em", height: "1em" }))));
104005
104088
 
104006
- const UserAttribute = React__default.default.forwardRef(({ required = false, ...props }, ref) => (React__default.default.createElement("descope-user-attribute", { required: required, ...props, ref: ref })));
104089
+ const UserAttribute = React__default.default.forwardRef(({ required = false, deleteIconLight, deleteIconDark, editIconLight, editIconDark, ...props }, ref) => (React__default.default.createElement("descope-user-attribute", { required: required, ...props, ref: ref },
104090
+ React__default.default.createElement(Icon, { icon: deleteIconLight, "src-dark": deleteIconDark, slot: "delete-icon" }),
104091
+ React__default.default.createElement(Icon, { icon: editIconLight, "src-dark": editIconDark, slot: "edit-icon" }))));
104007
104092
 
104008
104093
  const Avatar = React__default.default.forwardRef(({ size = 'md', editable = false, ...props }, ref) => (React__default.default.createElement("descope-avatar", { size: size, editable: editable, ...props, ref: ref })));
104009
104094
 
package/dist/index.d.ts CHANGED
@@ -827,6 +827,10 @@ type Props$j = {
827
827
  label?: string;
828
828
  'full-width'?: boolean;
829
829
  required?: boolean;
830
+ deleteIconLight?: string;
831
+ editIconLight?: string;
832
+ deleteIconDark?: string;
833
+ editIconDark?: string;
830
834
  };
831
835
  declare global {
832
836
  namespace React.JSX {
package/dist/index.esm.js CHANGED
@@ -149,7 +149,7 @@ const Icon = ({ icon, noColor, ...props }) => {
149
149
  if (icons[icon]) {
150
150
  return (React.createElement("descope-icon", { src: icons[icon], ...(noColor && { 'st-fill': 'currentColor' }), ...props }));
151
151
  }
152
- return React.createElement("descope-icon", { "fill-color": noColor, src: icon });
152
+ return React.createElement("descope-icon", { "fill-color": noColor, src: icon, ...props });
153
153
  };
154
154
 
155
155
  const Tooltip = React.forwardRef(({ text, hideDelay = 0, hoverDelay = 0, children, readonly, staticDisplay, ...props }, ref) => (React.createElement("descope-tooltip", { text: text, "hide-delay": hideDelay, "hover-delay": hoverDelay, readonly: readonly, "static-display": staticDisplay, ref: ref, ...props }, children)));
@@ -285,6 +285,9 @@ const defaultProps = {
285
285
  'policy-label': 'Passwords must have:',
286
286
  // in the future, 'active-policies' can be injected in runtime
287
287
  'active-policies': [],
288
+ /* these patterns are cloned in the orchestration service (context.go file)
289
+ * make sure to update both places when changing it
290
+ */
288
291
  // non-user-editable patterns
289
292
  'data-password-policy-pattern-minlength': '^.{{{value}},}$',
290
293
  'data-password-policy-pattern-lowercase': '[a-z]',
@@ -307,6 +310,9 @@ const defaultProps = {
307
310
  };
308
311
  const NewPassword = React.forwardRef((props, ref) => {
309
312
  const mergedProps = { ...defaultProps, ...props };
313
+ /* this logic is cloned in the orchestration service (context.go file)
314
+ * make sure to update both places when changing it
315
+ */
310
316
  const availablePolicies = mergedProps?.['active-policies']?.map((id) => ({
311
317
  id,
312
318
  message: mergedProps[`data-password-policy-message-${id}`],
@@ -496,7 +502,9 @@ const UserAuthMethod = React.forwardRef(({ methodIcon, buttonIcon, ...props }, r
496
502
  React.createElement(Icon, { icon: methodIcon, slot: "method-icon", noColor: true }),
497
503
  React.createElement(Icon, { icon: buttonIcon, slot: "button-icon", noColor: true, width: "1em", height: "1em" }))));
498
504
 
499
- const UserAttribute = React.forwardRef(({ required = false, ...props }, ref) => (React.createElement("descope-user-attribute", { required: required, ...props, ref: ref })));
505
+ const UserAttribute = React.forwardRef(({ required = false, deleteIconLight, deleteIconDark, editIconLight, editIconDark, ...props }, ref) => (React.createElement("descope-user-attribute", { required: required, ...props, ref: ref },
506
+ React.createElement(Icon, { icon: deleteIconLight, "src-dark": deleteIconDark, slot: "delete-icon" }),
507
+ React.createElement(Icon, { icon: editIconLight, "src-dark": editIconDark, slot: "edit-icon" }))));
500
508
 
501
509
  const Avatar = React.forwardRef(({ size = 'md', editable = false, ...props }, ref) => (React.createElement("descope-avatar", { size: size, editable: editable, ...props, ref: ref })));
502
510
 
@@ -7,6 +7,10 @@ type Props = {
7
7
  label?: string;
8
8
  'full-width'?: boolean;
9
9
  required?: boolean;
10
+ deleteIconLight?: string;
11
+ editIconLight?: string;
12
+ deleteIconDark?: string;
13
+ editIconDark?: string;
10
14
  };
11
15
  declare global {
12
16
  namespace React.JSX {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@descope/flow-components",
3
- "version": "2.2.15",
3
+ "version": "2.2.17",
4
4
  "description": "",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",
@@ -60,7 +60,7 @@
60
60
  "eslint-config-standard": "17.1.0",
61
61
  "eslint-import-resolver-typescript": "4.4.4",
62
62
  "eslint-plugin-import": "2.32.0",
63
- "eslint-plugin-jest": "29.2.1",
63
+ "eslint-plugin-jest": "29.4.0",
64
64
  "eslint-plugin-jest-dom": "5.5.0",
65
65
  "eslint-plugin-jest-formatting": "3.1.0",
66
66
  "eslint-plugin-jsx-a11y": "^6.6.1",
@@ -76,10 +76,10 @@
76
76
  "jest-environment-jsdom": "30.2.0",
77
77
  "lint-staged": "^16.0.0",
78
78
  "postcss": "^8.4.14",
79
- "prettier": "3.7.3",
79
+ "prettier": "3.7.4",
80
80
  "pretty-quick": "^4.0.0",
81
- "react": "19.2.0",
82
- "react-dom": "19.2.0",
81
+ "react": "19.2.3",
82
+ "react-dom": "19.2.3",
83
83
  "rollup": "^4.0.0",
84
84
  "rollup-plugin-auto-external": "^2.0.0",
85
85
  "rollup-plugin-copy": "^3.4.0",
@@ -96,7 +96,7 @@
96
96
  "webpack-dev-server": "5.2.2"
97
97
  },
98
98
  "dependencies": {
99
- "@descope/web-components-ui": "2.2.15"
99
+ "@descope/web-components-ui": "2.2.17"
100
100
  },
101
101
  "peerDependencies": {
102
102
  "react": ">= 18"
@@ -134,7 +134,8 @@
134
134
  "build-storybook": "storybook build",
135
135
  "build:rollup": "rollup -c",
136
136
  "build:webpack": "webpack --mode production",
137
- "build": "npm run build:rollup && npm run build:webpack",
137
+ "build:all": "npm run build:rollup && npm run build:webpack",
138
+ "build": "npx nx run flow-components:build",
138
139
  "dev": "nx dev flow-components",
139
140
  "dev-server": "FEDERATION_IP=127.0.0.1 NODE_ENV=development webpack serve --mode development --port 4444",
140
141
  "test": "exit 0",