@ni/nimble-components 29.7.9 → 29.8.1

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 (75) hide show
  1. package/dist/all-components-bundle.js +524 -243
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +1925 -1830
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/all-components.d.ts +1 -0
  6. package/dist/esm/all-components.js +1 -0
  7. package/dist/esm/all-components.js.map +1 -1
  8. package/dist/esm/menu-button/testing/menu-button.pageobject.d.ts +12 -0
  9. package/dist/esm/menu-button/testing/menu-button.pageobject.js +26 -0
  10. package/dist/esm/menu-button/testing/menu-button.pageobject.js.map +1 -1
  11. package/dist/esm/patterns/button/styles.js +8 -0
  12. package/dist/esm/patterns/button/styles.js.map +1 -1
  13. package/dist/esm/table/components/header/index.d.ts +2 -1
  14. package/dist/esm/table/components/header/index.js +5 -1
  15. package/dist/esm/table/components/header/index.js.map +1 -1
  16. package/dist/esm/table/components/header/styles.js +10 -3
  17. package/dist/esm/table/components/header/styles.js.map +1 -1
  18. package/dist/esm/table/components/header/template.js +2 -1
  19. package/dist/esm/table/components/header/template.js.map +1 -1
  20. package/dist/esm/table/components/row/index.d.ts +2 -1
  21. package/dist/esm/table/components/row/index.js +14 -0
  22. package/dist/esm/table/components/row/index.js.map +1 -1
  23. package/dist/esm/table/components/row/template.js +9 -0
  24. package/dist/esm/table/components/row/template.js.map +1 -1
  25. package/dist/esm/table/index.d.ts +6 -1
  26. package/dist/esm/table/index.js +40 -1
  27. package/dist/esm/table/index.js.map +1 -1
  28. package/dist/esm/table/models/utilities.d.ts +3 -0
  29. package/dist/esm/table/models/utilities.js +7 -0
  30. package/dist/esm/table/models/utilities.js.map +1 -0
  31. package/dist/esm/table/template.js +8 -0
  32. package/dist/esm/table/template.js.map +1 -1
  33. package/dist/esm/table/types.d.ts +32 -1
  34. package/dist/esm/table/types.js +8 -0
  35. package/dist/esm/table/types.js.map +1 -1
  36. package/dist/esm/table-column/base/cell-view/template.js +9 -1
  37. package/dist/esm/table-column/base/cell-view/template.js.map +1 -1
  38. package/dist/esm/table-column/base/models/column-internals.d.ts +15 -3
  39. package/dist/esm/table-column/base/models/column-internals.js +14 -4
  40. package/dist/esm/table-column/base/models/column-internals.js.map +1 -1
  41. package/dist/esm/table-column/menu-button/cell-view/index.d.ts +32 -0
  42. package/dist/esm/table-column/menu-button/cell-view/index.js +70 -0
  43. package/dist/esm/table-column/menu-button/cell-view/index.js.map +1 -0
  44. package/dist/esm/table-column/menu-button/cell-view/styles.d.ts +1 -0
  45. package/dist/esm/table-column/menu-button/cell-view/styles.js +21 -0
  46. package/dist/esm/table-column/menu-button/cell-view/styles.js.map +1 -0
  47. package/dist/esm/table-column/menu-button/cell-view/templates.d.ts +2 -0
  48. package/dist/esm/table-column/menu-button/cell-view/templates.js +25 -0
  49. package/dist/esm/table-column/menu-button/cell-view/templates.js.map +1 -0
  50. package/dist/esm/table-column/menu-button/index.d.ts +42 -0
  51. package/dist/esm/table-column/menu-button/index.js +68 -0
  52. package/dist/esm/table-column/menu-button/index.js.map +1 -0
  53. package/dist/esm/table-column/menu-button/template.d.ts +2 -0
  54. package/dist/esm/table-column/menu-button/template.js +8 -0
  55. package/dist/esm/table-column/menu-button/template.js.map +1 -0
  56. package/dist/esm/table-column/menu-button/testing/table-column-menu-button.pageobject.d.ts +11 -0
  57. package/dist/esm/table-column/menu-button/testing/table-column-menu-button.pageobject.js +18 -0
  58. package/dist/esm/table-column/menu-button/testing/table-column-menu-button.pageobject.js.map +1 -0
  59. package/dist/esm/table-column/menu-button/types.d.ts +10 -0
  60. package/dist/esm/table-column/menu-button/types.js +3 -0
  61. package/dist/esm/table-column/menu-button/types.js.map +1 -0
  62. package/dist/esm/table-column/number-text/cell-view/index.js +2 -2
  63. package/dist/esm/table-column/number-text/cell-view/index.js.map +1 -1
  64. package/dist/esm/table-column/number-text/index.d.ts +2 -3
  65. package/dist/esm/table-column/number-text/index.js +6 -5
  66. package/dist/esm/table-column/number-text/index.js.map +1 -1
  67. package/dist/esm/table-column/text-base/cell-view/index.d.ts +2 -3
  68. package/dist/esm/table-column/text-base/cell-view/index.js +2 -2
  69. package/dist/esm/table-column/text-base/cell-view/index.js.map +1 -1
  70. package/dist/esm/table-column/text-base/cell-view/template.js +2 -2
  71. package/dist/esm/table-column/text-base/cell-view/template.js.map +1 -1
  72. package/package.json +1 -1
  73. package/dist/esm/table-column/text-base/cell-view/types.d.ts +0 -8
  74. package/dist/esm/table-column/text-base/cell-view/types.js +0 -8
  75. package/dist/esm/table-column/text-base/cell-view/types.js.map +0 -1
@@ -16333,7 +16333,7 @@
16333
16333
 
16334
16334
  /**
16335
16335
  * Do not edit directly
16336
- * Generated on Wed, 10 Jul 2024 15:33:57 GMT
16336
+ * Generated on Thu, 11 Jul 2024 17:27:02 GMT
16337
16337
  */
16338
16338
 
16339
16339
  const Information100DarkUi = "#a46eff";
@@ -16789,9 +16789,9 @@
16789
16789
  return `${prefix}${uniqueIdCounter++}`;
16790
16790
  }
16791
16791
 
16792
- const template$I = html `<slot></slot>`;
16792
+ const template$K = html `<slot></slot>`;
16793
16793
 
16794
- const styles$$ = css `
16794
+ const styles$10 = css `
16795
16795
  ${display('contents')}
16796
16796
  `;
16797
16797
 
@@ -16906,8 +16906,8 @@
16906
16906
  ], ThemeProvider.prototype, "theme", void 0);
16907
16907
  const nimbleDesignSystemProvider = ThemeProvider.compose({
16908
16908
  baseName: 'theme-provider',
16909
- styles: styles$$,
16910
- template: template$I
16909
+ styles: styles$10,
16910
+ template: template$K
16911
16911
  });
16912
16912
  DesignSystem.getOrCreate()
16913
16913
  .withPrefix('nimble')
@@ -17100,7 +17100,7 @@
17100
17100
  }
17101
17101
  }
17102
17102
 
17103
- const styles$_ = css `
17103
+ const styles$$ = css `
17104
17104
  @layer base, hover, focusVisible, active, disabled;
17105
17105
 
17106
17106
  @layer base {
@@ -17179,7 +17179,7 @@
17179
17179
  `;
17180
17180
 
17181
17181
  // prettier-ignore
17182
- const template$H = (_context, definition) => html `${
17182
+ const template$J = (_context, definition) => html `${
17183
17183
  /* top-container div is necessary because setting contenteditable directly on the native anchor instead
17184
17184
  leaves it focusable, unlike the behavior you get when the anchor is _within_ a contenteditable element.
17185
17185
  */ ''}<div
@@ -17282,8 +17282,8 @@
17282
17282
  const nimbleAnchor = Anchor.compose({
17283
17283
  baseName: 'anchor',
17284
17284
  baseClass: Anchor$1,
17285
- template: template$H,
17286
- styles: styles$_,
17285
+ template: template$J,
17286
+ styles: styles$$,
17287
17287
  shadowOptions: {
17288
17288
  delegatesFocus: true
17289
17289
  }
@@ -17395,7 +17395,7 @@
17395
17395
  padding: 0;
17396
17396
  `;
17397
17397
 
17398
- const styles$Z = css `
17398
+ const styles$_ = css `
17399
17399
  @layer base, checked, hover, focusVisible, active, disabled, top;
17400
17400
 
17401
17401
  @layer base {
@@ -17471,6 +17471,10 @@
17471
17471
  ${iconColor.cssCustomProperty}: ${buttonLabelFontColor};
17472
17472
  }
17473
17473
 
17474
+ slot[name='start']::slotted(*) {
17475
+ flex-shrink: 0;
17476
+ }
17477
+
17474
17478
  :host([content-hidden]) .content {
17475
17479
  ${accessiblyHidden}
17476
17480
  }
@@ -17479,6 +17483,10 @@
17479
17483
  display: contents;
17480
17484
  ${iconColor.cssCustomProperty}: ${buttonLabelFontColor};
17481
17485
  }
17486
+
17487
+ slot[name='end']::slotted(*) {
17488
+ flex-shrink: 0;
17489
+ }
17482
17490
  }
17483
17491
 
17484
17492
  @layer hover {
@@ -17670,8 +17678,8 @@
17670
17678
  }
17671
17679
  `));
17672
17680
 
17673
- const styles$Y = css `
17674
- ${styles$Z}
17681
+ const styles$Z = css `
17682
+ ${styles$_}
17675
17683
  ${buttonAppearanceVariantStyles}
17676
17684
 
17677
17685
  .control {
@@ -17691,7 +17699,7 @@
17691
17699
  }
17692
17700
  `;
17693
17701
 
17694
- const template$G = (context, definition) => html `
17702
+ const template$I = (context, definition) => html `
17695
17703
  <a
17696
17704
  class="control"
17697
17705
  part="control"
@@ -17773,8 +17781,8 @@
17773
17781
  ], AnchorButton.prototype, "disabled", void 0);
17774
17782
  const nimbleAnchorButton = AnchorButton.compose({
17775
17783
  baseName: 'anchor-button',
17776
- template: template$G,
17777
- styles: styles$Y,
17784
+ template: template$I,
17785
+ styles: styles$Z,
17778
17786
  shadowOptions: {
17779
17787
  delegatesFocus: true
17780
17788
  }
@@ -17782,7 +17790,7 @@
17782
17790
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorButton());
17783
17791
  const anchorButtonTag = 'nimble-anchor-button';
17784
17792
 
17785
- const styles$X = css `
17793
+ const styles$Y = css `
17786
17794
  ${display('grid')}
17787
17795
 
17788
17796
  :host {
@@ -17865,7 +17873,7 @@
17865
17873
  }
17866
17874
  `;
17867
17875
 
17868
- const template$F = (context, definition) => html `
17876
+ const template$H = (context, definition) => html `
17869
17877
  <template
17870
17878
  role="menuitem"
17871
17879
  class="${x => (typeof x.startColumnCount === 'number'
@@ -17966,8 +17974,8 @@
17966
17974
  // FoundationAnchor already applies the StartEnd mixin, so we don't need to do it here.
