@fluentui/web-components 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +69 -1
- package/CHANGELOG.md +38 -2
- package/dist/dts/anchor/anchor.stories.d.ts +1 -1
- package/dist/dts/badge/badge.stories.d.ts +1 -1
- package/dist/dts/button/button.stories.d.ts +1 -1
- package/dist/dts/component-definitions.d.ts +2 -1
- package/dist/dts/custom-elements.d.ts +14 -12
- package/dist/dts/index.d.ts +1 -0
- package/dist/dts/listbox/index.d.ts +3 -6
- package/dist/dts/listbox/listbox.stories.d.ts +1 -1
- package/dist/dts/menu/menu.stories.d.ts +1 -1
- package/dist/dts/search/index.d.ts +38 -0
- package/dist/dts/search/search.stories.d.ts +75 -0
- package/dist/dts/search/search.styles.d.ts +4 -0
- package/dist/dts/search/search.template.d.ts +6 -0
- package/dist/dts/text-area/text-area.stories.d.ts +1 -1
- package/dist/dts/text-field/text-field.stories.d.ts +1 -1
- package/dist/dts/tooltip/tooltip.stories.d.ts +1 -1
- package/dist/esm/accordion/accordion-item/accordion-item.styles.js +6 -5
- package/dist/esm/component-definitions.js +2 -0
- package/dist/esm/custom-elements.js +3 -1
- package/dist/esm/flipper/flipper.styles.js +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/listbox/index.js +3 -6
- package/dist/esm/search/index.js +52 -0
- package/dist/esm/search/search.stories.js +83 -0
- package/dist/esm/search/search.styles.js +108 -0
- package/dist/esm/search/search.template.js +82 -0
- package/dist/esm/search/search.vscode.definition.json +145 -0
- package/dist/esm/tabs/tabs.stories.js +56 -2
- package/dist/esm/tabs/tabs.styles.js +1 -0
- package/dist/fluent-web-components.api.json +280 -15
- package/dist/web-components.d.ts +51 -2
- package/dist/web-components.js +711 -245
- package/dist/web-components.min.js +142 -132
- package/docs/api-report.md +34 -9
- package/package.json +2 -3
package/dist/web-components.js
CHANGED
|
@@ -1475,7 +1475,10 @@ function compileTemplate(template, directives) {
|
|
|
1475
1475
|
// because something like a when, repeat, etc. could add nodes before the marker.
|
|
1476
1476
|
// To mitigate this, we insert a stable first node. However, if we insert a node,
|
|
1477
1477
|
// that will alter the result of the TreeWalker. So, we also need to offset the target index.
|
|
1478
|
-
DOM.isMarker(fragment.firstChild) ||
|
|
1478
|
+
DOM.isMarker(fragment.firstChild) || // Or if there is only one node and a directive, it means the template's content
|
|
1479
|
+
// is *only* the directive. In that case, HTMLView.dispose() misses any nodes inserted by
|
|
1480
|
+
// the directive. Inserting a new node ensures proper disposal of nodes added by the directive.
|
|
1481
|
+
fragment.childNodes.length === 1 && directives.length) {
|
|
1479
1482
|
fragment.insertBefore(document.createComment(""), fragment.firstChild);
|
|
1480
1483
|
targetOffset = -1;
|
|
1481
1484
|
}
|
|
@@ -5559,7 +5562,9 @@ function isArrayIndex(value) {
|
|
|
5559
5562
|
for (let i = 0; i < length; ++i) {
|
|
5560
5563
|
ch = value.charCodeAt(i);
|
|
5561
5564
|
|
|
5562
|
-
if (i === 0 && ch === 0x30 && length > 1
|
|
5565
|
+
if (i === 0 && ch === 0x30 && length > 1
|
|
5566
|
+
/* must not start with 0 */
|
|
5567
|
+
|| ch < 0x30
|
|
5563
5568
|
/* 0 */
|
|
5564
5569
|
|| ch > 0x39
|
|
5565
5570
|
/* 9 */
|
|
@@ -10536,49 +10541,32 @@ var ListboxRole;
|
|
|
10536
10541
|
* @public
|
|
10537
10542
|
*/
|
|
10538
10543
|
|
|
10539
|
-
class Listbox extends FoundationElement {
|
|
10544
|
+
class Listbox$1 extends FoundationElement {
|
|
10540
10545
|
constructor() {
|
|
10541
10546
|
super(...arguments);
|
|
10542
10547
|
/**
|
|
10543
|
-
* The
|
|
10544
|
-
*
|
|
10545
|
-
* @public
|
|
10546
|
-
*/
|
|
10547
|
-
|
|
10548
|
-
this.selectedIndex = -1;
|
|
10549
|
-
/**
|
|
10550
|
-
* @internal
|
|
10551
|
-
*/
|
|
10552
|
-
|
|
10553
|
-
this.typeaheadBuffer = "";
|
|
10554
|
-
/**
|
|
10555
|
-
* @internal
|
|
10556
|
-
*/
|
|
10557
|
-
|
|
10558
|
-
this.typeaheadTimeout = -1;
|
|
10559
|
-
/**
|
|
10560
|
-
* Flag for the typeahead timeout expiration.
|
|
10548
|
+
* The internal unfiltered list of selectable options.
|
|
10561
10549
|
*
|
|
10562
10550
|
* @internal
|
|
10563
10551
|
*/
|
|
10564
10552
|
|
|
10565
|
-
this.
|
|
10553
|
+
this._options = [];
|
|
10566
10554
|
/**
|
|
10567
10555
|
* The role of the element.
|
|
10568
10556
|
*
|
|
10569
10557
|
* @public
|
|
10570
10558
|
* @remarks
|
|
10571
|
-
* HTML Attribute: role
|
|
10559
|
+
* HTML Attribute: `role`
|
|
10572
10560
|
*/
|
|
10573
10561
|
|
|
10574
10562
|
this.role = ListboxRole.listbox;
|
|
10575
10563
|
/**
|
|
10576
|
-
* The
|
|
10564
|
+
* The index of the selected option.
|
|
10577
10565
|
*
|
|
10578
|
-
* @
|
|
10566
|
+
* @public
|
|
10579
10567
|
*/
|
|
10580
10568
|
|
|
10581
|
-
this.
|
|
10569
|
+
this.selectedIndex = -1;
|
|
10582
10570
|
/**
|
|
10583
10571
|
* A collection of the selected options.
|
|
10584
10572
|
*
|
|
@@ -10595,66 +10583,52 @@ class Listbox extends FoundationElement {
|
|
|
10595
10583
|
|
|
10596
10584
|
this.shouldSkipFocus = false;
|
|
10597
10585
|
/**
|
|
10598
|
-
*
|
|
10599
|
-
* Consecutive keystrokes are batched into a buffer of search text used
|
|
10600
|
-
* to match against the set of options. If TYPE_AHEAD_TIMEOUT_MS passes
|
|
10601
|
-
* between consecutive keystrokes, the search restarts.
|
|
10586
|
+
* The current typeahead buffer string.
|
|
10602
10587
|
*
|
|
10603
|
-
* @
|
|
10588
|
+
* @internal
|
|
10604
10589
|
*/
|
|
10605
10590
|
|
|
10606
|
-
this.
|
|
10607
|
-
|
|
10608
|
-
|
|
10609
|
-
|
|
10610
|
-
|
|
10611
|
-
|
|
10612
|
-
|
|
10613
|
-
if (key.length > 1) {
|
|
10614
|
-
return;
|
|
10615
|
-
}
|
|
10591
|
+
this.typeaheadBuffer = "";
|
|
10592
|
+
/**
|
|
10593
|
+
* Flag for the typeahead timeout expiration.
|
|
10594
|
+
*
|
|
10595
|
+
* @internal
|
|
10596
|
+
*/
|
|
10616
10597
|
|
|
10617
|
-
|
|
10618
|
-
|
|
10619
|
-
|
|
10598
|
+
this.typeaheadExpired = true;
|
|
10599
|
+
/**
|
|
10600
|
+
* The timeout ID for the typeahead handler.
|
|
10601
|
+
*
|
|
10602
|
+
* @internal
|
|
10603
|
+
*/
|
|
10620
10604
|
|
|
10621
|
-
|
|
10622
|
-
this.setSelectedOptions();
|
|
10605
|
+
this.typeaheadTimeout = -1;
|
|
10623
10606
|
}
|
|
10607
|
+
/**
|
|
10608
|
+
* The first selected option.
|
|
10609
|
+
*
|
|
10610
|
+
* @internal
|
|
10611
|
+
*/
|
|
10624
10612
|
|
|
10625
|
-
typeaheadBufferChanged(prev, next) {
|
|
10626
|
-
if (this.$fastController.isConnected) {
|
|
10627
|
-
const pattern = this.typeaheadBuffer.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&");
|
|
10628
|
-
const re = new RegExp(`^${pattern}`, "gi");
|
|
10629
|
-
const filteredOptions = this.options.filter(o => o.text.trim().match(re));
|
|
10630
|
-
|
|
10631
|
-
if (filteredOptions.length) {
|
|
10632
|
-
const selectedIndex = this.options.indexOf(filteredOptions[0]);
|
|
10633
10613
|
|
|
10634
|
-
|
|
10635
|
-
|
|
10636
|
-
}
|
|
10637
|
-
}
|
|
10614
|
+
get firstSelectedOption() {
|
|
10615
|
+
var _a;
|
|
10638
10616
|
|
|
10639
|
-
|
|
10640
|
-
}
|
|
10617
|
+
return (_a = this.selectedOptions[0]) !== null && _a !== void 0 ? _a : null;
|
|
10641
10618
|
}
|
|
10619
|
+
/**
|
|
10620
|
+
* The number of options.
|
|
10621
|
+
*
|
|
10622
|
+
* @public
|
|
10623
|
+
*/
|
|
10642
10624
|
|
|
10643
|
-
slottedOptionsChanged(prev, next) {
|
|
10644
|
-
if (this.$fastController.isConnected) {
|
|
10645
|
-
this.options = next.reduce((options, item) => {
|
|
10646
|
-
if (isListboxOption(item)) {
|
|
10647
|
-
options.push(item);
|
|
10648
|
-
}
|
|
10649
10625
|
|
|
10650
|
-
|
|
10651
|
-
|
|
10652
|
-
this.options.
|
|
10653
|
-
o.id = o.id || uniqueId("option-");
|
|
10654
|
-
});
|
|
10655
|
-
this.setSelectedOptions();
|
|
10656
|
-
this.setDefaultSelectedOption();
|
|
10626
|
+
get length() {
|
|
10627
|
+
if (this.options) {
|
|
10628
|
+
return this.options.length;
|
|
10657
10629
|
}
|
|
10630
|
+
|
|
10631
|
+
return 0;
|
|
10658
10632
|
}
|
|
10659
10633
|
/**
|
|
10660
10634
|
* The list of options.
|
|
@@ -10672,23 +10646,39 @@ class Listbox extends FoundationElement {
|
|
|
10672
10646
|
this._options = value;
|
|
10673
10647
|
Observable.notify(this, "options");
|
|
10674
10648
|
}
|
|
10649
|
+
/**
|
|
10650
|
+
* Flag for the typeahead timeout expiration.
|
|
10651
|
+
*
|
|
10652
|
+
* @deprecated use `Listbox.typeaheadExpired`
|
|
10653
|
+
* @internal
|
|
10654
|
+
*/
|
|
10675
10655
|
|
|
10676
|
-
|
|
10677
|
-
|
|
10678
|
-
|
|
10679
|
-
|
|
10680
|
-
|
|
10681
|
-
|
|
10656
|
+
|
|
10657
|
+
get typeAheadExpired() {
|
|
10658
|
+
return this.typeaheadExpired;
|
|
10659
|
+
}
|
|
10660
|
+
|
|
10661
|
+
set typeAheadExpired(value) {
|
|
10662
|
+
this.typeaheadExpired = value;
|
|
10682
10663
|
}
|
|
10683
10664
|
/**
|
|
10665
|
+
* Handle click events for listbox options.
|
|
10666
|
+
*
|
|
10684
10667
|
* @internal
|
|
10685
10668
|
*/
|
|
10686
10669
|
|
|
10687
10670
|
|
|
10688
|
-
|
|
10689
|
-
|
|
10671
|
+
clickHandler(e) {
|
|
10672
|
+
const captured = e.target.closest(`option,[role=option]`);
|
|
10673
|
+
|
|
10674
|
+
if (captured && !captured.disabled) {
|
|
10675
|
+
this.selectedIndex = this.options.indexOf(captured);
|
|
10676
|
+
return true;
|
|
10677
|
+
}
|
|
10690
10678
|
}
|
|
10691
10679
|
/**
|
|
10680
|
+
* Focus the first selected option and scroll it into view.
|
|
10681
|
+
*
|
|
10692
10682
|
* @internal
|
|
10693
10683
|
*/
|
|
10694
10684
|
|
|
@@ -10704,6 +10694,10 @@ class Listbox extends FoundationElement {
|
|
|
10704
10694
|
}
|
|
10705
10695
|
}
|
|
10706
10696
|
/**
|
|
10697
|
+
* Handles `focusin` actions for the component. When the component receives focus,
|
|
10698
|
+
* the list of selected options is refreshed and the first selected option is scrolled
|
|
10699
|
+
* into view.
|
|
10700
|
+
*
|
|
10707
10701
|
* @internal
|
|
10708
10702
|
*/
|
|
10709
10703
|
|
|
@@ -10716,6 +10710,116 @@ class Listbox extends FoundationElement {
|
|
|
10716
10710
|
|
|
10717
10711
|
this.shouldSkipFocus = false;
|
|
10718
10712
|
}
|
|
10713
|
+
/**
|
|
10714
|
+
* Moves focus to an option whose label matches characters typed by the user.
|
|
10715
|
+
* Consecutive keystrokes are batched into a buffer of search text used
|
|
10716
|
+
* to match against the set of options. If `TYPE_AHEAD_TIMEOUT_MS` passes
|
|
10717
|
+
* between consecutive keystrokes, the search restarts.
|
|
10718
|
+
*
|
|
10719
|
+
* @param key - the key to be evaluated
|
|
10720
|
+
*/
|
|
10721
|
+
|
|
10722
|
+
|
|
10723
|
+
handleTypeAhead(key) {
|
|
10724
|
+
if (this.typeaheadTimeout) {
|
|
10725
|
+
window.clearTimeout(this.typeaheadTimeout);
|
|
10726
|
+
}
|
|
10727
|
+
|
|
10728
|
+
this.typeaheadTimeout = window.setTimeout(() => this.typeaheadExpired = true, Listbox$1.TYPE_AHEAD_TIMEOUT_MS);
|
|
10729
|
+
|
|
10730
|
+
if (key.length > 1) {
|
|
10731
|
+
return;
|
|
10732
|
+
}
|
|
10733
|
+
|
|
10734
|
+
this.typeaheadBuffer = `${this.typeaheadExpired ? "" : this.typeaheadBuffer}${key}`;
|
|
10735
|
+
}
|
|
10736
|
+
/**
|
|
10737
|
+
* Handles `keydown` actions for listbox navigation and typeahead.
|
|
10738
|
+
*
|
|
10739
|
+
* @internal
|
|
10740
|
+
*/
|
|
10741
|
+
|
|
10742
|
+
|
|
10743
|
+
keydownHandler(e) {
|
|
10744
|
+
if (this.disabled) {
|
|
10745
|
+
return true;
|
|
10746
|
+
}
|
|
10747
|
+
|
|
10748
|
+
this.shouldSkipFocus = false;
|
|
10749
|
+
const key = e.key;
|
|
10750
|
+
|
|
10751
|
+
switch (key) {
|
|
10752
|
+
// Select the first available option
|
|
10753
|
+
case keyHome:
|
|
10754
|
+
{
|
|
10755
|
+
if (!e.shiftKey) {
|
|
10756
|
+
e.preventDefault();
|
|
10757
|
+
this.selectFirstOption();
|
|
10758
|
+
}
|
|
10759
|
+
|
|
10760
|
+
break;
|
|
10761
|
+
}
|
|
10762
|
+
// Select the next selectable option
|
|
10763
|
+
|
|
10764
|
+
case keyArrowDown:
|
|
10765
|
+
{
|
|
10766
|
+
if (!e.shiftKey) {
|
|
10767
|
+
e.preventDefault();
|
|
10768
|
+
this.selectNextOption();
|
|
10769
|
+
}
|
|
10770
|
+
|
|
10771
|
+
break;
|
|
10772
|
+
}
|
|
10773
|
+
// Select the previous selectable option
|
|
10774
|
+
|
|
10775
|
+
case keyArrowUp:
|
|
10776
|
+
{
|
|
10777
|
+
if (!e.shiftKey) {
|
|
10778
|
+
e.preventDefault();
|
|
10779
|
+
this.selectPreviousOption();
|
|
10780
|
+
}
|
|
10781
|
+
|
|
10782
|
+
break;
|
|
10783
|
+
}
|
|
10784
|
+
// Select the last available option
|
|
10785
|
+
|
|
10786
|
+
case keyEnd:
|
|
10787
|
+
{
|
|
10788
|
+
e.preventDefault();
|
|
10789
|
+
this.selectLastOption();
|
|
10790
|
+
break;
|
|
10791
|
+
}
|
|
10792
|
+
|
|
10793
|
+
case keyTab:
|
|
10794
|
+
{
|
|
10795
|
+
this.focusAndScrollOptionIntoView();
|
|
10796
|
+
return true;
|
|
10797
|
+
}
|
|
10798
|
+
|
|
10799
|
+
case keyEnter:
|
|
10800
|
+
case keyEscape:
|
|
10801
|
+
{
|
|
10802
|
+
return true;
|
|
10803
|
+
}
|
|
10804
|
+
|
|
10805
|
+
case keySpace:
|
|
10806
|
+
{
|
|
10807
|
+
if (this.typeaheadExpired) {
|
|
10808
|
+
return true;
|
|
10809
|
+
}
|
|
10810
|
+
}
|
|
10811
|
+
// Send key to Typeahead handler
|
|
10812
|
+
|
|
10813
|
+
default:
|
|
10814
|
+
{
|
|
10815
|
+
if (key.length === 1) {
|
|
10816
|
+
this.handleTypeAhead(`${key}`);
|
|
10817
|
+
}
|
|
10818
|
+
|
|
10819
|
+
return true;
|
|
10820
|
+
}
|
|
10821
|
+
}
|
|
10822
|
+
}
|
|
10719
10823
|
/**
|
|
10720
10824
|
* Prevents `focusin` events from firing before `click` events when the
|
|
10721
10825
|
* element is unfocused.
|
|
@@ -10729,40 +10833,37 @@ class Listbox extends FoundationElement {
|
|
|
10729
10833
|
return true;
|
|
10730
10834
|
}
|
|
10731
10835
|
/**
|
|
10836
|
+
* Updates the list of selected options when the `selectedIndex` changes.
|
|
10837
|
+
*
|
|
10838
|
+
* @param prev - the previous selected index value
|
|
10839
|
+
* @param next - the current selected index value
|
|
10840
|
+
*
|
|
10732
10841
|
* @internal
|
|
10733
10842
|
*/
|
|
10734
10843
|
|
|
10735
10844
|
|
|
10736
|
-
|
|
10737
|
-
|
|
10738
|
-
const selectedIndex = this.options.findIndex(el => el.getAttribute("selected") !== null);
|
|
10739
|
-
|
|
10740
|
-
if (selectedIndex !== -1) {
|
|
10741
|
-
this.selectedIndex = selectedIndex;
|
|
10742
|
-
return;
|
|
10743
|
-
}
|
|
10744
|
-
|
|
10745
|
-
this.selectedIndex = 0;
|
|
10746
|
-
}
|
|
10845
|
+
selectedIndexChanged(prev, next) {
|
|
10846
|
+
this.setSelectedOptions();
|
|
10747
10847
|
}
|
|
10748
10848
|
/**
|
|
10749
|
-
*
|
|
10849
|
+
* Updates the selectedness of each option when the list of selected options changes.
|
|
10750
10850
|
*
|
|
10751
|
-
* @param
|
|
10752
|
-
* @
|
|
10851
|
+
* @param prev - the previous list of selected options
|
|
10852
|
+
* @param next - the current list of selected options
|
|
10853
|
+
*
|
|
10854
|
+
* @internal
|
|
10753
10855
|
*/
|
|
10754
10856
|
|
|
10755
10857
|
|
|
10756
|
-
|
|
10757
|
-
if (this.$fastController.isConnected
|
|
10758
|
-
|
|
10759
|
-
|
|
10760
|
-
|
|
10761
|
-
this.focusAndScrollOptionIntoView();
|
|
10858
|
+
selectedOptionsChanged(prev, next) {
|
|
10859
|
+
if (this.$fastController.isConnected) {
|
|
10860
|
+
this.options.forEach(o => {
|
|
10861
|
+
o.selected = next.includes(o);
|
|
10862
|
+
});
|
|
10762
10863
|
}
|
|
10763
10864
|
}
|
|
10764
10865
|
/**
|
|
10765
|
-
* Moves focus to the first selectable option
|
|
10866
|
+
* Moves focus to the first selectable option.
|
|
10766
10867
|
*
|
|
10767
10868
|
* @public
|
|
10768
10869
|
*/
|
|
@@ -10774,7 +10875,7 @@ class Listbox extends FoundationElement {
|
|
|
10774
10875
|
}
|
|
10775
10876
|
}
|
|
10776
10877
|
/**
|
|
10777
|
-
* Moves focus to the last selectable option
|
|
10878
|
+
* Moves focus to the last selectable option.
|
|
10778
10879
|
*
|
|
10779
10880
|
* @internal
|
|
10780
10881
|
*/
|
|
@@ -10786,7 +10887,7 @@ class Listbox extends FoundationElement {
|
|
|
10786
10887
|
}
|
|
10787
10888
|
}
|
|
10788
10889
|
/**
|
|
10789
|
-
* Moves focus to the next selectable option
|
|
10890
|
+
* Moves focus to the next selectable option.
|
|
10790
10891
|
*
|
|
10791
10892
|
* @internal
|
|
10792
10893
|
*/
|
|
@@ -10797,16 +10898,8 @@ class Listbox extends FoundationElement {
|
|
|
10797
10898
|
this.selectedIndex += 1;
|
|
10798
10899
|
}
|
|
10799
10900
|
}
|
|
10800
|
-
|
|
10801
|
-
get length() {
|
|
10802
|
-
if (this.options) {
|
|
10803
|
-
return this.options.length;
|
|
10804
|
-
}
|
|
10805
|
-
|
|
10806
|
-
return 0;
|
|
10807
|
-
}
|
|
10808
10901
|
/**
|
|
10809
|
-
* Moves focus to the previous selectable option
|
|
10902
|
+
* Moves focus to the previous selectable option.
|
|
10810
10903
|
*
|
|
10811
10904
|
* @internal
|
|
10812
10905
|
*/
|
|
@@ -10818,138 +10911,126 @@ class Listbox extends FoundationElement {
|
|
|
10818
10911
|
}
|
|
10819
10912
|
}
|
|
10820
10913
|
/**
|
|
10821
|
-
*
|
|
10914
|
+
* Updates the selected index to match the first selected option.
|
|
10822
10915
|
*
|
|
10823
10916
|
* @internal
|
|
10824
10917
|
*/
|
|
10825
10918
|
|
|
10826
10919
|
|
|
10827
|
-
|
|
10828
|
-
|
|
10920
|
+
setDefaultSelectedOption() {
|
|
10921
|
+
if (this.options && this.$fastController.isConnected) {
|
|
10922
|
+
const selectedIndex = this.options.findIndex(el => el.getAttribute("selected") !== null);
|
|
10829
10923
|
|
|
10830
|
-
|
|
10831
|
-
|
|
10832
|
-
|
|
10924
|
+
if (selectedIndex !== -1) {
|
|
10925
|
+
this.selectedIndex = selectedIndex;
|
|
10926
|
+
return;
|
|
10927
|
+
}
|
|
10928
|
+
|
|
10929
|
+
this.selectedIndex = 0;
|
|
10833
10930
|
}
|
|
10834
10931
|
}
|
|
10835
10932
|
/**
|
|
10836
|
-
*
|
|
10933
|
+
* Sets the selected option and gives it focus.
|
|
10837
10934
|
*
|
|
10838
|
-
* @
|
|
10935
|
+
* @public
|
|
10839
10936
|
*/
|
|
10840
10937
|
|
|
10841
10938
|
|
|
10842
|
-
|
|
10843
|
-
|
|
10844
|
-
return true;
|
|
10845
|
-
}
|
|
10846
|
-
|
|
10847
|
-
this.shouldSkipFocus = false;
|
|
10848
|
-
const key = e.key;
|
|
10849
|
-
|
|
10850
|
-
switch (key) {
|
|
10851
|
-
// Select the first available option
|
|
10852
|
-
case "Home":
|
|
10853
|
-
{
|
|
10854
|
-
if (!e.shiftKey) {
|
|
10855
|
-
e.preventDefault();
|
|
10856
|
-
this.selectFirstOption();
|
|
10857
|
-
}
|
|
10939
|
+
setSelectedOptions() {
|
|
10940
|
+
var _a, _b, _c;
|
|
10858
10941
|
|
|
10859
|
-
|
|
10860
|
-
|
|
10861
|
-
|
|
10942
|
+
if (this.$fastController.isConnected && this.options) {
|
|
10943
|
+
const selectedOption = (_a = this.options[this.selectedIndex]) !== null && _a !== void 0 ? _a : null;
|
|
10944
|
+
this.selectedOptions = this.options.filter(el => el.isSameNode(selectedOption));
|
|
10945
|
+
this.ariaActiveDescendant = (_c = (_b = this.firstSelectedOption) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : "";
|
|
10946
|
+
this.focusAndScrollOptionIntoView();
|
|
10947
|
+
}
|
|
10948
|
+
}
|
|
10949
|
+
/**
|
|
10950
|
+
* Updates the list of options and resets the selected option when the slotted option content changes.
|
|
10951
|
+
*
|
|
10952
|
+
* @param prev - the previous list of slotted options
|
|
10953
|
+
* @param next - the current list of slotted options
|
|
10954
|
+
*
|
|
10955
|
+
* @internal
|
|
10956
|
+
*/
|
|
10862
10957
|
|
|
10863
|
-
case "ArrowDown":
|
|
10864
|
-
{
|
|
10865
|
-
if (!e.shiftKey) {
|
|
10866
|
-
e.preventDefault();
|
|
10867
|
-
this.selectNextOption();
|
|
10868
|
-
}
|
|
10869
10958
|
|
|
10870
|
-
|
|
10959
|
+
slottedOptionsChanged(prev, next) {
|
|
10960
|
+
if (this.$fastController.isConnected) {
|
|
10961
|
+
this.options = next.reduce((options, item) => {
|
|
10962
|
+
if (isListboxOption(item)) {
|
|
10963
|
+
options.push(item);
|
|
10871
10964
|
}
|
|
10872
|
-
// Select the previous selectable option
|
|
10873
10965
|
|
|
10874
|
-
|
|
10875
|
-
|
|
10876
|
-
|
|
10877
|
-
|
|
10878
|
-
|
|
10879
|
-
|
|
10880
|
-
|
|
10881
|
-
|
|
10882
|
-
|
|
10883
|
-
|
|
10966
|
+
return options;
|
|
10967
|
+
}, []);
|
|
10968
|
+
this.options.forEach(o => {
|
|
10969
|
+
o.id = o.id || uniqueId("option-");
|
|
10970
|
+
});
|
|
10971
|
+
this.setSelectedOptions();
|
|
10972
|
+
this.setDefaultSelectedOption();
|
|
10973
|
+
}
|
|
10974
|
+
}
|
|
10975
|
+
/**
|
|
10976
|
+
* Updates the filtered list of options when the typeahead buffer changes.
|
|
10977
|
+
*
|
|
10978
|
+
* @param prev - the previous typeahead buffer value
|
|
10979
|
+
* @param next - the current typeahead buffer value
|
|
10980
|
+
*
|
|
10981
|
+
* @internal
|
|
10982
|
+
*/
|
|
10884
10983
|
|
|
10885
|
-
case "End":
|
|
10886
|
-
{
|
|
10887
|
-
e.preventDefault();
|
|
10888
|
-
this.selectLastOption();
|
|
10889
|
-
break;
|
|
10890
|
-
}
|
|
10891
10984
|
|
|
10892
|
-
|
|
10893
|
-
|
|
10894
|
-
|
|
10895
|
-
|
|
10896
|
-
|
|
10985
|
+
typeaheadBufferChanged(prev, next) {
|
|
10986
|
+
if (this.$fastController.isConnected) {
|
|
10987
|
+
const pattern = this.typeaheadBuffer.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&");
|
|
10988
|
+
const re = new RegExp(`^${pattern}`, "gi");
|
|
10989
|
+
const filteredOptions = this.options.filter(o => o.text.trim().match(re));
|
|
10897
10990
|
|
|
10898
|
-
|
|
10899
|
-
|
|
10900
|
-
{
|
|
10901
|
-
return true;
|
|
10902
|
-
}
|
|
10991
|
+
if (filteredOptions.length) {
|
|
10992
|
+
const selectedIndex = this.options.indexOf(filteredOptions[0]);
|
|
10903
10993
|
|
|
10904
|
-
|
|
10905
|
-
|
|
10906
|
-
if (this.typeAheadExpired) {
|
|
10907
|
-
return true;
|
|
10908
|
-
}
|
|
10994
|
+
if (selectedIndex > -1) {
|
|
10995
|
+
this.selectedIndex = selectedIndex;
|
|
10909
10996
|
}
|
|
10910
|
-
|
|
10911
|
-
|
|
10912
|
-
default:
|
|
10913
|
-
{
|
|
10914
|
-
if (key.length === 1) {
|
|
10915
|
-
this.handleTypeAhead(`${key}`);
|
|
10916
|
-
}
|
|
10997
|
+
}
|
|
10917
10998
|
|
|
10918
|
-
|
|
10919
|
-
}
|
|
10999
|
+
this.typeaheadExpired = false;
|
|
10920
11000
|
}
|
|
10921
11001
|
}
|
|
10922
11002
|
|
|
10923
11003
|
}
|
|
10924
11004
|
/**
|
|
10925
|
-
*
|
|
11005
|
+
* A static filter to include only selectable options.
|
|
10926
11006
|
*
|
|
10927
|
-
* @
|
|
11007
|
+
* @param n - element to filter
|
|
11008
|
+
* @public
|
|
10928
11009
|
*/
|
|
10929
11010
|
|
|
10930
|
-
Listbox.
|
|
11011
|
+
Listbox$1.slottedOptionFilter = n => isListboxOption(n) && !n.disabled && !n.hidden;
|
|
10931
11012
|
/**
|
|
10932
|
-
*
|
|
11013
|
+
* Typeahead timeout in milliseconds.
|
|
10933
11014
|
*
|
|
10934
|
-
* @
|
|
10935
|
-
* @public
|
|
11015
|
+
* @internal
|
|
10936
11016
|
*/
|
|
10937
11017
|
|
|
10938
|
-
Listbox.slottedOptionFilter = n => isListboxOption(n) && !n.disabled && !n.hidden;
|
|
10939
|
-
|
|
10940
|
-
__decorate$1([observable], Listbox.prototype, "selectedIndex", void 0);
|
|
10941
11018
|
|
|
10942
|
-
|
|
10943
|
-
|
|
10944
|
-
__decorate$1([attr], Listbox.prototype, "role", void 0);
|
|
11019
|
+
Listbox$1.TYPE_AHEAD_TIMEOUT_MS = 1000;
|
|
10945
11020
|
|
|
10946
11021
|
__decorate$1([attr({
|
|
10947
11022
|
mode: "boolean"
|
|
10948
|
-
})], Listbox.prototype, "disabled", void 0);
|
|
11023
|
+
})], Listbox$1.prototype, "disabled", void 0);
|
|
11024
|
+
|
|
11025
|
+
__decorate$1([attr], Listbox$1.prototype, "role", void 0);
|
|
11026
|
+
|
|
11027
|
+
__decorate$1([observable], Listbox$1.prototype, "selectedIndex", void 0);
|
|
10949
11028
|
|
|
10950
|
-
__decorate$1([observable], Listbox.prototype, "
|
|
11029
|
+
__decorate$1([observable], Listbox$1.prototype, "selectedOptions", void 0);
|
|
10951
11030
|
|
|
10952
|
-
__decorate$1([observable], Listbox.prototype, "
|
|
11031
|
+
__decorate$1([observable], Listbox$1.prototype, "slottedOptions", void 0);
|
|
11032
|
+
|
|
11033
|
+
__decorate$1([observable], Listbox$1.prototype, "typeaheadBuffer", void 0);
|
|
10953
11034
|
/**
|
|
10954
11035
|
* Includes ARIA states and properties relating to the ARIA listbox role
|
|
10955
11036
|
*
|
|
@@ -10977,9 +11058,9 @@ __decorate$1([observable], DelegatesARIAListbox.prototype, "ariaDisabled", void
|
|
|
10977
11058
|
__decorate$1([observable], DelegatesARIAListbox.prototype, "ariaExpanded", void 0);
|
|
10978
11059
|
|
|
10979
11060
|
applyMixins(DelegatesARIAListbox, ARIAGlobalStatesAndProperties);
|
|
10980
|
-
applyMixins(Listbox, DelegatesARIAListbox);
|
|
11061
|
+
applyMixins(Listbox$1, DelegatesARIAListbox);
|
|
10981
11062
|
|
|
10982
|
-
class _Combobox extends Listbox {}
|
|
11063
|
+
class _Combobox extends Listbox$1 {}
|
|
10983
11064
|
/**
|
|
10984
11065
|
* A form-associated base class for the {@link (Combobox:class)} component.
|
|
10985
11066
|
*
|
|
@@ -11207,12 +11288,13 @@ class Combobox$1 extends FormAssociatedCombobox {
|
|
|
11207
11288
|
|
|
11208
11289
|
this.selectedOptions = [captured];
|
|
11209
11290
|
this.control.value = captured.text;
|
|
11291
|
+
this.updateValue(true);
|
|
11210
11292
|
}
|
|
11211
11293
|
|
|
11212
11294
|
this.open = !this.open;
|
|
11213
11295
|
|
|
11214
|
-
if (
|
|
11215
|
-
this.
|
|
11296
|
+
if (this.open) {
|
|
11297
|
+
this.control.focus();
|
|
11216
11298
|
}
|
|
11217
11299
|
|
|
11218
11300
|
return true;
|
|
@@ -11268,6 +11350,28 @@ class Combobox$1 extends FormAssociatedCombobox {
|
|
|
11268
11350
|
});
|
|
11269
11351
|
}
|
|
11270
11352
|
}
|
|
11353
|
+
/**
|
|
11354
|
+
* Focus the control and scroll the first selected option into view.
|
|
11355
|
+
*
|
|
11356
|
+
* @internal
|
|
11357
|
+
* @remarks
|
|
11358
|
+
* Overrides: `Listbox.focusAndScrollOptionIntoView`
|
|
11359
|
+
*/
|
|
11360
|
+
|
|
11361
|
+
|
|
11362
|
+
focusAndScrollOptionIntoView() {
|
|
11363
|
+
if (this.contains(document.activeElement)) {
|
|
11364
|
+
this.control.focus();
|
|
11365
|
+
|
|
11366
|
+
if (this.firstSelectedOption) {
|
|
11367
|
+
requestAnimationFrame(() => {
|
|
11368
|
+
this.firstSelectedOption.scrollIntoView({
|
|
11369
|
+
block: "nearest"
|
|
11370
|
+
});
|
|
11371
|
+
});
|
|
11372
|
+
}
|
|
11373
|
+
}
|
|
11374
|
+
}
|
|
11271
11375
|
/**
|
|
11272
11376
|
* Handle focus state when the element or its children lose focus.
|
|
11273
11377
|
*
|
|
@@ -11615,7 +11719,7 @@ applyMixins(Combobox$1, StartEnd, DelegatesARIACombobox);
|
|
|
11615
11719
|
*/
|
|
11616
11720
|
|
|
11617
11721
|
const comboboxTemplate = (context, definition) => html`<template autocomplete="${x => x.autocomplete}" class="${x => x.disabled ? "disabled" : ""} ${x => x.position}" tabindex="${x => !x.disabled ? "0" : null}" aria-disabled="${x => x.ariaDisabled}" aria-autocomplete="${x => x.autocomplete}" @click="${(x, c) => x.clickHandler(c.event)}" @focusout="${(x, c) => x.focusoutHandler(c.event)}"><div class="control" part="control">${startSlotTemplate(context, definition)}<slot name="control"><input class="selected-value" part="selected-value" placeholder="${x => x.placeholder}" role="${x => x.role}" type="text" aria-activedescendant="${x => x.open ? x.ariaActiveDescendant : null}" aria-controls="${x => x.listboxId}" aria-expanded="${x => x.ariaExpanded}" aria-haspopup="listbox" ?disabled="${x => x.disabled}" :value="${x => x.value}" @input="${(x, c) => x.inputHandler(c.event)}" @keydown="${(x, c) => x.keydownHandler(c.event)}" @keyup="${(x, c) => x.keyupHandler(c.event)}" ${ref("control")} /><div class="indicator" part="indicator" aria-hidden="true"><slot name="indicator">${definition.indicator || ""}</slot></div></slot>${endSlotTemplate(context, definition)}</div><div aria-disabled="${x => x.disabled}" class="listbox" id="${x => x.listboxId}" part="listbox" role="listbox" ?disabled="${x => x.disabled}" ?hidden="${x => !x.open}" ${ref("listbox")}><slot ${slotted({
|
|
11618
|
-
filter: Listbox.slottedOptionFilter,
|
|
11722
|
+
filter: Listbox$1.slottedOptionFilter,
|
|
11619
11723
|
flatten: true,
|
|
11620
11724
|
property: "slottedOptions"
|
|
11621
11725
|
})}></slot></div></template>`;
|
|
@@ -13854,13 +13958,59 @@ __decorate$1([attr], Flipper.prototype, "direction", void 0);
|
|
|
13854
13958
|
|
|
13855
13959
|
const listboxOptionTemplate = (context, definition) => html`<template aria-selected="${x => x.selected}" class="${x => x.selected ? "selected" : ""} ${x => x.disabled ? "disabled" : ""}" role="option">${startSlotTemplate(context, definition)}<span class="content" part="content"><slot></slot></span>${endSlotTemplate(context, definition)}</template>`;
|
|
13856
13960
|
|
|
13961
|
+
/**
|
|
13962
|
+
* A Listbox Custom HTML Element.
|
|
13963
|
+
* Implements the {@link https://w3c.github.io/aria/#listbox | ARIA listbox }.
|
|
13964
|
+
*
|
|
13965
|
+
* @public
|
|
13966
|
+
*/
|
|
13967
|
+
|
|
13968
|
+
class ListboxElement extends Listbox$1 {
|
|
13969
|
+
/**
|
|
13970
|
+
* Prevents `focusin` events from firing before `click` events when the
|
|
13971
|
+
* element is unfocused.
|
|
13972
|
+
*
|
|
13973
|
+
* @override
|
|
13974
|
+
* @internal
|
|
13975
|
+
*/
|
|
13976
|
+
mousedownHandler(e) {
|
|
13977
|
+
if (e.offsetX >= 0 && e.offsetX <= this.scrollWidth) {
|
|
13978
|
+
return super.mousedownHandler(e);
|
|
13979
|
+
}
|
|
13980
|
+
}
|
|
13981
|
+
/**
|
|
13982
|
+
* Ensures the size is a positive integer when the property is updated.
|
|
13983
|
+
*
|
|
13984
|
+
* @param prev - the previous size value
|
|
13985
|
+
* @param next - the current size value
|
|
13986
|
+
*
|
|
13987
|
+
* @internal
|
|
13988
|
+
*/
|
|
13989
|
+
|
|
13990
|
+
|
|
13991
|
+
sizeChanged(prev, next) {
|
|
13992
|
+
const size = Math.max(0, parseInt(next.toFixed(), 10));
|
|
13993
|
+
|
|
13994
|
+
if (size !== next) {
|
|
13995
|
+
DOM.queueUpdate(() => {
|
|
13996
|
+
this.size = size;
|
|
13997
|
+
});
|
|
13998
|
+
}
|
|
13999
|
+
}
|
|
14000
|
+
|
|
14001
|
+
}
|
|
14002
|
+
|
|
14003
|
+
__decorate$1([attr({
|
|
14004
|
+
converter: nullableNumberConverter
|
|
14005
|
+
})], ListboxElement.prototype, "size", void 0);
|
|
14006
|
+
|
|
13857
14007
|
/**
|
|
13858
14008
|
* The template for the {@link @microsoft/fast-foundation#(Listbox:class)} component.
|
|
13859
14009
|
* @public
|
|
13860
14010
|
*/
|
|
13861
14011
|
|
|
13862
14012
|
const listboxTemplate = (context, definition) => html`<template aria-activedescendant="${x => x.ariaActiveDescendant}" class="listbox" role="${x => x.role}" tabindex="${x => !x.disabled ? "0" : null}" @click="${(x, c) => x.clickHandler(c.event)}" @focusin="${(x, c) => x.focusinHandler(c.event)}" @keydown="${(x, c) => x.keydownHandler(c.event)}" @mousedown="${(x, c) => x.mousedownHandler(c.event)}"><slot ${slotted({
|
|
13863
|
-
filter:
|
|
14013
|
+
filter: ListboxElement.slottedOptionFilter,
|
|
13864
14014
|
flatten: true,
|
|
13865
14015
|
property: "slottedOptions"
|
|
13866
14016
|
})}></slot></template>`;
|
|
@@ -14044,7 +14194,6 @@ class MenuItem extends FoundationElement {
|
|
|
14044
14194
|
switch (this.role) {
|
|
14045
14195
|
case MenuItemRole.menuitemcheckbox:
|
|
14046
14196
|
this.checked = !this.checked;
|
|
14047
|
-
this.$emit("change");
|
|
14048
14197
|
break;
|
|
14049
14198
|
|
|
14050
14199
|
case MenuItemRole.menuitem:
|
|
@@ -14781,62 +14930,108 @@ class NumberField$1 extends FormAssociatedNumberField {
|
|
|
14781
14930
|
*/
|
|
14782
14931
|
|
|
14783
14932
|
this.step = 1;
|
|
14933
|
+
/**
|
|
14934
|
+
* Flag to indicate that the value change is from the user input
|
|
14935
|
+
* @internal
|
|
14936
|
+
*/
|
|
14937
|
+
|
|
14938
|
+
this.isUserInput = false;
|
|
14784
14939
|
}
|
|
14940
|
+
/**
|
|
14941
|
+
* Ensures that the max is greater than the min and that the value
|
|
14942
|
+
* is less than the max
|
|
14943
|
+
* @param previous - the previous max value
|
|
14944
|
+
* @param next - updated max value
|
|
14945
|
+
*
|
|
14946
|
+
* @internal
|
|
14947
|
+
*/
|
|
14785
14948
|
|
|
14786
|
-
|
|
14949
|
+
|
|
14950
|
+
maxChanged(previous, next) {
|
|
14787
14951
|
var _a;
|
|
14788
14952
|
|
|
14789
|
-
this.max = Math.max(
|
|
14953
|
+
this.max = Math.max(next, (_a = this.min) !== null && _a !== void 0 ? _a : next);
|
|
14790
14954
|
const min = Math.min(this.min, this.max);
|
|
14791
14955
|
|
|
14792
14956
|
if (this.min !== undefined && this.min !== min) {
|
|
14793
14957
|
this.min = min;
|
|
14794
14958
|
}
|
|
14795
14959
|
|
|
14796
|
-
this.
|
|
14960
|
+
this.value = this.getValidValue(this.value);
|
|
14797
14961
|
}
|
|
14962
|
+
/**
|
|
14963
|
+
* Ensures that the min is less than the max and that the value
|
|
14964
|
+
* is greater than the min
|
|
14965
|
+
* @param previous - previous min value
|
|
14966
|
+
* @param next - updated min value
|
|
14967
|
+
*
|
|
14968
|
+
* @internal
|
|
14969
|
+
*/
|
|
14970
|
+
|
|
14798
14971
|
|
|
14799
|
-
minChanged(
|
|
14972
|
+
minChanged(previous, next) {
|
|
14800
14973
|
var _a;
|
|
14801
14974
|
|
|
14802
|
-
this.min = Math.min(
|
|
14975
|
+
this.min = Math.min(next, (_a = this.max) !== null && _a !== void 0 ? _a : next);
|
|
14803
14976
|
const max = Math.max(this.min, this.max);
|
|
14804
14977
|
|
|
14805
14978
|
if (this.max !== undefined && this.max !== max) {
|
|
14806
14979
|
this.max = max;
|
|
14807
14980
|
}
|
|
14808
14981
|
|
|
14809
|
-
this.
|
|
14982
|
+
this.value = this.getValidValue(this.value);
|
|
14810
14983
|
}
|
|
14811
14984
|
/**
|
|
14812
|
-
*
|
|
14813
|
-
* @param
|
|
14814
|
-
* @param
|
|
14985
|
+
* Validates that the value is a number between the min and max
|
|
14986
|
+
* @param previous - previous stored value
|
|
14987
|
+
* @param next - value being updated
|
|
14988
|
+
* @param updateControl - should the text field be updated with value, defaults to true
|
|
14989
|
+
* @internal
|
|
14815
14990
|
*/
|
|
14816
14991
|
|
|
14817
14992
|
|
|
14818
|
-
valueChanged(
|
|
14819
|
-
|
|
14820
|
-
|
|
14821
|
-
let value = parseFloat(nextValue);
|
|
14993
|
+
valueChanged(previous, next) {
|
|
14994
|
+
this.value = this.getValidValue(next);
|
|
14822
14995
|
|
|
14823
|
-
if (
|
|
14824
|
-
|
|
14825
|
-
} else {
|
|
14826
|
-
value = Math.min(value, (_a = this.max) !== null && _a !== void 0 ? _a : value);
|
|
14827
|
-
value = Math.max(value, (_b = this.min) !== null && _b !== void 0 ? _b : value);
|
|
14996
|
+
if (next !== this.value) {
|
|
14997
|
+
return;
|
|
14828
14998
|
}
|
|
14829
14999
|
|
|
14830
|
-
this.
|
|
14831
|
-
|
|
14832
|
-
if (this.proxy instanceof HTMLInputElement) {
|
|
14833
|
-
this.proxy.value = this.value;
|
|
15000
|
+
if (this.control && !this.isUserInput) {
|
|
15001
|
+
this.control.value = this.value;
|
|
14834
15002
|
}
|
|
14835
15003
|
|
|
14836
|
-
|
|
15004
|
+
super.valueChanged(previous, this.value);
|
|
15005
|
+
|
|
15006
|
+
if (previous !== undefined && !this.isUserInput) {
|
|
14837
15007
|
this.$emit("input");
|
|
14838
15008
|
this.$emit("change");
|
|
14839
15009
|
}
|
|
15010
|
+
|
|
15011
|
+
this.isUserInput = false;
|
|
15012
|
+
}
|
|
15013
|
+
/**
|
|
15014
|
+
* Sets the internal value to a valid number between the min and max properties
|
|
15015
|
+
* @param value - user input
|
|
15016
|
+
* @param updateControl - should the text field update to the valid value
|
|
15017
|
+
*
|
|
15018
|
+
* @internal
|
|
15019
|
+
*/
|
|
15020
|
+
|
|
15021
|
+
|
|
15022
|
+
getValidValue(value) {
|
|
15023
|
+
var _a, _b;
|
|
15024
|
+
|
|
15025
|
+
let validValue = parseFloat(parseFloat(value).toPrecision(12));
|
|
15026
|
+
|
|
15027
|
+
if (isNaN(validValue)) {
|
|
15028
|
+
validValue = "";
|
|
15029
|
+
} else {
|
|
15030
|
+
validValue = Math.min(validValue, (_a = this.max) !== null && _a !== void 0 ? _a : validValue);
|
|
15031
|
+
validValue = Math.max(validValue, (_b = this.min) !== null && _b !== void 0 ? _b : validValue).toString();
|
|
15032
|
+
}
|
|
15033
|
+
|
|
15034
|
+
return validValue;
|
|
14840
15035
|
}
|
|
14841
15036
|
/**
|
|
14842
15037
|
* Increments the value using the step value
|
|
@@ -14849,7 +15044,6 @@ class NumberField$1 extends FormAssociatedNumberField {
|
|
|
14849
15044
|
const value = parseFloat(this.value);
|
|
14850
15045
|
const stepUpValue = !isNaN(value) ? value + this.step : this.min > 0 ? this.min : this.max < 0 ? this.max : !this.min ? this.step : 0;
|
|
14851
15046
|
this.value = stepUpValue.toString();
|
|
14852
|
-
this.control.value = this.value;
|
|
14853
15047
|
}
|
|
14854
15048
|
/**
|
|
14855
15049
|
* Decrements the value using the step value
|
|
@@ -14862,9 +15056,9 @@ class NumberField$1 extends FormAssociatedNumberField {
|
|
|
14862
15056
|
const value = parseFloat(this.value);
|
|
14863
15057
|
const stepDownValue = !isNaN(value) ? value - this.step : this.min > 0 ? this.min : this.max < 0 ? this.max : !this.min ? 0 - this.step : 0;
|
|
14864
15058
|
this.value = stepDownValue.toString();
|
|
14865
|
-
this.control.value = this.value;
|
|
14866
15059
|
}
|
|
14867
15060
|
/**
|
|
15061
|
+
* Sets up the initial state of the number field
|
|
14868
15062
|
* @internal
|
|
14869
15063
|
*/
|
|
14870
15064
|
|
|
@@ -14889,6 +15083,7 @@ class NumberField$1 extends FormAssociatedNumberField {
|
|
|
14889
15083
|
|
|
14890
15084
|
handleTextInput() {
|
|
14891
15085
|
this.control.value = this.control.value.replace(/[^0-9\-+e.]/g, "");
|
|
15086
|
+
this.isUserInput = true;
|
|
14892
15087
|
this.value = this.control.value;
|
|
14893
15088
|
}
|
|
14894
15089
|
/**
|
|
@@ -15758,7 +15953,7 @@ class HorizontalScroll$1 extends FoundationElement {
|
|
|
15758
15953
|
|
|
15759
15954
|
scrollItemsChanged(previous, next) {
|
|
15760
15955
|
if (next && !this.updatingItems) {
|
|
15761
|
-
this.setStops();
|
|
15956
|
+
DOM.queueUpdate(() => this.setStops());
|
|
15762
15957
|
}
|
|
15763
15958
|
}
|
|
15764
15959
|
/**
|
|
@@ -16043,7 +16238,184 @@ const horizontalScrollTemplate = (context, definition) => {
|
|
|
16043
16238
|
})}></slot></div></div>${when(x => x.view !== "mobile", html`<div class="scroll scroll-prev" part="scroll-prev" ${ref("previousFlipperContainer")}><div class="scroll-action" part="scroll-action-previous"><slot name="previous-flipper">${definition.previousFlipper instanceof Function ? definition.previousFlipper(context, definition) : (_a = definition.previousFlipper) !== null && _a !== void 0 ? _a : ""}</slot></div></div><div class="scroll scroll-next" part="scroll-next" ${ref("nextFlipperContainer")}><div class="scroll-action" part="scroll-action-next"><slot name="next-flipper">${definition.nextFlipper instanceof Function ? definition.nextFlipper(context, definition) : (_b = definition.nextFlipper) !== null && _b !== void 0 ? _b : ""}</slot></div></div>`)}</div>${endSlotTemplate(context, definition)}</template>`;
|
|
16044
16239
|
};
|
|
16045
16240
|
|
|
16046
|
-
class
|
|
16241
|
+
class _Search extends FoundationElement {}
|
|
16242
|
+
/**
|
|
16243
|
+
* A form-associated base class for the {@link @microsoft/fast-foundation#(Search:class)} component.
|
|
16244
|
+
*
|
|
16245
|
+
* @internal
|
|
16246
|
+
*/
|
|
16247
|
+
|
|
16248
|
+
|
|
16249
|
+
class FormAssociatedSearch extends FormAssociated(_Search) {
|
|
16250
|
+
constructor() {
|
|
16251
|
+
super(...arguments);
|
|
16252
|
+
this.proxy = document.createElement("input");
|
|
16253
|
+
}
|
|
16254
|
+
|
|
16255
|
+
}
|
|
16256
|
+
|
|
16257
|
+
/**
|
|
16258
|
+
* A Search Custom HTML Element.
|
|
16259
|
+
* Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search | <input type="search" /> element }.
|
|
16260
|
+
*
|
|
16261
|
+
* @public
|
|
16262
|
+
*/
|
|
16263
|
+
|
|
16264
|
+
class Search$1 extends FormAssociatedSearch {
|
|
16265
|
+
readOnlyChanged() {
|
|
16266
|
+
if (this.proxy instanceof HTMLInputElement) {
|
|
16267
|
+
this.proxy.readOnly = this.readOnly;
|
|
16268
|
+
this.validate();
|
|
16269
|
+
}
|
|
16270
|
+
}
|
|
16271
|
+
|
|
16272
|
+
autofocusChanged() {
|
|
16273
|
+
if (this.proxy instanceof HTMLInputElement) {
|
|
16274
|
+
this.proxy.autofocus = this.autofocus;
|
|
16275
|
+
this.validate();
|
|
16276
|
+
}
|
|
16277
|
+
}
|
|
16278
|
+
|
|
16279
|
+
placeholderChanged() {
|
|
16280
|
+
if (this.proxy instanceof HTMLInputElement) {
|
|
16281
|
+
this.proxy.placeholder = this.placeholder;
|
|
16282
|
+
}
|
|
16283
|
+
}
|
|
16284
|
+
|
|
16285
|
+
listChanged() {
|
|
16286
|
+
if (this.proxy instanceof HTMLInputElement) {
|
|
16287
|
+
this.proxy.setAttribute("list", this.list);
|
|
16288
|
+
this.validate();
|
|
16289
|
+
}
|
|
16290
|
+
}
|
|
16291
|
+
|
|
16292
|
+
maxlengthChanged() {
|
|
16293
|
+
if (this.proxy instanceof HTMLInputElement) {
|
|
16294
|
+
this.proxy.maxLength = this.maxlength;
|
|
16295
|
+
this.validate();
|
|
16296
|
+
}
|
|
16297
|
+
}
|
|
16298
|
+
|
|
16299
|
+
minlengthChanged() {
|
|
16300
|
+
if (this.proxy instanceof HTMLInputElement) {
|
|
16301
|
+
this.proxy.minLength = this.minlength;
|
|
16302
|
+
this.validate();
|
|
16303
|
+
}
|
|
16304
|
+
}
|
|
16305
|
+
|
|
16306
|
+
patternChanged() {
|
|
16307
|
+
if (this.proxy instanceof HTMLInputElement) {
|
|
16308
|
+
this.proxy.pattern = this.pattern;
|
|
16309
|
+
this.validate();
|
|
16310
|
+
}
|
|
16311
|
+
}
|
|
16312
|
+
|
|
16313
|
+
sizeChanged() {
|
|
16314
|
+
if (this.proxy instanceof HTMLInputElement) {
|
|
16315
|
+
this.proxy.size = this.size;
|
|
16316
|
+
}
|
|
16317
|
+
}
|
|
16318
|
+
|
|
16319
|
+
spellcheckChanged() {
|
|
16320
|
+
if (this.proxy instanceof HTMLInputElement) {
|
|
16321
|
+
this.proxy.spellcheck = this.spellcheck;
|
|
16322
|
+
}
|
|
16323
|
+
}
|
|
16324
|
+
/**
|
|
16325
|
+
* @internal
|
|
16326
|
+
*/
|
|
16327
|
+
|
|
16328
|
+
|
|
16329
|
+
connectedCallback() {
|
|
16330
|
+
super.connectedCallback();
|
|
16331
|
+
this.validate();
|
|
16332
|
+
|
|
16333
|
+
if (this.autofocus) {
|
|
16334
|
+
DOM.queueUpdate(() => {
|
|
16335
|
+
this.focus();
|
|
16336
|
+
});
|
|
16337
|
+
}
|
|
16338
|
+
}
|
|
16339
|
+
/**
|
|
16340
|
+
* Handles the internal control's `input` event
|
|
16341
|
+
* @internal
|
|
16342
|
+
*/
|
|
16343
|
+
|
|
16344
|
+
|
|
16345
|
+
handleTextInput() {
|
|
16346
|
+
this.value = this.control.value;
|
|
16347
|
+
}
|
|
16348
|
+
/**
|
|
16349
|
+
* Handles the control's clear value event
|
|
16350
|
+
* @public
|
|
16351
|
+
*/
|
|
16352
|
+
|
|
16353
|
+
|
|
16354
|
+
handleClearInput() {
|
|
16355
|
+
this.value = "";
|
|
16356
|
+
this.control.focus();
|
|
16357
|
+
}
|
|
16358
|
+
/**
|
|
16359
|
+
* Change event handler for inner control.
|
|
16360
|
+
* @remarks
|
|
16361
|
+
* "Change" events are not `composable` so they will not
|
|
16362
|
+
* permeate the shadow DOM boundary. This fn effectively proxies
|
|
16363
|
+
* the change event, emitting a `change` event whenever the internal
|
|
16364
|
+
* control emits a `change` event
|
|
16365
|
+
* @internal
|
|
16366
|
+
*/
|
|
16367
|
+
|
|
16368
|
+
|
|
16369
|
+
handleChange() {
|
|
16370
|
+
this.$emit("change");
|
|
16371
|
+
}
|
|
16372
|
+
|
|
16373
|
+
}
|
|
16374
|
+
|
|
16375
|
+
__decorate$1([attr({
|
|
16376
|
+
attribute: "readonly",
|
|
16377
|
+
mode: "boolean"
|
|
16378
|
+
})], Search$1.prototype, "readOnly", void 0);
|
|
16379
|
+
|
|
16380
|
+
__decorate$1([attr({
|
|
16381
|
+
mode: "boolean"
|
|
16382
|
+
})], Search$1.prototype, "autofocus", void 0);
|
|
16383
|
+
|
|
16384
|
+
__decorate$1([attr], Search$1.prototype, "placeholder", void 0);
|
|
16385
|
+
|
|
16386
|
+
__decorate$1([attr], Search$1.prototype, "list", void 0);
|
|
16387
|
+
|
|
16388
|
+
__decorate$1([attr({
|
|
16389
|
+
converter: nullableNumberConverter
|
|
16390
|
+
})], Search$1.prototype, "maxlength", void 0);
|
|
16391
|
+
|
|
16392
|
+
__decorate$1([attr({
|
|
16393
|
+
converter: nullableNumberConverter
|
|
16394
|
+
})], Search$1.prototype, "minlength", void 0);
|
|
16395
|
+
|
|
16396
|
+
__decorate$1([attr], Search$1.prototype, "pattern", void 0);
|
|
16397
|
+
|
|
16398
|
+
__decorate$1([attr({
|
|
16399
|
+
converter: nullableNumberConverter
|
|
16400
|
+
})], Search$1.prototype, "size", void 0);
|
|
16401
|
+
|
|
16402
|
+
__decorate$1([attr({
|
|
16403
|
+
mode: "boolean"
|
|
16404
|
+
})], Search$1.prototype, "spellcheck", void 0);
|
|
16405
|
+
|
|
16406
|
+
__decorate$1([observable], Search$1.prototype, "defaultSlottedNodes", void 0);
|
|
16407
|
+
/**
|
|
16408
|
+
* Includes ARIA states and properties relating to the ARIA textbox role
|
|
16409
|
+
*
|
|
16410
|
+
* @public
|
|
16411
|
+
*/
|
|
16412
|
+
|
|
16413
|
+
|
|
16414
|
+
class DelegatesARIASearch {}
|
|
16415
|
+
applyMixins(DelegatesARIASearch, ARIAGlobalStatesAndProperties);
|
|
16416
|
+
applyMixins(Search$1, StartEnd, DelegatesARIASearch);
|
|
16417
|
+
|
|
16418
|
+
class _Select extends Listbox$1 {}
|
|
16047
16419
|
/**
|
|
16048
16420
|
* A form-associated base class for the {@link @microsoft/fast-foundation#(Select:class)} component.
|
|
16049
16421
|
*
|
|
@@ -16352,7 +16724,7 @@ class Select$1 extends FormAssociatedSelect {
|
|
|
16352
16724
|
switch (key) {
|
|
16353
16725
|
case " ":
|
|
16354
16726
|
{
|
|
16355
|
-
if (this.
|
|
16727
|
+
if (this.typeaheadExpired) {
|
|
16356
16728
|
e.preventDefault();
|
|
16357
16729
|
this.open = !this.open;
|
|
16358
16730
|
}
|
|
@@ -16442,7 +16814,7 @@ applyMixins(Select$1, StartEnd, DelegatesARIASelect);
|
|
|
16442
16814
|
*/
|
|
16443
16815
|
|
|
16444
16816
|
const selectTemplate = (context, definition) => html`<template class="${x => x.open ? "open" : ""} ${x => x.disabled ? "disabled" : ""} ${x => x.position}" role="${x => x.role}" tabindex="${x => !x.disabled ? "0" : null}" aria-disabled="${x => x.ariaDisabled}" aria-expanded="${x => x.ariaExpanded}" @click="${(x, c) => x.clickHandler(c.event)}" @focusout="${(x, c) => x.focusoutHandler(c.event)}" @keydown="${(x, c) => x.keydownHandler(c.event)}"><div aria-activedescendant="${x => x.open ? x.ariaActiveDescendant : null}" aria-controls="listbox" aria-expanded="${x => x.ariaExpanded}" aria-haspopup="listbox" class="control" part="control" role="button" ?disabled="${x => x.disabled}">${startSlotTemplate(context, definition)}<slot name="button-container"><div class="selected-value" part="selected-value"><slot name="selected-value">${x => x.displayValue}</slot></div><div class="indicator" part="indicator"><slot name="indicator">${definition.indicator || ""}</slot></div></slot>${endSlotTemplate(context, definition)}</div><div aria-disabled="${x => x.disabled}" class="listbox" id="listbox" part="listbox" role="listbox" ?disabled="${x => x.disabled}" ?hidden="${x => !x.open}" ${ref("listbox")}><slot ${slotted({
|
|
16445
|
-
filter: Listbox.slottedOptionFilter,
|
|
16817
|
+
filter: Listbox$1.slottedOptionFilter,
|
|
16446
16818
|
flatten: true,
|
|
16447
16819
|
property: "slottedOptions"
|
|
16448
16820
|
})}></slot></div></template>`;
|
|
@@ -16571,7 +16943,7 @@ class SliderLabel extends FoundationElement {
|
|
|
16571
16943
|
let rightNum = Math.round((1 - pct) * 100);
|
|
16572
16944
|
let leftNum = Math.round(pct * 100);
|
|
16573
16945
|
|
|
16574
|
-
if (
|
|
16946
|
+
if (Number.isNaN(leftNum) && Number.isNaN(rightNum)) {
|
|
16575
16947
|
rightNum = 50;
|
|
16576
16948
|
leftNum = 50;
|
|
16577
16949
|
}
|
|
@@ -18754,7 +19126,15 @@ class TreeItem extends FoundationElement {
|
|
|
18754
19126
|
}
|
|
18755
19127
|
|
|
18756
19128
|
handleSelected(e) {
|
|
18757
|
-
|
|
19129
|
+
if (e === null || e === void 0 ? void 0 : e.defaultPrevented) {
|
|
19130
|
+
return;
|
|
19131
|
+
}
|
|
19132
|
+
|
|
19133
|
+
e === null || e === void 0 ? void 0 : e.preventDefault();
|
|
19134
|
+
|
|
19135
|
+
if (!this.disabled) {
|
|
19136
|
+
this.$emit("selected-change", e);
|
|
19137
|
+
}
|
|
18758
19138
|
}
|
|
18759
19139
|
|
|
18760
19140
|
setExpanded(expanded) {
|
|
@@ -21544,7 +21924,7 @@ const neutralFillStealthActiveOnNeutralFillLayerRest = DesignToken.create('neutr
|
|
|
21544
21924
|
return buttonRecipe.evaluate(target, baseRecipe.evaluate(target).rest).active;
|
|
21545
21925
|
});
|
|
21546
21926
|
const accordionItemStyles$1 = (context, definition) => css`
|
|
21547
|
-
${display('flex')} :host{box-sizing:border-box;font-family:${bodyFont};flex-direction:column;font-size:${typeRampBaseFontSize};line-height:${typeRampBaseLineHeight};background:${neutralFillLayerRest};color:${neutralForegroundRest};border:calc(${strokeWidth} * 1px) solid ${neutralStrokeLayerRest};border-radius:calc(${layerCornerRadius} * 1px)}.region{display:none;padding:calc(${designUnit} * 2 * 1px);background:${neutralFillLayerAltRest}}.heading{display:grid;position:relative;grid-template-columns:auto 1fr auto auto;align-items:center
|
|
21927
|
+
${display('flex')} :host{box-sizing:border-box;font-family:${bodyFont};flex-direction:column;font-size:${typeRampBaseFontSize};line-height:${typeRampBaseLineHeight};background:${neutralFillLayerRest};color:${neutralForegroundRest};border:calc(${strokeWidth} * 1px) solid ${neutralStrokeLayerRest};border-radius:calc(${layerCornerRadius} * 1px)}.region{display:none;padding:calc(${designUnit} * 2 * 1px);background:${neutralFillLayerAltRest}}.heading{display:grid;position:relative;grid-template-columns:auto 1fr auto auto;align-items:center}.button{appearance:none;border:none;background:none;grid-column:2;grid-row:1;outline:none;margin:calc(${designUnit} * 3 * 1px) 0;padding:0 calc(${designUnit} * 2 * 1px);text-align:left;color:inherit;cursor:pointer;font-family:inherit}.button::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;cursor:pointer}.button:${focusVisible}::before{outline:none;border:calc(${strokeWidth} * 1px) solid ${focusStrokeOuter};border-radius:calc(${layerCornerRadius} * 1px);box-shadow:0 0 0 calc((${focusStrokeWidth} - ${strokeWidth}) * 1px) ${focusStrokeOuter}}:host(.expanded) .button:${focusVisible}::before{border-bottom-left-radius:0;border-bottom-right-radius:0}:host(.expanded) .region{display:block;border-top:calc(${strokeWidth} * 1px) solid ${neutralStrokeLayerRest};border-bottom-left-radius:calc((${layerCornerRadius} - ${strokeWidth}) * 1px);border-bottom-right-radius:calc((${layerCornerRadius} - ${strokeWidth}) * 1px)}.icon{display:flex;align-items:center;justify-content:center;grid-column:4;pointer-events:none;background:${neutralFillStealthRestOnNeutralFillLayerRest};border-radius:calc(${controlCornerRadius} * 1px);fill:currentcolor;width:calc(${heightNumber} * 1px);height:calc(${heightNumber} * 1px);margin:calc(${designUnit} * 2 * 1px)}.heading:hover .icon{background:${neutralFillStealthHoverOnNeutralFillLayerRest}}.heading:active .icon{background:${neutralFillStealthActiveOnNeutralFillLayerRest}}slot[name='collapsed-icon']{display:flex}:host(.expanded) slot[name='collapsed-icon']{display:none}slot[name='expanded-icon']{display:none}:host(.expanded) slot[name='expanded-icon']{display:flex}.start{display:flex;align-items:center;padding-inline-start:calc(${designUnit} * 2 * 1px);justify-content:center;grid-column:1}.end{display:flex;align-items:center;justify-content:center;grid-column:3}.icon,.start,.end{position:relative}`.withBehaviors(forcedColorsStylesheetBehavior(css`
|
|
21548
21928
|
.button:${focusVisible}::before{border-color:${SystemColors.Highlight};box-shadow:0 0 0 calc((${focusStrokeWidth} - ${strokeWidth}) * 1px) ${SystemColors.Highlight}}.icon{fill:${SystemColors.ButtonText}}`));
|
|
21549
21929
|
|
|
21550
21930
|
/**
|
|
@@ -22999,7 +23379,7 @@ const fluentDivider = Divider.compose({
|
|
|
22999
23379
|
const dividerStyles = dividerStyles$1;
|
|
23000
23380
|
|
|
23001
23381
|
const flipperStyles$1 = (context, definition) => css`
|
|
23002
|
-
${display('inline-flex')} :host{height:calc((${heightNumber} + ${designUnit}) * 1px);justify-content:center;align-items:center;fill:currentcolor;color:${neutralFillStrongRest};background:padding-box linear-gradient(${neutralFillRest},${neutralFillRest}),border-box ${neutralStrokeControlRest};box-sizing:border-box;border:calc(${focusStrokeWidth} * 1px) solid transparent;border-radius:calc(${controlCornerRadius} * 1px);outline:none;padding:0}:host(.disabled){opacity:${disabledOpacity};cursor:${disabledCursor}}.next,.previous{display:flex}:host(:not(.disabled):hover){cursor:pointer}:host(:not(.disabled):hover){color:${neutralFillStrongHover}}:host(:not(.disabled):active){color:${neutralFillStrongActive}}:host(:${focusVisible}){border-color:${focusStrokeOuter}}:host::-moz-focus-inner{border:0}`.withBehaviors(forcedColorsStylesheetBehavior(css`
|
|
23382
|
+
${display('inline-flex')} :host{height:calc((${heightNumber} + ${designUnit}) * 1px);justify-content:center;align-items:center;fill:currentcolor;color:${neutralFillStrongRest};background:padding-box linear-gradient(${neutralFillRest},${neutralFillRest}),border-box ${neutralStrokeControlRest};box-sizing:border-box;border:calc(${focusStrokeWidth} * 1px) solid transparent;border-radius:calc(${controlCornerRadius} * 1px);outline:none;padding:0}:host(.disabled){opacity:${disabledOpacity};cursor:${disabledCursor};pointer-events:none}.next,.previous{display:flex}:host(:not(.disabled):hover){cursor:pointer}:host(:not(.disabled):hover){color:${neutralFillStrongHover}}:host(:not(.disabled):active){color:${neutralFillStrongActive}}:host(:${focusVisible}){border-color:${focusStrokeOuter}}:host::-moz-focus-inner{border:0}`.withBehaviors(forcedColorsStylesheetBehavior(css`
|
|
23003
23383
|
:host{background:${SystemColors.ButtonFace};border-color:${SystemColors.ButtonText}}:host .next,:host .previous{color:${SystemColors.ButtonText};fill:currentcolor}:host(:not(.disabled):hover){background:${SystemColors.Highlight}}:host(:not(.disabled):hover) .next,:host(:not(.disabled):hover) .previous{color:${SystemColors.HighlightText};fill:currentcolor}:host(.disabled){opacity:1}:host(.disabled),:host(.disabled) .next,:host(.disabled) .previous{border-color:${SystemColors.GrayText};color:${SystemColors.GrayText};fill:currentcolor}:host(:${focusVisible}){forced-color-adjust:none;border-color:${SystemColors.Highlight};box-shadow:0 0 0 2px ${SystemColors.ButtonFace},0 0 0 4px ${SystemColors.ButtonText}}`));
|
|
23004
23384
|
|
|
23005
23385
|
/**
|
|
@@ -23098,6 +23478,7 @@ const horizontalScrollStyles = horizontalScrollStyles$1;
|
|
|
23098
23478
|
const listboxStyles$1 = (context, definition) => css`
|
|
23099
23479
|
${display('inline-flex')} :host{border:calc(${strokeWidth} * 1px) solid ${neutralStrokeRest};border-radius:calc(${controlCornerRadius} * 1px);box-sizing:border-box;flex-direction:column;padding:calc(${designUnit} * 1px) 0;outline:none}::slotted(${context.tagFor(ListboxOption)}){margin:0 calc(${designUnit} * 1px)}:host(:focus-within:not([disabled])){border-color:${focusStrokeOuter};box-shadow:0 0 0 1px ${focusStrokeOuter} inset}`;
|
|
23100
23480
|
|
|
23481
|
+
class Listbox extends Listbox$1 {}
|
|
23101
23482
|
/**
|
|
23102
23483
|
* The Fluent listbox Custom Element. Implements, {@link @microsoft/fast-foundation#Listbox}
|
|
23103
23484
|
* {@link @microsoft/fast-foundation#listboxTemplate}
|
|
@@ -23459,6 +23840,90 @@ const fluentRadioGroup = RadioGroup.compose({
|
|
|
23459
23840
|
|
|
23460
23841
|
const radioGroupStyles = radioGroupStyles$1;
|
|
23461
23842
|
|
|
23843
|
+
/**
|
|
23844
|
+
* @public
|
|
23845
|
+
*/
|
|
23846
|
+
|
|
23847
|
+
const searchTemplate = (context, definition) => html`<template class=" ${x => x.readOnly ? 'readonly' : ''} "><label part="label" for="control" class="${x => x.defaultSlottedNodes && x.defaultSlottedNodes.length ? 'label' : 'label label__hidden'}"><slot ${slotted({
|
|
23848
|
+
property: 'defaultSlottedNodes',
|
|
23849
|
+
filter: whitespaceFilter
|
|
23850
|
+
})}></slot></label><div class="root" part="root" ${ref('root')}>${startSlotTemplate(context, definition)}<div class="input-wrapper" part="input-wrapper"><input class="control" part="control" id="control" @input="${x => x.handleTextInput()}" @change="${x => x.handleChange()}" ?autofocus="${x => x.autofocus}" ?disabled="${x => x.disabled}" list="${x => x.list}" maxlength="${x => x.maxlength}" minlength="${x => x.minlength}" pattern="${x => x.pattern}" placeholder="${x => x.placeholder}" ?readonly="${x => x.readOnly}" ?required="${x => x.required}" size="${x => x.size}" ?spellcheck="${x => x.spellcheck}" :value="${x => x.value}" type="search" aria-atomic="${x => x.ariaAtomic}" aria-busy="${x => x.ariaBusy}" aria-controls="${x => x.ariaControls}" aria-current="${x => x.ariaCurrent}" aria-describedby="${x => x.ariaDescribedby}" aria-details="${x => x.ariaDetails}" aria-disabled="${x => x.ariaDisabled}" aria-errormessage="${x => x.ariaErrormessage}" aria-flowto="${x => x.ariaFlowto}" aria-haspopup="${x => x.ariaHaspopup}" aria-hidden="${x => x.ariaHidden}" aria-invalid="${x => x.ariaInvalid}" aria-keyshortcuts="${x => x.ariaKeyshortcuts}" aria-label="${x => x.ariaLabel}" aria-labelledby="${x => x.ariaLabelledby}" aria-live="${x => x.ariaLive}" aria-owns="${x => x.ariaOwns}" aria-relevant="${x => x.ariaRelevant}" aria-roledescription="${x => x.ariaRoledescription}" ${ref('control')} /><slot name="clear-button"><button class="clear-button ${x => x.value ? '' : 'clear-button__hidden'}" part="clear-button" tabindex="-1" @click=${x => x.handleClearInput()}><slot name="clear-glyph"><svg width="12" height="12" viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg"><path d="m2.09 2.22.06-.07a.5.5 0 0 1 .63-.06l.07.06L6 5.29l3.15-3.14a.5.5 0 1 1 .7.7L6.71 6l3.14 3.15c.18.17.2.44.06.63l-.06.07a.5.5 0 0 1-.63.06l-.07-.06L6 6.71 2.85 9.85a.5.5 0 0 1-.7-.7L5.29 6 2.15 2.85a.5.5 0 0 1-.06-.63l.06-.07-.06.07Z" /></svg></slot></button></slot></div>${endSlotTemplate(context, definition)}</div></template>`;
|
|
23851
|
+
|
|
23852
|
+
const clearButtonHover = DesignToken.create("clear-button-hover").withDefault(target => {
|
|
23853
|
+
const buttonRecipe = neutralFillStealthRecipe.getValueFor(target);
|
|
23854
|
+
const inputRecipe = neutralFillInputRecipe.getValueFor(target);
|
|
23855
|
+
return buttonRecipe.evaluate(target, inputRecipe.evaluate(target).focus).hover;
|
|
23856
|
+
});
|
|
23857
|
+
const clearButtonActive = DesignToken.create("clear-button-active").withDefault(target => {
|
|
23858
|
+
const buttonRecipe = neutralFillStealthRecipe.getValueFor(target);
|
|
23859
|
+
const inputRecipe = neutralFillInputRecipe.getValueFor(target);
|
|
23860
|
+
return buttonRecipe.evaluate(target, inputRecipe.evaluate(target).focus).active;
|
|
23861
|
+
});
|
|
23862
|
+
const searchFilledStyles = (context, definition) => css`
|
|
23863
|
+
${inputFilledStyles(context, definition, '.root')}
|
|
23864
|
+
`.withBehaviors(forcedColorsStylesheetBehavior(css`
|
|
23865
|
+
${inputFilledForcedColorStyles(context, definition, '.root')}
|
|
23866
|
+
`));
|
|
23867
|
+
const searchStyles$1 = (context, definition) => css`
|
|
23868
|
+
${display('inline-block')}
|
|
23869
|
+
${inputStyles(context, definition, '.root')}
|
|
23870
|
+
${inputStateStyles()}
|
|
23871
|
+
.root{display:flex;flex-direction:row}.control{-webkit-appearance:none;color:inherit;background:transparent;border:0;height:calc(100% - 4px);margin-top:auto;margin-bottom:auto;padding:0 calc(${designUnit} * 2px + 1px);font-family:inherit;font-size:inherit;line-height:inherit}.clear-button{display:inline-flex;align-items:center;margin:1px;height:calc(100% - 2px);opacity:0;background:transparent;color:${neutralForegroundRest};fill:currentcolor;border:none;border-radius:calc(${controlCornerRadius} * 1px);min-width:calc(${heightNumber} * 1px);font-size:${typeRampBaseFontSize};line-height:${typeRampBaseLineHeight};outline:none;font-family:${bodyFont};padding:0 calc((10 + (${designUnit} * 2 * ${density})) * 1px)}.clear-button:hover{background:${clearButtonHover}}.clear-button:active{background:${clearButtonActive}}:host(:hover:not([disabled],[readOnly])) .clear-button,:host(:active:not([disabled],[readOnly])) .clear-button,:host(:focus-within:not([disabled],[readOnly])) .clear-button{opacity:1}:host(:hover:not([disabled],[readOnly])) .clear-button__hidden,:host(:active:not([disabled],[readOnly])) .clear-button__hidden,:host(:focus-within:not([disabled],[readOnly])) .clear-button__hidden{opacity:0}.control::-webkit-search-cancel-button{-webkit-appearance:none}.input-wrapper{display:flex;position:relative;width:100%}.start,.end{display:flex;margin:1px;align-items:center}.start{display:flex;margin-inline-start:11px}::slotted([slot="end"]){height:100%}.clear-button__hidden{opacity:0}.end{margin-inline-end:11px}::slotted(${context.tagFor(Button$1)}){margin-inline-end:1px}`.withBehaviors(appearanceBehavior('filled', searchFilledStyles(context, definition)), forcedColorsStylesheetBehavior(css`
|
|
23872
|
+
${inputForcedColorStyles(context, definition, '.root')}
|
|
23873
|
+
`));
|
|
23874
|
+
|
|
23875
|
+
/**
|
|
23876
|
+
* The Fluent search class
|
|
23877
|
+
* @internal
|
|
23878
|
+
*/
|
|
23879
|
+
|
|
23880
|
+
class Search extends Search$1 {
|
|
23881
|
+
constructor() {
|
|
23882
|
+
super(...arguments);
|
|
23883
|
+
/**
|
|
23884
|
+
* The appearance of the element.
|
|
23885
|
+
*
|
|
23886
|
+
* @public
|
|
23887
|
+
* @remarks
|
|
23888
|
+
* HTML Attribute: appearance
|
|
23889
|
+
*/
|
|
23890
|
+
|
|
23891
|
+
this.appearance = 'outline';
|
|
23892
|
+
}
|
|
23893
|
+
|
|
23894
|
+
}
|
|
23895
|
+
|
|
23896
|
+
__decorate([attr], Search.prototype, "appearance", void 0);
|
|
23897
|
+
/**
|
|
23898
|
+
* The Fluent Search Custom Element. Implements {@link @microsoft/fast-foundation#Search},
|
|
23899
|
+
* {@link @microsoft/fast-foundation#searchTemplate}
|
|
23900
|
+
*
|
|
23901
|
+
*
|
|
23902
|
+
* @public
|
|
23903
|
+
* @remarks
|
|
23904
|
+
* HTML Element: \<fluent-search\>
|
|
23905
|
+
*
|
|
23906
|
+
* {@link https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot/delegatesFocus | delegatesFocus}
|
|
23907
|
+
*/
|
|
23908
|
+
|
|
23909
|
+
|
|
23910
|
+
const fluentSearch = Search.compose({
|
|
23911
|
+
baseName: 'search',
|
|
23912
|
+
baseClass: Search$1,
|
|
23913
|
+
template: searchTemplate,
|
|
23914
|
+
styles: searchStyles$1,
|
|
23915
|
+
start: `<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg%22%3E"><path d="M8.5 3a5.5 5.5 0 0 1 4.23 9.02l4.12 4.13a.5.5 0 0 1-.63.76l-.07-.06-4.13-4.12A5.5 5.5 0 1 1 8.5 3Zm0 1a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9Z"/></svg>`,
|
|
23916
|
+
shadowOptions: {
|
|
23917
|
+
delegatesFocus: true
|
|
23918
|
+
}
|
|
23919
|
+
});
|
|
23920
|
+
/**
|
|
23921
|
+
* Styles for Search
|
|
23922
|
+
* @public
|
|
23923
|
+
*/
|
|
23924
|
+
|
|
23925
|
+
const searchStyles = searchStyles$1;
|
|
23926
|
+
|
|
23462
23927
|
/**
|
|
23463
23928
|
* The Fluent select class
|
|
23464
23929
|
* @internal
|
|
@@ -23648,7 +24113,7 @@ const fluentSwitch = Switch.compose({
|
|
|
23648
24113
|
const switchStyles = switchStyles$1;
|
|
23649
24114
|
|
|
23650
24115
|
const tabsStyles$1 = (context, definition) => css`
|
|
23651
|
-
${display('grid')} :host{box-sizing:border-box;font-family:${bodyFont};font-size:${typeRampBaseFontSize};line-height:${typeRampBaseLineHeight};color:${neutralForegroundRest};grid-template-columns:auto 1fr auto;grid-template-rows:auto 1fr}.tablist{display:grid;grid-template-rows:calc(${heightNumber} * 1px);auto;grid-template-columns:auto;position:relative;width:max-content;align-self:end}.start,.end{align-self:center}.activeIndicator{grid-row:2;grid-column:1;width:20px;height:3px;border-radius:calc(${controlCornerRadius} * 1px);justify-self:center;background:${accentFillRest}}.activeIndicatorTransition{transition:transform 0.2s ease-in-out}.tabpanel{grid-row:2;grid-column-start:1;grid-column-end:4;position:relative}:host(.vertical){grid-template-rows:auto 1fr auto;grid-template-columns:auto 1fr}:host(.vertical) .tablist{grid-row-start:2;grid-row-end:2;display:grid;grid-template-rows:auto;grid-template-columns:auto 1fr;position:relative;width:max-content;justify-self:end;width:100%}:host(.vertical) .tabpanel{grid-column:2;grid-row-start:1;grid-row-end:4}:host(.vertical) .end{grid-row:3}:host(.vertical) .activeIndicator{grid-column:1;grid-row:1;width:3px;height:20px;margin-inline-start:calc(${focusStrokeWidth} * 1px);border-radius:calc(${controlCornerRadius} * 1px);align-self:center;background:${accentFillRest}}:host(.vertical) .activeIndicatorTransition{transition:transform 0.2s linear}`.withBehaviors(forcedColorsStylesheetBehavior(css`
|
|
24116
|
+
${display('grid')} :host{box-sizing:border-box;font-family:${bodyFont};font-size:${typeRampBaseFontSize};line-height:${typeRampBaseLineHeight};color:${neutralForegroundRest};grid-template-columns:auto 1fr auto;grid-template-rows:auto 1fr}.tablist{display:grid;grid-template-rows:calc(${heightNumber} * 1px);auto;grid-template-columns:auto;position:relative;width:max-content;align-self:end}.start,.end{align-self:center}.activeIndicator{grid-row:2;grid-column:1;width:20px;height:3px;border-radius:calc(${controlCornerRadius} * 1px);justify-self:center;background:${accentFillRest}}.activeIndicatorTransition{transition:transform 0.2s ease-in-out}.tabpanel{grid-row:2;grid-column-start:1;grid-column-end:4;position:relative}:host(.vertical){grid-template-rows:auto 1fr auto;grid-template-columns:auto 1fr}:host(.vertical) .tablist{grid-row-start:2;grid-row-end:2;display:grid;grid-template-rows:auto;grid-template-columns:auto 1fr;position:relative;width:max-content;justify-self:end;align-self:flex-start;width:100%}:host(.vertical) .tabpanel{grid-column:2;grid-row-start:1;grid-row-end:4}:host(.vertical) .end{grid-row:3}:host(.vertical) .activeIndicator{grid-column:1;grid-row:1;width:3px;height:20px;margin-inline-start:calc(${focusStrokeWidth} * 1px);border-radius:calc(${controlCornerRadius} * 1px);align-self:center;background:${accentFillRest}}:host(.vertical) .activeIndicatorTransition{transition:transform 0.2s linear}`.withBehaviors(forcedColorsStylesheetBehavior(css`
|
|
23652
24117
|
.activeIndicator,:host(.vertical) .activeIndicator{background:${SystemColors.Highlight}}`));
|
|
23653
24118
|
|
|
23654
24119
|
const tabStyles$1 = (context, definition) => css`
|
|
@@ -24062,6 +24527,7 @@ const allComponents = {
|
|
|
24062
24527
|
fluentProgressRing,
|
|
24063
24528
|
fluentRadio,
|
|
24064
24529
|
fluentRadioGroup,
|
|
24530
|
+
fluentSearch,
|
|
24065
24531
|
fluentSelect,
|
|
24066
24532
|
fluentSkeleton,
|
|
24067
24533
|
fluentSlider,
|
|
@@ -24117,4 +24583,4 @@ function provideFluentDesignSystem(element) {
|
|
|
24117
24583
|
|
|
24118
24584
|
const FluentDesignSystem = provideFluentDesignSystem().register(allComponents);
|
|
24119
24585
|
|
|
24120
|
-
export { AccentButtonStyles, Accordion, AccordionItem, Anchor, AnchoredRegion, Badge, Breadcrumb, BreadcrumbItem, Button, Card, Combobox, DataGrid, DataGridCell, DataGridRow, DesignSystemProvider, Dialog, DirectionalStyleSheetBehavior, Divider, Flipper, FluentDesignSystem, HorizontalScroll, HypertextStyles, LightweightButtonStyles, Listbox, Menu, MenuItem, NumberField, OptionStyles, OutlineButtonStyles, PaletteRGB, Progress, ProgressRing, Radio, RadioGroup, RadioStyles, Select, Skeleton, Slider, SliderLabel, StandardLuminance, StealthButtonStyles, SwatchRGB, Switch, Tab, TabPanel, Tabs, TextArea, TextField, Toolbar, Tooltip, TreeItem, TreeView, accentBaseColor, accentFillActive, accentFillActiveDelta, accentFillFocus, accentFillFocusDelta, accentFillHover, accentFillHoverDelta, accentFillRecipe, accentFillRest, accentFillRestDelta, accentForegroundActive, accentForegroundActiveDelta, accentForegroundCut, accentForegroundCutLarge, accentForegroundFocus, accentForegroundFocusDelta, accentForegroundHover, accentForegroundHoverDelta, accentForegroundRecipe, accentForegroundRest, accentForegroundRestDelta, accentPalette, accentStrokeControlActive, accentStrokeControlFocus, accentStrokeControlHover, accentStrokeControlRecipe, accentStrokeControlRest, accordionItemStyles, accordionStyles, allComponents, ambientShadow, anchorStyles, anchoredRegionStyles, badgeStyles, baseButtonStyles, baseHeightMultiplier, baseHorizontalSpacingMultiplier, baseLayerLuminance, bodyFont, breadcrumbItemStyles, breadcrumbStyles, buttonStyles, cardStyles, checkboxStyles, comboboxStyles, controlCornerRadius, cornerRadius, dataGridCellStyles, dataGridRowStyles, dataGridStyles, density, designUnit, dialogStyles, direction, directionalShadow, disabledOpacity, dividerStyles, elevatedCornerRadius, elevation, elevationShadowCardActive, elevationShadowCardActiveSize, elevationShadowCardFocus, elevationShadowCardFocusSize, elevationShadowCardHover, elevationShadowCardHoverSize, elevationShadowCardRest, elevationShadowCardRestSize, elevationShadowDialog, elevationShadowDialogSize, elevationShadowFlyout, elevationShadowFlyoutSize, elevationShadowRecipe, elevationShadowTooltip, elevationShadowTooltipSize, fillColor, flipperStyles, fluentAccordion, fluentAccordionItem, fluentAnchor, fluentAnchoredRegion, fluentBadge, fluentBreadcrumb, fluentBreadcrumbItem, fluentButton, fluentCalendar, fluentCard, fluentCheckbox, fluentCombobox, fluentDataGrid, fluentDataGridCell, fluentDataGridRow, fluentDesignSystemProvider, fluentDialog, fluentDivider, fluentFlipper, fluentHorizontalScroll, fluentListbox, fluentMenu, fluentMenuItem, fluentNumberField, fluentOption, fluentProgress, fluentProgressRing, fluentRadio, fluentRadioGroup, fluentSelect, fluentSkeleton, fluentSlider, fluentSliderLabel, fluentSwitch, fluentTab, fluentTabPanel, fluentTabs, fluentTextArea, fluentTextField, fluentToolbar, fluentTooltip, fluentTreeItem, fluentTreeView, focusOutlineWidth, focusStrokeInner, focusStrokeInnerRecipe, focusStrokeOuter, focusStrokeOuterRecipe, focusStrokeWidth, foregroundOnAccentActive, foregroundOnAccentActiveLarge, foregroundOnAccentFocus, foregroundOnAccentFocusLarge, foregroundOnAccentHover, foregroundOnAccentHoverLarge, foregroundOnAccentLargeRecipe, foregroundOnAccentRecipe, foregroundOnAccentRest, foregroundOnAccentRestLarge, heightNumber, horizontalScrollStyles, inputFilledForcedColorStyles, inputFilledStyles, inputForcedColorStyles, inputStateStyles, inputStyles, isDark, layerCornerRadius, listboxStyles, menuItemStyles, menuStyles, neutralBaseColor, neutralContrastFillActive, neutralContrastFillActiveDelta, neutralContrastFillFocus, neutralContrastFillFocusDelta, neutralContrastFillHover, neutralContrastFillHoverDelta, neutralContrastFillRest, neutralContrastFillRestDelta, neutralDivider, neutralDividerRestDelta, neutralFillActive, neutralFillActiveDelta, neutralFillCard, neutralFillCardDelta, neutralFillFocus, neutralFillFocusDelta, neutralFillHover, neutralFillHoverDelta, neutralFillInputActive, neutralFillInputActiveDelta, neutralFillInputAltActive, neutralFillInputAltActiveDelta, neutralFillInputAltFocus, neutralFillInputAltFocusDelta, neutralFillInputAltHover, neutralFillInputAltHoverDelta, neutralFillInputAltRecipe, neutralFillInputAltRest, neutralFillInputAltRestDelta, neutralFillInputFocus, neutralFillInputFocusDelta, neutralFillInputHover, neutralFillInputHoverDelta, neutralFillInputRecipe, neutralFillInputRest, neutralFillInputRestDelta, neutralFillInverseActive, neutralFillInverseActiveDelta, neutralFillInverseFocus, neutralFillInverseFocusDelta, neutralFillInverseHover, neutralFillInverseHoverDelta, neutralFillInverseRecipe, neutralFillInverseRest, neutralFillInverseRestDelta, neutralFillLayerActive, neutralFillLayerActiveDelta, neutralFillLayerAltRecipe, neutralFillLayerAltRest, neutralFillLayerAltRestDelta, neutralFillLayerHover, neutralFillLayerHoverDelta, neutralFillLayerRecipe, neutralFillLayerRest, neutralFillLayerRestDelta, neutralFillRecipe, neutralFillRest, neutralFillRestDelta, neutralFillSecondaryActive, neutralFillSecondaryActiveDelta, neutralFillSecondaryFocus, neutralFillSecondaryFocusDelta, neutralFillSecondaryHover, neutralFillSecondaryHoverDelta, neutralFillSecondaryRecipe, neutralFillSecondaryRest, neutralFillSecondaryRestDelta, neutralFillStealthActive, neutralFillStealthActiveDelta, neutralFillStealthFocus, neutralFillStealthFocusDelta, neutralFillStealthHover, neutralFillStealthHoverDelta, neutralFillStealthRecipe, neutralFillStealthRest, neutralFillStealthRestDelta, neutralFillStrongActive, neutralFillStrongActiveDelta, neutralFillStrongFocus, neutralFillStrongFocusDelta, neutralFillStrongHover, neutralFillStrongHoverDelta, neutralFillStrongRecipe, neutralFillStrongRest, neutralFillStrongRestDelta, neutralFillToggleActive, neutralFillToggleActiveDelta, neutralFillToggleFocus, neutralFillToggleFocusDelta, neutralFillToggleHover, neutralFillToggleHoverDelta, neutralFillToggleRest, neutralFillToggleRestDelta, neutralFocus, neutralFocusInnerAccent, neutralForegroundActive, neutralForegroundFocus, neutralForegroundHint, neutralForegroundHintRecipe, neutralForegroundHover, neutralForegroundRecipe, neutralForegroundRest, neutralLayer1, neutralLayer1Recipe, neutralLayer2, neutralLayer2Recipe, neutralLayer3, neutralLayer3Recipe, neutralLayer4, neutralLayer4Recipe, neutralLayerCardContainer, neutralLayerCardContainerRecipe, neutralLayerFloating, neutralLayerFloatingRecipe, neutralLayerL1, neutralLayerL2, neutralLayerL3, neutralLayerL4, neutralOutlineActive, neutralOutlineFocus, neutralOutlineHover, neutralOutlineRest, neutralPalette, neutralStrokeActive, neutralStrokeActiveDelta, neutralStrokeControlActive, neutralStrokeControlActiveDelta, neutralStrokeControlFocus, neutralStrokeControlFocusDelta, neutralStrokeControlHover, neutralStrokeControlHoverDelta, neutralStrokeControlRecipe, neutralStrokeControlRest, neutralStrokeControlRestDelta, neutralStrokeDividerRecipe, neutralStrokeDividerRest, neutralStrokeDividerRestDelta, neutralStrokeFocus, neutralStrokeFocusDelta, neutralStrokeHover, neutralStrokeHoverDelta, neutralStrokeInputActive, neutralStrokeInputFocus, neutralStrokeInputHover, neutralStrokeInputRecipe, neutralStrokeInputRest, neutralStrokeLayerActive, neutralStrokeLayerActiveDelta, neutralStrokeLayerHover, neutralStrokeLayerHoverDelta, neutralStrokeLayerRecipe, neutralStrokeLayerRest, neutralStrokeLayerRestDelta, neutralStrokeRecipe, neutralStrokeRest, neutralStrokeRestDelta, neutralStrokeStrongActive, neutralStrokeStrongActiveDelta, neutralStrokeStrongFocus, neutralStrokeStrongFocusDelta, neutralStrokeStrongHover, neutralStrokeStrongHoverDelta, neutralStrokeStrongRecipe, neutralStrokeStrongRest, numberFieldStyles, outlineWidth, progressRingStyles, progressStyles, provideFluentDesignSystem, radioGroupStyles, selectStyles, skeletonStyles, sliderLabelStyles, sliderStyles, strokeWidth, switchStyles, tabPanelStyles, tabStyles, tabsStyles, textAreaStyles, textFieldStyles, treeItemStyles, treeViewStyles, typeRampBaseFontSize, typeRampBaseLineHeight, typeRampMinus1FontSize, typeRampMinus1LineHeight, typeRampMinus2FontSize, typeRampMinus2LineHeight, typeRampPlus1FontSize, typeRampPlus1LineHeight, typeRampPlus2FontSize, typeRampPlus2LineHeight, typeRampPlus3FontSize, typeRampPlus3LineHeight, typeRampPlus4FontSize, typeRampPlus4LineHeight, typeRampPlus5FontSize, typeRampPlus5LineHeight, typeRampPlus6FontSize, typeRampPlus6LineHeight };
|
|
24586
|
+
export { AccentButtonStyles, Accordion, AccordionItem, Anchor, AnchoredRegion, Badge, Breadcrumb, BreadcrumbItem, Button, Card, Combobox, DataGrid, DataGridCell, DataGridRow, DesignSystemProvider, Dialog, DirectionalStyleSheetBehavior, Divider, Flipper, FluentDesignSystem, HorizontalScroll, HypertextStyles, LightweightButtonStyles, Listbox, Menu, MenuItem, NumberField, OptionStyles, OutlineButtonStyles, PaletteRGB, Progress, ProgressRing, Radio, RadioGroup, RadioStyles, Search, Select, Skeleton, Slider, SliderLabel, StandardLuminance, StealthButtonStyles, SwatchRGB, Switch, Tab, TabPanel, Tabs, TextArea, TextField, Toolbar, Tooltip, TreeItem, TreeView, accentBaseColor, accentFillActive, accentFillActiveDelta, accentFillFocus, accentFillFocusDelta, accentFillHover, accentFillHoverDelta, accentFillRecipe, accentFillRest, accentFillRestDelta, accentForegroundActive, accentForegroundActiveDelta, accentForegroundCut, accentForegroundCutLarge, accentForegroundFocus, accentForegroundFocusDelta, accentForegroundHover, accentForegroundHoverDelta, accentForegroundRecipe, accentForegroundRest, accentForegroundRestDelta, accentPalette, accentStrokeControlActive, accentStrokeControlFocus, accentStrokeControlHover, accentStrokeControlRecipe, accentStrokeControlRest, accordionItemStyles, accordionStyles, allComponents, ambientShadow, anchorStyles, anchoredRegionStyles, badgeStyles, baseButtonStyles, baseHeightMultiplier, baseHorizontalSpacingMultiplier, baseLayerLuminance, bodyFont, breadcrumbItemStyles, breadcrumbStyles, buttonStyles, cardStyles, checkboxStyles, comboboxStyles, controlCornerRadius, cornerRadius, dataGridCellStyles, dataGridRowStyles, dataGridStyles, density, designUnit, dialogStyles, direction, directionalShadow, disabledOpacity, dividerStyles, elevatedCornerRadius, elevation, elevationShadowCardActive, elevationShadowCardActiveSize, elevationShadowCardFocus, elevationShadowCardFocusSize, elevationShadowCardHover, elevationShadowCardHoverSize, elevationShadowCardRest, elevationShadowCardRestSize, elevationShadowDialog, elevationShadowDialogSize, elevationShadowFlyout, elevationShadowFlyoutSize, elevationShadowRecipe, elevationShadowTooltip, elevationShadowTooltipSize, fillColor, flipperStyles, fluentAccordion, fluentAccordionItem, fluentAnchor, fluentAnchoredRegion, fluentBadge, fluentBreadcrumb, fluentBreadcrumbItem, fluentButton, fluentCalendar, fluentCard, fluentCheckbox, fluentCombobox, fluentDataGrid, fluentDataGridCell, fluentDataGridRow, fluentDesignSystemProvider, fluentDialog, fluentDivider, fluentFlipper, fluentHorizontalScroll, fluentListbox, fluentMenu, fluentMenuItem, fluentNumberField, fluentOption, fluentProgress, fluentProgressRing, fluentRadio, fluentRadioGroup, fluentSearch, fluentSelect, fluentSkeleton, fluentSlider, fluentSliderLabel, fluentSwitch, fluentTab, fluentTabPanel, fluentTabs, fluentTextArea, fluentTextField, fluentToolbar, fluentTooltip, fluentTreeItem, fluentTreeView, focusOutlineWidth, focusStrokeInner, focusStrokeInnerRecipe, focusStrokeOuter, focusStrokeOuterRecipe, focusStrokeWidth, foregroundOnAccentActive, foregroundOnAccentActiveLarge, foregroundOnAccentFocus, foregroundOnAccentFocusLarge, foregroundOnAccentHover, foregroundOnAccentHoverLarge, foregroundOnAccentLargeRecipe, foregroundOnAccentRecipe, foregroundOnAccentRest, foregroundOnAccentRestLarge, heightNumber, horizontalScrollStyles, inputFilledForcedColorStyles, inputFilledStyles, inputForcedColorStyles, inputStateStyles, inputStyles, isDark, layerCornerRadius, listboxStyles, menuItemStyles, menuStyles, neutralBaseColor, neutralContrastFillActive, neutralContrastFillActiveDelta, neutralContrastFillFocus, neutralContrastFillFocusDelta, neutralContrastFillHover, neutralContrastFillHoverDelta, neutralContrastFillRest, neutralContrastFillRestDelta, neutralDivider, neutralDividerRestDelta, neutralFillActive, neutralFillActiveDelta, neutralFillCard, neutralFillCardDelta, neutralFillFocus, neutralFillFocusDelta, neutralFillHover, neutralFillHoverDelta, neutralFillInputActive, neutralFillInputActiveDelta, neutralFillInputAltActive, neutralFillInputAltActiveDelta, neutralFillInputAltFocus, neutralFillInputAltFocusDelta, neutralFillInputAltHover, neutralFillInputAltHoverDelta, neutralFillInputAltRecipe, neutralFillInputAltRest, neutralFillInputAltRestDelta, neutralFillInputFocus, neutralFillInputFocusDelta, neutralFillInputHover, neutralFillInputHoverDelta, neutralFillInputRecipe, neutralFillInputRest, neutralFillInputRestDelta, neutralFillInverseActive, neutralFillInverseActiveDelta, neutralFillInverseFocus, neutralFillInverseFocusDelta, neutralFillInverseHover, neutralFillInverseHoverDelta, neutralFillInverseRecipe, neutralFillInverseRest, neutralFillInverseRestDelta, neutralFillLayerActive, neutralFillLayerActiveDelta, neutralFillLayerAltRecipe, neutralFillLayerAltRest, neutralFillLayerAltRestDelta, neutralFillLayerHover, neutralFillLayerHoverDelta, neutralFillLayerRecipe, neutralFillLayerRest, neutralFillLayerRestDelta, neutralFillRecipe, neutralFillRest, neutralFillRestDelta, neutralFillSecondaryActive, neutralFillSecondaryActiveDelta, neutralFillSecondaryFocus, neutralFillSecondaryFocusDelta, neutralFillSecondaryHover, neutralFillSecondaryHoverDelta, neutralFillSecondaryRecipe, neutralFillSecondaryRest, neutralFillSecondaryRestDelta, neutralFillStealthActive, neutralFillStealthActiveDelta, neutralFillStealthFocus, neutralFillStealthFocusDelta, neutralFillStealthHover, neutralFillStealthHoverDelta, neutralFillStealthRecipe, neutralFillStealthRest, neutralFillStealthRestDelta, neutralFillStrongActive, neutralFillStrongActiveDelta, neutralFillStrongFocus, neutralFillStrongFocusDelta, neutralFillStrongHover, neutralFillStrongHoverDelta, neutralFillStrongRecipe, neutralFillStrongRest, neutralFillStrongRestDelta, neutralFillToggleActive, neutralFillToggleActiveDelta, neutralFillToggleFocus, neutralFillToggleFocusDelta, neutralFillToggleHover, neutralFillToggleHoverDelta, neutralFillToggleRest, neutralFillToggleRestDelta, neutralFocus, neutralFocusInnerAccent, neutralForegroundActive, neutralForegroundFocus, neutralForegroundHint, neutralForegroundHintRecipe, neutralForegroundHover, neutralForegroundRecipe, neutralForegroundRest, neutralLayer1, neutralLayer1Recipe, neutralLayer2, neutralLayer2Recipe, neutralLayer3, neutralLayer3Recipe, neutralLayer4, neutralLayer4Recipe, neutralLayerCardContainer, neutralLayerCardContainerRecipe, neutralLayerFloating, neutralLayerFloatingRecipe, neutralLayerL1, neutralLayerL2, neutralLayerL3, neutralLayerL4, neutralOutlineActive, neutralOutlineFocus, neutralOutlineHover, neutralOutlineRest, neutralPalette, neutralStrokeActive, neutralStrokeActiveDelta, neutralStrokeControlActive, neutralStrokeControlActiveDelta, neutralStrokeControlFocus, neutralStrokeControlFocusDelta, neutralStrokeControlHover, neutralStrokeControlHoverDelta, neutralStrokeControlRecipe, neutralStrokeControlRest, neutralStrokeControlRestDelta, neutralStrokeDividerRecipe, neutralStrokeDividerRest, neutralStrokeDividerRestDelta, neutralStrokeFocus, neutralStrokeFocusDelta, neutralStrokeHover, neutralStrokeHoverDelta, neutralStrokeInputActive, neutralStrokeInputFocus, neutralStrokeInputHover, neutralStrokeInputRecipe, neutralStrokeInputRest, neutralStrokeLayerActive, neutralStrokeLayerActiveDelta, neutralStrokeLayerHover, neutralStrokeLayerHoverDelta, neutralStrokeLayerRecipe, neutralStrokeLayerRest, neutralStrokeLayerRestDelta, neutralStrokeRecipe, neutralStrokeRest, neutralStrokeRestDelta, neutralStrokeStrongActive, neutralStrokeStrongActiveDelta, neutralStrokeStrongFocus, neutralStrokeStrongFocusDelta, neutralStrokeStrongHover, neutralStrokeStrongHoverDelta, neutralStrokeStrongRecipe, neutralStrokeStrongRest, numberFieldStyles, outlineWidth, progressRingStyles, progressStyles, provideFluentDesignSystem, radioGroupStyles, searchStyles, searchTemplate, selectStyles, skeletonStyles, sliderLabelStyles, sliderStyles, strokeWidth, switchStyles, tabPanelStyles, tabStyles, tabsStyles, textAreaStyles, textFieldStyles, treeItemStyles, treeViewStyles, typeRampBaseFontSize, typeRampBaseLineHeight, typeRampMinus1FontSize, typeRampMinus1LineHeight, typeRampMinus2FontSize, typeRampMinus2LineHeight, typeRampPlus1FontSize, typeRampPlus1LineHeight, typeRampPlus2FontSize, typeRampPlus2LineHeight, typeRampPlus3FontSize, typeRampPlus3LineHeight, typeRampPlus4FontSize, typeRampPlus4LineHeight, typeRampPlus5FontSize, typeRampPlus5LineHeight, typeRampPlus6FontSize, typeRampPlus6LineHeight };
|