@ni/nimble-components 20.15.1 → 20.16.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 (32) hide show
  1. package/dist/all-components-bundle.js +219 -125
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +2216 -2173
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/label-provider/table/index.d.ts +6 -0
  6. package/dist/esm/label-provider/table/index.js +9 -1
  7. package/dist/esm/label-provider/table/index.js.map +1 -1
  8. package/dist/esm/label-provider/table/label-token-defaults.js +2 -0
  9. package/dist/esm/label-provider/table/label-token-defaults.js.map +1 -1
  10. package/dist/esm/label-provider/table/label-tokens.d.ts +2 -0
  11. package/dist/esm/label-provider/table/label-tokens.js +8 -0
  12. package/dist/esm/label-provider/table/label-tokens.js.map +1 -1
  13. package/dist/esm/patterns/expand-collapse/styles.d.ts +1 -0
  14. package/dist/esm/patterns/expand-collapse/styles.js +27 -0
  15. package/dist/esm/patterns/expand-collapse/styles.js.map +1 -0
  16. package/dist/esm/table/components/cell/styles.js +2 -2
  17. package/dist/esm/table/components/cell/styles.js.map +1 -1
  18. package/dist/esm/table/components/group-row/styles.js +3 -22
  19. package/dist/esm/table/components/group-row/styles.js.map +1 -1
  20. package/dist/esm/table/components/group-row/template.js +2 -1
  21. package/dist/esm/table/components/group-row/template.js.map +1 -1
  22. package/dist/esm/table/components/row/index.d.ts +12 -0
  23. package/dist/esm/table/components/row/index.js +37 -4
  24. package/dist/esm/table/components/row/index.js.map +1 -1
  25. package/dist/esm/table/components/row/styles.js +20 -1
  26. package/dist/esm/table/components/row/styles.js.map +1 -1
  27. package/dist/esm/table/components/row/template.js +28 -7
  28. package/dist/esm/table/components/row/template.js.map +1 -1
  29. package/dist/esm/table/index.js +4 -3
  30. package/dist/esm/table/index.js.map +1 -1
  31. package/dist/esm/table/types.d.ts +8 -0
  32. package/package.json +1 -1
@@ -16274,7 +16274,7 @@
16274
16274
 
16275
16275
  /**
16276
16276
  * Do not edit directly
16277
- * Generated on Thu, 07 Dec 2023 21:34:12 GMT
16277
+ * Generated on Mon, 11 Dec 2023 17:20:37 GMT
16278
16278
  */
16279
16279
 
16280
16280
  const Information100DarkUi = "#a46eff";
@@ -16678,7 +16678,7 @@
16678
16678
 
16679
16679
  const template$D = html `<slot></slot>`;
16680
16680
 
16681
- const styles$V = css `
16681
+ const styles$W = css `
16682
16682
  :host {
16683
16683
  display: contents;
16684
16684
  }
@@ -16795,7 +16795,7 @@
16795
16795
  ], ThemeProvider.prototype, "theme", void 0);
16796
16796
  const nimbleDesignSystemProvider = ThemeProvider.compose({
16797
16797
  baseName: 'theme-provider',
16798
- styles: styles$V,
16798
+ styles: styles$W,
16799
16799
  template: template$D
16800
16800
  });
16801
16801
  DesignSystem.getOrCreate()
@@ -17001,7 +17001,7 @@
17001
17001
  }
17002
17002
  }
17003
17003
 
17004
- const styles$U = css `
17004
+ const styles$V = css `
17005
17005
  ${display('inline')}
17006
17006
 
17007
17007
  :host {
@@ -17175,7 +17175,7 @@
17175
17175
  baseName: 'anchor',
17176
17176
  baseClass: Anchor$1,
17177
17177
  template: template$C,
17178
- styles: styles$U,
17178
+ styles: styles$V,
17179
17179
  shadowOptions: {
17180
17180
  delegatesFocus: true
17181
17181
  }
@@ -17278,7 +17278,7 @@
17278
17278
  padding: 0;
17279
17279
  `;
17280
17280
 
17281
- const styles$T = css `
17281
+ const styles$U = css `
17282
17282
  @layer base, hover, focusVisible, active, disabled, top;
17283
17283
 
17284
17284
  @layer base {
@@ -17555,8 +17555,8 @@
17555
17555
  }
17556
17556
  `));
17557
17557
 
17558
- const styles$S = css `
17559
- ${styles$T}
17558
+ const styles$T = css `
17559
+ ${styles$U}
17560
17560
  ${buttonAppearanceVariantStyles}
17561
17561
 