17967
17975
  const nimbleAnchorMenuItem = AnchorMenuItem.compose({
17968
17976
  baseName: 'anchor-menu-item',
17969
- template: template$F,
17970
- styles: styles$X,
17977
+ template: template$H,
17978
+ styles: styles$Y,
17971
17979
  shadowOptions: {
17972
17980
  delegatesFocus: true
17973
17981
  }
@@ -17977,7 +17985,7 @@
17977
17985
  .register(nimbleAnchorMenuItem());
17978
17986
  const anchorMenuItemTag = 'nimble-anchor-menu-item';
17979
17987
 
17980
- const styles$W = css `
17988
+ const styles$X = css `
17981
17989
  ${display('inline-flex')}
17982
17990
 
17983
17991
  :host {
@@ -18093,7 +18101,7 @@
18093
18101
  }
18094
18102
  `;
18095
18103
 
18096
- const template$E = (context, definition) => html `
18104
+ const template$G = (context, definition) => html `
18097
18105
  <template slot="anchortab" role="tab" aria-disabled="${x => x.disabled}">
18098
18106
  <a
18099
18107
  download="${x => x.download}"
@@ -18145,15 +18153,15 @@
18145
18153
  // FoundationAnchor already applies the StartEnd mixin, so we don't need to do it here.
18146
18154
  const nimbleAnchorTab = AnchorTab.compose({
18147
18155
  baseName: 'anchor-tab',
18148
- template: template$E,
18149
- styles: styles$W,
18156
+ template: template$G,
18157
+ styles: styles$X,
18150
18158
  shadowOptions: {
18151
18159
  delegatesFocus: true
18152
18160
  }
18153
18161
  });
18154
18162
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorTab());
18155
18163
 
18156
- const styles$V = css `
18164
+ const styles$W = css `
18157
18165
  ${display('grid')}
18158
18166
 
18159
18167
  :host {
@@ -18174,7 +18182,7 @@
18174
18182
  }
18175
18183
  `;
18176
18184
 
18177
- const template$D = (context, definition) => html `
18185
+ const template$F = (context, definition) => html `
18178
18186
  ${startSlotTemplate(context, definition)}
18179
18187
  <div ${ref('tablist')} class="tablist" part="tablist" role="tablist">
18180
18188
  <slot name="anchortab" ${slotted('tabs')}></slot>
@@ -18380,8 +18388,8 @@
18380
18388
  applyMixins(AnchorTabs, StartEnd);
18381
18389
  const nimbleAnchorTabs = AnchorTabs.compose({
18382
18390
  baseName: 'anchor-tabs',
18383
- template: template$D,
18384
- styles: styles$V,
18391
+ template: template$F,
18392
+ styles: styles$W,
18385
18393
  shadowOptions: {
18386
18394
  delegatesFocus: false
18387
18395
  }
@@ -18397,7 +18405,7 @@
18397
18405
  -webkit-user-select: none;
18398
18406
  `;
18399
18407
 
18400
- const styles$U = css `
18408
+ const styles$V = css `
18401
18409
  ${display('block')}
18402
18410
 
18403
18411
  :host {
@@ -18502,7 +18510,7 @@
18502
18510
  }
18503
18511
  `;
18504
18512
 
18505
- const template$C = (context, definition) => html `
18513
+ const template$E = (context, definition) => html `
18506
18514
  <template
18507
18515
  role="treeitem"
18508
18516
  slot="${x => (x.isNestedItem() ? 'item' : null)}"
@@ -18639,8 +18647,8 @@
18639
18647
  // FoundationAnchor already applies the StartEnd mixin, so we don't need to do it here.
18640
18648
  const nimbleAnchorTreeItem = AnchorTreeItem.compose({
18641
18649
  baseName: 'anchor-tree-item',
18642
- template: template$C,
18643
- styles: styles$U,
18650
+ template: template$E,
18651
+ styles: styles$V,
18644
18652
  shadowOptions: {
18645
18653
  delegatesFocus: true
18646
18654
  }
@@ -18656,7 +18664,7 @@
18656
18664
  zIndex1000: '1000'
18657
18665
  };
18658
18666
 
18659
- const styles$T = css `
18667
+ const styles$U = css `
18660
18668
  ${display('block')}
18661
18669
 
18662
18670
  :host {
@@ -18687,7 +18695,7 @@
18687
18695
  baseName: 'anchored-region',
18688
18696
  baseClass: AnchoredRegion$1,
18689
18697
  template: anchoredRegionTemplate,
18690
- styles: styles$T
18698
+ styles: styles$U
18691
18699
  });
18692
18700
  DesignSystem.getOrCreate()
18693
18701
  .withPrefix('nimble')
@@ -18767,7 +18775,7 @@
18767
18775
  */
18768
18776
  const themeBehavior = (theme, styles) => new ThemeStyleSheetBehavior(theme, styles);
18769
18777
 
18770
- const styles$S = css `
18778
+ const styles$T = css `
18771
18779
  ${display('flex')}
18772
18780
 
18773
18781
  :host {
@@ -18882,12 +18890,12 @@
18882
18890
  }
18883
18891
  `));
18884
18892
 
18885
- const styles$R = css `
18886
- ${styles$Z}
18893
+ const styles$S = css `
18894
+ ${styles$_}
18887
18895
  ${buttonAppearanceVariantStyles}
18888
18896
  `;
18889
18897
 
18890
- const template$B = (context, definition) => html `
18898
+ const template$D = (context, definition) => html `
18891
18899
  <button
18892
18900
  class="control"
18893
18901
  part="control"
@@ -18978,8 +18986,8 @@
18978
18986
  const nimbleButton = Button.compose({
18979
18987
  baseName: 'button',
18980
18988
  baseClass: Button$1,
18981
- template: template$B,
18982
- styles: styles$R,
18989
+ template: template$D,
18990
+ styles: styles$S,
18983
18991
  shadowOptions: {
18984
18992
  delegatesFocus: true
18985
18993
  }
@@ -19750,13 +19758,13 @@
19750
19758
  };
19751
19759
 
19752
19760
  // Avoiding any whitespace in the template because this is an inline element
19753
- const template$A = html `<div
19761
+ const template$C = html `<div
19754
19762
  class="icon"
19755
19763
  aria-hidden="true"
19756
19764
  :innerHTML=${x => x.icon.data}
19757
19765
  ></div>`;
19758
19766
 
19759
- const styles$Q = css `
19767
+ const styles$R = css `
19760
19768
  ${display('inline-flex')}
19761
19769
 
19762
19770
  :host {
@@ -19809,8 +19817,8 @@
19809
19817
  const registerIcon = (baseName, iconClass) => {
19810
19818
  const composedIcon = iconClass.compose({
19811
19819
  baseName,
19812
- template: template$A,
19813
- styles: styles$Q
19820
+ template: template$C,
19821
+ styles: styles$R
19814
19822
  });
19815
19823
  DesignSystem.getOrCreate().withPrefix('nimble').register(composedIcon());
19816
19824
  };
@@ -19928,7 +19936,7 @@
19928
19936
  }).withDefault(coreLabelDefaults.loadingLabel);
19929
19937
 
19930
19938
  // prettier-ignore
19931
- const template$z = html `
19939
+ const template$B = html `
19932
19940
  <${themeProviderTag} theme="${Theme.color}">
19933
19941
  <div class="container"
19934
19942
  role="status"
@@ -20046,12 +20054,12 @@
20046
20054
  applyMixins(Banner, ARIAGlobalStatesAndProperties);
20047
20055
  const nimbleBanner = Banner.compose({
20048
20056
  baseName: 'banner',
20049
- template: template$z,
20050
- styles: styles$S
20057
+ template: template$B,
20058
+ styles: styles$T
20051
20059
  });
20052
20060
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleBanner());
20053
20061
 
20054
- const styles$P = css `
20062
+ const styles$Q = css `
20055
20063
  ${display('inline-block')}
20056
20064
 
20057
20065
  .list {
@@ -20081,11 +20089,11 @@
20081
20089
  baseName: 'breadcrumb',
20082
20090
  baseClass: Breadcrumb$1,
20083
20091
  template: breadcrumbTemplate,
20084
- styles: styles$P
20092
+ styles: styles$Q
20085
20093
  });
20086
20094
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleBreadcrumb());
20087
20095
 
20088
- const styles$O = css `
20096
+ const styles$P = css `
20089
20097
  @layer base, hover, focusVisible, active, disabled;
20090
20098
 
20091
20099
  @layer base {
@@ -20182,14 +20190,14 @@ so this becomes the fallback color for the slot */ ''}
20182
20190
  baseName: 'breadcrumb-item',
20183
20191
  baseClass: BreadcrumbItem$1,
20184
20192
  template: breadcrumbItemTemplate,
20185
- styles: styles$O,
20193
+ styles: styles$P,
20186
20194
  separator: forwardSlash16X16.data
20187
20195
  });
20188
20196
  DesignSystem.getOrCreate()
20189
20197
  .withPrefix('nimble')
20190
20198
  .register(nimbleBreadcrumbItem());
20191
20199
 
20192
- const styles$N = css `
20200
+ const styles$O = css `
20193
20201
  ${display('flex')}
20194
20202
 
20195
20203
  :host {
@@ -20213,7 +20221,7 @@ so this becomes the fallback color for the slot */ ''}
20213
20221
  }
20214
20222
  `;
20215
20223
 
20216
- const template$y = html `
20224
+ const template$A = html `
20217
20225
  <section aria-labelledby="title-slot">
20218
20226
  <span id="title-slot"><slot name="title"></slot></span>
20219
20227
  <slot></slot>
@@ -20228,12 +20236,12 @@ so this becomes the fallback color for the slot */ ''}
20228
20236
  const nimbleCard = Card.compose({
20229
20237
  baseName: 'card',
20230
20238
  baseClass: Card$1,
20231
- template: template$y,
20232
- styles: styles$N
20239
+ template: template$A,
20240
+ styles: styles$O
20233
20241
  });
20234
20242
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCard());
20235
20243
 
20236
- const styles$M = css `
20244
+ const styles$N = css `
20237
20245
  ${display('inline-flex')}
20238
20246
 
20239
20247
  :host {
@@ -20391,14 +20399,14 @@ so this becomes the fallback color for the slot */ ''}
20391
20399
  const nimbleCardButton = CardButton.compose({
20392
20400
  baseName: 'card-button',
20393
20401
  template: buttonTemplate,
20394
- styles: styles$M,
20402
+ styles: styles$N,
20395
20403
  shadowOptions: {
20396
20404
  delegatesFocus: true
20397
20405
  }
20398
20406
  });
20399
20407
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCardButton());
20400
20408
 
20401
- const styles$L = css `
20409
+ const styles$M = css `
20402
20410
  ${display('inline-flex')}
20403
20411
 
20404
20412
  :host {
@@ -20506,7 +20514,7 @@ so this becomes the fallback color for the slot */ ''}
20506
20514
  }
20507
20515
  `;
20508
20516
 
20509
- const template$x = (_context, definition) => html `
20517
+ const template$z = (_context, definition) => html `
20510
20518
  <template
20511
20519
  role="checkbox"
20512
20520
  aria-checked="${x => x.checked}"
@@ -20555,16 +20563,16 @@ so this becomes the fallback color for the slot */ ''}
20555
20563
  const nimbleCheckbox = Checkbox.compose({
20556
20564
  baseName: 'checkbox',
20557
20565
  baseClass: Checkbox$1,
20558
- template: template$x,
20559
- styles: styles$L,
20566
+ template: template$z,
20567
+ styles: styles$M,
20560
20568
  checkedIndicator: checkLarge16X16.data,
20561
20569
  indeterminateIndicator: minus16X16.data
20562
20570
  });
20563
20571
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCheckbox());
20564
20572
  const checkboxTag = 'nimble-checkbox';
20565
20573
 
20566
- const styles$K = css `
20567
- ${styles$Z}
20574
+ const styles$L = css `
20575
+ ${styles$_}
20568
20576
  ${buttonAppearanceVariantStyles}
20569
20577
 
20570
20578
  @layer checked {
@@ -20613,7 +20621,7 @@ so this becomes the fallback color for the slot */ ''}
20613
20621
 
20614
20622
  /* eslint-disable @typescript-eslint/indent */
20615
20623
  // prettier-ignore
20616
- const template$w = (context, definition) => html `
20624
+ const template$y = (context, definition) => html `
20617
20625
  <div
20618
20626
  role="button"
20619
20627
  part="control"
@@ -20709,8 +20717,8 @@ so this becomes the fallback color for the slot */ ''}
20709
20717
  applyMixins(ToggleButton, StartEnd, DelegatesARIAButton);
20710
20718
  const nimbleToggleButton = ToggleButton.compose({
20711
20719
  baseName: 'toggle-button',
20712
- template: template$w,
20713
- styles: styles$K,
20720
+ template: template$y,
20721
+ styles: styles$L,
20714
20722
  shadowOptions: {
20715
20723
  delegatesFocus: true
20716
20724
  }
@@ -20748,7 +20756,7 @@ so this becomes the fallback color for the slot */ ''}
20748
20756
  };
20749
20757
 
20750
20758
  // prettier-ignore
20751
- const styles$J = css `
20759
+ const styles$K = css `
20752
20760
  ${display('inline-flex')}
20753
20761
 
20754
20762
  :host {
@@ -20990,7 +20998,7 @@ so this becomes the fallback color for the slot */ ''}
20990
20998
  }
20991
20999
  `));
