@ni/nimble-components 7.8.2 → 7.8.3

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.
@@ -4305,6 +4305,12 @@
4305
4305
  });
4306
4306
  }
4307
4307
 
4308
+ var Orientation;
4309
+ (function (Orientation) {
4310
+ Orientation["horizontal"] = "horizontal";
4311
+ Orientation["vertical"] = "vertical";
4312
+ })(Orientation || (Orientation = {}));
4313
+
4308
4314
  /**
4309
4315
  * Returns the index of the last element in the array where predicate is true, and -1 otherwise.
4310
4316
  *
@@ -4490,6 +4496,12 @@
4490
4496
  const keyEnd = "End";
4491
4497
  const keySpace = " ";
4492
4498
  const keyTab = "Tab";
4499
+ const ArrowKeys = {
4500
+ ArrowDown: keyArrowDown,
4501
+ ArrowLeft: keyArrowLeft,
4502
+ ArrowRight: keyArrowRight,
4503
+ ArrowUp: keyArrowUp,
4504
+ };
4493
4505
 
4494
4506
  /**
4495
4507
  * Expose ltr and rtl strings
@@ -4514,6 +4526,13 @@
4514
4526
  }
4515
4527
  return value;
4516
4528
  }
4529
+ /**
4530
+ * Ensures that a value is between a min and max value. If value is lower than min, min will be returned.
4531
+ * If value is greater than max, max will be returned.
4532
+ */
4533
+ function limit(min, max, value) {
4534
+ return Math.min(Math.max(value, min), max);
4535
+ }
4517
4536
 
4518
4537
  let uniqueIdCounter = 0;