17562
17562
  .control {
@@ -17647,7 +17647,7 @@
17647
17647
  const nimbleAnchorButton = AnchorButton.compose({
17648
17648
  baseName: 'anchor-button',
17649
17649
  template: template$B,
17650
- styles: styles$S,
17650
+ styles: styles$T,
17651
17651
  shadowOptions: {
17652
17652
  delegatesFocus: true
17653
17653
  }
@@ -17655,7 +17655,7 @@
17655
17655
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorButton());
17656
17656
  DesignSystem.tagFor(AnchorButton);
17657
17657
 
17658
- const styles$R = css `
17658
+ const styles$S = css `
17659
17659
  ${display('grid')}
17660
17660
 
17661
17661
  :host {
@@ -17839,7 +17839,7 @@
17839
17839
  const nimbleAnchorMenuItem = AnchorMenuItem.compose({
17840
17840
  baseName: 'anchor-menu-item',
17841
17841
  template: template$A,
17842
- styles: styles$R,
17842
+ styles: styles$S,
17843
17843
  shadowOptions: {
17844
17844
  delegatesFocus: true
17845
17845
  }
@@ -17863,7 +17863,7 @@
17863
17863
  }
17864
17864
  });
17865
17865
 
17866
- const styles$Q = css `
17866
+ const styles$R = css `
17867
17867
  ${display('inline-flex')}
17868
17868
 
17869
17869
  :host {
@@ -18032,7 +18032,7 @@
18032
18032
  const nimbleAnchorTab = AnchorTab.compose({
18033
18033
  baseName: 'anchor-tab',
18034
18034
  template: template$z,
18035
- styles: styles$Q,
18035
+ styles: styles$R,
18036
18036
  shadowOptions: {
18037
18037
  delegatesFocus: true
18038
18038
  }
@@ -18040,7 +18040,7 @@
18040
18040
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorTab());
18041
18041
  DesignSystem.tagFor(AnchorTab);
18042
18042
 
18043
- const styles$P = css `
18043
+ const styles$Q = css `
18044
18044
  ${display('grid')}
18045
18045
 
18046
18046
  :host {
@@ -18269,7 +18269,7 @@
18269
18269
  const nimbleAnchorTabs = AnchorTabs.compose({
18270
18270
  baseName: 'anchor-tabs',
18271
18271
  template: template$y,
18272
- styles: styles$P,
18272
+ styles: styles$Q,
18273
18273
  shadowOptions: {
18274
18274
  delegatesFocus: false
18275
18275
  }
@@ -18286,7 +18286,7 @@
18286
18286
  -webkit-user-select: none;
18287
18287
  `;
18288
18288
 
18289
- const styles$O = css `
18289
+ const styles$P = css `
18290
18290
  ${display('block')}
18291
18291
 
18292
18292
  :host {
@@ -18525,7 +18525,7 @@
18525
18525
  const nimbleAnchorTreeItem = AnchorTreeItem.compose({
18526
18526
  baseName: 'anchor-tree-item',
18527
18527
  template: template$x,
18528
- styles: styles$O,
18528
+ styles: styles$P,
18529
18529
  shadowOptions: {
18530
18530
  delegatesFocus: true
18531
18531
  }
@@ -18535,7 +18535,7 @@
18535
18535
  .register(nimbleAnchorTreeItem());
18536
18536
  DesignSystem.tagFor(AnchorTreeItem);
18537
18537
 
18538
- const styles$N = css `
18538
+ const styles$O = css `
18539
18539
  :host {
18540
18540
  contain: layout;
18541
18541
  display: block;
@@ -18559,7 +18559,7 @@
18559
18559
  baseName: 'anchored-region',
18560
18560
  baseClass: AnchoredRegion$1,
18561
18561
  template: anchoredRegionTemplate,
18562
- styles: styles$N
18562
+ styles: styles$O
18563
18563
  });
18564
18564
  DesignSystem.getOrCreate()
18565
18565
  .withPrefix('nimble')
@@ -18639,7 +18639,7 @@
18639
18639
  */
18640
18640
  const themeBehavior = (theme, styles) => new ThemeStyleSheetBehavior(theme, styles);
18641
18641
 
18642
- const styles$M = css `
18642
+ const styles$N = css `
18643
18643
  ${display('flex')}
18644
18644
 
18645
18645
  :host {
@@ -18782,8 +18782,8 @@
18782
18782
  }
18783
18783
  `));
18784
18784
 
18785
- const styles$L = css `
18786
- ${styles$T}
18785
+ const styles$M = css `
18786
+ ${styles$U}
18787
18787
  ${buttonAppearanceVariantStyles}
18788
18788
  `;
18789
18789
 
@@ -18829,7 +18829,7 @@
18829
18829
  baseName: 'button',
18830
18830
  baseClass: Button$1,
18831
18831
  template: buttonTemplate,
18832
- styles: styles$L,
18832
+ styles: styles$M,
18833
18833
  shadowOptions: {
18834
18834
  delegatesFocus: true
18835
18835
  }
@@ -19546,7 +19546,7 @@
19546
19546
  :innerHTML=${x => x.icon.data}
19547
19547
  ></div>`;
19548
19548
 
19549
- const styles$K = css `
19549
+ const styles$L = css `
19550
19550
  ${display('inline-flex')}
19551
19551
 
19552
19552
  :host {
@@ -19600,7 +19600,7 @@
19600
19600
  const composedIcon = iconClass.compose({
19601
19601
  baseName,
19602
19602
  template: template$w,
19603
- styles: styles$K,
19603
+ styles: styles$L,
19604
19604
  baseClass: iconClass
19605
19605
  });
19606
19606
  DesignSystem.getOrCreate().withPrefix('nimble').register(composedIcon());
@@ -19821,12 +19821,12 @@
19821
19821
  const nimbleBanner = Banner.compose({
19822
19822
  baseName: 'banner',
19823
19823
  template: template$v,
19824
- styles: styles$M
19824
+ styles: styles$N
19825
19825
  });
19826
19826
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleBanner());
19827
19827
  DesignSystem.tagFor(Banner);
19828
19828
 
19829
- const styles$J = css `
19829
+ const styles$K = css `
19830
19830
  ${display('inline-block')}
19831
19831
 
19832
19832
  :host {
@@ -19867,12 +19867,12 @@
19867
19867
  baseName: 'breadcrumb',
19868
19868
  baseClass: Breadcrumb$1,
19869
19869
  template: breadcrumbTemplate,
19870
- styles: styles$J
19870
+ styles: styles$K
19871
19871
  });
19872
19872
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleBreadcrumb());
19873
19873
  DesignSystem.tagFor(Breadcrumb);
19874
19874
 
19875
- const styles$I = css `
19875
+ const styles$J = css `
19876
19876
  ${display('inline-flex')}
19877
19877
 
19878
19878
  :host {
@@ -19946,7 +19946,7 @@
19946
19946
  baseName: 'breadcrumb-item',
19947
19947
  baseClass: BreadcrumbItem$1,
19948
19948
  template: breadcrumbItemTemplate,
19949
- styles: styles$I,
19949
+ styles: styles$J,
19950
19950
  separator: forwardSlash16X16.data
19951
19951
  });
19952
19952
  DesignSystem.getOrCreate()
@@ -19954,7 +19954,7 @@
19954
19954
  .register(nimbleBreadcrumbItem());
19955
19955
  DesignSystem.tagFor(BreadcrumbItem);
19956
19956
 
19957
- const styles$H = css `
19957
+ const styles$I = css `
19958
19958
  ${display('flex')}
19959
19959
 
19960
19960
  :host {
@@ -19995,12 +19995,12 @@
19995
19995
  baseName: 'card',
19996
19996
  baseClass: Card$1,
19997
19997
  template: template$u,
19998
- styles: styles$H
19998
+ styles: styles$I
19999
19999
  });
20000
20000
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCard());
20001
20001
  DesignSystem.tagFor(Card);