20992
21000
 
20993
- const styles$I = css `
21001
+ const styles$J = css `
20994
21002
  .error-icon {
20995
21003
  display: none;
20996
21004
  }
@@ -21038,9 +21046,9 @@ so this becomes the fallback color for the slot */ ''}
21038
21046
  manual: 'manual'
21039
21047
  };
21040
21048
 
21041
- const styles$H = css `
21049
+ const styles$I = css `
21050
+ ${styles$K}
21042
21051
  ${styles$J}
21043
- ${styles$I}
21044
21052
 
21045
21053
  :host {
21046
21054
  --ni-private-hover-bottom-border-width: 2px;
@@ -21176,7 +21184,7 @@ so this becomes the fallback color for the slot */ ''}
21176
21184
  }
21177
21185
 
21178
21186
  // prettier-ignore
21179
- const template$v = (context, definition) => html `
21187
+ const template$x = (context, definition) => html `
21180
21188
  <template
21181
21189
  aria-disabled="${x => x.ariaDisabled}"
21182
21190
  autocomplete="${x => x.autocomplete}"
@@ -21874,8 +21882,8 @@ so this becomes the fallback color for the slot */ ''}
21874
21882
  const nimbleCombobox = Combobox.compose({
21875
21883
  baseName: 'combobox',
21876
21884
  baseClass: FormAssociatedCombobox,
21877
- template: template$v,
21878
- styles: styles$H,
21885
+ template: template$x,
21886
+ styles: styles$I,
21879
21887
  shadowOptions: {
21880
21888
  delegatesFocus: true
21881
21889
  },
@@ -21920,7 +21928,7 @@ so this becomes the fallback color for the slot */ ''}
21920
21928
  */
21921
21929
  const UserDismissed = Symbol('user dismissed');
21922
21930
 
21923
- const styles$G = css `
21931
+ const styles$H = css `
21924
21932
  ${display('grid')}
21925
21933
 
21926
21934
  dialog {
@@ -22026,7 +22034,7 @@ so this becomes the fallback color for the slot */ ''}
22026
22034
  }
22027
22035
  `));
22028
22036
 
22029
- const template$u = html `
22037
+ const template$w = html `
22030
22038
  <template>
22031
22039
  <dialog
22032
22040
  ${ref('dialogElement')}
@@ -22174,13 +22182,13 @@ so this becomes the fallback color for the slot */ ''}
22174
22182
  applyMixins(Dialog, ARIAGlobalStatesAndProperties);
22175
22183
  const nimbleDialog = Dialog.compose({
22176
22184
  baseName: 'dialog',
22177
- template: template$u,
22178
- styles: styles$G,
22185
+ template: template$w,
22186
+ styles: styles$H,
22179
22187
  baseClass: Dialog
22180
22188
  });
22181
22189
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleDialog());
22182
22190
 
22183
- const styles$F = css `
22191
+ const styles$G = css `
22184
22192
  ${display('block')}
22185
22193
 
22186
22194
  :host {
@@ -22332,7 +22340,7 @@ so this becomes the fallback color for the slot */ ''}
22332
22340
  }
22333
22341
  `));
22334
22342
 
22335
- const template$t = html `
22343
+ const template$v = html `
22336
22344
  <dialog
22337
22345
  ${ref('dialog')}
22338
22346
  aria-label="${x => x.ariaLabel}"
@@ -22475,8 +22483,8 @@ so this becomes the fallback color for the slot */ ''}
22475
22483
  applyMixins(Drawer, ARIAGlobalStatesAndProperties);
22476
22484
  const nimbleDrawer = Drawer.compose({
22477
22485
  baseName: 'drawer',
22478
- template: template$t,
22479
- styles: styles$F
22486
+ template: template$v,
22487
+ styles: styles$G
22480
22488
  });
22481
22489
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleDrawer());
22482
22490
 
@@ -24766,7 +24774,7 @@ so this becomes the fallback color for the slot */ ''}
24766
24774
  }
24767
24775
  }
24768
24776
 
24769
- const styles$E = css `
24777
+ const styles$F = css `
24770
24778
  ${display('none')}
24771
24779
  `;
24772
24780
 
@@ -24819,7 +24827,7 @@ so this becomes the fallback color for the slot */ ''}
24819
24827
  ], LabelProviderCore.prototype, "loading", void 0);
24820
24828
  const nimbleLabelProviderCore = LabelProviderCore.compose({
24821
24829
  baseName: 'label-provider-core',
24822
- styles: styles$E
24830
+ styles: styles$F
24823
24831
  });
24824
24832
  DesignSystem.getOrCreate()
24825
24833
  .withPrefix('nimble')
@@ -24986,13 +24994,13 @@ so this becomes the fallback color for the slot */ ''}
24986
24994
  ], LabelProviderTable.prototype, "groupRowPlaceholderEmpty", void 0);
24987
24995
  const nimbleLabelProviderTable = LabelProviderTable.compose({
24988
24996
  baseName: 'label-provider-table',
24989
- styles: styles$E
24997
+ styles: styles$F
24990
24998
  });
24991
24999
  DesignSystem.getOrCreate()
24992
25000
  .withPrefix('nimble')
24993
25001
  .register(nimbleLabelProviderTable());
24994
25002
 
24995
- const styles$D = css `
25003
+ const styles$E = css `
24996
25004
  ${display('flex')}
24997
25005
 
24998
25006
  :host {
@@ -25069,7 +25077,7 @@ so this becomes the fallback color for the slot */ ''}
25069
25077
  * @public
25070
25078
  */
25071
25079
  // prettier-ignore
25072
- const template$s = (context, definition) => html `
25080
+ const template$u = (context, definition) => html `
25073
25081
  <template
25074
25082
  aria-checked="${x => x.ariaChecked}"
25075
25083
  aria-disabled="${x => x.ariaDisabled}"
@@ -25174,13 +25182,13 @@ so this becomes the fallback color for the slot */ ''}
25174
25182
  const nimbleListOption = ListOption.compose({
25175
25183
  baseName: 'list-option',
25176
25184
  baseClass: ListboxOption,
25177
- template: template$s,
25178
- styles: styles$D
25185
+ template: template$u,
25186
+ styles: styles$E
25179
25187
  });
25180
25188
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleListOption());
25181
25189
  const listOptionTag = 'nimble-list-option';
25182
25190
 
25183
- const styles$C = css `
25191
+ const styles$D = css `
25184
25192
  ${display('flex')}
25185
25193
 
25186
25194
  :host {
@@ -25243,7 +25251,7 @@ so this becomes the fallback color for the slot */ ''}
25243
25251
  return n instanceof ListOption;
25244
25252
  };
25245
25253
  // prettier-ignore
25246
- const template$r = html `
25254
+ const template$t = html `
25247
25255
  <template
25248
25256
  role="group"
25249
25257
  aria-label="${x => x.labelContent}"
@@ -25389,8 +25397,8 @@ so this becomes the fallback color for the slot */ ''}
25389
25397
  const nimbleListOptionGroup = ListOptionGroup.compose({
25390
25398
  baseName: 'list-option-group',
25391
25399
  baseClass: FoundationElement,
25392
- template: template$r,
25393
- styles: styles$C
25400
+ template: template$t,
25401
+ styles: styles$D
25394
25402
  });
25395
25403
  DesignSystem.getOrCreate()
25396
25404
  .withPrefix('nimble')
@@ -25405,9 +25413,9 @@ so this becomes the fallback color for the slot */ ''}
25405
25413
  attr()
25406
25414
  ], Mapping$1.prototype, "key", void 0);
25407
25415
 
25408
- const template$q = html `<template slot="mapping"></template>`;
25416
+ const template$s = html `<template slot="mapping"></template>`;
25409
25417
 
25410
- const styles$B = css `
25418
+ const styles$C = css `
25411
25419
  ${display('none')}
25412
25420
  `;
25413
25421
 
@@ -25423,8 +25431,8 @@ so this becomes the fallback color for the slot */ ''}
25423
25431
  ], MappingEmpty.prototype, "text", void 0);
25424
25432
  const emptyMapping = MappingEmpty.compose({
25425
25433
  baseName: 'mapping-empty',
25426
- template: template$q,
25427
- styles: styles$B
25434
+ template: template$s,
25435
+ styles: styles$C
25428
25436
  });
25429
25437
  DesignSystem.getOrCreate().withPrefix('nimble').register(emptyMapping());
25430
25438
 
@@ -25494,8 +25502,8 @@ so this becomes the fallback color for the slot */ ''}
25494
25502
  ], MappingIcon.prototype, "resolvedIcon", void 0);
25495
25503
  const iconMapping = MappingIcon.compose({
25496
25504
  baseName: 'mapping-icon',
25497
- template: template$q,
25498
- styles: styles$B
25505
+ template: template$s,
25506
+ styles: styles$C
25499
25507
  });
25500
25508
  DesignSystem.getOrCreate().withPrefix('nimble').register(iconMapping());
25501
25509
 
@@ -25518,8 +25526,8 @@ so this becomes the fallback color for the slot */ ''}
25518
25526
  ], MappingSpinner.prototype, "textHidden", void 0);
25519
25527
  const spinnerMapping = MappingSpinner.compose({
25520
25528
  baseName: 'mapping-spinner',
25521
- template: template$q,
25522
- styles: styles$B
25529
+ template: template$s,
25530
+ styles: styles$C
25523
25531
  });
25524
25532
  DesignSystem.getOrCreate().withPrefix('nimble').register(spinnerMapping());
25525
25533
 
@@ -25535,12 +25543,12 @@ so this becomes the fallback color for the slot */ ''}
25535
25543
  ], MappingText.prototype, "text", void 0);
25536
25544
  const textMapping = MappingText.compose({
25537
25545
  baseName: 'mapping-text',
25538
- template: template$q,
25539
- styles: styles$B
25546
+ template: template$s,
25547
+ styles: styles$C
25540
25548
  });
25541
25549
  DesignSystem.getOrCreate().withPrefix('nimble').register(textMapping());
25542
25550
 
25543
- const styles$A = css `
25551
+ const styles$B = css `
25544
25552
  ${display('grid')}
25545
25553
 
25546
25554
  :host {
@@ -25612,7 +25620,7 @@ so this becomes the fallback color for the slot */ ''}
25612
25620
  baseName: 'menu',
25613
25621
  baseClass: Menu$1,
25614
25622
  template: menuTemplate,
25615
- styles: styles$A
25623
+ styles: styles$B
25616
25624
  });
25617
25625
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleMenu());
25618
25626
 
@@ -25629,7 +25637,7 @@ so this becomes the fallback color for the slot */ ''}
25629
25637
  auto: 'auto'
25630
25638
  };
25631
25639
 
25632
- const styles$z = css `
25640
+ const styles$A = css `
25633
25641
  ${display('inline-block')}
25634
25642
 