4519
4538
  /**
@@ -8797,6 +8816,22 @@
8797
8816
  return isNodeMatchingSelectorTabbable(options, node);
8798
8817
  };
8799
8818
 
8819
+ var focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');
8820
+
8821
+ var isFocusable = function isFocusable(node, options) {
8822
+ options = options || {};
8823
+
8824
+ if (!node) {
8825
+ throw new Error('No node provided');
8826
+ }
8827
+
8828
+ if (matches.call(node, focusableCandidateSelector) === false) {
8829
+ return false;
8830
+ }
8831
+
8832
+ return isNodeMatchingSelectorFocusable(options, node);
8833
+ };
8834
+
8800
8835
  /**
8801
8836
  * A Switch Custom HTML Element.
8802
8837
  * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#dialog | ARIA dialog }.
@@ -11434,6 +11469,272 @@
11434
11469
  </template>
11435
11470
  `;
11436
11471
 
11472
+ /**
11473
+ * The template for the {@link @microsoft/fast-foundation#(Toolbar:class)} component.
11474
+ *
11475
+ * @public
11476
+ */
11477
+ const toolbarTemplate = (context, definition) => html `
11478
+ <template
11479
+ aria-label="${x => x.ariaLabel}"
11480
+ aria-labelledby="${x => x.ariaLabelledby}"
11481
+ aria-orientation="${x => x.orientation}"
11482
+ orientation="${x => x.orientation}"
11483
+ role="toolbar"
11484
+ @click="${(x, c) => x.clickHandler(c.event)}"
11485
+ @focusin="${(x, c) => x.focusinHandler(c.event)}"
11486
+ @keydown="${(x, c) => x.keydownHandler(c.event)}"
11487
+ >
11488
+ <slot name="label"></slot>
11489
+ <div class="positioning-region" part="positioning-region">
11490
+ ${startSlotTemplate(context, definition)}
11491
+ <slot
11492
+ ${slotted({
11493
+ filter: elements(),
11494
+ property: "slottedItems",
11495
+ })}
11496
+ ></slot>
11497
+ ${endSlotTemplate(context, definition)}
11498
+ </div>
11499
+ </template>
11500
+ `;
11501
+
11502
+ /**
11503
+ * A map for directionality derived from keyboard input strings,
11504
+ * visual orientation, and text direction.
11505
+ *
11506
+ * @internal
11507
+ */
11508
+ const ToolbarArrowKeyMap = Object.freeze({
11509
+ [ArrowKeys.ArrowUp]: {
11510
+ [Orientation.vertical]: -1,
11511
+ },
11512
+ [ArrowKeys.ArrowDown]: {
11513
+ [Orientation.vertical]: 1,
11514
+ },
11515
+ [ArrowKeys.ArrowLeft]: {
11516
+ [Orientation.horizontal]: {
11517
+ [Direction.ltr]: -1,
11518
+ [Direction.rtl]: 1,
11519
+ },
11520
+ },
11521
+ [ArrowKeys.ArrowRight]: {
11522
+ [Orientation.horizontal]: {
11523
+ [Direction.ltr]: 1,
11524
+ [Direction.rtl]: -1,
11525
+ },
11526
+ },
11527
+ });
11528
+ /**
11529
+ * A Toolbar Custom HTML Element.
11530
+ * Implements the {@link https://w3c.github.io/aria-practices/#Toolbar|ARIA Toolbar}.
11531
+ *
11532
+ * @public
11533
+ */
11534
+ class Toolbar$1 extends FoundationElement {
11535
+ constructor() {
11536
+ super(...arguments);
11537
+ /**
11538
+ * The internal index of the currently focused element.
11539
+ *
11540
+ * @internal
11541
+ */
11542
+ this._activeIndex = 0;
11543
+ /**
11544
+ * The text direction of the toolbar.
11545
+ *
11546
+ * @internal
11547
+ */
11548
+ this.direction = Direction.ltr;
11549
+ /**
11550
+ * The orientation of the toolbar.
11551
+ *
11552
+ * @public
11553
+ * @remarks
11554
+ * HTML Attribute: `orientation`
11555
+ */
11556
+ this.orientation = Orientation.horizontal;
11557
+ }
11558
+ /**
11559
+ * The index of the currently focused element, clamped between 0 and the last element.
11560
+ *
11561
+ * @internal
11562
+ */
11563
+ get activeIndex() {
11564
+ Observable.track(this, "activeIndex");
11565
+ return this._activeIndex;
11566
+ }
11567
+ set activeIndex(value) {
11568
+ if (this.$fastController.isConnected) {
11569
+ this._activeIndex = limit(0, this.focusableElements.length - 1, value);
11570
+ Observable.notify(this, "activeIndex");
11571
+ }
11572
+ }
11573
+ slottedItemsChanged() {
11574
+ if (this.$fastController.isConnected) {
11575
+ this.reduceFocusableElements();
11576
+ }
11577
+ }
11578
+ /**
11579
+ * Set the activeIndex when a focusable element in the toolbar is clicked.
11580
+ *
11581
+ * @internal
11582
+ */
11583
+ clickHandler(e) {
11584
+ var _a;
11585
+ const activeIndex = (_a = this.focusableElements) === null || _a === void 0 ? void 0 : _a.indexOf(e.target);
11586
+ if (activeIndex > -1 && this.activeIndex !== activeIndex) {
11587
+ this.setFocusedElement(activeIndex);
11588
+ }
11589
+ return true;
11590
+ }
11591
+ /**
11592
+ * @internal
11593
+ */
11594
+ connectedCallback() {
11595
+ super.connectedCallback();
11596
+ this.direction = getDirection(this);
11597
+ }
11598
+ /**
11599
+ * When the toolbar receives focus, set the currently active element as focused.
11600
+ *
11601
+ * @internal
11602
+ */
11603
+ focusinHandler(e) {
11604
+ const relatedTarget = e.relatedTarget;
11605
+ if (!relatedTarget || this.contains(relatedTarget)) {
11606
+ return;
11607
+ }
11608
+ this.setFocusedElement();
11609
+ }
11610
+ /**
11611
+ * Determines a value that can be used to iterate a list with the arrow keys.
11612
+ *
11613
+ * @param this - An element with an orientation and direction
11614
+ * @param key - The event key value
11615
+ * @internal
11616
+ */
11617
+ getDirectionalIncrementer(key) {
11618
+ var _a, _b, _c, _d, _e;
11619
+ return ((_e = (_c = (_b = (_a = ToolbarArrowKeyMap[key]) === null || _a === void 0 ? void 0 : _a[this.orientation]) === null || _b === void 0 ? void 0 : _b[this.direction]) !== null && _c !== void 0 ? _c : (_d = ToolbarArrowKeyMap[key]) === null || _d === void 0 ? void 0 : _d[this.orientation]) !== null && _e !== void 0 ? _e : 0);
11620
+ }
11621
+ /**
11622
+ * Handle keyboard events for the toolbar.
11623
+ *
11624
+ * @internal
11625
+ */
11626
+ keydownHandler(e) {
11627
+ const key = e.key;
11628
+ if (!(key in ArrowKeys) || e.defaultPrevented || e.shiftKey) {
11629
+ return true;
11630
+ }
11631
+ const incrementer = this.getDirectionalIncrementer(key);
11632
+ if (!incrementer) {
11633
+ return !e.target.closest("[role=radiogroup]");
11634
+ }
11635
+ const nextIndex = this.activeIndex + incrementer;
11636
+ if (this.focusableElements[nextIndex]) {
11637
+ e.preventDefault();
11638
+ }
11639
+ this.setFocusedElement(nextIndex);
11640
+ return true;
11641
+ }
11642
+ /**
11643
+ * get all the slotted elements
11644
+ * @internal
11645
+ */
11646
+ get allSlottedItems() {
11647
+ return [
11648
+ ...this.start.assignedElements(),
11649
+ ...this.slottedItems,
11650
+ ...this.end.assignedElements(),
11651
+ ];
11652
+ }
11653
+ /**
11654
+ * Prepare the slotted elements which can be focusable.
11655
+ *
11656
+ * @internal
11657
+ */
11658
+ reduceFocusableElements() {
11659
+ this.focusableElements = this.allSlottedItems.reduce(Toolbar$1.reduceFocusableItems, []);
11660
+ this.setFocusableElements();
11661
+ }
11662
+ /**
11663
+ * Set the activeIndex and focus the corresponding control.
11664
+ *
11665
+ * @param activeIndex - The new index to set
11666
+ * @internal
11667
+ */
11668
+ setFocusedElement(activeIndex = this.activeIndex) {
11669
+ var _a;
11670
+ this.activeIndex = activeIndex;
11671
+ this.setFocusableElements();
11672
+ (_a = this.focusableElements[this.activeIndex]) === null || _a === void 0 ? void 0 : _a.focus();
11673
+ }
11674
+ /**
11675
+ * Reduce a collection to only its focusable elements.
11676
+ *
11677
+ * @param elements - Collection of elements to reduce
11678
+ * @param element - The current element
11679
+ *
11680
+ * @internal
11681
+ */
11682
+ static reduceFocusableItems(elements, element) {
11683
+ var _a, _b, _c, _d;
11684
+ const isRoleRadio = element.getAttribute("role") === "radio";
11685
+ const isFocusableFastElement = (_b = (_a = element.$fastController) === null || _a === void 0 ? void 0 : _a.definition.shadowOptions) === null || _b === void 0 ? void 0 : _b.delegatesFocus;
11686
+ const hasFocusableShadow = Array.from((_d = (_c = element.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelectorAll("*")) !== null && _d !== void 0 ? _d : []).some(x => isFocusable(x));
11687
+ if (isFocusable(element) ||
11688
+ isRoleRadio ||
11689
+ isFocusableFastElement ||
11690
+ hasFocusableShadow) {
11691
+ elements.push(element);
11692
+ return elements;
11693
+ }
11694
+ if (element.childElementCount) {
11695
+ return elements.concat(Array.from(element.children).reduce(Toolbar$1.reduceFocusableItems, []));
11696
+ }
11697
+ return elements;
11698
+ }
11699
+ /**
11700
+ * @internal
11701
+ */
11702
+ setFocusableElements() {
11703
+ if (this.$fastController.isConnected && this.focusableElements.length > 0) {
11704
+ this.focusableElements.forEach((element, index) => {
11705
+ element.tabIndex = this.activeIndex === index ? 0 : -1;
11706
+ });
11707
+ }
11708
+ }
11709
+ }
11710
+ __decorate$1([
11711
+ observable
11712
+ ], Toolbar$1.prototype, "direction", void 0);
11713
+ __decorate$1([
11714
+ attr
11715
+ ], Toolbar$1.prototype, "orientation", void 0);
11716
+ __decorate$1([
11717
+ observable
11718
+ ], Toolbar$1.prototype, "slottedItems", void 0);
11719
+ __decorate$1([
11720
+ observable
11721
+ ], Toolbar$1.prototype, "slottedLabel", void 0);
11722
+ /**
11723
+ * Includes ARIA states and properties relating to the ARIA toolbar role
11724
+ *
11725
+ * @public
11726
+ */
11727
+ class DelegatesARIAToolbar {
11728
+ }
11729
+ __decorate$1([
11730
+ attr({ attribute: "aria-labelledby" })
11731
+ ], DelegatesARIAToolbar.prototype, "ariaLabelledby", void 0);
11732
+ __decorate$1([
11733
+ attr({ attribute: "aria-label" })
11734
+ ], DelegatesARIAToolbar.prototype, "ariaLabel", void 0);
11735
+ applyMixins(DelegatesARIAToolbar, ARIAGlobalStatesAndProperties);
11736
+ applyMixins(Toolbar$1, StartEnd, DelegatesARIAToolbar);
11737
+
11437
11738
  /**
11438
11739
  * The template for the {@link @microsoft/fast-foundation#(TreeItem:class)} component.
11439
11740
  * @public
@@ -12217,7 +12518,7 @@
12217
12518
 
12218
12519
  const template$4 = html `<slot></slot>`;
12219
12520
 
12220
- const styles$m = css `
12521
+ const styles$n = css `
12221
12522
  :host {
12222
12523
  display: contents;
12223
12524
  }
@@ -12273,7 +12574,7 @@
12273
12574
  ], ThemeProvider.prototype, "theme", void 0);
12274
12575
  const nimbleDesignSystemProvider = ThemeProvider.compose({
12275
12576
  baseName: 'theme-provider',
12276
- styles: styles$m,
12577
+ styles: styles$n,
12277
12578
  template: template$4
12278
12579
  });
12279
12580
  DesignSystem.getOrCreate()
@@ -12518,7 +12819,7 @@
12518
12819
  */
12519
12820
  const themeBehavior = (lightStyle, darkStyleOrAlias, colorStyleOrAlias) => new ThemeStyleSheetBehavior(lightStyle, darkStyleOrAlias, colorStyleOrAlias);
12520
12821
 
12521
- const styles$l = css `
12822
+ const styles$m = css `
12522
12823
  ${display('inline-block')}
12523
12824
 
12524
12825
  :host {
@@ -12581,7 +12882,7 @@
12581
12882
  baseName: 'breadcrumb',
12582
12883
  baseClass: Breadcrumb$1,
12583
12884
  template: breadcrumbTemplate,
12584
- styles: styles$l
12885
+ styles: styles$m
12585
12886
  });