20002
20002
 
20003
- const styles$G = css `
20003
+ const styles$H = css `
20004
20004
  ${display('inline-flex')}
20005
20005
 
20006
20006
  :host {
@@ -20159,7 +20159,7 @@
20159
20159
  const nimbleCardButton = CardButton.compose({
20160
20160
  baseName: 'card-button',
20161
20161
  template: buttonTemplate,
20162
- styles: styles$G,
20162
+ styles: styles$H,
20163
20163
  shadowOptions: {
20164
20164
  delegatesFocus: true
20165
20165
  }
@@ -20167,7 +20167,7 @@
20167
20167
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCardButton());
20168
20168
  DesignSystem.tagFor(CardButton);
20169
20169
 
20170
- const styles$F = css `
20170
+ const styles$G = css `
20171
20171
  ${display('inline-flex')}
20172
20172
 
20173
20173
  :host {
@@ -20285,15 +20285,15 @@
20285
20285
  baseName: 'checkbox',
20286
20286
  baseClass: Checkbox$1,
20287
20287
  template: checkboxTemplate,
20288
- styles: styles$F,
20288
+ styles: styles$G,
20289
20289
  checkedIndicator: check16X16.data,
20290
20290
  indeterminateIndicator: minus16X16.data
20291
20291
  });
20292
20292
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCheckbox());
20293
20293
  const checkboxTag = DesignSystem.tagFor(Checkbox);
20294
20294
 
20295
- const styles$E = css `
20296
- ${styles$T}
20295
+ const styles$F = css `
20296
+ ${styles$U}
20297
20297
 