25635
25643
  :host {
@@ -25648,7 +25656,7 @@ so this becomes the fallback color for the slot */ ''}
25648
25656
  `;
25649
25657
 
25650
25658
  // prettier-ignore
25651
- const template$p = html `
25659
+ const template$r = html `
25652
25660
  <template
25653
25661
  ?open="${x => x.open}"
25654
25662
  @focusout="${(x, c) => x.focusoutHandler(c.event)}"
@@ -25898,8 +25906,8 @@ so this becomes the fallback color for the slot */ ''}
25898
25906
  ], MenuButton.prototype, "slottedMenus", void 0);
25899
25907
  const nimbleMenuButton = MenuButton.compose({
25900
25908
  baseName: 'menu-button',
25901
- template: template$p,
25902
- styles: styles$z,
25909
+ template: template$r,
25910
+ styles: styles$A,
25903
25911
  shadowOptions: {
25904
25912
  delegatesFocus: true
25905
25913
  }
@@ -25907,7 +25915,7 @@ so this becomes the fallback color for the slot */ ''}
25907
25915
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleMenuButton());
25908
25916
  const menuButtonTag = 'nimble-menu-button';
25909
25917
 
25910
- const styles$y = css `
25918
+ const styles$z = css `
25911
25919
  ${display('grid')}
25912
25920
 
25913
25921
  :host {
@@ -26004,7 +26012,7 @@ so this becomes the fallback color for the slot */ ''}
26004
26012
  baseName: 'menu-item',
26005
26013
  baseClass: MenuItem$1,
26006
26014
  template: menuItemTemplate,
26007
- styles: styles$y,
26015
+ styles: styles$z,
26008
26016
  expandCollapseGlyph: arrowExpanderRight16X16.data
26009
26017
  });
26010
26018
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleMenuItem());
@@ -26018,9 +26026,9 @@ so this becomes the fallback color for the slot */ ''}
26018
26026
  block: 'block'
26019
26027
  };
26020
26028
 
26021
- const styles$x = css `
26029
+ const styles$y = css `
26022
26030
  ${display('inline-block')}
26023
- ${styles$I}
26031
+ ${styles$J}
26024
26032
 
26025
26033
  :host {
26026
26034
  font: ${bodyFont};
@@ -26233,7 +26241,7 @@ so this becomes the fallback color for the slot */ ''}
26233
26241
  baseName: 'number-field',
26234
26242
  baseClass: NumberField$1,
26235
26243
  template: numberFieldTemplate,
26236
- styles: styles$x,
26244
+ styles: styles$y,
26237
26245
  shadowOptions: {
26238
26246
  delegatesFocus: true
26239
26247
  },
@@ -26276,7 +26284,7 @@ so this becomes the fallback color for the slot */ ''}
26276
26284
  });
26277
26285
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleNumberField());
26278
26286
 
26279
- const styles$w = css `
26287
+ const styles$x = css `
26280
26288
  ${display('inline-flex')}
26281
26289
 
26282
26290
  :host {
@@ -26376,12 +26384,12 @@ so this becomes the fallback color for the slot */ ''}
26376
26384
  baseName: 'radio',
26377
26385
  baseClass: Radio$1,
26378
26386
  template: radioTemplate,
26379
- styles: styles$w,
26387
+ styles: styles$x,
26380
26388
  checkedIndicator: circleFilled16X16.data
26381
26389
  });
26382
26390
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleRadio());
26383
26391
 
26384
- const styles$v = css `
26392
+ const styles$w = css `
26385
26393
  ${display('inline-block')}
26386
26394
 
26387
26395
  .positioning-region {
@@ -26416,7 +26424,7 @@ so this becomes the fallback color for the slot */ ''}
26416
26424
  baseName: 'radio-group',
26417
26425
  baseClass: RadioGroup$1,
26418
26426
  template: radioGroupTemplate,
26419
- styles: styles$v,
26427
+ styles: styles$w,
26420
26428
  shadowOptions: {
26421
26429
  delegatesFocus: true
26422
26430
  }
@@ -44100,7 +44108,7 @@ img.ProseMirror-separator {
44100
44108
  },
44101
44109
  });
44102
44110
 
44103
- const styles$u = css `
44111
+ const styles$v = css `
44104
44112
  ${display('inline')}
44105
44113
 
44106
44114
  .positioning-region {
@@ -44137,7 +44145,7 @@ img.ProseMirror-separator {
44137
44145
  baseName: 'toolbar',
44138
44146
  baseClass: Toolbar$1,
44139
44147
  template: toolbarTemplate,
44140
- styles: styles$u,
44148
+ styles: styles$v,
44141
44149
  shadowOptions: {
44142
44150
  delegatesFocus: true
44143
44151
  }
@@ -44169,8 +44177,8 @@ img.ProseMirror-separator {
44169
44177
  cssCustomPropertyName: null
44170
44178
  }).withDefault(richTextLabelDefaults.richTextToggleNumberedListLabel);
44171
44179
 
44172
- const styles$t = css `
44173
- ${styles$J}
44180
+ const styles$u = css `
44181
+ ${styles$K}
44174
44182
 
44175
44183
  :host {
44176
44184
  height: auto;
@@ -44189,7 +44197,7 @@ img.ProseMirror-separator {
44189
44197
  `;
44190
44198
 
44191
44199
  // prettier-ignore
44192
- const template$o = html `
44200
+ const template$q = html `
44193
44201
  <template>
44194
44202
  <${anchoredRegionTag}
44195
44203
  ${ref('region')}
@@ -44461,8 +44469,8 @@ img.ProseMirror-separator {
44461
44469
  ], RichTextMentionListbox.prototype, "anchorElement", void 0);
44462
44470
  const nimbleRichTextMentionListbox = RichTextMentionListbox.compose({
44463
44471
  baseName: 'rich-text-mention-listbox',
44464
- template: template$o,
44465
- styles: styles$t
44472
+ template: template$q,
44473
+ styles: styles$u
44466
44474
  });
44467
44475
  DesignSystem.getOrCreate()
44468
44476
  .withPrefix('nimble')