12586
12887
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleBreadcrumb());
12587
12888
 
@@ -13167,7 +13468,7 @@
13167
13468
  */
13168
13469
  const focusVisible = `:${focusVisible$1}`;
13169
13470
 
13170
- const styles$k = css `
13471
+ const styles$l = css `
13171
13472
  ${display('inline-flex')}
13172
13473
 
13173
13474
  :host {
@@ -13247,7 +13548,7 @@
13247
13548
  baseName: 'breadcrumb-item',
13248
13549
  baseClass: BreadcrumbItem$1,
13249
13550
  template: breadcrumbItemTemplate,
13250
- styles: styles$k,
13551
+ styles: styles$l,
13251
13552
  separator: forwardSlash16X16.data
13252
13553
  });
13253
13554
  DesignSystem.getOrCreate()
@@ -13278,7 +13579,7 @@
13278
13579
  ButtonAppearance["Block"] = "block";
13279
13580
  })(ButtonAppearance || (ButtonAppearance = {}));
13280
13581
 
13281
- const styles$j = css `
13582
+ const styles$k = css `
13282
13583
  ${display('inline-flex')}
13283
13584
 
13284
13585
  :host {
@@ -13481,7 +13782,7 @@
13481
13782
  `));
13482
13783
 
13483
13784
  // prettier-ignore
13484
- const styles$i = styles$j
13785
+ const styles$j = styles$k
13485
13786
  .withBehaviors(appearanceBehavior(ButtonAppearance.Outline, css `
13486
13787
  :host(.primary) .control {
13487
13788
  box-shadow: 0px 0px 0px ${borderWidth} rgba(${actionRgbPartialColor}, 0.3) inset;
@@ -13601,14 +13902,14 @@
13601
13902
  baseName: 'button',
13602
13903
  baseClass: Button$1,
13603
13904
  template: buttonTemplate,
13604
- styles: styles$i,
13905
+ styles: styles$j,
13605
13906
  shadowOptions: {
13606
13907
  delegatesFocus: true
13607
13908
  }
13608
13909
  });
