@fluentui/web-components 2.1.3 → 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 +16 -1
- package/CHANGELOG.md +11 -2
- package/dist/dts/component-definitions.d.ts +2 -1
- package/dist/dts/custom-elements.d.ts +4 -2
- 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/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/esm/component-definitions.js +2 -0
- package/dist/esm/custom-elements.js +3 -1
- 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/fluent-web-components.api.json +270 -5
- package/dist/web-components.d.ts +51 -2
- package/dist/web-components.js +701 -240
- package/dist/web-components.min.js +142 -132
- package/docs/api-report.md +34 -9
- package/package.json +2 -2
package/dist/web-components.js
CHANGED
|
@@ -10541,49 +10541,32 @@ var ListboxRole;
|
|
|
10541
10541
|
* @public
|
|
10542
10542
|
*/
|
|
10543
10543
|
|
|
10544
|
-
class Listbox extends FoundationElement {
|
|
10544
|
+
class Listbox$1 extends FoundationElement {
|
|
10545
10545
|
constructor() {
|
|
10546
10546
|
super(...arguments);
|
|
10547
10547
|
/**
|
|
10548
|
-
* The
|
|
10549
|
-
*
|
|
10550
|
-
* @public
|
|
10551
|
-
*/
|
|
10552
|
-
|
|
10553
|
-
this.selectedIndex = -1;
|
|
10554
|
-
/**
|
|
10555
|
-
* @internal
|
|
10556
|
-
*/
|
|
10557
|
-
|
|
10558
|
-
this.typeaheadBuffer = "";
|
|
10559
|
-
/**
|
|
10560
|
-
* @internal
|
|
10561
|
-
*/
|
|
10562
|
-
|
|
10563
|
-
this.typeaheadTimeout = -1;
|
|
10564
|
-
/**
|
|
10565
|
-
* Flag for the typeahead timeout expiration.
|
|
10548
|
+
* The internal unfiltered list of selectable options.
|
|
10566
10549
|
*
|
|
10567
10550
|
* @internal
|
|
10568
10551
|
*/
|
|
10569
10552
|
|
|
10570
|
-
this.
|
|
10553
|
+
this._options = [];
|
|
10571
10554
|
/**
|
|
10572
10555
|
* The role of the element.
|
|
10573
10556
|
*
|
|
10574
10557
|
* @public
|
|
10575
10558
|
* @remarks
|
|
10576
|
-
* HTML Attribute: role
|
|
10559
|
+
* HTML Attribute: `role`
|
|
10577
10560
|
*/
|
|
10578
10561
|
|
|
10579
10562
|
this.role = ListboxRole.listbox;
|
|
10580
10563
|
/**
|
|
10581
|
-
* The
|
|
10564
|
+
* The index of the selected option.
|
|
10582
10565
|
*
|
|
10583
|
-
* @
|
|
10566
|
+
* @public
|
|
10584
10567
|
*/
|
|
10585
10568
|
|
|
10586
|
-
this.
|
|
10569
|
+
this.selectedIndex = -1;
|
|
10587
10570
|
/**
|
|
10588
10571
|
* A collection of the selected options.
|
|
10589
10572
|
*
|
|
@@ -10600,66 +10583,52 @@ class Listbox extends FoundationElement {
|
|
|
10600
10583
|
|
|
10601
10584
|
this.shouldSkipFocus = false;
|
|
10602
10585
|
/**
|
|
10603
|
-
*
|
|
10604
|
-
* Consecutive keystrokes are batched into a buffer of search text used
|
|
10605
|
-
* to match against the set of options. If TYPE_AHEAD_TIMEOUT_MS passes
|
|
10606
|
-
* between consecutive keystrokes, the search restarts.
|
|
10586
|
+
* The current typeahead buffer string.
|
|
10607
10587
|
*
|
|
10608
|
-
* @
|
|
10588
|
+
* @internal
|
|
10609
10589
|
*/
|
|
10610
10590
|
|
|
10611
|
-
this.
|
|
10612
|
-
|
|
10613
|
-
|
|
10614
|
-
|
|
10615
|
-
|
|
10616
|
-
|
|
10617
|
-
|
|
10618
|
-
if (key.length > 1) {
|
|
10619
|
-
return;
|
|
10620
|
-
}
|
|
10591
|
+
this.typeaheadBuffer = "";
|
|
10592
|
+
/**
|
|
10593
|
+
* Flag for the typeahead timeout expiration.
|
|
10594
|
+
*
|
|
10595
|
+
* @internal
|
|
10596
|
+
*/
|
|
10621
10597
|
|
|
10622
|
-
|
|
10623
|
-
|
|
10624
|
-
|
|
10598
|
+
this.typeaheadExpired = true;
|
|
10599
|
+
/**
|
|
10600
|
+
* The timeout ID for the typeahead handler.
|
|
10601
|
+
*
|
|
10602
|
+
* @internal
|
|
10603
|
+
*/
|
|
10625
10604
|
|
|
10626
|
-
|
|
10627
|
-
this.setSelectedOptions();
|
|
10605
|
+
this.typeaheadTimeout = -1;
|
|
10628
10606
|
}
|
|
10607
|
+
/**
|
|
10608
|
+
* The first selected option.
|
|
10609
|
+
*
|
|
10610
|
+
* @internal
|
|
10611
|
+
*/
|
|
10629
10612
|
|
|
10630
|
-
typeaheadBufferChanged(prev, next) {
|
|
10631
|
-
if (this.$fastController.isConnected) {
|
|
10632
|
-
const pattern = this.typeaheadBuffer.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&");
|
|
10633
|
-
const re = new RegExp(`^${pattern}`, "gi");
|
|
10634
|
-
const filteredOptions = this.options.filter(o => o.text.trim().match(re));
|
|
10635
|
-
|
|
10636
|
-
if (filteredOptions.length) {
|
|
10637
|
-
const selectedIndex = this.options.indexOf(filteredOptions[0]);
|
|
10638
10613
|
|
|
10639
|
-
|
|
10640
|
-
|
|
10641
|
-
}
|
|
10642
|
-
}
|
|
10614
|
+
get firstSelectedOption() {
|
|
10615
|
+
var _a;
|
|
10643
10616
|
|
|
10644
|
-
|
|
10645
|
-
}
|
|
10617
|
+
return (_a = this.selectedOptions[0]) !== null && _a !== void 0 ? _a : null;
|
|
10646
10618
|
}
|
|
10619
|
+
/**
|
|
10620
|
+
* The number of options.
|
|
10621
|
+
*
|
|
10622
|
+
* @public
|
|
10623
|
+
*/
|
|
10647
10624
|
|
|
10648
|
-
slottedOptionsChanged(prev, next) {
|
|
10649
|
-
if (this.$fastController.isConnected) {
|
|
10650
|
-
this.options = next.reduce((options, item) => {
|
|
10651
|
-
if (isListboxOption(item)) {
|
|
10652
|
-
options.push(item);
|
|
10653
|
-
}
|
|
10654
10625
|
|
|
10655
|
-
|
|
10656
|
-
|
|
10657
|
-
this.options.
|
|
10658
|
-
o.id = o.id || uniqueId("option-");
|
|
10659
|
-
});
|
|
10660
|
-
this.setSelectedOptions();
|
|
10661
|
-
this.setDefaultSelectedOption();
|
|
10626
|
+
get length() {
|
|
10627
|
+
if (this.options) {
|
|
10628
|
+
return this.options.length;
|
|
10662
10629
|
}
|
|
10630
|
+
|
|
10631
|
+
return 0;
|
|
10663
10632
|
}
|
|
10664
10633
|
/**
|
|
10665
10634
|
* The list of options.
|
|
@@ -10677,23 +10646,39 @@ class Listbox extends FoundationElement {
|
|
|
10677
10646
|
this._options = value;
|
|
10678
10647
|
Observable.notify(this, "options");
|
|
10679
10648
|
}
|
|
10649
|
+
/**
|
|
10650
|
+
* Flag for the typeahead timeout expiration.
|
|
10651
|
+
*
|
|
10652
|
+
* @deprecated use `Listbox.typeaheadExpired`
|
|
10653
|
+
* @internal
|
|
10654
|
+
*/
|
|
10680
10655
|
|
|
10681
|
-
|
|
10682
|
-
|
|
10683
|
-
|
|
10684
|
-
|
|
10685
|
-
|
|
10686
|
-
|
|
10656
|
+
|
|
10657
|
+
get typeAheadExpired() {
|
|
10658
|
+
return this.typeaheadExpired;
|
|
10659
|
+
}
|
|
10660
|
+
|
|
10661
|
+
set typeAheadExpired(value) {
|
|
10662
|
+
this.typeaheadExpired = value;
|
|
10687
10663
|
}
|
|
10688
10664
|
/**
|
|
10665
|
+
* Handle click events for listbox options.
|
|
10666
|
+
*
|
|
10689
10667
|
* @internal
|
|
10690
10668
|
*/
|
|
10691
10669
|
|
|
10692
10670
|
|
|
10693
|
-
|
|
10694
|
-
|
|
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
|
+
}
|
|
10695
10678
|
}
|
|
10696
10679
|
/**
|
|
10680
|
+
* Focus the first selected option and scroll it into view.
|
|
10681
|
+
*
|
|
10697
10682
|
* @internal
|
|
10698
10683
|
*/
|
|
10699
10684
|
|
|
@@ -10709,6 +10694,10 @@ class Listbox extends FoundationElement {
|
|
|
10709
10694
|
}
|
|
10710
10695
|
}
|
|
10711
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
|
+
*
|
|
10712
10701
|
* @internal
|
|
10713
10702
|
*/
|
|
10714
10703
|
|
|
@@ -10721,6 +10710,116 @@ class Listbox extends FoundationElement {
|
|
|
10721
10710
|
|
|
10722
10711
|
this.shouldSkipFocus = false;
|
|
10723
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
|
+
}
|
|
10724
10823
|
/**
|
|
10725
10824
|
* Prevents `focusin` events from firing before `click` events when the
|
|
10726
10825
|
* element is unfocused.
|
|
@@ -10734,40 +10833,37 @@ class Listbox extends FoundationElement {
|
|
|
10734
10833
|
return true;
|
|
10735
10834
|
}
|
|
10736
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
|
+
*
|
|
10737
10841
|
* @internal
|
|
10738
10842
|
*/
|
|
10739
10843
|
|
|
10740
10844
|
|
|
10741
|
-
|
|
10742
|
-
|
|
10743
|
-
const selectedIndex = this.options.findIndex(el => el.getAttribute("selected") !== null);
|
|
10744
|
-
|
|
10745
|
-
if (selectedIndex !== -1) {
|
|
10746
|
-
this.selectedIndex = selectedIndex;
|
|
10747
|
-
return;
|
|
10748
|
-
}
|
|
10749
|
-
|
|
10750
|
-
this.selectedIndex = 0;
|
|
10751
|
-
}
|
|
10845
|
+
selectedIndexChanged(prev, next) {
|
|
10846
|
+
this.setSelectedOptions();
|
|
10752
10847
|
}
|
|
10753
10848
|
/**
|
|
10754
|
-
*
|
|
10849
|
+
* Updates the selectedness of each option when the list of selected options changes.
|
|
10755
10850
|
*
|
|
10756
|
-
* @param
|
|
10757
|
-
* @
|
|
10851
|
+
* @param prev - the previous list of selected options
|
|
10852
|
+
* @param next - the current list of selected options
|
|
10853
|
+
*
|
|
10854
|
+
* @internal
|
|
10758
10855
|
*/
|
|
10759
10856
|
|
|
10760
10857
|
|
|
10761
|
-
|
|
10762
|
-
if (this.$fastController.isConnected
|
|
10763
|
-
|
|
10764
|
-
|
|
10765
|
-
|
|
10766
|
-
this.focusAndScrollOptionIntoView();
|
|
10858
|
+
selectedOptionsChanged(prev, next) {
|
|
10859
|
+
if (this.$fastController.isConnected) {
|
|
10860
|
+
this.options.forEach(o => {
|
|
10861
|
+
o.selected = next.includes(o);
|
|
10862
|
+
});
|
|
10767
10863
|
}
|
|
10768
10864
|
}
|
|
10769
10865
|
/**
|
|
10770
|
-
* Moves focus to the first selectable option
|
|
10866
|
+
* Moves focus to the first selectable option.
|
|
10771
10867
|
*
|
|
10772
10868
|
* @public
|
|
10773
10869
|
*/
|
|
@@ -10779,7 +10875,7 @@ class Listbox extends FoundationElement {
|
|
|
10779
10875
|
}
|
|
10780
10876
|
}
|
|
10781
10877
|
/**
|
|
10782
|
-
* Moves focus to the last selectable option
|
|
10878
|
+
* Moves focus to the last selectable option.
|
|
10783
10879
|
*
|
|
10784
10880
|
* @internal
|
|
10785
10881
|
*/
|
|
@@ -10791,7 +10887,7 @@ class Listbox extends FoundationElement {
|
|
|
10791
10887
|
}
|
|
10792
10888
|
}
|
|
10793
10889
|
/**
|
|
10794
|
-
* Moves focus to the next selectable option
|
|
10890
|
+
* Moves focus to the next selectable option.
|
|
10795
10891
|
*
|
|
10796
10892
|
* @internal
|
|
10797
10893
|
*/
|
|
@@ -10802,16 +10898,8 @@ class Listbox extends FoundationElement {
|
|
|
10802
10898
|
this.selectedIndex += 1;
|
|
10803
10899
|
}
|
|
10804
10900
|
}
|
|
10805
|
-
|
|
10806
|
-
get length() {
|
|
10807
|
-
if (this.options) {
|
|
10808
|
-
return this.options.length;
|
|
10809
|
-
}
|
|
10810
|
-
|
|
10811
|
-
return 0;
|
|
10812
|
-
}
|
|
10813
10901
|
/**
|
|
10814
|
-
* Moves focus to the previous selectable option
|
|
10902
|
+
* Moves focus to the previous selectable option.
|
|
10815
10903
|
*
|
|
10816
10904
|
* @internal
|
|
10817
10905
|
*/
|
|
@@ -10823,138 +10911,126 @@ class Listbox extends FoundationElement {
|
|
|
10823
10911
|
}
|
|
10824
10912
|
}
|
|
10825
10913
|
/**
|
|
10826
|
-
*
|
|
10914
|
+
* Updates the selected index to match the first selected option.
|
|
10827
10915
|
*
|
|
10828
10916
|
* @internal
|
|
10829
10917
|
*/
|
|
10830
10918
|
|
|
10831
10919
|
|
|
10832
|
-
|
|
10833
|
-
|
|
10920
|
+
setDefaultSelectedOption() {
|
|
10921
|
+
if (this.options && this.$fastController.isConnected) {
|
|
10922
|
+
const selectedIndex = this.options.findIndex(el => el.getAttribute("selected") !== null);
|
|
10834
10923
|
|
|
10835
|
-
|
|
10836
|
-
|
|
10837
|
-
|
|
10924
|
+
if (selectedIndex !== -1) {
|
|
10925
|
+
this.selectedIndex = selectedIndex;
|
|
10926
|
+
return;
|
|
10927
|
+
}
|
|
10928
|
+
|
|
10929
|
+
this.selectedIndex = 0;
|
|
10838
10930
|
}
|
|
10839
10931
|
}
|
|
10840
10932
|
/**
|
|
10841
|
-
*
|
|
10933
|
+
* Sets the selected option and gives it focus.
|
|
10842
10934
|
*
|
|
10843
|
-
* @
|
|
10935
|
+
* @public
|
|
10844
10936
|
*/
|
|
10845
10937
|
|
|
10846
10938
|
|
|
10847
|
-
|
|
10848
|
-
|
|
10849
|
-
return true;
|
|
10850
|
-
}
|
|
10851
|
-
|
|
10852
|
-
this.shouldSkipFocus = false;
|
|
10853
|
-
const key = e.key;
|
|
10854
|
-
|
|
10855
|
-
switch (key) {
|
|
10856
|
-
// Select the first available option
|
|
10857
|
-
case "Home":
|
|
10858
|
-
{
|
|
10859
|
-
if (!e.shiftKey) {
|
|
10860
|
-
e.preventDefault();
|
|
10861
|
-
this.selectFirstOption();
|
|
10862
|
-
}
|
|
10939
|
+
setSelectedOptions() {
|
|
10940
|
+
var _a, _b, _c;
|
|
10863
10941
|
|
|
10864
|
-
|
|
10865
|
-
|
|
10866
|
-
|
|
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
|
+
*/
|
|
10867
10957
|
|
|
10868
|
-
case "ArrowDown":
|
|
10869
|
-
{
|
|
10870
|
-
if (!e.shiftKey) {
|
|
10871
|
-
e.preventDefault();
|
|
10872
|
-
this.selectNextOption();
|
|
10873
|
-
}
|
|
10874
10958
|
|
|
10875
|
-
|
|
10959
|
+
slottedOptionsChanged(prev, next) {
|
|
10960
|
+
if (this.$fastController.isConnected) {
|
|
10961
|
+
this.options = next.reduce((options, item) => {
|
|
10962
|
+
if (isListboxOption(item)) {
|
|
10963
|
+
options.push(item);
|
|
10876
10964
|
}
|
|
10877
|
-
// Select the previous selectable option
|
|
10878
10965
|
|
|
10879
|
-
|
|
10880
|
-
|
|
10881
|
-
|
|
10882
|
-
|
|
10883
|
-
|
|
10884
|
-
|
|
10885
|
-
|
|
10886
|
-
|
|
10887
|
-
|
|
10888
|
-
|
|
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
|
+
*/
|
|
10889
10983
|
|
|
10890
|
-
case "End":
|
|
10891
|
-
{
|
|
10892
|
-
e.preventDefault();
|
|
10893
|
-
this.selectLastOption();
|
|
10894
|
-
break;
|
|
10895
|
-
}
|
|
10896
10984
|
|
|
10897
|
-
|
|
10898
|
-
|
|
10899
|
-
|
|
10900
|
-
|
|
10901
|
-
|
|
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));
|
|
10902
10990
|
|
|
10903
|
-
|
|
10904
|
-
|
|
10905
|
-
{
|
|
10906
|
-
return true;
|
|
10907
|
-
}
|
|
10991
|
+
if (filteredOptions.length) {
|
|
10992
|
+
const selectedIndex = this.options.indexOf(filteredOptions[0]);
|
|
10908
10993
|
|
|
10909
|
-
|
|
10910
|
-
|
|
10911
|
-
if (this.typeAheadExpired) {
|
|
10912
|
-
return true;
|
|
10913
|
-
}
|
|
10994
|
+
if (selectedIndex > -1) {
|
|
10995
|
+
this.selectedIndex = selectedIndex;
|
|
10914
10996
|
}
|
|
10915
|
-
|
|
10916
|
-
|
|
10917
|
-
default:
|
|
10918
|
-
{
|
|
10919
|
-
if (key.length === 1) {
|
|
10920
|
-
this.handleTypeAhead(`${key}`);
|
|
10921
|
-
}
|
|
10997
|
+
}
|
|
10922
10998
|
|
|
10923
|
-
|
|
10924
|
-
}
|
|
10999
|
+
this.typeaheadExpired = false;
|
|
10925
11000
|
}
|
|
10926
11001
|
}
|
|
10927
11002
|
|
|
10928
11003
|
}
|
|
10929
11004
|
/**
|
|
10930
|
-
*
|
|
11005
|
+
* A static filter to include only selectable options.
|
|
10931
11006
|
*
|
|
10932
|
-
* @
|
|
11007
|
+
* @param n - element to filter
|
|
11008
|
+
* @public
|
|
10933
11009
|
*/
|
|
10934
11010
|
|
|
10935
|
-
Listbox.
|
|
11011
|
+
Listbox$1.slottedOptionFilter = n => isListboxOption(n) && !n.disabled && !n.hidden;
|
|
10936
11012
|
/**
|
|
10937
|
-
*
|
|
11013
|
+
* Typeahead timeout in milliseconds.
|
|
10938
11014
|
*
|
|
10939
|
-
* @
|
|
10940
|
-
* @public
|
|
11015
|
+
* @internal
|
|
10941
11016
|
*/
|
|
10942
11017
|
|
|
10943
|
-
Listbox.slottedOptionFilter = n => isListboxOption(n) && !n.disabled && !n.hidden;
|
|
10944
|
-
|
|
10945
|
-
__decorate$1([observable], Listbox.prototype, "selectedIndex", void 0);
|
|
10946
11018
|
|
|
10947
|
-
|
|
10948
|
-
|
|
10949
|
-
__decorate$1([attr], Listbox.prototype, "role", void 0);
|
|
11019
|
+
Listbox$1.TYPE_AHEAD_TIMEOUT_MS = 1000;
|
|
10950
11020
|
|
|
10951
11021
|
__decorate$1([attr({
|
|
10952
11022
|
mode: "boolean"
|
|
10953
|
-
})], 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);
|
|
10954
11028
|
|
|
10955
|
-
__decorate$1([observable], Listbox.prototype, "
|
|
11029
|
+
__decorate$1([observable], Listbox$1.prototype, "selectedOptions", void 0);
|
|
10956
11030
|
|
|
10957
|
-
__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);
|
|
10958
11034
|
/**
|
|
10959
11035
|
* Includes ARIA states and properties relating to the ARIA listbox role
|
|
10960
11036
|
*
|
|
@@ -10982,9 +11058,9 @@ __decorate$1([observable], DelegatesARIAListbox.prototype, "ariaDisabled", void
|
|
|
10982
11058
|
__decorate$1([observable], DelegatesARIAListbox.prototype, "ariaExpanded", void 0);
|
|
10983
11059
|
|
|
10984
11060
|
applyMixins(DelegatesARIAListbox, ARIAGlobalStatesAndProperties);
|
|
10985
|
-
applyMixins(Listbox, DelegatesARIAListbox);
|
|
11061
|
+
applyMixins(Listbox$1, DelegatesARIAListbox);
|
|
10986
11062
|
|
|
10987
|
-
class _Combobox extends Listbox {}
|
|
11063
|
+
class _Combobox extends Listbox$1 {}
|
|
10988
11064
|
/**
|
|
10989
11065
|
* A form-associated base class for the {@link (Combobox:class)} component.
|
|
10990
11066
|
*
|
|
@@ -11212,12 +11288,13 @@ class Combobox$1 extends FormAssociatedCombobox {
|
|
|
11212
11288
|
|
|
11213
11289
|
this.selectedOptions = [captured];
|
|
11214
11290
|
this.control.value = captured.text;
|
|
11291
|
+
this.updateValue(true);
|
|
11215
11292
|
}
|
|
11216
11293
|
|
|
11217
11294
|
this.open = !this.open;
|
|
11218
11295
|
|
|
11219
|
-
if (
|
|
11220
|
-
this.
|
|
11296
|
+
if (this.open) {
|
|
11297
|
+
this.control.focus();
|
|
11221
11298
|
}
|
|
11222
11299
|
|
|
11223
11300
|
return true;
|
|
@@ -11273,6 +11350,28 @@ class Combobox$1 extends FormAssociatedCombobox {
|
|
|
11273
11350
|
});
|
|
11274
11351
|
}
|
|
11275
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
|
+
}
|
|
11276
11375
|
/**
|
|
11277
11376
|
* Handle focus state when the element or its children lose focus.
|
|
11278
11377
|
*
|
|
@@ -11620,7 +11719,7 @@ applyMixins(Combobox$1, StartEnd, DelegatesARIACombobox);
|
|
|
11620
11719
|
*/
|
|
11621
11720
|
|
|
11622
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({
|
|
11623
|
-
filter: Listbox.slottedOptionFilter,
|
|
11722
|
+
filter: Listbox$1.slottedOptionFilter,
|
|
11624
11723
|
flatten: true,
|
|
11625
11724
|
property: "slottedOptions"
|
|
11626
11725
|
})}></slot></div></template>`;
|
|
@@ -13859,13 +13958,59 @@ __decorate$1([attr], Flipper.prototype, "direction", void 0);
|
|
|
13859
13958
|
|
|
13860
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>`;
|
|
13861
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
|
+
|
|
13862
14007
|
/**
|
|
13863
14008
|
* The template for the {@link @microsoft/fast-foundation#(Listbox:class)} component.
|
|
13864
14009
|
* @public
|
|
13865
14010
|
*/
|
|
13866
14011
|
|
|
13867
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({
|
|
13868
|
-
filter:
|
|
14013
|
+
filter: ListboxElement.slottedOptionFilter,
|
|
13869
14014
|
flatten: true,
|
|
13870
14015
|
property: "slottedOptions"
|
|
13871
14016
|
})}></slot></template>`;
|
|
@@ -14049,7 +14194,6 @@ class MenuItem extends FoundationElement {
|
|
|
14049
14194
|
switch (this.role) {
|
|
14050
14195
|
case MenuItemRole.menuitemcheckbox:
|
|
14051
14196
|
this.checked = !this.checked;
|
|
14052
|
-
this.$emit("change");
|
|
14053
14197
|
break;
|
|
14054
14198
|
|
|
14055
14199
|
case MenuItemRole.menuitem:
|
|
@@ -14786,62 +14930,108 @@ class NumberField$1 extends FormAssociatedNumberField {
|
|
|
14786
14930
|
*/
|
|
14787
14931
|
|
|
14788
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;
|
|
14789
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
|
+
*/
|
|
14790
14948
|
|
|
14791
|
-
|
|
14949
|
+
|
|
14950
|
+
maxChanged(previous, next) {
|
|
14792
14951
|
var _a;
|
|
14793
14952
|
|
|
14794
|
-
this.max = Math.max(
|
|
14953
|
+
this.max = Math.max(next, (_a = this.min) !== null && _a !== void 0 ? _a : next);
|
|
14795
14954
|
const min = Math.min(this.min, this.max);
|
|
14796
14955
|
|
|
14797
14956
|
if (this.min !== undefined && this.min !== min) {
|
|
14798
14957
|
this.min = min;
|
|
14799
14958
|
}
|
|
14800
14959
|
|
|
14801
|
-
this.
|
|
14960
|
+
this.value = this.getValidValue(this.value);
|
|
14802
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
|
+
|
|
14803
14971
|
|
|
14804
|
-
minChanged(
|
|
14972
|
+
minChanged(previous, next) {
|
|
14805
14973
|
var _a;
|
|
14806
14974
|
|
|
14807
|
-
this.min = Math.min(
|
|
14975
|
+
this.min = Math.min(next, (_a = this.max) !== null && _a !== void 0 ? _a : next);
|
|
14808
14976
|
const max = Math.max(this.min, this.max);
|
|
14809
14977
|
|
|
14810
14978
|
if (this.max !== undefined && this.max !== max) {
|
|
14811
14979
|
this.max = max;
|
|
14812
14980
|
}
|
|
14813
14981
|
|
|
14814
|
-
this.
|
|
14982
|
+
this.value = this.getValidValue(this.value);
|
|
14815
14983
|
}
|
|
14816
14984
|
/**
|
|
14817
|
-
*
|
|
14818
|
-
* @param
|
|
14819
|
-
* @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
|
|
14820
14990
|
*/
|
|
14821
14991
|
|
|
14822
14992
|
|
|
14823
|
-
valueChanged(
|
|
14824
|
-
|
|
14825
|
-
|
|
14826
|
-
let value = parseFloat(nextValue);
|
|
14993
|
+
valueChanged(previous, next) {
|
|
14994
|
+
this.value = this.getValidValue(next);
|
|
14827
14995
|
|
|
14828
|
-
if (
|
|
14829
|
-
|
|
14830
|
-
} else {
|
|
14831
|
-
value = Math.min(value, (_a = this.max) !== null && _a !== void 0 ? _a : value);
|
|
14832
|
-
value = Math.max(value, (_b = this.min) !== null && _b !== void 0 ? _b : value);
|
|
14996
|
+
if (next !== this.value) {
|
|
14997
|
+
return;
|
|
14833
14998
|
}
|
|
14834
14999
|
|
|
14835
|
-
this.
|
|
14836
|
-
|
|
14837
|
-
if (this.proxy instanceof HTMLInputElement) {
|
|
14838
|
-
this.proxy.value = this.value;
|
|
15000
|
+
if (this.control && !this.isUserInput) {
|
|
15001
|
+
this.control.value = this.value;
|
|
14839
15002
|
}
|
|
14840
15003
|
|
|
14841
|
-
|
|
15004
|
+
super.valueChanged(previous, this.value);
|
|
15005
|
+
|
|
15006
|
+
if (previous !== undefined && !this.isUserInput) {
|
|
14842
15007
|
this.$emit("input");
|
|
14843
15008
|
this.$emit("change");
|
|
14844
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;
|
|
14845
15035
|
}
|
|
14846
15036
|
/**
|
|
14847
15037
|
* Increments the value using the step value
|
|
@@ -14854,7 +15044,6 @@ class NumberField$1 extends FormAssociatedNumberField {
|
|
|
14854
15044
|
const value = parseFloat(this.value);
|
|
14855
15045
|
const stepUpValue = !isNaN(value) ? value + this.step : this.min > 0 ? this.min : this.max < 0 ? this.max : !this.min ? this.step : 0;
|
|
14856
15046
|
this.value = stepUpValue.toString();
|
|
14857
|
-
this.control.value = this.value;
|
|
14858
15047
|
}
|
|
14859
15048
|
/**
|
|
14860
15049
|
* Decrements the value using the step value
|
|
@@ -14867,9 +15056,9 @@ class NumberField$1 extends FormAssociatedNumberField {
|
|
|
14867
15056
|
const value = parseFloat(this.value);
|
|
14868
15057
|
const stepDownValue = !isNaN(value) ? value - this.step : this.min > 0 ? this.min : this.max < 0 ? this.max : !this.min ? 0 - this.step : 0;
|
|
14869
15058
|
this.value = stepDownValue.toString();
|
|
14870
|
-
this.control.value = this.value;
|
|
14871
15059
|
}
|
|
14872
15060
|
/**
|
|
15061
|
+
* Sets up the initial state of the number field
|
|
14873
15062
|
* @internal
|
|
14874
15063
|
*/
|
|
14875
15064
|
|
|
@@ -14894,6 +15083,7 @@ class NumberField$1 extends FormAssociatedNumberField {
|
|
|
14894
15083
|
|
|
14895
15084
|
handleTextInput() {
|
|
14896
15085
|
this.control.value = this.control.value.replace(/[^0-9\-+e.]/g, "");
|
|
15086
|
+
this.isUserInput = true;
|
|
14897
15087
|
this.value = this.control.value;
|
|
14898
15088
|
}
|
|
14899
15089
|
/**
|
|
@@ -15763,7 +15953,7 @@ class HorizontalScroll$1 extends FoundationElement {
|
|
|
15763
15953
|
|
|
15764
15954
|
scrollItemsChanged(previous, next) {
|
|
15765
15955
|
if (next && !this.updatingItems) {
|
|
15766
|
-
this.setStops();
|
|
15956
|
+
DOM.queueUpdate(() => this.setStops());
|
|
15767
15957
|
}
|
|
15768
15958
|
}
|
|
15769
15959
|
/**
|
|
@@ -16048,7 +16238,184 @@ const horizontalScrollTemplate = (context, definition) => {
|
|
|
16048
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>`;
|
|
16049
16239
|
};
|
|
16050
16240
|
|
|
16051
|
-
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 {}
|
|
16052
16419
|
/**
|
|
16053
16420
|
* A form-associated base class for the {@link @microsoft/fast-foundation#(Select:class)} component.
|
|
16054
16421
|
*
|
|
@@ -16357,7 +16724,7 @@ class Select$1 extends FormAssociatedSelect {
|
|
|
16357
16724
|
switch (key) {
|
|
16358
16725
|
case " ":
|
|
16359
16726
|
{
|
|
16360
|
-
if (this.
|
|
16727
|
+
if (this.typeaheadExpired) {
|
|
16361
16728
|
e.preventDefault();
|
|
16362
16729
|
this.open = !this.open;
|
|
16363
16730
|
}
|
|
@@ -16447,7 +16814,7 @@ applyMixins(Select$1, StartEnd, DelegatesARIASelect);
|
|
|
16447
16814
|
*/
|
|
16448
16815
|
|
|
16449
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({
|
|
16450
|
-
filter: Listbox.slottedOptionFilter,
|
|
16817
|
+
filter: Listbox$1.slottedOptionFilter,
|
|
16451
16818
|
flatten: true,
|
|
16452
16819
|
property: "slottedOptions"
|
|
16453
16820
|
})}></slot></div></template>`;
|
|
@@ -16576,7 +16943,7 @@ class SliderLabel extends FoundationElement {
|
|
|
16576
16943
|
let rightNum = Math.round((1 - pct) * 100);
|
|
16577
16944
|
let leftNum = Math.round(pct * 100);
|
|
16578
16945
|
|
|
16579
|
-
if (
|
|
16946
|
+
if (Number.isNaN(leftNum) && Number.isNaN(rightNum)) {
|
|
16580
16947
|
rightNum = 50;
|
|
16581
16948
|
leftNum = 50;
|
|
16582
16949
|
}
|
|
@@ -18759,7 +19126,15 @@ class TreeItem extends FoundationElement {
|
|
|
18759
19126
|
}
|
|
18760
19127
|
|
|
18761
19128
|
handleSelected(e) {
|
|
18762
|
-
|
|
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
|
+
}
|
|
18763
19138
|
}
|
|
18764
19139
|
|
|
18765
19140
|
setExpanded(expanded) {
|
|
@@ -23103,6 +23478,7 @@ const horizontalScrollStyles = horizontalScrollStyles$1;
|
|
|
23103
23478
|
const listboxStyles$1 = (context, definition) => css`
|
|
23104
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}`;
|
|
23105
23480
|
|
|
23481
|
+
class Listbox extends Listbox$1 {}
|
|
23106
23482
|
/**
|
|
23107
23483
|
* The Fluent listbox Custom Element. Implements, {@link @microsoft/fast-foundation#Listbox}
|
|
23108
23484
|
* {@link @microsoft/fast-foundation#listboxTemplate}
|
|
@@ -23464,6 +23840,90 @@ const fluentRadioGroup = RadioGroup.compose({
|
|
|
23464
23840
|
|
|
23465
23841
|
const radioGroupStyles = radioGroupStyles$1;
|
|
23466
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
|
+
|
|
23467
23927
|
/**
|
|
23468
23928
|
* The Fluent select class
|
|
23469
23929
|
* @internal
|
|
@@ -24067,6 +24527,7 @@ const allComponents = {
|
|
|
24067
24527
|
fluentProgressRing,
|
|
24068
24528
|
fluentRadio,
|
|
24069
24529
|
fluentRadioGroup,
|
|
24530
|
+
fluentSearch,
|
|
24070
24531
|
fluentSelect,
|
|
24071
24532
|
fluentSkeleton,
|
|
24072
24533
|
fluentSlider,
|
|
@@ -24122,4 +24583,4 @@ function provideFluentDesignSystem(element) {
|
|
|
24122
24583
|
|
|
24123
24584
|
const FluentDesignSystem = provideFluentDesignSystem().register(allComponents);
|
|
24124
24585
|
|
|
24125
|
-
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 };
|