@@ -44470,7 +44478,7 @@ img.ProseMirror-separator {
44470
44478
  const richTextMentionListboxTag = 'nimble-rich-text-mention-listbox';
44471
44479
 
44472
44480
  // prettier-ignore
44473
- const template$n = html `
44481
+ const template$p = html `
44474
44482
  <template
44475
44483
  ${children$1({ property: 'childItems', filter: elements() })}
44476
44484
  @focusout="${x => x.focusoutHandler()}"
@@ -44572,9 +44580,9 @@ img.ProseMirror-separator {
44572
44580
  </template>
44573
44581
  `;
44574
44582
 
44575
- const styles$s = css `
44583
+ const styles$t = css `
44576
44584
  ${display('inline-flex')}
44577
- ${styles$I}
44585
+ ${styles$J}
44578
44586
 
44579
44587
  :host {
44580
44588
  font: ${bodyFont};
@@ -59302,8 +59310,8 @@ img.ProseMirror-separator {
59302
59310
  applyMixins(RichTextEditor, ARIAGlobalStatesAndProperties);
59303
59311
  const nimbleRichTextEditor = RichTextEditor.compose({
59304
59312
  baseName: 'rich-text-editor',
59305
- template: template$n,
59306
- styles: styles$s,
59313
+ template: template$p,
59314
+ styles: styles$t,
59307
59315
  shadowOptions: {
59308
59316
  delegatesFocus: true
59309
59317
  }
@@ -59312,13 +59320,13 @@ img.ProseMirror-separator {
59312
59320
  .withPrefix('nimble')
59313
59321
  .register(nimbleRichTextEditor());
59314
59322
 
59315
- const template$m = html `
59323
+ const template$o = html `
59316
59324
  <template ${children$1({ property: 'childItems', filter: elements() })}>
59317
59325
  <div ${ref('viewer')} class="viewer"></div>
59318
59326
  </template>
59319
59327
  `;
59320
59328
 
59321
- const styles$r = css `
59329
+ const styles$s = css `
59322
59330
  ${display('flex')}
59323
59331
 
59324
59332
  :host {
@@ -59429,16 +59437,16 @@ img.ProseMirror-separator {
59429
59437
  ], RichTextViewer.prototype, "markdown", void 0);
59430
59438
  const nimbleRichTextViewer = RichTextViewer.compose({
59431
59439
  baseName: 'rich-text-viewer',
59432
- template: template$m,
59433
- styles: styles$r
59440
+ template: template$o,
59441
+ styles: styles$s
59434
59442
  });
59435
59443
  DesignSystem.getOrCreate()
59436
59444
  .withPrefix('nimble')
59437
59445
  .register(nimbleRichTextViewer());
59438
59446
 
59439
- const styles$q = css `
59447
+ const styles$r = css `
59448
+ ${styles$K}
59440
59449
  ${styles$J}
59441
- ${styles$I}
59442
59450
 
59443
59451
  ${
59444
59452
  /* We are using flex `order` to define the visual ordering of the selected value,
@@ -59608,7 +59616,7 @@ img.ProseMirror-separator {
59608
59616
  }
59609
59617
  `));
59610
59618
 
59611
- const styles$p = css `
59619
+ const styles$q = css `
59612
59620
  ${display('inline-grid')}
59613
59621
 
59614
59622
  :host {
@@ -59778,7 +59786,7 @@ img.ProseMirror-separator {
59778
59786
 
59779
59787
  /* eslint-disable @typescript-eslint/indent */
59780
59788
  // prettier-ignore
59781
- const template$l = html `
59789
+ const template$n = html `
59782
59790
  <template role="progressbar">
59783
59791
  ${''
59784
59792
  /**
@@ -59825,8 +59833,8 @@ img.ProseMirror-separator {
59825
59833
  ], Spinner.prototype, "appearance", void 0);
59826
59834
  const nimbleSpinner = Spinner.compose({
59827
59835
  baseName: 'spinner',
59828
- template: template$l,
59829
- styles: styles$p
59836
+ template: template$n,
59837
+ styles: styles$q
59830
59838
  });
59831
59839
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSpinner());
59832
59840
  const spinnerTag = 'nimble-spinner';
@@ -59839,7 +59847,7 @@ img.ProseMirror-separator {
59839
59847
  };
59840
59848
  /* eslint-disable @typescript-eslint/indent */
59841
59849
  // prettier-ignore
59842
- const template$k = (context, definition) => html `
59850
+ const template$m = (context, definition) => html `
59843
59851
  <template
59844
59852
  class="${x => [
59845
59853
  x.collapsible && 'collapsible',
@@ -60977,8 +60985,8 @@ img.ProseMirror-separator {
60977
60985
  const nimbleSelect = Select.compose({
60978
60986
  baseName: 'select',
60979
60987
  baseClass: Select$2,
60980
- template: template$k,
60981
- styles: styles$q,
60988
+ template: template$m,
60989
+ styles: styles$r,
60982
60990
  indicator: arrowExpanderDown16X16.data,
60983
60991
  end: html `
60984
60992
  <${iconExclamationMarkTag}
@@ -60991,7 +60999,7 @@ img.ProseMirror-separator {
60991
60999
  applyMixins(Select, StartEnd, DelegatesARIASelect);
60992
61000
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSelect());
60993
61001
 
60994
- const styles$o = css `
61002
+ const styles$p = css `
60995
61003
  ${display('inline-flex')}
60996
61004
 
60997
61005
  :host {
@@ -61153,7 +61161,7 @@ img.ProseMirror-separator {
61153
61161
  `));
61154
61162
 
61155
61163
  // prettier-ignore
61156
- const template$j = html `
61164
+ const template$l = html `
61157
61165
  <template
61158
61166
  role="switch"
61159
61167
  aria-checked="${x => x.checked}"
@@ -61197,12 +61205,12 @@ img.ProseMirror-separator {
61197
61205
  const nimbleSwitch = Switch.compose({
61198
61206
  baseClass: Switch$1,
61199
61207
  baseName: 'switch',
61200
- template: template$j,
61201
- styles: styles$o
61208
+ template: template$l,
61209
+ styles: styles$p
61202
61210
  });
61203
61211
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSwitch());
61204
61212
 
61205
- const styles$n = css `
61213
+ const styles$o = css `
61206
61214
  ${display('inline-flex')}
61207
61215
 
61208
61216
  :host {
@@ -61312,11 +61320,11 @@ img.ProseMirror-separator {
61312
61320
  baseName: 'tab',
61313
61321
  baseClass: Tab$1,
61314
61322
  template: tabTemplate,
61315
- styles: styles$n
61323
+ styles: styles$o
61316
61324
  });
61317
61325
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTab());
61318
61326
 
61319
- const styles$m = css `
61327
+ const styles$n = css `
61320
61328
  ${display('block')}
61321
61329
 
61322
61330
  :host {
@@ -61335,7 +61343,7 @@ img.ProseMirror-separator {
61335
61343
  baseName: 'tab-panel',
61336
61344
  baseClass: TabPanel$1,
61337
61345
  template: tabPanelTemplate,
61338
- styles: styles$m
61346
+ styles: styles$n
61339
61347
  });
61340
61348
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTabPanel());
61341
61349
 
@@ -64554,6 +64562,14 @@ img.ProseMirror-separator {
64554
64562
  };
64555
64563
  /**
64556
64564
  * @internal
64565
+ *
64566
+ * Alignment of column content
64567
+ */
64568
+ const TableColumnAlignment = {
64569
+ left: 'left',
64570
+ right: 'right'
64571
+ };
64572
+ /**
64557
64573
  * Table keyboard focus types
64558
64574
  */
64559
64575
  const TableFocusType = {
@@ -64698,6 +64714,13 @@ img.ProseMirror-separator {
64698
64714
  observable
64699
64715
  ], TableCellView.prototype, "recordId", void 0);
64700
64716
 
64717
+ function uniquifySlotNameForColumnId(uniqueColumnId, slotName) {
64718
+ return `${uniqueColumnId}-${slotName}`;
64719
+ }
64720
+ function uniquifySlotNameForColumn(column, slotName) {
64721
+ return uniquifySlotNameForColumnId(column.columnInternals.uniqueId, slotName);
64722
+ }
64723
+
64701
64724
  const validateCellViewTemplate = (cellViewTag) => {
64702
64725
  let instance;
64703
64726
  try {
@@ -64710,6 +64733,7 @@ img.ProseMirror-separator {
64710
64733
  throw new Error(`Cell view tag name (${cellViewTag}) must evaluate to an element extending TableCellView`);
64711
64734
  }
64712
64735
  };
64736
+ // prettier-ignore
64713
64737
  const createCellViewTemplate = (cellViewTag) => {
64714
64738
  validateCellViewTemplate(cellViewTag);
64715
64739
  return html `
@@ -64720,6 +64744,12 @@ img.ProseMirror-separator {
64720
64744
  :recordId="${y => y.recordId}"
64721
64745
  class="cell-view"
64722
64746
  >
64747
+ ${repeat(y => y.column?.columnInternals.slotNames || [], html `
64748
+ <slot
64749
+ name="${(x, c) => uniquifySlotNameForColumn(c.parent.column, x)}"
64750
+ slot="${x => x}"
64751
+ ></slot>
64752
+ `)}
64723
64753
  </${cellViewTag}>
64724
64754
  `;
64725
64755
  };
@@ -64746,7 +64776,7 @@ img.ProseMirror-separator {
64746
64776
  /**
64747
64777
  * Whether or not this column can be used to group rows by
64748
64778
  */
64749
- this.groupingDisabled = false;
64779
+ this.groupingDisabled = true;
64750
64780
  /**
64751
64781
  * Used by column plugins to size a column proportionally to the available
64752
64782
  * width of a row. Sets currentFractionalWidth when changed.
@@ -64765,6 +64795,10 @@ img.ProseMirror-separator {
64765
64795
  * when the column is grouped or sorted.
64766
64796
  */
64767
64797
  this.hideHeaderIndicators = false;
64798
+ /**
64799
+ * How to align the header content.
64800
+ */
64801
+ this.headerAlignment = TableColumnAlignment.left;
64768
64802
  /**
64769
64803
  * @internal Do not write to this value directly. It is used by the Table in order to store
64770
64804
  * the resolved value of the fractionalWidth after updates programmatic or interactive updates.
@@ -64773,7 +64807,7 @@ img.ProseMirror-separator {
64773
64807
  /**
64774
64808
  * Whether or not this column can be sorted
64775
64809
  */
64776
- this.sortingDisabled = false;
64810
+ this.sortingDisabled = true;
64777
64811
  /**
64778
64812
  * @internal Do not write to this value directly. It is used by the Table in order to store
64779
64813
  * the resolved value of the sortDirection after programmatic or interactive updates.
@@ -64781,8 +64815,11 @@ img.ProseMirror-separator {
64781
64815
  this.currentSortDirection = TableColumnSortDirection.none;
64782
64816
  this.cellRecordFieldNames = options.cellRecordFieldNames;
64783
64817
  this.cellViewTemplate = createCellViewTemplate(options.cellViewTag);
64784
- this.groupHeaderViewTemplate = createGroupHeaderViewTemplate(options.groupHeaderViewTag);
64818
+ if (options.groupHeaderViewTag) {
64819
+ this.groupHeaderViewTemplate = createGroupHeaderViewTemplate(options.groupHeaderViewTag);
64820
+ }
64785
64821
  this.delegatedEvents = options.delegatedEvents;
64822
+ this.slotNames = options.slotNames ?? [];
64786
64823
  this.sortOperation = options.sortOperation ?? TableColumnSortOperation.basic;
64787
64824
  this.validator = options.validator;
64788
64825
  }
@@ -64826,6 +64863,9 @@ img.ProseMirror-separator {
64826
64863
  __decorate$1([
64827
64864
  observable
64828
64865
  ], ColumnInternals.prototype, "hideHeaderIndicators", void 0);
64866
+ __decorate$1([
64867
+ observable
64868
+ ], ColumnInternals.prototype, "headerAlignment", void 0);
64829
64869
  __decorate$1([
64830
64870
  observable
64831
64871
  ], ColumnInternals.prototype, "currentFractionalWidth", void 0);
@@ -65028,7 +65068,7 @@ img.ProseMirror-separator {
65028
65068
  }
65029
65069
  }
65030
65070
 
65031
- const styles$l = css `
65071
+ const styles$m = css `
65032
65072
  ${display('flex')}
65033
65073
 
65034
65074
  :host {
@@ -65232,21 +65272,28 @@ focus outline in that case.
65232
65272
  }
65233
65273
  `));
65234
65274
 
65235
- const styles$k = css `
65275
+ const styles$l = css `
65236
65276
  ${display('flex')}
65237
65277
 
65238
65278
  :host {
65239
65279
  height: ${controlHeight};
65240
65280
  align-items: center;
65241
- padding: 0px ${mediumPadding};
65281
+ padding-left: ${mediumPadding};
65282
+ padding-right: ${smallPadding};
65242
65283
  font: ${tableHeaderFont};
65243
65284
  color: ${tableHeaderFontColor};
65244
65285
  ${iconColor.cssCustomProperty}: ${tableHeaderFontColor};
65245
65286
  text-transform: uppercase;
65246
- gap: ${mediumPadding};
65287
+ gap: ${smallPadding};
65247
65288
  cursor: default;
65248
65289
  }
65249
65290
 
65291
+ :host(.right-align) {
65292
+ flex-direction: row-reverse;
65293
+ padding-left: ${smallPadding};
65294
+ padding-right: ${mediumPadding};
65295
+ }
65296
+
65250
65297
  :host(${focusVisible}) {
65251
65298
  outline: calc(2 * ${borderWidth}) solid ${borderHoverColor};
65252
65299
  outline-offset: calc(-2 * ${borderWidth});
@@ -65259,8 +65306,9 @@ focus outline in that case.
65259
65306
  `;
65260
65307
 
65261
65308
  // prettier-ignore
65262
- const template$i = html `
65309
+ const template$k = html `
65263
65310
  <template role="columnheader"
65311
+ class="${x => (x.alignment === TableColumnAlignment.right ? 'right-align' : '')}"
65264
65312
  aria-sort="${x => x.ariaSort}"
65265
65313
  ${'' /* Prevent header double clicks from selecting text */}
65266
65314
  @mousedown="${(_x, c) => !(c.event.detail > 1)}"
@@ -65305,6 +65353,7 @@ focus outline in that case.
65305
65353
  this.sortDirection = TableColumnSortDirection.none;
65306
65354
  this.firstSortedColumn = false;
65307
65355
  this.indicatorsHidden = false;
65356
+ this.alignment = TableColumnAlignment.left;
65308
65357
  this.isGrouped = false;
65309
65358
  }
65310
65359
  sortDirectionChanged(_prev, _next) {
@@ -65335,18 +65384,21 @@ focus outline in that case.
65335
65384
  __decorate$1([
65336
65385
  attr({ attribute: 'indicators-hidden', mode: 'boolean' })
65337
65386
  ], TableHeader.prototype, "indicatorsHidden", void 0);
65387
+ __decorate$1([
65388
+ observable
65389
+ ], TableHeader.prototype, "alignment", void 0);
65338
65390
  __decorate$1([
65339
65391
  observable
65340
65392
  ], TableHeader.prototype, "isGrouped", void 0);
65341
65393
  const nimbleTableHeader = TableHeader.compose({
65342
65394
  baseName: 'table-header',
65343
- template: template$i,
65344
- styles: styles$k
65395
+ template: template$k,
65396
+ styles: styles$l
65345
65397
  });
65346
65398
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTableHeader());
65347
65399
  const tableHeaderTag = 'nimble-table-header';
65348
65400
 
65349
- const styles$j = css `
65401
+ const styles$k = css `
65350
65402
  :host .animating {
65351
65403
  transition: ${mediumDelay} ease-in;
65352
65404
  }
@@ -65371,9 +65423,9 @@ focus outline in that case.
65371
65423
  }
65372
65424
  `;
65373
65425
 
65374
- const styles$i = css `
65426
+ const styles$j = css `
65375
65427
  ${display('flex')}
65376
- ${styles$j}
65428
+ ${styles$k}
65377
65429
 
65378
65430
  :host {
65379
65431
  width: fit-content;
@@ -65537,7 +65589,7 @@ focus outline in that case.
65537
65589
  }
65538
65590
  `));
65539
65591
 
65540
- const styles$h = css `
65592
+ const styles$i = css `
65541
65593
  ${display('flex')}
65542
65594
 
65543
65595
  :host {
@@ -65583,7 +65635,7 @@ focus outline in that case.
65583
65635
  `;
65584
65636
 
65585
65637
  // prettier-ignore
65586
- const template$h = html `
65638
+ const template$j = html `
65587
65639
  <template role="cell" style="--ni-private-table-cell-nesting-level: ${x => x.nestingLevel}"
65588
65640
  @focusin="${x => x.onCellFocusIn()}"
65589
65641
  @blur="${x => x.onCellBlur()}"
@@ -65680,14 +65732,14 @@ focus outline in that case.
65680
65732
  ], TableCell.prototype, "nestingLevel", void 0);
65681
65733
  const nimbleTableCell = TableCell.compose({
65682
65734
  baseName: 'table-cell',
65683
- template: template$h,
65684
- styles: styles$h
65735
+ template: template$j,
65736
+ styles: styles$i
65685
65737
  });
65686
65738
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTableCell());
65687
65739
  const tableCellTag = 'nimble-table-cell';
65688
65740
 
65689
65741
  // prettier-ignore
65690
- const template$g = html `
65742
+ const template$i = html `
65691
65743
  <template
65692
65744
  role="row"
65693
65745
  aria-selected=${x => x.ariaSelected}
@@ -65754,6 +65806,7 @@ focus outline in that case.
65754
65806
  action-menu-label="${x => x.actionMenuLabel}"
65755
65807
  @cell-action-menu-beforetoggle="${(x, c) => c.parent.onCellActionMenuBeforeToggle(c.event, x)}"
65756
65808
  @cell-action-menu-toggle="${(x, c) => c.parent.onCellActionMenuToggle(c.event, x)}"
65809
+ @cell-view-slots-request="${(x, c) => c.parent.onCellViewSlotsRequest(x, c.event)}"
65757
65810
  :nestingLevel="${(_, c) => c.parent.cellIndentLevels[c.index]}"
65758
65811
  >
65759
65812
 
@@ -65763,6 +65816,13 @@ focus outline in that case.
65763
65816
  slot="cellActionMenu"
65764
65817
  ></slot>
65765
65818
  `)}