13609
13910
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleButton());
13610
13911
 
13611
- const styles$h = css `
13912
+ const styles$i = css `
13612
13913
  ${display('inline-flex')}
13613
13914
 
13614
13915
  :host {
@@ -13726,7 +14027,7 @@
13726
14027
  baseName: 'checkbox',
13727
14028
  baseClass: Checkbox$1,
13728
14029
  template: checkboxTemplate,
13729
- styles: styles$h,
14030
+ styles: styles$i,
13730
14031
  checkedIndicator: check16X16.data,
13731
14032
  indeterminateIndicator: minus16X16.data
13732
14033
  });
@@ -14811,7 +15112,7 @@
14811
15112
  slideOutOptions
14812
15113
  };
14813
15114
 
14814
- const styles$g = css `
15115
+ const styles$h = css `
14815
15116
  ${display('block')}
14816
15117
 
14817
15118
  :host {
@@ -15118,7 +15419,7 @@
15118
15419
  const nimbleDrawer = Drawer.compose({
15119
15420
  baseName: 'drawer',
15120
15421
  template: dialogTemplate,
15121
- styles: styles$g
15422
+ styles: styles$h
15122
15423
  });
15123
15424
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleDrawer());
15124
15425
 
@@ -15128,7 +15429,7 @@
15128
15429
  </template