20298
20298
  @layer base {
20299
20299
  .control[aria-pressed='true'] {
@@ -20448,7 +20448,7 @@
20448
20448
  const nimbleToggleButton = ToggleButton.compose({
20449
20449
  baseName: 'toggle-button',
20450
20450
  template: template$t,
20451
- styles: styles$E,
20451
+ styles: styles$F,
20452
20452
  shadowOptions: {
20453
20453
  delegatesFocus: true
20454
20454
  }
@@ -20485,7 +20485,7 @@
20485
20485
  block: 'block'
20486
20486
  };
20487
20487
 
20488
- const styles$D = css `
20488
+ const styles$E = css `
20489
20489
  ${display('inline-flex')}
20490
20490
 
20491
20491
  :host {
@@ -20711,7 +20711,7 @@
20711
20711
  }
20712
20712
  `));
20713
20713
 
20714
- const styles$C = css `
20714
+ const styles$D = css `
20715
20715
  .error-icon {
20716
20716
  display: none;
20717
20717
  }
@@ -20745,9 +20745,9 @@
20745
20745
  }
20746
20746
  `;
20747
20747
 
20748
- const styles$B = css `
20748
+ const styles$C = css `
20749
+ ${styles$E}
20749
20750
  ${styles$D}
20750
- ${styles$C}
20751
20751
 
20752
20752
  :host {
20753
20753
  --ni-private-hover-bottom-border-width: 2px;
@@ -21162,7 +21162,7 @@
21162
21162
  baseName: 'combobox',
21163
21163
  baseClass: Combobox$1,
21164
21164
  template: template$s,
21165
- styles: styles$B,
21165
+ styles: styles$C,
21166
21166
  shadowOptions: {
21167
21167
  delegatesFocus: true
21168
21168
  },
@@ -21207,7 +21207,7 @@
21207
21207
  */
21208
21208
  const UserDismissed = Symbol('user dismissed');
21209
21209
 
21210
- const styles$A = css `
21210
+ const styles$B = css `
21211
21211
  ${display('grid')}
21212
21212
 
21213
21213
  dialog {
@@ -21437,13 +21437,13 @@
21437
21437
  const nimbleDialog = Dialog.compose({
21438
21438
  baseName: 'dialog',
21439
21439
  template: template$r,
21440
- styles: styles$A,
21440
+ styles: styles$B,
21441
21441
  baseClass: Dialog
21442
21442
  });
21443
21443
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleDialog());
21444
21444
  DesignSystem.tagFor(Dialog);
21445
21445
 
21446
- const styles$z = css `
21446
+ const styles$A = css `
21447
21447
  ${display('block')}
21448
21448
 
21449
21449
  :host {
@@ -21711,7 +21711,7 @@
21711
21711
  const nimbleDrawer = Drawer.compose({
21712
21712
  baseName: 'drawer',
21713
21713
  template: template$q,
21714
- styles: styles$z
21714
+ styles: styles$A
21715
21715
  });
21716
21716
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleDrawer());
21717
21717
  DesignSystem.tagFor(Drawer);
@@ -24024,6 +24024,8 @@
24024
24024
  const tableLabelDefaults = {
24025
24025
  tableGroupCollapseLabel: 'Collapse group',
24026
24026
  tableGroupExpandLabel: 'Expand group',
24027
+ tableRowCollapseLabel: 'Collapse row',
24028
+ tableRowExpandLabel: 'Expand row',
24027
24029
  tableGroupsCollapseAllLabel: 'Collapse all groups',
24028
24030
  tableCellActionMenuLabel: 'Options',
24029
24031
  tableColumnHeaderGroupedLabel: 'Grouped',
@@ -24043,6 +24045,14 @@
24043
24045
  name: 'table-group-expand-label',
24044
24046
  cssCustomPropertyName: null
24045
24047
  }).withDefault(tableLabelDefaults.tableGroupExpandLabel);
24048
+ const tableRowCollapseLabel = DesignToken.create({
24049
+ name: 'table-row-collapse-label',
24050
+ cssCustomPropertyName: null
24051
+ }).withDefault(tableLabelDefaults.tableRowCollapseLabel);
24052
+ const tableRowExpandLabel = DesignToken.create({
24053
+ name: 'table-row-expand-label',
24054
+ cssCustomPropertyName: null
24055
+ }).withDefault(tableLabelDefaults.tableRowExpandLabel);
24046
24056
  const tableGroupsCollapseAllLabel = DesignToken.create({
24047
24057
  name: 'table-groups-collapse-all-label',
24048
24058
  cssCustomPropertyName: null
@@ -24083,6 +24093,8 @@
24083
24093
  const supportedLabels = {
24084
24094
  groupCollapse: tableGroupCollapseLabel,
24085
24095
  groupExpand: tableGroupExpandLabel,
24096
+ rowCollapse: tableRowCollapseLabel,
24097
+ rowExpand: tableRowExpandLabel,
24086
24098
  groupsCollapseAll: tableGroupsCollapseAllLabel,
24087
24099
  cellActionMenu: tableCellActionMenuLabel,
24088
24100
  columnHeaderGrouped: tableColumnHeaderGroupedLabel,
@@ -24108,6 +24120,12 @@
24108
24120
  __decorate$1([
24109
24121
  attr({ attribute: 'group-expand' })
24110
24122
  ], LabelProviderTable.prototype, "groupExpand", void 0);
24123
+ __decorate$1([
24124
+ attr({ attribute: 'row-collapse' })
24125
+ ], LabelProviderTable.prototype, "rowCollapse", void 0);
24126
+ __decorate$1([
24127
+ attr({ attribute: 'row-expand' })
24128
+ ], LabelProviderTable.prototype, "rowExpand", void 0);
24111
24129
  __decorate$1([
24112
24130
  attr({ attribute: 'groups-collapse-all' })
24113
24131
  ], LabelProviderTable.prototype, "groupsCollapseAll", void 0);
@@ -24143,7 +24161,7 @@
24143
24161
  .register(nimbleLabelProviderTable());
24144
24162
  DesignSystem.tagFor(LabelProviderTable);
24145
24163
 
24146
- const styles$y = css `
24164
+ const styles$z = css `
24147
24165
  ${display('flex')}
24148
24166
 
24149
24167
  :host {
@@ -24265,7 +24283,7 @@
24265
24283
  baseName: 'list-option',
24266
24284
  baseClass: ListboxOption,
24267
24285
  template: template$p,
24268
- styles: styles$y
24286
+ styles: styles$z
24269
24287
  });
24270
24288
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleListOption());
24271
24289
  DesignSystem.tagFor(ListOption);
@@ -24379,7 +24397,7 @@
24379
24397
  DesignSystem.getOrCreate().withPrefix('nimble').register(spinnerMapping());
24380
24398
  DesignSystem.tagFor(MappingSpinner);
24381
24399
 
24382
- const styles$x = css `
24400
+ const styles$y = css `
24383
24401
  ${display('grid')}
24384
24402
 
24385
24403
  :host {
@@ -24446,12 +24464,12 @@
24446
24464
  baseName: 'menu',
24447
24465
  baseClass: Menu$1,
24448
24466
  template: menuTemplate,
24449
- styles: styles$x
24467
+ styles: styles$y
24450
24468
  });
24451
24469
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleMenu());
24452
24470
  DesignSystem.tagFor(Menu);
24453
24471
 
24454
- const styles$w = css `
24472
+ const styles$x = css `
24455
24473
  ${display('inline-block')}
24456
24474
 
24457
24475
  :host {
@@ -24726,7 +24744,7 @@
24726
24744
  const nimbleMenuButton = MenuButton.compose({
24727
24745
  baseName: 'menu-button',
24728
24746
  template: template$n,
24729
- styles: styles$w,
24747
+ styles: styles$x,
24730
24748
  shadowOptions: {
24731
24749
  delegatesFocus: true
24732
24750
  }
@@ -24734,7 +24752,7 @@
24734
24752
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleMenuButton());
24735
24753
  const menuButtonTag = DesignSystem.tagFor(MenuButton);
24736
24754
 
24737
- const styles$v = css `
24755
+ const styles$w = css `
24738
24756
  ${display('grid')}
24739
24757
 
24740
24758
  :host {
@@ -24832,7 +24850,7 @@
24832
24850
  baseName: 'menu-item',
24833
24851
  baseClass: MenuItem$1,
24834
24852
  template: menuItemTemplate,
24835
- styles: styles$v,
24853
+ styles: styles$w,
24836
24854
  expandCollapseGlyph: arrowExpanderRight16X16.data
24837
24855
  });
24838
24856
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleMenuItem());
@@ -24847,9 +24865,9 @@
24847
24865
  block: 'block'
24848
24866
  };
24849
24867
 
24850
- const styles$u = css `
24868
+ const styles$v = css `
24851
24869
  ${display('inline-block')}
24852
- ${styles$C}
24870
+ ${styles$D}
24853
24871
 
24854
24872
  :host {
24855
24873
  font: ${bodyFont};
@@ -25063,7 +25081,7 @@
25063
25081
  baseName: 'number-field',
25064
25082
  baseClass: NumberField$1,
25065
25083
  template: numberFieldTemplate,
25066
- styles: styles$u,
25084
+ styles: styles$v,
25067
25085
  shadowOptions: {
25068
25086
  delegatesFocus: true
25069
25087
  },
@@ -25107,7 +25125,7 @@
25107
25125
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleNumberField());
25108
25126
  DesignSystem.tagFor(NumberField);
25109
25127
 
25110
- const styles$t = css `
25128
+ const styles$u = css `
25111
25129
  ${display('inline-flex')}
25112
25130
 
25113
25131
  :host {
@@ -25208,13 +25226,13 @@
25208
25226
  baseName: 'radio',
25209
25227
  baseClass: Radio$1,
25210
25228
  template: radioTemplate,
25211
- styles: styles$t,
25229
+ styles: styles$u,
25212
25230
  checkedIndicator: circleFilled16X16.data
25213
25231
  });
25214
25232
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleRadio());
25215
25233
  DesignSystem.tagFor(Radio);
25216
25234
 
25217
- const styles$s = css `
25235
+ const styles$t = css `
25218
25236
  ${display('inline-block')}
25219
25237
 