65819
+
65820
+ ${repeat(x => x.columnInternals.slotNames, html `
65821
+ <slot
65822
+ name="${(x, c) => uniquifySlotNameForColumn(c.parent, x)}"
65823
+ slot="${(x, c) => uniquifySlotNameForColumn(c.parent, x)}"
65824
+ ></slot>
65825
+ `)}
65766
65826
  </${tableCellTag}>
65767
65827
  `)}
65768
65828
  `, { recycle: false, positioning: true })}
@@ -65909,6 +65969,20 @@ focus outline in that case.
65909
65969
  this.animationClass = 'animating';
65910
65970
  this.expandIcon?.addEventListener('transitionend', this.removeAnimatingClass);
65911
65971
  }
65972
+ onCellViewSlotsRequest(column, event) {
65973
+ event.stopImmediatePropagation();
65974
+ if (typeof this.recordId !== 'string') {
65975
+ // The recordId is expected to be defined on any row that can be interacted with, but if
65976
+ // it isn't defined, nothing can be done with the request to slot content into the row.
65977
+ return;
65978
+ }
65979
+ const eventDetails = {
65980
+ recordId: this.recordId,
65981
+ columnInternalId: column.columnInternals.uniqueId,
65982
+ slots: event.detail.slots
65983
+ };
65984
+ this.$emit('row-slots-request', eventDetails);
65985
+ }
65912
65986
  emitActionMenuToggleEvent(eventType, menuButtonEventDetail, column) {
65913
65987
  const detail = {
65914
65988
  newState: menuButtonEventDetail.newState,
@@ -66052,15 +66126,15 @@ focus outline in that case.
66052
66126
  ], TableRow.prototype, "ariaSelected", null);
66053
66127
  const nimbleTableRow = TableRow.compose({
66054
66128
  baseName: 'table-row',
66055
- template: template$g,
66056
- styles: styles$i
66129
+ template: template$i,
66130
+ styles: styles$j
66057
66131
  });
66058
66132
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTableRow());
66059
66133
  const tableRowTag = 'nimble-table-row';
66060
66134
 
66061
- const styles$g = css `
66135
+ const styles$h = css `
66062
66136
  ${display('grid')}
66063
- ${styles$j}
66137
+ ${styles$k}
66064
66138
 
66065
66139
  :host {
66066
66140
  align-items: center;
@@ -66150,7 +66224,7 @@ focus outline in that case.
66150
66224
 
66151
66225
  /* eslint-disable @typescript-eslint/indent */
66152
66226
  // prettier-ignore
66153
- const template$f = html `
66227
+ const template$h = html `
66154
66228
  <template
66155
66229
  role="row"
66156
66230
  @click=${x => x.onGroupExpandToggle()}
@@ -66300,14 +66374,14 @@ focus outline in that case.
66300
66374
  ], TableGroupRow.prototype, "animationClass", void 0);
66301
66375
  const nimbleTableGroupRow = TableGroupRow.compose({
66302
66376
  baseName: 'table-group-row',
66303
- template: template$f,
66304
- styles: styles$g
66377
+ template: template$h,
66378
+ styles: styles$h
66305
66379
  });
66306
66380
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTableGroupRow());
66307
66381
  const tableGroupRowTag = 'nimble-table-group-row';
66308
66382
 
66309
66383
  // prettier-ignore
66310
- const template$e = html `
66384
+ const template$g = html `
66311
66385
  <template
66312
66386
  role="treegrid"
66313
66387
  ${'' /* tabindex managed dynamically by KeyboardNavigationManager */}
@@ -66386,6 +66460,7 @@ focus outline in that case.
66386
66460
  ?indicators-hidden="${x => x.columnInternals.hideHeaderIndicators}"
66387
66461
  @keydown="${(x, c) => c.parent.onHeaderKeyDown(x, c.event)}"
66388
66462
  @click="${(x, c) => c.parent.toggleColumnSort(x, c.event.shiftKey)}"
66463
+ :alignment="${x => x.columnInternals.headerAlignment}"
66389
66464
  :isGrouped=${x => (typeof x.columnInternals.groupIndex === 'number' && !x.columnInternals.groupingDisabled)}
66390
66465
  >
66391
66466
  <slot name="${x => x.slot}"></slot>
@@ -66457,6 +66532,7 @@ focus outline in that case.
66457
66532
  @row-selection-toggle="${(x, c) => c.parent.onRowSelectionToggle(x.index, c.event)}"
66458
66533
  @row-action-menu-beforetoggle="${(x, c) => c.parent.onRowActionMenuBeforeToggle(x.index, c.event)}"
66459
66534
  @row-action-menu-toggle="${(_, c) => c.parent.onRowActionMenuToggle(c.event)}"
66535
+ @row-slots-request="${(_, c) => c.parent.onRowSlotsRequest(c.event)}"
66460
66536
  @row-expand-toggle="${(x, c) => c.parent.handleRowExpanded(x.index)}"
66461
66537
  >
66462
66538
  ${when((x, c) => c.parent.openActionMenuRecordId === c.parent.tableData[x.index]?.id, html `
@@ -66467,6 +66543,12 @@ focus outline in that case.
66467
66543
  </slot>
66468
66544
  `)}
66469
66545
  `)}
66546
+ ${repeat((x, c) => (c.parent.tableData[x.index]?.slots || []), html `
66547
+ <slot
66548
+ name="${x => x.name}"
66549
+ slot="${x => x.slot}"
66550
+ ></slot>
66551
+ `)}
66470
66552
  </${tableRowTag}>
66471
66553
  `)}
66472
66554
  `)}
@@ -69455,6 +69537,9 @@ focus outline in that case.
69455
69537
  // the selection checkbox 'checked' value should be ingored.
69456
69538
  // https://github.com/microsoft/fast/issues/5750
69457
69539
  this.ignoreSelectionChangeEvents = false;
69540
+ // Map from the external slot name to the record ID of the row that should have the slot
69541
+ // and the unique slot name that the slot should be slotted into.
69542
+ this.columnRequestedSlots = new Map();
69458
69543
  this.onViewPortScroll = (event) => {
69459
69544
  this.scrollX = event.target.scrollLeft;
69460
69545
  };
@@ -69647,6 +69732,18 @@ focus outline in that case.
69647
69732
  void this.handleRowActionMenuToggleEvent(event);
69648
69733
  }
69649
69734
  /** @internal */
69735
+ onRowSlotsRequest(event) {
69736
+ event.stopImmediatePropagation();
69737
+ for (const slotMetadata of event.detail.slots) {
69738
+ const uniqueSlot = uniquifySlotNameForColumnId(event.detail.columnInternalId, slotMetadata.slot);
69739
+ this.columnRequestedSlots.set(slotMetadata.name, {
69740
+ recordId: event.detail.recordId,
69741
+ uniqueSlot
69742
+ });
69743
+ }
69744
+ this.refreshRows();
69745
+ }
69746
+ /** @internal */
69650
69747
  handleCollapseAllRows() {
69651
69748
  this.expansionManager.collapseAll();
69652
69749
  }
@@ -69841,12 +69938,19 @@ focus outline in that case.
69841
69938
  this.observeColumns();
69842
69939
  this.tableUpdateTracker.trackColumnInstancesChanged();
69843
69940
  }
69941
+ removeActionMenuSlotsFromColumnRequestedSlots() {
69942
+ for (const actionMenuSlot of this.actionMenuSlots) {
69943
+ this.columnRequestedSlots.delete(actionMenuSlot);
69944
+ }
69945
+ this.refreshRows();
69946
+ }
69844
69947
  async handleActionMenuBeforeToggleEvent(rowIndex, event) {
69845
69948
  const selectionChanged = this.selectionManager.handleActionMenuOpening(this.tableData[rowIndex]);
69846
69949
  if (selectionChanged) {
69847
69950
  await this.emitSelectionChangeEvent();
69848
69951
  }
69849
69952
  this.openActionMenuRecordId = event.detail.recordIds[0];
69953
+ this.removeActionMenuSlotsFromColumnRequestedSlots();
69850
69954
  const detail = await this.getActionMenuToggleEventDetail(event);
69851
69955
  this.$emit('action-menu-beforetoggle', detail);
69852
69956
  }
@@ -70038,6 +70142,7 @@ focus outline in that case.
70038
70142
  this.selectionState = this.getTableSelectionState();
70039
70143
  let hasDataHierarchy = false;
70040
70144
  const rows = this.table.getRowModel().rows;
70145
+ const slotsByRecordId = this.getRequestedSlotsByRecordId();
70041
70146
  this.tableData = rows.map(row => {
70042
70147
  const isGroupRow = row.getIsGrouped();
70043
70148
  const hasParentRow = isGroupRow ? false : row.getParentRow();
@@ -70063,7 +70168,8 @@ focus outline in that case.
70063
70168
  immediateChildCount: row.subRows.length,
70064
70169
  groupColumn: this.getGroupRowColumn(row),
70065
70170
  resolvedRowIndex: row.index,
70066
- isLoadingChildren: this.expansionManager.isLoadingChildren(row.id)
70171
+ isLoadingChildren: this.expansionManager.isLoadingChildren(row.id),
70172
+ slots: slotsByRecordId[row.id] ?? []
70067
70173
  };
70068
70174
  hasDataHierarchy = hasDataHierarchy || isParent;
70069
70175
  return rowState;
@@ -70072,6 +70178,20 @@ focus outline in that case.
70072
70178
  || this.getColumnsParticipatingInGrouping().length > 0;
70073
70179
  this.virtualizer.dataChanged();
70074
70180
  }
70181
+ getRequestedSlotsByRecordId() {
70182
+ const slotsByRecordId = {};
70183
+ for (const [slotName, { recordId, uniqueSlot }] of this
70184
+ .columnRequestedSlots) {
70185
+ if (!Object.prototype.hasOwnProperty.call(slotsByRecordId, recordId)) {
70186
+ slotsByRecordId[recordId] = [];
70187
+ }
70188
+ slotsByRecordId[recordId].push({
70189
+ name: slotName,
70190
+ slot: uniqueSlot
70191
+ });
70192
+ }
70193
+ return slotsByRecordId;
70194
+ }
70075
70195
  getTableSelectionState() {
70076
70196
  if (this.table.getIsAllRowsSelected()) {
70077
70197
  return TableRowSelectionState.selected;
@@ -70250,12 +70370,12 @@ focus outline in that case.
70250
70370
  ], Table$1.prototype, "documentShiftKeyDown", void 0);
70251
70371
  const nimbleTable = Table$1.compose({
70252
70372
  baseName: 'table',
70253
- template: template$e,
70254
- styles: styles$l
70373
+ template: template$g,
70374
+ styles: styles$m
70255
70375
  });
70256
70376
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTable());
70257
70377
 
70258
- const styles$f = css `
70378
+ const styles$g = css `
70259
70379
  ${display('contents')}
70260
70380
 
70261
70381
  .header-content {
@@ -70268,7 +70388,7 @@ focus outline in that case.
70268
70388
  // Avoiding a wrapping <template> and be careful about starting and ending whitspace
70269
70389
  // so the template can be composed into other column header templates
70270
70390
  // prettier-ignore
70271
- const template$d = html `<span
70391
+ const template$f = html `<span
70272
70392
  ${overflow('hasOverflow')}
70273
70393
  class="header-content"
70274
70394
  title=${x => (x.hasOverflow && x.headerTextContent ? x.headerTextContent : null)}
@@ -70343,7 +70463,7 @@ focus outline in that case.
70343
70463
  return ColumnWithPlaceholder;
70344
70464
  }
70345
70465
 
70346
- const styles$e = css `
70466
+ const styles$f = css `
70347
70467
  ${display('flex')}
70348
70468
 
70349
70469
  :host {
@@ -70376,7 +70496,7 @@ focus outline in that case.
70376
70496
 
70377
70497
  /* eslint-disable @typescript-eslint/indent */
70378
70498
  // prettier-ignore
70379
- const template$c = html `
70499
+ const template$e = html `
70380
70500
  <template
70381
70501
  @click="${(x, c) => {
70382
70502
  if (typeof x.cellRecord?.href === 'string') {
@@ -70471,8 +70591,8 @@ focus outline in that case.
70471
70591
  ], TableColumnAnchorCellView.prototype, "showAnchor", null);
70472
70592
  const anchorCellView = TableColumnAnchorCellView.compose({
70473
70593
  baseName: 'table-column-anchor-cell-view',
70474
- template: template$c,
70475
- styles: styles$e
70594
+ template: template$e,
70595
+ styles: styles$f
70476
70596
  });
70477
70597
  DesignSystem.getOrCreate().withPrefix('nimble').register(anchorCellView());
70478
70598
  const tableColumnAnchorCellViewTag = 'nimble-table-column-anchor-cell-view';
@@ -70549,7 +70669,7 @@ focus outline in that case.
70549
70669
  observable
70550
70670
  ], TableColumnTextGroupHeaderViewBase.prototype, "text", void 0);
70551
70671
 
70552
- const template$b = html `
70672
+ const template$d = html `
70553
70673
  <span
70554
70674
  ${overflow('hasOverflow')}
70555
70675
  title="${x => (x.hasOverflow && x.text ? x.text : null)}"
@@ -70558,7 +70678,7 @@ focus outline in that case.
70558
70678
  </span>
70559
70679
  `;