15129
15430
  `;
15130
15431
 
15131
- const styles$f = css `
15432
+ const styles$g = css `
15132
15433
  ${display('inline-flex')}
15133
15434
 
15134
15435
  :host {
@@ -15175,7 +15476,7 @@
15175
15476
  const composedIcon = iconClass.compose({
15176
15477
  baseName,
15177
15478
  template: template$3,
15178
- styles: styles$f,
15479
+ styles: styles$g,
15179
15480
  baseClass: iconClass
15180
15481
  });
15181
15482
  DesignSystem.getOrCreate().withPrefix('nimble').register(composedIcon());
@@ -16743,7 +17044,7 @@
16743
17044
  }
16744
17045
  registerIcon('xmark-check-icon', XmarkCheckIcon);
16745
17046
 
16746
- const styles$e = css `
17047
+ const styles$f = css `
16747
17048
  ${display('flex')}
16748
17049
 
16749
17050
  :host {
@@ -16822,11 +17123,11 @@
16822
17123
  baseName: 'listbox-option',
16823
17124
  baseClass: ListboxOption$1,
16824
17125
  template: listboxOptionTemplate,
16825
- styles: styles$e
17126
+ styles: styles$f
16826
17127
  });
16827
17128
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleListboxOption());
16828
17129
 
16829
- const styles$d = css `
17130
+ const styles$e = css `
16830
17131
  ${display('grid')}
16831
17132
 
16832
17133
  :host {
@@ -16878,11 +17179,11 @@
16878
17179
  baseName: 'menu',
16879
17180
  baseClass: Menu$1,
16880
17181
  template: menuTemplate,
16881
- styles: styles$d
17182
+ styles: styles$e
16882
17183
  });
16883
17184
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleMenu());
16884
17185
 
16885
- const styles$c = css `
17186
+ const styles$d = css `
16886
17187
  ${display('grid')}
16887
17188
 
16888
17189
  :host {
@@ -16959,11 +17260,11 @@
16959
17260
  baseName: 'menu-item',
16960
17261
  baseClass: MenuItem$1,
16961
17262
  template: menuItemTemplate,
16962
- styles: styles$c
17263
+ styles: styles$d
16963
17264
  });
16964
17265
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleMenuItem());
16965
17266
 
16966
- const styles$b = css `
17267
+ const styles$c = css `
16967
17268
  ${display('inline-block')}
16968
17269
 
16969
17270
  :host {
@@ -17089,7 +17390,7 @@
17089
17390
  baseName: 'number-field',
17090
17391
  baseClass: NumberField$1,
17091
17392
  template: numberFieldTemplate,
17092
- styles: styles$b,
17393
+ styles: styles$c,
17093
17394
  shadowOptions: {
17094
17395
  delegatesFocus: true
17095
17396
  },
@@ -17098,7 +17399,7 @@
17098
17399
  });
17099
17400
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleNumberField());
17100
17401
 
17101
- const styles$a = css `
17402
+ const styles$b = css `
17102
17403
  ${display('inline-flex')}
17103
17404
 
17104
17405
  :host {
@@ -17271,12 +17572,12 @@
17271
17572
  baseName: 'select',
17272
17573
  baseClass: Select$1,
17273
17574
  template: selectTemplate,
17274
- styles: styles$a,
17575
+ styles: styles$b,
17275
17576
  indicator: arrowExpanderDown16X16.data
17276
17577
  });
17277
17578
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSelect());
17278
17579
 
17279
- const styles$9 = css `
17580
+ const styles$a = css `
17280
17581
  ${display('inline-flex')}
17281
17582
 
17282
17583
  :host {
@@ -17489,11 +17790,11 @@
17489
17790
  baseClass: Switch$1,
17490
17791
  baseName: 'switch',
17491
17792
  template: template$2,
17492
- styles: styles$9
17793
+ styles: styles$a
17493
17794
  });
17494
17795
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSwitch());
17495
17796
 
17496
- const styles$8 = css `
17797
+ const styles$9 = css `
17497
17798
  ${display('inline-flex')}
17498
17799
 
17499
17800
  :host {
@@ -17550,11 +17851,11 @@
17550
17851
  baseName: 'tab',
17551
17852
  baseClass: Tab$1,
17552
17853
  template: tabTemplate,
17553
- styles: styles$8
17854
+ styles: styles$9
17554
17855
  });
17555
17856
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTab());
17556
17857
 
17557
- const styles$7 = css `
17858
+ const styles$8 = css `
17558
17859
  ${display('block')}
17559
17860
 
17560
17861
  :host {
@@ -17574,11 +17875,11 @@
17574
17875
  baseName: 'tab-panel',
17575
17876
  baseClass: TabPanel$1,
17576
17877
  template: tabPanelTemplate,
17577
- styles: styles$7
17878
+ styles: styles$8
17578
17879
  });
17579
17880
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTabPanel());
17580
17881
 
17581
- const styles$6 = css `
17882
+ const styles$7 = css `
17582
17883
  ${display('grid')}
17583
17884
 
17584
17885
  :host {
@@ -17627,11 +17928,11 @@
17627
17928
  baseName: 'tabs',
17628
17929
  baseClass: Tabs$1,
17629
17930
  template: tabsTemplate,
17630
- styles: styles$6
17931
+ styles: styles$7
17631
17932
  });
17632
17933
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTabs());
17633
17934
 
17634
- const styles$5 = css `
17935
+ const styles$6 = css `
17635
17936
  ${display('flex')}
17636
17937
 
17637
17938
  :host {
@@ -17666,7 +17967,7 @@
17666
17967
  const nimbleTabsToolbar = TabsToolbar.compose({
17667
17968
  baseName: 'tabs-toolbar',
17668
17969
  template: template$1,
17669
- styles: styles$5
17970
+ styles: styles$6
17670
17971
  });
17671
17972
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTabsToolbar());
17672
17973
 
@@ -17676,7 +17977,7 @@
17676
17977
  TextAreaAppearance["Block"] = "block";
17677
17978
  })(TextAreaAppearance || (TextAreaAppearance = {}));
17678
17979
 
17679
- const styles$4 = css `
17980
+ const styles$5 = css `
17680
17981
  ${display('inline-flex')}
17681
17982
 
17682
17983
  :host {
@@ -17818,7 +18119,7 @@
17818
18119
  baseName: 'text-area',
17819
18120
  baseClass: TextArea$1,
17820
18121
  template: textAreaTemplate,
17821
- styles: styles$4,
18122
+ styles: styles$5,
17822
18123
  shadowOptions: {
17823
18124
  delegatesFocus: true
17824
18125
  }
@@ -17835,7 +18136,7 @@
17835
18136
  TextFieldAppearance["Block"] = "block";
17836
18137
  })(TextFieldAppearance || (TextFieldAppearance = {}));
17837
18138
 
17838
- const styles$3 = css `
18139
+ const styles$4 = css `
17839
18140
  ${display('inline-block')}
17840
18141
 
17841
18142
  :host {
@@ -18127,7 +18428,7 @@
18127
18428
  baseName: 'text-field',
18128
18429
  baseClass: TextField$1,
18129
18430
  template: textFieldTemplate,
18130
- styles: styles$3,
18431
+ styles: styles$4,
18131
18432
  shadowOptions: {
18132
18433
  delegatesFocus: true
18133
18434
  },
@@ -18148,8 +18449,8 @@
18148
18449
  });
18149
18450
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTextField());
18150
18451
 
18151
- const styles$2 = css `
18152
- ${styles$j}
18452
+ const styles$3 = css `
18453
+ ${styles$k}
18153
18454
 
18154
18455
  .control[aria-pressed='true'] {
18155
18456
  background-color: ${fillSelectedColor};
@@ -18233,13 +18534,55 @@
18233
18534
  const nimbleToggleButton = ToggleButton.compose({
18234
18535
  baseName: 'toggle-button',
18235
18536
  template,
18236
- styles: styles$2,
18537
+ styles: styles$3,
18237
18538
  shadowOptions: {
18238
18539
  delegatesFocus: true
18239
18540
  }
18240
18541
  });
18241
18542
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleToggleButton());
18242
18543
 
18544
+ const styles$2 = css `
18545
+ .positioning-region {
18546
+ display: flex;
18547
+ padding: ${smallPadding} ${standardPadding};
18548
+ align-items: center;
18549
+ gap: ${standardPadding};
18550
+ background: ${applicationBackgroundColor};
18551
+ }
18552
+
18553
+ slot[name='label'] {
18554
+ display: none;
18555
+ }
18556
+
18557
+ [part='start'] {
18558
+ display: flex;
18559
+ gap: ${standardPadding};
18560
+ margin-right: auto;
18561
+ }
18562
+
18563
+ [part='end'] {
18564
+ display: flex;
18565
+ gap: ${standardPadding};
18566
+ margin-left: auto;
18567
+ }
18568
+ `;
18569
+
18570
+ /**
18571
+ * A nimble-styled Toolbar
18572
+ */
18573
+ class Toolbar extends Toolbar$1 {
18574
+ }
18575
+ const nimbleToolbar = Toolbar.compose({
18576
+ baseName: 'toolbar',
18577
+ baseClass: Toolbar$1,
18578
+ template: toolbarTemplate,
18579
+ styles: styles$2,
18580
+ shadowOptions: {
18581
+ delegatesFocus: true
18582
+ }
18583
+ });
18584
+ DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleToolbar());
18585
+
18243
18586
  const groupSelectedAttribute = 'group-selected';
18244
18587
  var TreeViewSelectionMode;
18245
18588
  (function (TreeViewSelectionMode) {