25220
25238
  .positioning-region {
@@ -25249,7 +25267,7 @@
25249
25267
  baseName: 'radio-group',
25250
25268
  baseClass: RadioGroup$1,
25251
25269
  template: radioGroupTemplate,
25252
- styles: styles$s,
25270
+ styles: styles$t,
25253
25271
  shadowOptions: {
25254
25272
  delegatesFocus: true
25255
25273
  }
@@ -42101,7 +42119,7 @@ img.ProseMirror-separator {
42101
42119
  return string.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
42102
42120
  }
42103
42121
 
42104
- const styles$r = css `
42122
+ const styles$s = css `
42105
42123
  .positioning-region {
42106
42124
  display: flex;
42107
42125
  padding: ${smallPadding} ${standardPadding};
@@ -42136,7 +42154,7 @@ img.ProseMirror-separator {
42136
42154
  baseName: 'toolbar',
42137
42155
  baseClass: Toolbar$1,
42138
42156
  template: toolbarTemplate,
42139
- styles: styles$r,
42157
+ styles: styles$s,
42140
42158
  shadowOptions: {
42141
42159
  delegatesFocus: true
42142
42160
  }
@@ -42280,7 +42298,7 @@ img.ProseMirror-separator {
42280
42298
  >@${x => x.mentionLabel}</span
42281
42299
  ><slot contenteditable="true"></slot>`;
42282
42300
 
42283
- const styles$q = css `
42301
+ const styles$r = css `
42284
42302
  ${display('inline-block')}
42285
42303
 
42286
42304
  :host {
@@ -42321,16 +42339,16 @@ img.ProseMirror-separator {
42321
42339
  const nimbleRichTextMentionUsersView = RichTextMentionUsersView.compose({
42322
42340
  baseName: 'rich-text-mention-users-view',
42323
42341
  template: template$l,
42324
- styles: styles$q
42342
+ styles: styles$r
42325
42343
  });
42326
42344
  DesignSystem.getOrCreate()
42327
42345
  .withPrefix('nimble')
42328
42346
  .register(nimbleRichTextMentionUsersView());
42329
42347
  const richTextMentionUsersViewTag = DesignSystem.tagFor(RichTextMentionUsersView);
42330
42348
 
42331
- const styles$p = css `
42349
+ const styles$q = css `
42332
42350
  ${display('inline-flex')}
42333
- ${styles$C}
42351
+ ${styles$D}
42334
42352
 
42335
42353
  :host {
42336
42354
  font: ${bodyFont};
@@ -60505,7 +60523,7 @@ img.ProseMirror-separator {
60505
60523
  const nimbleRichTextEditor = RichTextEditor.compose({
60506
60524
  baseName: 'rich-text-editor',
60507
60525
  template: template$m,
60508
- styles: styles$p
60526
+ styles: styles$q
60509
60527
  });
60510
60528
  DesignSystem.getOrCreate()
60511
60529
  .withPrefix('nimble')
@@ -60518,7 +60536,7 @@ img.ProseMirror-separator {
60518
60536
  </template>
60519
60537
  `;
60520
60538
 
60521
- const styles$o = css `
60539
+ const styles$p = css `
60522
60540
  ${display('flex')}
60523
60541
 
60524
60542
  :host {
@@ -60629,16 +60647,16 @@ img.ProseMirror-separator {
60629
60647
  const nimbleRichTextViewer = RichTextViewer.compose({
60630
60648
  baseName: 'rich-text-viewer',
60631
60649
  template: template$k,
60632
- styles: styles$o
60650
+ styles: styles$p
60633
60651
  });
60634
60652
  DesignSystem.getOrCreate()
60635
60653
  .withPrefix('nimble')
60636
60654
  .register(nimbleRichTextViewer());
60637
60655
  DesignSystem.tagFor(RichTextViewer);
60638
60656
 
60639
- const styles$n = css `
60657
+ const styles$o = css `
60658
+ ${styles$E}
60640
60659
  ${styles$D}
60641
- ${styles$C}
60642
60660
 
60643
60661
  ${
60644
60662
  /* We are using flex `order` to define the visual ordering of the selected value,
@@ -60810,7 +60828,7 @@ img.ProseMirror-separator {
60810
60828
  baseName: 'select',
60811
60829
  baseClass: Select$1,
60812
60830
  template: template$j,
60813
- styles: styles$n,
60831
+ styles: styles$o,
60814
60832
  indicator: arrowExpanderDown16X16.data,
60815
60833
  end: html `
60816
60834
  <${iconExclamationMarkTag}
@@ -60823,7 +60841,7 @@ img.ProseMirror-separator {
60823
60841
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSelect());
60824
60842
  DesignSystem.tagFor(Select);
60825
60843
 
60826
- const styles$m = css `
60844
+ const styles$n = css `
60827
60845
  ${display('inline-flex')}
60828
60846
 
60829
60847
  :host {
@@ -61024,12 +61042,12 @@ img.ProseMirror-separator {
61024
61042
  const nimbleSpinner = Spinner.compose({
61025
61043
  baseName: 'spinner',
61026
61044
  template: template$i,
61027
- styles: styles$m
61045
+ styles: styles$n
61028
61046
  });
61029
61047
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSpinner());
61030
61048
  const spinnerTag = DesignSystem.tagFor(Spinner);
61031
61049
 
61032
- const styles$l = css `
61050
+ const styles$m = css `
61033
61051
  ${display('inline-flex')}
61034
61052
 
61035
61053
  :host {
@@ -61237,12 +61255,12 @@ img.ProseMirror-separator {
61237
61255
  baseClass: Switch$1,
61238
61256
  baseName: 'switch',
61239
61257
  template: template$h,
61240
- styles: styles$l
61258
+ styles: styles$m
61241
61259
  });
61242
61260
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSwitch());
61243
61261
  DesignSystem.tagFor(Switch);
61244
61262
 
61245
- const styles$k = css `
61263
+ const styles$l = css `
61246
61264
  ${display('inline-flex')}
61247
61265
 
61248
61266
  :host {
@@ -61353,12 +61371,12 @@ img.ProseMirror-separator {
61353
61371
  baseName: 'tab',
61354
61372
  baseClass: Tab$2,
61355
61373
  template: tabTemplate,
61356
- styles: styles$k
61374
+ styles: styles$l
61357
61375
  });
61358
61376
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTab());
61359
61377
  DesignSystem.tagFor(Tab);
61360
61378
 
61361
- const styles$j = css `
61379
+ const styles$k = css `
61362
61380
  ${display('block')}
61363
61381
 
61364
61382
  :host {
@@ -61378,7 +61396,7 @@ img.ProseMirror-separator {
61378
61396
  baseName: 'tab-panel',
61379
61397
  baseClass: TabPanel$1,
61380
61398
  template: tabPanelTemplate,
61381
- styles: styles$j
61399
+ styles: styles$k
61382
61400
  });
61383
61401
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTabPanel());
61384
61402
  DesignSystem.tagFor(TabPanel);
@@ -65211,7 +65229,7 @@ img.ProseMirror-separator {
65211
65229
  }
65212
65230
  }
65213
65231
 
65214
- const styles$i = css `
65232
+ const styles$j = css `
65215
65233
  ${display('flex')}
65216
65234
 
65217
65235
  :host {
@@ -65395,7 +65413,7 @@ img.ProseMirror-separator {
65395
65413
  }
65396
65414
  `));
65397
65415
 
65398
- const styles$h = css `
65416
+ const styles$i = css `
65399
65417
  ${display('flex')}
65400
65418
 
65401
65419
  :host {
@@ -65492,12 +65510,38 @@ img.ProseMirror-separator {
65492
65510
  const nimbleTableHeader = TableHeader.compose({
65493
65511
  baseName: 'table-header',
65494
65512
  template: template$g,
65495
- styles: styles$h
65513
+ styles: styles$i
65496
65514
  });
65497
65515
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTableHeader());
65498
65516
  const tableHeaderTag = DesignSystem.tagFor(TableHeader);
65499
65517
 
65518
+ const styles$h = css `
65519
+ :host .animating {
65520
+ transition: ${mediumDelay} ease-in;
65521
+ }
65522
+
65523
+ .expand-collapse-button {
65524
+ height: ${controlSlimHeight};
65525
+ align-self: center;
65526
+ }
65527
+
65528
+ .expander-icon {
65529
+ transform: rotate(0deg);
65530
+ }
65531
+
65532
+ :host([expanded]) .expander-icon {
65533
+ transform: rotate(90deg);
65534
+ }
65535
+
65536
+ @media (prefers-reduced-motion) {
65537
+ :host .animating {
65538
+ transition-duration: 0s;
65539
+ }
65540
+ }
65541
+ `;
65542
+
65500
65543
  const styles$g = css `
65544
+ ${styles$h}
65501
65545
  ${display('flex')}
65502
65546
 
65503
65547
  :host {
@@ -65532,6 +65576,13 @@ img.ProseMirror-separator {
65532
65576
  background-color: ${fillHoverSelectedColor};
65533
65577
  }
65534
65578
 
65579
+ .expand-collapse-button {
65580
+ padding-left: calc(
65581
+ ${mediumPadding} + (var(--ni-private-table-row-indent-level) - 1) *
65582
+ ${controlHeight}
65583
+ );
65584
+ }
65585
+
65535
65586
  .row-operations-container {
65536
65587
  display: flex;
65537
65588
  }
@@ -65549,6 +65600,10 @@ img.ProseMirror-separator {
65549
65600
  flex: 0 0 auto;
65550
65601
  }
65551
65602
 
65603
+ .row-front-spacer.top-level-parent {
65604
+ width: ${mediumPadding};
65605
+ }
65606
+
65552
65607
  .cell-container {
65553
65608
  display: grid;
65554
65609
  width: 100%;
@@ -65557,6 +65612,12 @@ img.ProseMirror-separator {
65557
65612
  grid-template-columns: var(--ni-private-table-row-grid-columns) auto;
65558
65613
  }
65559
65614
 
65615
+ .cell-container.nested-parent {
65616
+ margin-left: calc(
65617
+ (${controlHeight} * var(--ni-private-table-row-indent-level)) * -1
65618
+ );
65619
+ }
65620
+
65560
65621
  nimble-table-cell {
65561
65622
  --ni-private-table-cell-action-menu-display: none;
65562
65623
  }
@@ -65593,7 +65654,7 @@ img.ProseMirror-separator {
65593
65654
  --ni-private-table-cell-nesting-level: 0;
65594
65655
  padding: 0px ${mediumPadding};
65595
65656
  padding-left: calc(
65596
- ${mediumPadding} + ${standardPadding} * 2 *
65657
+ ${mediumPadding} + ${controlHeight} *
65597
65658
  var(--ni-private-table-cell-nesting-level)
65598
65659
  );
65599
65660
  align-self: center;
@@ -65696,7 +65757,12 @@ img.ProseMirror-separator {
65696
65757
 
65697
65758
  // prettier-ignore
65698
65759
  const template$e = html `
65699
- <template role="row" aria-selected=${x => x.ariaSelected}>
65760
+ <template
65761
+ role="row"
65762
+ aria-selected=${x => x.ariaSelected}
65763
+ aria-expanded=${x => x.expanded}
65764
+ style="--ni-private-table-row-indent-level: ${x => x.nestingLevel};"
65765
+ >
65700
65766
  ${when(x => !x.rowOperationGridCellHidden, html `
65701
65767
  <span role="gridcell" class="row-operations-container">
65702
65768
  ${when(x => x.selectable && !x.hideSelection, html `
@@ -65712,11 +65778,24 @@ img.ProseMirror-separator {
65712
65778
  `)}
65713
65779
  </span>
65714
65780
  `)}
65715
- ${'' /* This is needed to help align the cell widths exactly with the column headers, due to the space reserved for
65716
- the collapse-all button in the header. */}
65717
- <span class="row-front-spacer"></span>
65781
+ <span class="row-front-spacer ${x => (x.isParentRow && x.nestingLevel === 0 ? 'top-level-parent' : '')}"></span>
65782
+ ${when(x => x.isParentRow, html `
65783
+ <${buttonTag}
65784
+ appearance="${ButtonAppearance.ghost}"
65785
+ content-hidden
65786
+ class="expand-collapse-button"
65787
+ tabindex="-1"
65788
+ @click="${(x, c) => x.onRowExpandToggle(c.event)}"
65789
+ title="${x => (x.expanded ? tableRowCollapseLabel.getValueFor(x) : tableRowExpandLabel.getValueFor(x))}"
65790
+ aria-hidden="true"
65791
+ >
65792
+ <${iconArrowExpanderRightTag} ${ref('expandIcon')} slot="start" class="expander-icon ${x => x.animationClass}"></${iconArrowExpanderRightTag}>
65793
+ </${buttonTag}>
65794
+ `)}
65718
65795
 
65719
- <span ${ref('cellContainer')} class="cell-container">
65796
+ <span ${ref('cellContainer')}
65797
+ class="cell-container ${x => (x.isParentRow && x.nestingLevel > 0 ? 'nested-parent' : '')}"
65798
+ >
65720
65799
  ${repeat(x => x.columns, html `
65721
65800
  ${when(x => !x.columnHidden, html `
65722
65801
  <${tableCellTag}
@@ -65730,7 +65809,7 @@ img.ProseMirror-separator {
65730
65809
  action-menu-label="${x => x.actionMenuLabel}"
65731
65810
  @cell-action-menu-beforetoggle="${(x, c) => c.parent.onCellActionMenuBeforeToggle(c.event, x)}"
65732
65811
  @cell-action-menu-toggle="${(x, c) => c.parent.onCellActionMenuToggle(c.event, x)}"
65733
- :nestingLevel="${(_, c) => c.parent.cellIndentLevels[c.index]};"
65812
+ :nestingLevel="${(_, c) => c.parent.cellIndentLevels[c.index]}"
65734
65813
  >
65735
65814
 
65736
65815
  ${when((x, c) => (c.parent.currentActionMenuColumn === x) && x.actionMenuSlot, html `
@@ -65756,12 +65835,14 @@ img.ProseMirror-separator {
65756
65835
  this.selectable = false;
65757
65836
  this.selected = false;
65758
65837
  this.hideSelection = false;
65838
+ this.expanded = false;
65759
65839
  /**
65760
65840
  * @internal
65761
65841
  * */
65762
65842
  this.columnNotifiers = [];
65763
65843
  this.columns = [];
65764
65844
  this.nestingLevel = 0;
65845
+ this.isParentRow = false;
65765
65846
  this.menuOpen = false;
65766
65847
  this.rowOperationGridCellHidden = false;
65767
65848
  /**
@@ -65776,11 +65857,19 @@ img.ProseMirror-separator {
65776
65857
  * of each column's cell.
65777
65858
  * */
65778
65859
  this.cellStates = [];
65860
+ /**
65861
+ * @internal
65862
+ */
65863
+ this.animationClass = '';
65779
65864
  // Programmatically updating the selection state of a checkbox fires the 'change' event.
65780
65865
  // Therefore, selection change events that occur due to programmatically updating
65781
65866
  // the selection checkbox 'checked' value should be ingored.
65782
65867
  // https://github.com/microsoft/fast/issues/5750
65783
65868
  this.ignoreSelectionChangeEvents = false;
65869
+ this.removeAnimatingClass = () => {
65870
+ this.animationClass = '';
65871
+ this.expandIcon?.removeEventListener('transitionend', this.removeAnimatingClass);
65872
+ };
65784
65873
  }
65785
65874
  get ariaSelected() {
65786
65875
  if (this.selectable) {
@@ -65829,6 +65918,23 @@ img.ProseMirror-separator {
65829
65918
  this.updateCellStates();
65830
65919
  }
65831
65920
  }
65921
+ onRowExpandToggle(event) {
65922
+ const expandEventDetail = {
65923
+ oldState: this.expanded,
65924
+ newState: !this.expanded,
65925
+ recordId: this.recordId
65926
+ };
65927
+ this.$emit('row-expand-toggle', expandEventDetail);
65928
+ event.stopImmediatePropagation();
65929
+ // To avoid a visual glitch with improper expand/collapse icons performing an
65930
+ // animation (due to visual re-use apparently), we apply a class to the
65931
+ // contained expand-collapse button temporarily. We use the 'transitionend' event
65932
+ // to remove the temporary class and register a function reference as the handler
65933
+ // to avoid issues that may result from the 'transitionend' event not firing, as it
65934
+ // will never result in multiple event listeners being registered.
65935
+ this.animationClass = 'animating';
65936
+ this.expandIcon?.addEventListener('transitionend', this.removeAnimatingClass);
65937
+ }
65832
65938
  emitActionMenuToggleEvent(eventType, menuButtonEventDetail, column) {
65833
65939
  const detail = {
65834
65940
  newState: menuButtonEventDetail.newState,
@@ -65851,10 +65957,7 @@ img.ProseMirror-separator {
65851
65957
  }
65852
65958
  updateCellIndentLevels() {
65853
65959
  this.cellIndentLevels = this.columns.map((_, i) => {
65854
- if (i === 0 && this.nestingLevel > 0) {
65855
- return this.nestingLevel - 1;
65856
- }
65857
- return 0;
65960
+ return i === 0 ? this.nestingLevel : 0;
65858
65961
  });
65859
65962
  }
65860
65963
  removeColumnObservers() {
@@ -65919,6 +66022,9 @@ img.ProseMirror-separator {
65919
66022
  __decorate$1([
65920
66023
  attr({ attribute: 'hide-selection', mode: 'boolean' })
65921
66024
  ], TableRow.prototype, "hideSelection", void 0);
66025
+ __decorate$1([
66026
+ attr({ mode: 'boolean' })
66027
+ ], TableRow.prototype, "expanded", void 0);
65922
66028
  __decorate$1([
65923
66029
  observable
65924
66030
  ], TableRow.prototype, "dataRecord", void 0);
@@ -65931,6 +66037,9 @@ img.ProseMirror-separator {
65931
66037
  __decorate$1([
65932
66038
  observable
65933
66039
  ], TableRow.prototype, "nestingLevel", void 0);
66040
+ __decorate$1([
66041
+ attr({ attribute: 'is-parent-row', mode: 'boolean' })
66042
+ ], TableRow.prototype, "isParentRow", void 0);
65934
66043
  __decorate$1([
65935
66044
  attr({ attribute: 'menu-open', mode: 'boolean' })
65936
66045
  ], TableRow.prototype, "menuOpen", void 0);
@@ -65946,6 +66055,9 @@ img.ProseMirror-separator {
65946
66055
  __decorate$1([
65947
66056
  observable
65948
66057
  ], TableRow.prototype, "selectionCheckbox", void 0);
66058
+ __decorate$1([
66059
+ observable
66060
+ ], TableRow.prototype, "animationClass", void 0);
65949
66061
  __decorate$1([
65950
66062
  volatile
65951
66063
  ], TableRow.prototype, "ariaSelected", null);
@@ -65959,6 +66071,7 @@ img.ProseMirror-separator {
65959
66071
 
65960
66072
  const styles$e = css `
65961
66073
  ${display('grid')}
66074
+ ${styles$h}
65962
66075
 
65963
66076
  :host {
65964
66077
  align-items: center;
@@ -65983,11 +66096,6 @@ img.ProseMirror-separator {
65983
66096
  1fr;
65984
66097
  }
65985
66098
 
65986
- :host([expanded]) .animating,
65987
- :host .animating {
65988
- transition: ${mediumDelay} ease-in-out;
65989
- }
65990
-
65991
66099
  :host::before {
65992
66100
  content: '';
65993
66101
  width: 100%;
@@ -66006,15 +66114,6 @@ img.ProseMirror-separator {
66006
66114
  ${mediumPadding} + ${standardPadding} * 2 *
66007
66115
  var(--ni-private-table-group-row-indent-level)
66008
66116
  );
66009
- height: ${controlSlimHeight};
66010
- }
66011
-
66012
- :host([expanded]) .expander-icon {
66013
- transform: rotate(90deg);
66014
- }
66015
-
66016
- .expander-icon {
66017
- transform: rotate(0deg);
66018
66117
  }
66019
66118
 
66020
66119
  .group-row-header-content {
@@ -66036,13 +66135,6 @@ img.ProseMirror-separator {
66036
66135
  ${userSelectNone}
66037
66136
  }
66038
66137
 
66039
- @media (prefers-reduced-motion) {
66040
- :host .animating,
66041
- :host([expanded]) .animating {
66042
- transition-duration: 0s;
66043
- }
66044
- }
66045
-
66046
66138
  .checkbox-container {
66047
66139
  display: flex;
66048
66140
  }
@@ -66070,6 +66162,7 @@ img.ProseMirror-separator {
66070
66162
  <template
66071
66163
  role="row"
66072
66164
  @click=${x => x.onGroupExpandToggle()}
66165
+ aria-expanded=${x => x.expanded}
66073
66166
  style="--ni-private-table-group-row-indent-level: ${x => x.nestingLevel};"
66074
66167
  >
66075
66168
  ${when(x => x.selectable, html `
@@ -66093,9 +66186,9 @@ img.ProseMirror-separator {
66093
66186
  class="expand-collapse-button"
66094
66187
  tabindex="-1"
66095
66188
  title="${x => (x.expanded ? tableGroupCollapseLabel.getValueFor(x) : tableGroupExpandLabel.getValueFor(x))}"
66189
+ aria-hidden="true"
66096
66190
  >
66097
66191
  <${iconArrowExpanderRightTag} ${ref('expandIcon')} slot="start" class="expander-icon ${x => x.animationClass}"></${iconArrowExpanderRightTag}>
66098
- ${x => (x.expanded ? tableGroupCollapseLabel.getValueFor(x) : tableGroupExpandLabel.getValueFor(x))}
66099
66192
  </${buttonTag}>
66100
66193
  </span>
66101
66194
 
@@ -68388,16 +68481,17 @@ img.ProseMirror-separator {
68388
68481
  this.selectionState = this.getTableSelectionState();
68389
68482
  const rows = this.table.getRowModel().rows;
68390
68483
  this.tableData = rows.map(row => {
68484
+ const isGrouped = row.getIsGrouped();
68391
68485
  const rowState = {
68392
68486
  record: row.original.clientRecord,
68393
68487
  id: row.id,
68394
68488
  selectionState: this.getRowSelectionState(row),
68395
- isGrouped: row.getIsGrouped(),
68489
+ isGrouped,
68396
68490
  isExpanded: row.getIsExpanded(),
68397
- groupRowValue: row.getIsGrouped()
68491
+ groupRowValue: isGrouped
68398
68492
  ? row.getValue(row.groupingColumnId)
68399
68493
  : undefined,
68400
- nestingLevel: row.depth,
68494
+ nestingLevel: !isGrouped && row.depth > 0 ? row.depth - 1 : row.depth,
68401
68495
  leafItemCount: row
68402
68496
  .getLeafRows()
68403
68497
  .filter(leafRow => leafRow.getLeafRows().length === 0)
@@ -68597,7 +68691,7 @@ img.ProseMirror-separator {
68597
68691
  const nimbleTable = Table.compose({
68598
68692
  baseName: 'table',
68599
68693
  template: template$c,
68600
- styles: styles$i
68694
+ styles: styles$j
68601
68695
  });
68602
68696
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTable());
68603
68697
  DesignSystem.tagFor(Table);
@@ -70654,7 +70748,7 @@ img.ProseMirror-separator {
70654
70748
 
70655
70749
  const styles$5 = css `
70656
70750
  ${display('inline-flex')}
70657
- ${styles$C}
70751
+ ${styles$D}
70658
70752
 
70659
70753
  :host {
70660
70754
  font: ${bodyFont};
@@ -71000,7 +71094,7 @@ img.ProseMirror-separator {
71000
71094
 
71001
71095
  const styles$4 = css `
71002
71096
  ${display('inline-block')}
71003
- ${styles$C}
71097
+ ${styles$D}
71004
71098
 
71005
71099
  :host {
71006
71100
  font: ${bodyFont};