70560
70680
 
70561
- const styles$d = css `
70681
+ const styles$e = css `
70562
70682
  ${display('flex')}
70563
70683
 
70564
70684
  span {
@@ -70582,8 +70702,8 @@ focus outline in that case.
70582
70702
  }
70583
70703
  const tableColumnTextGroupHeaderView = TableColumnTextGroupHeaderView.compose({
70584
70704
  baseName: 'table-column-text-group-header-view',
70585
- template: template$b,
70586
- styles: styles$d
70705
+ template: template$d,
70706
+ styles: styles$e
70587
70707
  });
70588
70708
  DesignSystem.getOrCreate()
70589
70709
  .withPrefix('nimble')
@@ -70751,8 +70871,8 @@ focus outline in that case.
70751
70871
  ], TableColumnAnchor.prototype, "download", void 0);
70752
70872
  const nimbleTableColumnAnchor = TableColumnAnchor.compose({
70753
70873
  baseName: 'table-column-anchor',
70754
- template: template$d,
70755
- styles: styles$f
70874
+ template: template$f,
70875
+ styles: styles$g
70756
70876
  });
70757
70877
  DesignSystem.getOrCreate()
70758
70878
  .withPrefix('nimble')
@@ -70804,27 +70924,19 @@ focus outline in that case.
70804
70924
  }
70805
70925
  const tableColumnDateTextGroupHeaderView = TableColumnDateTextGroupHeaderView.compose({
70806
70926
  baseName: 'table-column-date-text-group-header-view',
70807
- template: template$b,
70808
- styles: styles$d
70927
+ template: template$d,
70928
+ styles: styles$e
70809
70929
  });
70810
70930
  DesignSystem.getOrCreate()
70811
70931
  .withPrefix('nimble')
70812
70932
  .register(tableColumnDateTextGroupHeaderView());
70813
70933
  const tableColumnDateTextGroupHeaderViewTag = 'nimble-table-column-date-text-group-header-view';
70814
70934
 
70815
- /**
70816
- * The aligment of the value in a TableColumnTextCellViewBase instance.
70817
- */
70818
- const TextCellViewBaseAlignment = {
70819
- left: 'left',
70820
- right: 'right'
70821
- };
70822
-
70823
70935
  // prettier-ignore
70824
- const template$a = html `
70936
+ const template$c = html `
70825
70937
  <template
70826
70938
  class="
70827
- ${x => (x.alignment === TextCellViewBaseAlignment.right ? 'right-align' : '')}
70939
+ ${x => (x.alignment === TableColumnAlignment.right ? 'right-align' : '')}
70828
70940
  ${x => (x.isPlaceholder ? 'placeholder' : '')}
70829
70941
  "
70830
70942
  >
@@ -70837,7 +70949,7 @@ focus outline in that case.
70837
70949
  </template>
70838
70950
  `;
70839
70951
 
70840
- const styles$c = css `
70952
+ const styles$d = css `
70841
70953
  ${display('flex')}
70842
70954
 
70843
70955
  :host {
@@ -70877,7 +70989,7 @@ focus outline in that case.
70877
70989
  /**
70878
70990
  * The alignment of the text within the cell.
70879
70991
  */
70880
- this.alignment = TextCellViewBaseAlignment.left;
70992
+ this.alignment = TableColumnAlignment.left;
70881
70993
  /**
70882
70994
  * Whether or not the text being displayed in the cell view is a placeholder.
70883
70995
  */
@@ -70939,8 +71051,8 @@ focus outline in that case.
70939
71051
  }
70940
71052
  const dateTextCellView = TableColumnDateTextCellView.compose({
70941
71053
  baseName: 'table-column-date-text-cell-view',
70942
- template: template$a,
70943
- styles: styles$c
71054
+ template: template$c,
71055
+ styles: styles$d
70944
71056
  });
70945
71057
  DesignSystem.getOrCreate().withPrefix('nimble').register(dateTextCellView());
70946
71058
  const tableColumnDateTextCellViewTag = 'nimble-table-column-date-text-cell-view';
@@ -71200,8 +71312,8 @@ focus outline in that case.
71200
71312
  ], TableColumnDateText.prototype, "customHourCycle", void 0);
71201
71313
  const nimbleTableColumnDateText = TableColumnDateText.compose({
71202
71314
  baseName: 'table-column-date-text',
71203
- template: template$d,
71204
- styles: styles$f
71315
+ template: template$f,
71316
+ styles: styles$g
71205
71317
  });
71206
71318
  DesignSystem.getOrCreate()
71207
71319
  .withPrefix('nimble')
@@ -71217,8 +71329,8 @@ focus outline in that case.
71217
71329
  }
71218
71330
  const durationTextCellView = TableColumnDurationTextCellView.compose({
71219
71331
  baseName: 'table-column-duration-text-cell-view',
71220
- template: template$a,
71221
- styles: styles$c
71332
+ template: template$c,
71333
+ styles: styles$d
71222
71334
  });
71223
71335
  DesignSystem.getOrCreate()
71224
71336
  .withPrefix('nimble')
@@ -71319,8 +71431,8 @@ focus outline in that case.
71319
71431
  }
71320
71432
  const tableColumnDurationTextGroupHeaderView = TableColumnDurationTextGroupHeaderView.compose({
71321
71433
  baseName: 'table-column-duration-text-group-header-view',
71322
- template: template$b,
71323
- styles: styles$d
71434
+ template: template$d,
71435
+ styles: styles$e
71324
71436
  });
71325
71437
  DesignSystem.getOrCreate()
71326
71438
  .withPrefix('nimble')
@@ -71372,8 +71484,8 @@ focus outline in that case.
71372
71484
  }
71373
71485
  const nimbleTableColumnDurationText = TableColumnDurationText.compose({
71374
71486
  baseName: 'table-column-duration-text',
71375
- template: template$d,
71376
- styles: styles$f
71487
+ template: template$f,
71488
+ styles: styles$g
71377
71489
  });
71378
71490
  DesignSystem.getOrCreate()
71379
71491
  .withPrefix('nimble')
@@ -71481,15 +71593,15 @@ focus outline in that case.
71481
71593
  attr({ attribute: 'key-type' })
71482
71594
  ], TableColumnEnumBase.prototype, "keyType", void 0);
71483
71595
 
71484
- const styles$b = css `
71485
- ${styles$f}
71596
+ const styles$c = css `
71597
+ ${styles$g}
71486
71598
 
71487
71599
  slot[name='mapping'] {
71488
71600
  display: none;
71489
71601
  }
71490
71602
  `;
71491
71603
 
71492
- const template$9 = html `${template$d}<slot ${slotted('mappings')} name="mapping"></slot>`;
71604
+ const template$b = html `${template$f}<slot ${slotted('mappings')} name="mapping"></slot>`;
71493
71605
 
71494
71606
  const enumBaseValidityFlagNames = [
71495
71607
  'invalidMappingKeyValueForType',
@@ -71575,7 +71687,7 @@ focus outline in that case.
71575
71687
  }
71576
71688
  }
71577
71689
 
71578
- const styles$a = css `
71690
+ const styles$b = css `
71579
71691
  ${display('inline-flex')}
71580
71692
 
71581
71693
  :host {
@@ -71600,7 +71712,7 @@ focus outline in that case.
71600
71712
  `;
71601
71713
 
71602
71714
  // prettier-ignore
71603
- const template$8 = html `
71715
+ const template$a = html `
71604
71716
  ${when(x => x.visualizationTemplate, html `
71605
71717
  <span class="reserve-icon-size">
71606
71718
  ${x => x.visualizationTemplate}
@@ -71749,15 +71861,15 @@ focus outline in that case.
71749
71861
  ], TableColumnMappingGroupHeaderView.prototype, "visualizationTemplate", void 0);
71750
71862
  const mappingGroupHeaderView = TableColumnMappingGroupHeaderView.compose({
71751
71863
  baseName: 'table-column-mapping-group-header-view',
71752
- template: template$8,
71753
- styles: styles$a
71864
+ template: template$a,
71865
+ styles: styles$b
71754
71866
  });
71755
71867
  DesignSystem.getOrCreate()
71756
71868
  .withPrefix('nimble')
71757
71869
  .register(mappingGroupHeaderView());
71758
71870
  const tableColumnMappingGroupHeaderViewTag = 'nimble-table-column-mapping-group-header-view';
71759
71871
 
71760
- const styles$9 = css `
71872
+ const styles$a = css `
71761
71873
  ${display('inline-flex')}
71762
71874
 
71763
71875
  :host {
@@ -71782,7 +71894,7 @@ focus outline in that case.
71782
71894
  `;
71783
71895
 
71784
71896
  // prettier-ignore
71785
- const template$7 = html `
71897
+ const template$9 = html `
71786
71898
  ${when(x => x.visualizationTemplate, html `
71787
71899
  <span class="reserve-icon-size">
71788
71900
  ${x => x.visualizationTemplate}
@@ -71869,8 +71981,8 @@ focus outline in that case.
71869
71981
  ], TableColumnMappingCellView.prototype, "hasOverflow", void 0);
71870
71982
  const mappingCellView = TableColumnMappingCellView.compose({
71871
71983
  baseName: 'table-column-mapping-cell-view',
71872
- template: template$7,
71873
- styles: styles$9
71984
+ template: template$9,
71985
+ styles: styles$a
71874
71986
  });
71875
71987
  DesignSystem.getOrCreate().withPrefix('nimble').register(mappingCellView());
71876
71988
  const tableColumnMappingCellViewTag = 'nimble-table-column-mapping-cell-view';
@@ -71954,13 +72066,181 @@ focus outline in that case.
71954
72066
  ], TableColumnMapping.prototype, "widthMode", void 0);
71955
72067
  const nimbleTableColumnMapping = TableColumnMapping.compose({
71956
72068
  baseName: 'table-column-mapping',
71957
- template: template$9,
71958
- styles: styles$b
72069
+ template: template$b,
72070
+ styles: styles$c
71959
72071
  });
71960
72072
  DesignSystem.getOrCreate()
71961
72073
  .withPrefix('nimble')
71962
72074
  .register(nimbleTableColumnMapping());
71963
72075
 
72076
+ const template$8 = html `
72077
+ <template @delegated-event="${(x, c) => x.onDelegatedEvent(c.event)}"
72078
+ >${template$f}</template
72079
+ >
72080
+ `;
72081
+
72082
+ /** @internal */
72083
+ const cellViewMenuSlotName = 'menu-button-menu';
72084
+
72085
+ // prettier-ignore
72086
+ const template$7 = html `
72087
+ ${when(x => x.showMenuButton, html `
72088
+ <${menuButtonTag}
72089
+ ${ref('menuButton')}
72090
+ appearance="${ButtonAppearance.ghost}"
72091
+ @beforetoggle="${(x, c) => x.onMenuButtonBeforeToggle(c.event)}"
72092
+ @mouseover="${x => x.onMenuButtonMouseOver()}"
72093
+ @mouseout="${x => x.onMenuButtonMouseOut()}"
72094
+ @click="${(x, c) => x.onMenuButtonClick(c.event)}"
72095
+ title=${x => (x.hasOverflow ? x.cellRecord.value : null)}
72096
+ >
72097
+ <span ${ref('valueSpan')} class="value-label">${x => x.cellRecord.value}</span>
72098
+ <${iconArrowExpanderDownTag} slot="end"></${iconArrowExpanderDownTag}>
72099
+
72100
+ <slot name="${cellViewMenuSlotName}" slot="menu"></slot>
72101
+ </${menuButtonTag}>
72102
+ `)}
72103
+ `;
72104
+
72105
+ const styles$9 = css `
72106
+ :host {
72107
+ align-self: center;
72108
+ width: 100%;
72109
+ }
72110
+
72111
+ nimble-menu-button {
72112
+ height: ${controlSlimHeight};
72113
+ width: 100%;
72114
+ }
72115
+
72116
+ .value-label {
72117
+ margin-right: auto;
72118
+ overflow: hidden;
72119
+ text-overflow: ellipsis;
72120
+ white-space: nowrap;
72121
+ }
72122
+ `;
72123
+
72124
+ /**
72125
+ * The cell view base class for displaying a string field as a menu button.
72126
+ */
72127
+ class TableColumnMenuButtonCellView extends TableCellView {
72128
+ constructor() {
72129
+ super(...arguments);
72130
+ /** @internal */
72131
+ this.hasOverflow = false;
72132
+ }
72133
+ /** @internal */
72134
+ get showMenuButton() {
72135
+ return !!this.cellRecord?.value;
72136
+ }
72137
+ get tabbableChildren() {
72138
+ if (this.showMenuButton) {
72139
+ return [this.menuButton];
72140
+ }
72141
+ return [];
72142
+ }
72143
+ /** @internal */
72144
+ onMenuButtonBeforeToggle(event) {
72145
+ const configuredSlotName = this.columnConfig?.menuSlot;
72146
+ if (configuredSlotName && event.detail.newState) {
72147
+ const eventDetail = {
72148
+ slots: [
72149
+ { name: configuredSlotName, slot: cellViewMenuSlotName }
72150
+ ]
72151
+ };
72152
+ this.$emit('cell-view-slots-request', eventDetail);
72153
+ }
72154
+ return true;
72155
+ }
72156
+ /** @internal */
72157
+ onMenuButtonMouseOver() {
72158
+ if (this.valueSpan) {
72159
+ this.hasOverflow = this.valueSpan.offsetWidth < this.valueSpan.scrollWidth;
72160
+ }
72161
+ }
72162
+ /** @internal */
72163
+ onMenuButtonMouseOut() {
72164
+ this.hasOverflow = false;
72165
+ }
72166
+ /** @internal */
72167
+ onMenuButtonClick(e) {
72168
+ // Stop propagation of the click event to prevent clicking the menu button
72169
+ // from affecting row selection.
72170
+ e.stopPropagation();
72171
+ }
72172
+ }
72173
+ __decorate$1([
72174
+ observable
72175
+ ], TableColumnMenuButtonCellView.prototype, "hasOverflow", void 0);
72176
+ __decorate$1([
72177
+ volatile
72178
+ ], TableColumnMenuButtonCellView.prototype, "showMenuButton", null);
72179
+ const menuButtonCellView = TableColumnMenuButtonCellView.compose({
72180
+ baseName: 'table-column-menu-button-cell-view',
72181
+ template: template$7,
72182
+ styles: styles$9
72183
+ });
72184
+ DesignSystem.getOrCreate().withPrefix('nimble').register(menuButtonCellView());
72185
+ const tableColumnMenuButtonCellViewTag = 'nimble-table-column-menu-button-cell-view';
72186
+
72187
+ /**
72188
+ * The table column for displaying string fields as the content within a menu button.
72189
+ */
72190
+ class TableColumnMenuButton extends mixinFractionalWidthColumnAPI((TableColumn)) {
72191
+ /** @internal */
72192
+ onDelegatedEvent(e) {
72193
+ e.stopImmediatePropagation();
72194
+ const event = e;
72195
+ const originalEvent = event.detail.originalEvent;
72196
+ if (originalEvent.type === 'beforetoggle'
72197
+ || originalEvent.type === 'toggle') {
72198
+ const newEventName = `menu-button-column-${originalEvent.type}`;
72199
+ const originalToggleEvent = originalEvent;
72200
+ const detail = {
72201
+ ...originalToggleEvent.detail,
72202
+ recordId: event.detail.recordId
72203
+ };
72204
+ this.$emit(newEventName, detail);
72205
+ }
72206
+ }
72207
+ getColumnInternalsOptions() {
72208
+ return {
72209
+ cellRecordFieldNames: ['value'],
72210
+ cellViewTag: tableColumnMenuButtonCellViewTag,
72211
+ delegatedEvents: ['beforetoggle', 'toggle'],
72212
+ slotNames: [cellViewMenuSlotName],
72213
+ validator: new ColumnValidator([])
72214
+ };
72215
+ }
72216
+ fieldNameChanged() {
72217
+ this.columnInternals.dataRecordFieldNames = [this.fieldName];
72218
+ this.columnInternals.operandDataRecordFieldName = this.fieldName;
72219
+ }
72220
+ menuSlotChanged() {
72221
+ this.updateColumnConfig();
72222
+ }
72223
+ updateColumnConfig() {
72224
+ this.columnInternals.columnConfig = {
72225
+ menuSlot: this.menuSlot
72226
+ };
72227
+ }
72228
+ }
72229
+ __decorate$1([
72230
+ attr({ attribute: 'field-name' })
72231
+ ], TableColumnMenuButton.prototype, "fieldName", void 0);
72232
+ __decorate$1([
72233
+ attr({ attribute: 'menu-slot' })
72234
+ ], TableColumnMenuButton.prototype, "menuSlot", void 0);
72235
+ const nimbleTableColumnMenuButton = TableColumnMenuButton.compose({
72236
+ baseName: 'table-column-menu-button',
72237
+ template: template$8,
72238
+ styles: styles$g
72239
+ });
72240
+ DesignSystem.getOrCreate()
72241
+ .withPrefix('nimble')
72242
+ .register(nimbleTableColumnMenuButton());
72243
+
71964
72244
  // Avoiding a wrapping <template> and be careful about starting and ending whitespace
71965
72245
  // so the template can be composed into other column header templates
71966
72246
  // prettier-ignore
@@ -71983,8 +72263,8 @@ focus outline in that case.
71983
72263
  }
71984
72264
  const tableColumnNumberTextGroupHeaderView = TableColumnNumberTextGroupHeaderView.compose({
71985
72265
  baseName: 'table-column-number-text-group-header-view',
71986
- template: template$b,
71987
- styles: styles$d
72266
+ template: template$d,
72267
+ styles: styles$e
71988
72268
  });
71989
72269
  DesignSystem.getOrCreate()
71990
72270
  .withPrefix('nimble')
@@ -71997,7 +72277,7 @@ focus outline in that case.
71997
72277
  class TableColumnNumberTextCellView extends TableColumnTextCellViewBase {
71998
72278
  columnConfigChanged() {
71999
72279
  super.columnConfigChanged();
72000
- this.alignment = this.columnConfig?.alignment ?? TextCellViewBaseAlignment.left;
72280
+ this.alignment = this.columnConfig?.alignment ?? TableColumnAlignment.left;
72001
72281
  }
72002
72282
  updateText() {
72003
72283
  this.text = this.columnConfig?.formatter?.format(this.cellRecord?.value) ?? '';
@@ -72005,8 +72285,8 @@ focus outline in that case.
72005
72285
  }
72006
72286
  const numberTextCellView = TableColumnNumberTextCellView.compose({
72007
72287
  baseName: 'table-column-number-text-cell-view',
72008
- template: template$a,
72009
- styles: styles$c
72288
+ template: template$c,
72289
+ styles: styles$d
72010
72290
  });
72011
72291
  DesignSystem.getOrCreate().withPrefix('nimble').register(numberTextCellView());
72012
72292
  const tableColumnNumberTextCellViewTag = 'nimble-table-column-number-text-cell-view';
@@ -72490,6 +72770,7 @@ focus outline in that case.
72490
72770
  alignment: this.determineCellContentAlignment(),
72491
72771
  placeholder: this.placeholder
72492
72772
  };
72773
+ this.columnInternals.headerAlignment = columnConfig.alignment;
72493
72774
  this.columnInternals.columnConfig = columnConfig;
72494
72775
  }
72495
72776
  else {
@@ -72509,18 +72790,18 @@ focus outline in that case.
72509
72790
  }
72510
72791
  determineCellContentAlignment() {
72511
72792
  if (this.alignment === NumberTextAlignment.left) {
72512
- return TextCellViewBaseAlignment.left;
72793
+ return TableColumnAlignment.left;
72513
72794
  }
72514
72795
  if (this.alignment === NumberTextAlignment.right) {
72515
- return TextCellViewBaseAlignment.right;
72796
+ return TableColumnAlignment.right;
72516
72797
  }
72517
72798
  // Look at format and decimal max digits and unit to determine the default alignment
72518
72799
  if (this.format === NumberTextFormat.decimal
72519
72800
  && typeof this.decimalMaximumDigits !== 'number'
72520
72801
  && !this.unit) {
72521
- return TextCellViewBaseAlignment.right;
72802
+ return TableColumnAlignment.right;
72522
72803
  }
72523
- return TextCellViewBaseAlignment.left;
72804
+ return TableColumnAlignment.left;
72524
72805
  }
72525
72806
  }
72526
72807
  __decorate$1([
@@ -72547,7 +72828,7 @@ focus outline in that case.
72547
72828
  const nimbleTableColumnNumberText = TableColumnNumberText.compose({
72548
72829
  baseName: 'table-column-number-text',
72549
72830
  template: template$6,
72550
- styles: styles$f
72831
+ styles: styles$g
72551
72832
  });
72552
72833
  DesignSystem.getOrCreate()
72553
72834
  .withPrefix('nimble')
@@ -72565,8 +72846,8 @@ focus outline in that case.
72565
72846
  }
72566
72847
  const textCellView = TableColumnTextCellView.compose({
72567
72848
  baseName: 'table-column-text-cell-view',
72568
- template: template$a,
72569
- styles: styles$c
72849
+ template: template$c,
72850
+ styles: styles$d
72570
72851
  });
72571
72852
  DesignSystem.getOrCreate().withPrefix('nimble').register(textCellView());
72572
72853
  const tableColumnTextCellViewTag = 'nimble-table-column-text-cell-view';
@@ -72593,8 +72874,8 @@ focus outline in that case.
72593
72874
  }
72594
72875
  const nimbleTableColumnText = TableColumnText.compose({
72595
72876
  baseName: 'table-column-text',
72596
- template: template$d,
72597
- styles: styles$f
72877
+ template: template$f,
72878
+ styles: styles$g
72598
72879
  });
72599
72880
  DesignSystem.getOrCreate()
72600
72881
  .withPrefix('nimble')
@@ -72691,7 +72972,7 @@ focus outline in that case.
72691
72972
 
72692
72973
  const styles$6 = css `
72693
72974
  ${display('inline-flex')}
72694
- ${styles$I}
72975
+ ${styles$J}
72695
72976
 
72696
72977
  :host {
72697
72978
  font: ${bodyFont};
@@ -73036,7 +73317,7 @@ focus outline in that case.
73036
73317
 
73037
73318
  const styles$5 = css `
73038
73319
  ${display('inline-block')}
73039
- ${styles$I}
73320
+ ${styles$J}
73040
73321
 
73041
73322
  :host {
73042
73323
  font: ${bodyFont};