@fluentui/web-components 3.0.0-beta.7 → 3.0.0-beta.9
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.md +21 -2
- package/dist/dts/accordion/accordion.d.ts +47 -3
- package/dist/dts/accordion/accordion.definition.d.ts +0 -4
- package/dist/dts/accordion/accordion.options.d.ts +14 -0
- package/dist/dts/accordion/accordion.template.d.ts +4 -0
- package/dist/dts/accordion-item/accordion-item.d.ts +78 -3
- package/dist/dts/accordion-item/accordion-item.definition.d.ts +0 -3
- package/dist/dts/accordion-item/accordion-item.options.d.ts +1 -1
- package/dist/dts/accordion-item/accordion-item.template.d.ts +2 -1
- package/dist/dts/anchor-button/anchor-button.d.ts +116 -4
- package/dist/dts/anchor-button/anchor-button.definition.d.ts +0 -3
- package/dist/dts/anchor-button/anchor-button.options.d.ts +19 -2
- package/dist/dts/anchor-button/anchor-button.template.d.ts +7 -2
- package/dist/dts/avatar/avatar.options.d.ts +1 -1
- package/dist/dts/badge/badge.d.ts +1 -1
- package/dist/dts/badge/badge.definition.d.ts +0 -3
- package/dist/dts/badge/badge.options.d.ts +2 -2
- package/dist/dts/button/button.d.ts +142 -4
- package/dist/dts/button/button.definition.d.ts +0 -3
- package/dist/dts/button/button.form-associated.d.ts +14 -0
- package/dist/dts/button/button.options.d.ts +24 -3
- package/dist/dts/button/button.template.d.ts +2 -0
- package/dist/dts/checkbox/checkbox.d.ts +46 -3
- package/dist/dts/checkbox/checkbox.form-associated.d.ts +14 -0
- package/dist/dts/checkbox/checkbox.options.d.ts +1 -1
- package/dist/dts/checkbox/checkbox.template.d.ts +6 -1
- package/dist/dts/compound-button/compound-button.definition.d.ts +0 -3
- package/dist/dts/compound-button/compound-button.options.d.ts +6 -6
- package/dist/dts/counter-badge/counter-badge.d.ts +1 -1
- package/dist/dts/counter-badge/counter-badge.definition.d.ts +0 -4
- package/dist/dts/counter-badge/counter-badge.options.d.ts +1 -1
- package/dist/dts/dialog/dialog.options.d.ts +1 -1
- package/dist/dts/divider/divider.d.ts +20 -4
- package/dist/dts/divider/divider.options.d.ts +30 -6
- package/dist/dts/divider/divider.template.d.ts +1 -0
- package/dist/dts/form-associated/form-associated.d.ts +178 -0
- package/dist/dts/image/image.options.d.ts +1 -1
- package/dist/dts/label/label.options.d.ts +1 -1
- package/dist/dts/menu-button/menu-button.definition.d.ts +0 -3
- package/dist/dts/menu-button/menu-button.options.d.ts +2 -2
- package/dist/dts/menu-item/menu-item.d.ts +161 -4
- package/dist/dts/menu-item/menu-item.definition.d.ts +0 -4
- package/dist/dts/menu-item/menu-item.options.d.ts +30 -0
- package/dist/dts/menu-item/menu-item.template.d.ts +2 -1
- package/dist/dts/menu-list/menu-list.d.ts +71 -4
- package/dist/dts/menu-list/menu-list.definition.d.ts +0 -4
- package/dist/dts/menu-list/menu-list.template.d.ts +1 -0
- package/dist/dts/patterns/aria-globals.d.ts +189 -0
- package/dist/dts/patterns/index.d.ts +2 -0
- package/dist/dts/patterns/start-end.d.ts +44 -0
- package/dist/dts/progress-bar/base-progress.d.ts +41 -0
- package/dist/dts/progress-bar/progress-bar.d.ts +11 -4
- package/dist/dts/progress-bar/progress-bar.options.d.ts +10 -1
- package/dist/dts/progress-bar/progress-bar.template.d.ts +2 -0
- package/dist/dts/progress-ring/progress-ring.d.ts +15 -0
- package/dist/dts/progress-ring/progress-ring.options.d.ts +9 -0
- package/dist/dts/radio/radio.d.ts +54 -3
- package/dist/dts/radio/radio.form-associated.d.ts +14 -0
- package/dist/dts/radio/radio.template.d.ts +2 -1
- package/dist/dts/radio-group/index.d.ts +0 -1
- package/dist/dts/radio-group/radio-group.d.ts +91 -2
- package/dist/dts/radio-group/radio-group.options.d.ts +17 -0
- package/dist/dts/radio-group/radio-group.template.d.ts +1 -0
- package/dist/dts/slider/slider-utilities.d.ts +5 -0
- package/dist/dts/slider/slider.d.ts +195 -5
- package/dist/dts/slider/slider.form-associated.d.ts +14 -0
- package/dist/dts/slider/slider.options.d.ts +43 -2
- package/dist/dts/slider/slider.template.d.ts +4 -2
- package/dist/dts/spinner/spinner.d.ts +2 -2
- package/dist/dts/spinner/spinner.definition.d.ts +0 -4
- package/dist/dts/spinner/spinner.options.d.ts +1 -1
- package/dist/dts/spinner/spinner.template.d.ts +2 -0
- package/dist/dts/switch/switch.d.ts +34 -2
- package/dist/dts/switch/switch.form-associated.d.ts +14 -0
- package/dist/dts/switch/switch.options.d.ts +1 -1
- package/dist/dts/switch/switch.template.d.ts +2 -1
- package/dist/dts/tab/tab.d.ts +17 -2
- package/dist/dts/tab/tab.template.d.ts +3 -3
- package/dist/dts/tab-panel/tab-panel.d.ts +2 -2
- package/dist/dts/tab-panel/tab-panel.template.d.ts +4 -1
- package/dist/dts/tabs/tabs.d.ts +89 -4
- package/dist/dts/tabs/tabs.options.d.ts +21 -3
- package/dist/dts/tabs/tabs.template.d.ts +5 -1
- package/dist/dts/text/text.options.d.ts +1 -1
- package/dist/dts/text-input/index.d.ts +0 -1
- package/dist/dts/text-input/text-field.form-associated.d.ts +14 -0
- package/dist/dts/text-input/text-input.d.ts +134 -6
- package/dist/dts/text-input/text-input.options.d.ts +32 -1
- package/dist/dts/text-input/text-input.template.d.ts +2 -1
- package/dist/dts/theme/design-tokens.d.ts +53 -1
- package/dist/dts/toggle-button/toggle-button.definition.d.ts +0 -2
- package/dist/dts/toggle-button/toggle-button.options.d.ts +2 -2
- package/dist/dts/utils/benchmark-dependencies/tokens.d.ts +1 -0
- package/dist/dts/utils/benchmark-wrapper.d.ts +2 -0
- package/dist/dts/utils/direction.d.ts +10 -0
- package/dist/dts/utils/index.d.ts +4 -0
- package/dist/dts/utils/template-helpers.d.ts +16 -0
- package/dist/dts/utils/typings.d.ts +6 -0
- package/dist/dts/utils/whitespace-filter.d.ts +12 -0
- package/dist/esm/accordion/accordion.definition.js +0 -4
- package/dist/esm/accordion/accordion.definition.js.map +1 -1
- package/dist/esm/accordion/accordion.js +216 -3
- package/dist/esm/accordion/accordion.js.map +1 -1
- package/dist/esm/accordion/accordion.options.js +9 -0
- package/dist/esm/accordion/accordion.options.js.map +1 -0
- package/dist/esm/accordion/accordion.template.js +11 -1
- package/dist/esm/accordion/accordion.template.js.map +1 -1
- package/dist/esm/accordion-item/accordion-item.definition.js +0 -3
- package/dist/esm/accordion-item/accordion-item.definition.js.map +1 -1
- package/dist/esm/accordion-item/accordion-item.js +80 -4
- package/dist/esm/accordion-item/accordion-item.js.map +1 -1
- package/dist/esm/accordion-item/accordion-item.template.js +47 -2
- package/dist/esm/accordion-item/accordion-item.template.js.map +1 -1
- package/dist/esm/anchor-button/anchor-button.definition.js +0 -3
- package/dist/esm/anchor-button/anchor-button.definition.js.map +1 -1
- package/dist/esm/anchor-button/anchor-button.js +52 -4
- package/dist/esm/anchor-button/anchor-button.js.map +1 -1
- package/dist/esm/anchor-button/anchor-button.options.js +11 -0
- package/dist/esm/anchor-button/anchor-button.options.js.map +1 -1
- package/dist/esm/anchor-button/anchor-button.template.js +49 -1
- package/dist/esm/anchor-button/anchor-button.template.js.map +1 -1
- package/dist/esm/badge/badge.definition.js +0 -3
- package/dist/esm/badge/badge.definition.js.map +1 -1
- package/dist/esm/badge/badge.js +1 -1
- package/dist/esm/badge/badge.js.map +1 -1
- package/dist/esm/badge/badge.template.js +2 -2
- package/dist/esm/badge/badge.template.js.map +1 -1
- package/dist/esm/button/button.definition.js +0 -3
- package/dist/esm/button/button.definition.js.map +1 -1
- package/dist/esm/button/button.form-associated.js +14 -0
- package/dist/esm/button/button.form-associated.js.map +1 -0
- package/dist/esm/button/button.js +124 -4
- package/dist/esm/button/button.js.map +1 -1
- package/dist/esm/button/button.options.js +10 -0
- package/dist/esm/button/button.options.js.map +1 -1
- package/dist/esm/button/button.template.js +49 -1
- package/dist/esm/button/button.template.js.map +1 -1
- package/dist/esm/checkbox/checkbox.form-associated.js +14 -0
- package/dist/esm/checkbox/checkbox.form-associated.js.map +1 -0
- package/dist/esm/checkbox/checkbox.js +62 -4
- package/dist/esm/checkbox/checkbox.js.map +1 -1
- package/dist/esm/checkbox/checkbox.template.js +35 -7
- package/dist/esm/checkbox/checkbox.template.js.map +1 -1
- package/dist/esm/compound-button/compound-button.definition.js +0 -3
- package/dist/esm/compound-button/compound-button.definition.js.map +1 -1
- package/dist/esm/compound-button/compound-button.options.js.map +1 -1
- package/dist/esm/compound-button/compound-button.template.js +1 -1
- package/dist/esm/compound-button/compound-button.template.js.map +1 -1
- package/dist/esm/counter-badge/counter-badge.definition.js +0 -4
- package/dist/esm/counter-badge/counter-badge.definition.js.map +1 -1
- package/dist/esm/counter-badge/counter-badge.js +1 -1
- package/dist/esm/counter-badge/counter-badge.js.map +1 -1
- package/dist/esm/divider/divider.js +29 -4
- package/dist/esm/divider/divider.js.map +1 -1
- package/dist/esm/divider/divider.options.js +14 -5
- package/dist/esm/divider/divider.options.js.map +1 -1
- package/dist/esm/divider/divider.template.js +12 -1
- package/dist/esm/divider/divider.template.js.map +1 -1
- package/dist/esm/form-associated/form-associated.js +458 -0
- package/dist/esm/form-associated/form-associated.js.map +1 -0
- package/dist/esm/menu-button/menu-button.definition.js +0 -3
- package/dist/esm/menu-button/menu-button.definition.js.map +1 -1
- package/dist/esm/menu-button/menu-button.options.js.map +1 -1
- package/dist/esm/menu-button/menu-button.template.js +1 -1
- package/dist/esm/menu-button/menu-button.template.js.map +1 -1
- package/dist/esm/menu-item/menu-item.definition.js +0 -4
- package/dist/esm/menu-item/menu-item.definition.js.map +1 -1
- package/dist/esm/menu-item/menu-item.js +270 -4
- package/dist/esm/menu-item/menu-item.js.map +1 -1
- package/dist/esm/menu-item/menu-item.options.js +27 -0
- package/dist/esm/menu-item/menu-item.options.js.map +1 -0
- package/dist/esm/menu-item/menu-item.template.js +57 -2
- package/dist/esm/menu-item/menu-item.template.js.map +1 -1
- package/dist/esm/menu-list/menu-list.definition.js +0 -4
- package/dist/esm/menu-list/menu-list.definition.js.map +1 -1
- package/dist/esm/menu-list/menu-list.js +265 -10
- package/dist/esm/menu-list/menu-list.js.map +1 -1
- package/dist/esm/menu-list/menu-list.template.js +13 -1
- package/dist/esm/menu-list/menu-list.template.js.map +1 -1
- package/dist/esm/patterns/aria-globals.js +77 -0
- package/dist/esm/patterns/aria-globals.js.map +1 -0
- package/dist/esm/patterns/index.js +3 -0
- package/dist/esm/patterns/index.js.map +1 -0
- package/dist/esm/patterns/start-end.js +29 -0
- package/dist/esm/patterns/start-end.js.map +1 -0
- package/dist/esm/progress-bar/base-progress.js +61 -0
- package/dist/esm/progress-bar/base-progress.js.map +1 -0
- package/dist/esm/progress-bar/progress-bar.js +10 -3
- package/dist/esm/progress-bar/progress-bar.js.map +1 -1
- package/dist/esm/progress-bar/progress-bar.options.js.map +1 -1
- package/dist/esm/progress-bar/progress-bar.template.js +25 -1
- package/dist/esm/progress-bar/progress-bar.template.js.map +1 -1
- package/dist/esm/progress-ring/progress-ring.js +16 -0
- package/dist/esm/progress-ring/progress-ring.js.map +1 -0
- package/dist/esm/progress-ring/progress-ring.options.js +2 -0
- package/dist/esm/progress-ring/progress-ring.options.js.map +1 -0
- package/dist/esm/radio/radio.form-associated.js +14 -0
- package/dist/esm/radio/radio.form-associated.js.map +1 -0
- package/dist/esm/radio/radio.js +96 -3
- package/dist/esm/radio/radio.js.map +1 -1
- package/dist/esm/radio/radio.template.js +28 -2
- package/dist/esm/radio/radio.template.js.map +1 -1
- package/dist/esm/radio-group/index.js +0 -1
- package/dist/esm/radio-group/index.js.map +1 -1
- package/dist/esm/radio-group/radio-group.js +346 -3
- package/dist/esm/radio-group/radio-group.js.map +1 -1
- package/dist/esm/radio-group/radio-group.options.js +7 -0
- package/dist/esm/radio-group/radio-group.options.js.map +1 -0
- package/dist/esm/radio-group/radio-group.template.js +30 -1
- package/dist/esm/radio-group/radio-group.template.js.map +1 -1
- package/dist/esm/slider/slider-utilities.js +12 -0
- package/dist/esm/slider/slider-utilities.js.map +1 -0
- package/dist/esm/slider/slider.form-associated.js +14 -0
- package/dist/esm/slider/slider.form-associated.js.map +1 -0
- package/dist/esm/slider/slider.js +432 -16
- package/dist/esm/slider/slider.js.map +1 -1
- package/dist/esm/slider/slider.options.js +11 -1
- package/dist/esm/slider/slider.options.js.map +1 -1
- package/dist/esm/slider/slider.template.js +38 -1
- package/dist/esm/slider/slider.template.js.map +1 -1
- package/dist/esm/spinner/spinner.definition.js +0 -4
- package/dist/esm/spinner/spinner.definition.js.map +1 -1
- package/dist/esm/spinner/spinner.js +2 -2
- package/dist/esm/spinner/spinner.js.map +1 -1
- package/dist/esm/spinner/spinner.template.js +27 -1
- package/dist/esm/spinner/spinner.template.js.map +1 -1
- package/dist/esm/switch/switch.form-associated.js +14 -0
- package/dist/esm/switch/switch.form-associated.js.map +1 -0
- package/dist/esm/switch/switch.js +48 -3
- package/dist/esm/switch/switch.js.map +1 -1
- package/dist/esm/switch/switch.template.js +25 -1
- package/dist/esm/switch/switch.template.js.map +1 -1
- package/dist/esm/tab/tab.js +14 -3
- package/dist/esm/tab/tab.js.map +1 -1
- package/dist/esm/tab/tab.template.js +1 -1
- package/dist/esm/tab/tab.template.js.map +1 -1
- package/dist/esm/tab-panel/tab-panel.js +2 -2
- package/dist/esm/tab-panel/tab-panel.js.map +1 -1
- package/dist/esm/tab-panel/tab-panel.template.js +8 -1
- package/dist/esm/tab-panel/tab-panel.template.js.map +1 -1
- package/dist/esm/tabs/tabs.js +278 -5
- package/dist/esm/tabs/tabs.js.map +1 -1
- package/dist/esm/tabs/tabs.options.js +6 -2
- package/dist/esm/tabs/tabs.options.js.map +1 -1
- package/dist/esm/tabs/tabs.template.js +14 -1
- package/dist/esm/tabs/tabs.template.js.map +1 -1
- package/dist/esm/text-input/index.js +0 -1
- package/dist/esm/text-input/index.js.map +1 -1
- package/dist/esm/text-input/text-field.form-associated.js +14 -0
- package/dist/esm/text-input/text-field.form-associated.js.map +1 -0
- package/dist/esm/text-input/text-input.js +167 -7
- package/dist/esm/text-input/text-input.js.map +1 -1
- package/dist/esm/text-input/text-input.options.js +26 -0
- package/dist/esm/text-input/text-input.options.js.map +1 -1
- package/dist/esm/text-input/text-input.template.js +64 -1
- package/dist/esm/text-input/text-input.template.js.map +1 -1
- package/dist/esm/theme/design-tokens.js +53 -1
- package/dist/esm/theme/design-tokens.js.map +1 -1
- package/dist/esm/toggle-button/toggle-button.definition.js +0 -2
- package/dist/esm/toggle-button/toggle-button.definition.js.map +1 -1
- package/dist/esm/toggle-button/toggle-button.options.js.map +1 -1
- package/dist/esm/toggle-button/toggle-button.template.js +1 -1
- package/dist/esm/toggle-button/toggle-button.template.js.map +1 -1
- package/dist/esm/utils/benchmark-dependencies/tokens.js +2 -0
- package/dist/esm/utils/benchmark-dependencies/tokens.js.map +1 -0
- package/dist/esm/utils/benchmark-wrapper.js +18 -0
- package/dist/esm/utils/benchmark-wrapper.js.map +1 -0
- package/dist/esm/utils/direction.js +15 -0
- package/dist/esm/utils/direction.js.map +1 -0
- package/dist/esm/utils/index.js +5 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/template-helpers.js +19 -0
- package/dist/esm/utils/template-helpers.js.map +1 -0
- package/dist/esm/utils/typings.js +3 -0
- package/dist/esm/utils/typings.js.map +1 -0
- package/dist/esm/utils/whitespace-filter.js +13 -0
- package/dist/esm/utils/whitespace-filter.js.map +1 -0
- package/dist/fluent-web-components.api.json +9315 -3940
- package/dist/storybook/284.0946b1fb.iframe.bundle.js +2 -0
- package/dist/storybook/iframe.html +1 -1
- package/dist/storybook/main.59da076f.iframe.bundle.js +2 -0
- package/dist/storybook/project.json +1 -1
- package/dist/web-components.d.ts +2194 -241
- package/dist/web-components.js +2069 -3196
- package/dist/web-components.min.js +123 -123
- package/docs/api-report.md +600 -90
- package/package.json +5 -2
- package/tensile.config.js +24 -0
- package/dist/storybook/350.e4be85c2.iframe.bundle.js +0 -462
- package/dist/storybook/350.e4be85c2.iframe.bundle.js.map +0 -1
- package/dist/storybook/main.b095c2e8.iframe.bundle.js +0 -2
- /package/dist/storybook/{350.e4be85c2.iframe.bundle.js.LICENSE.txt → 284.0946b1fb.iframe.bundle.js.LICENSE.txt} +0 -0
- /package/dist/storybook/{main.b095c2e8.iframe.bundle.js.LICENSE.txt → main.59da076f.iframe.bundle.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-button.template.js","sourceRoot":"","sources":["../../../src/menu-button/menu-button.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"menu-button.template.js","sourceRoot":"","sources":["../../../src/menu-button/menu-button.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAoC,cAAc,CAAa;IAClF,GAAG,EAAE,IAAI,CAAC,OAAO,CACf,ySAAyS,CAC1S;CACF,CAAC,CAAC"}
|
|
@@ -3,10 +3,6 @@ import { MenuItem } from './menu-item.js';
|
|
|
3
3
|
import { styles } from './menu-item.styles.js';
|
|
4
4
|
import { template } from './menu-item.template.js';
|
|
5
5
|
/**
|
|
6
|
-
* The Fluent Menu Item Element. Implements {@link @microsoft/fast-foundation#MenuItem },
|
|
7
|
-
* {@link @microsoft/fast-foundation#menuItemTemplate}
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
6
|
* @public
|
|
11
7
|
* @remarks
|
|
12
8
|
* HTML Element: <fluent-menu-item>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item.definition.js","sourceRoot":"","sources":["../../../src/menu-item/menu-item.definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD
|
|
1
|
+
{"version":3,"file":"menu-item.definition.js","sourceRoot":"","sources":["../../../src/menu-item/menu-item.definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC;IACzC,IAAI,EAAE,GAAG,kBAAkB,CAAC,MAAM,YAAY;IAC9C,QAAQ;IACR,MAAM;CACP,CAAC,CAAC"}
|
|
@@ -1,9 +1,275 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { autoUpdate, computePosition, flip, shift, size } from '@floating-ui/dom';
|
|
8
|
+
import { attr, FASTElement, observable, Updates } from '@microsoft/fast-element';
|
|
9
|
+
import { keyArrowLeft, keyArrowRight, keyEnter, keyEscape, keySpace } from '@microsoft/fast-web-utilities';
|
|
10
|
+
import { StartEnd } from '../patterns/start-end.js';
|
|
11
|
+
import { applyMixins } from '../utils/apply-mixins.js';
|
|
12
|
+
import { MenuItemRole, roleForMenuItem } from './menu-item.options.js';
|
|
13
|
+
export { MenuItemRole, roleForMenuItem };
|
|
3
14
|
/**
|
|
4
|
-
*
|
|
15
|
+
* A Switch Custom HTML Element.
|
|
16
|
+
* Implements {@link https://www.w3.org/TR/wai-aria-1.1/#menuitem | ARIA menuitem }, {@link https://www.w3.org/TR/wai-aria-1.1/#menuitemcheckbox | ARIA menuitemcheckbox}, or {@link https://www.w3.org/TR/wai-aria-1.1/#menuitemradio | ARIA menuitemradio }.
|
|
17
|
+
*
|
|
18
|
+
* @slot checked-indicator - The checked indicator
|
|
19
|
+
* @slot radio-indicator - The radio indicator
|
|
20
|
+
* @slot start - Content which can be provided before the menu item content
|
|
21
|
+
* @slot end - Content which can be provided after the menu item content
|
|
22
|
+
* @slot - The default slot for menu item content
|
|
23
|
+
* @slot expand-collapse-indicator - The expand/collapse indicator
|
|
24
|
+
* @slot submenu - Used to nest menu's within menu items
|
|
25
|
+
* @csspart input-container - The element representing the visual checked or radio indicator
|
|
26
|
+
* @csspart checkbox - The element wrapping the `menuitemcheckbox` indicator
|
|
27
|
+
* @csspart radio - The element wrapping the `menuitemradio` indicator
|
|
28
|
+
* @csspart content - The element wrapping the menu item content
|
|
29
|
+
* @csspart expand-collapse-glyph-container - The element wrapping the expand collapse element
|
|
30
|
+
* @csspart expand-collapse - The expand/collapse element
|
|
31
|
+
* @csspart submenu-region - The container for the submenu, used for positioning
|
|
32
|
+
* @fires expanded-change - Fires a custom 'expanded-change' event when the expanded state changes
|
|
33
|
+
* @fires change - Fires a custom 'change' event when a non-submenu item with a role of `menuitemcheckbox`, `menuitemradio`, or `menuitem` is invoked
|
|
34
|
+
*
|
|
5
35
|
* @public
|
|
6
36
|
*/
|
|
7
|
-
export class MenuItem extends
|
|
37
|
+
export class MenuItem extends FASTElement {
|
|
38
|
+
constructor() {
|
|
39
|
+
super(...arguments);
|
|
40
|
+
/**
|
|
41
|
+
* The role of the element.
|
|
42
|
+
*
|
|
43
|
+
* @public
|
|
44
|
+
* @remarks
|
|
45
|
+
* HTML Attribute: role
|
|
46
|
+
*/
|
|
47
|
+
this.role = MenuItemRole.menuitem;
|
|
48
|
+
/**
|
|
49
|
+
* The checked value of the element.
|
|
50
|
+
*
|
|
51
|
+
* @public
|
|
52
|
+
* @remarks
|
|
53
|
+
* HTML Attribute: checked
|
|
54
|
+
*/
|
|
55
|
+
this.checked = false;
|
|
56
|
+
this.focusSubmenuOnLoad = false;
|
|
57
|
+
/**
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
60
|
+
this.handleMenuItemKeyDown = (e) => {
|
|
61
|
+
if (e.defaultPrevented) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
switch (e.key) {
|
|
65
|
+
case keyEnter:
|
|
66
|
+
case keySpace:
|
|
67
|
+
this.invoke();
|
|
68
|
+
return false;
|
|
69
|
+
case keyArrowRight:
|
|
70
|
+
//open/focus on submenu
|
|
71
|
+
this.expanded && this.submenu ? this.submenu.focus() : this.expandAndFocus();
|
|
72
|
+
return false;
|
|
73
|
+
case keyEscape:
|
|
74
|
+
// close submenu
|
|
75
|
+
if (this.expanded) {
|
|
76
|
+
this.closeSubMenu();
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
break;
|
|
80
|
+
case keyArrowLeft:
|
|
81
|
+
//close submenu
|
|
82
|
+
if (this.expanded) {
|
|
83
|
+
this.closeSubMenu();
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return true;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* @internal
|
|
91
|
+
*/
|
|
92
|
+
this.handleMenuItemClick = (e) => {
|
|
93
|
+
if (e.defaultPrevented || this.disabled) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
this.invoke();
|
|
97
|
+
return false;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* @internal
|
|
101
|
+
*/
|
|
102
|
+
this.submenuLoaded = () => {
|
|
103
|
+
if (!this.focusSubmenuOnLoad) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
this.focusSubmenuOnLoad = false;
|
|
107
|
+
if (this.submenu) {
|
|
108
|
+
this.submenu.focus();
|
|
109
|
+
this.setAttribute('tabindex', '-1');
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* @internal
|
|
114
|
+
*/
|
|
115
|
+
this.handleMouseOver = (e) => {
|
|
116
|
+
if (this.disabled || !this.hasSubmenu || this.expanded) {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
this.expanded = true;
|
|
120
|
+
return false;
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* @internal
|
|
124
|
+
*/
|
|
125
|
+
this.handleMouseOut = (e) => {
|
|
126
|
+
if (!this.expanded || this.contains(document.activeElement)) {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
this.expanded = false;
|
|
130
|
+
return false;
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* @internal
|
|
134
|
+
*/
|
|
135
|
+
this.closeSubMenu = () => {
|
|
136
|
+
// close submenu
|
|
137
|
+
this.expanded = false;
|
|
138
|
+
this.focus();
|
|
139
|
+
};
|
|
140
|
+
/**
|
|
141
|
+
* @internal
|
|
142
|
+
*/
|
|
143
|
+
this.expandAndFocus = () => {
|
|
144
|
+
if (!this.hasSubmenu) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
this.focusSubmenuOnLoad = true;
|
|
148
|
+
this.expanded = true;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* @internal
|
|
152
|
+
*/
|
|
153
|
+
this.invoke = () => {
|
|
154
|
+
if (this.disabled) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
switch (this.role) {
|
|
158
|
+
case MenuItemRole.menuitemcheckbox:
|
|
159
|
+
this.checked = !this.checked;
|
|
160
|
+
break;
|
|
161
|
+
case MenuItemRole.menuitem:
|
|
162
|
+
if (this.hasSubmenu) {
|
|
163
|
+
this.expandAndFocus();
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
this.$emit('change');
|
|
167
|
+
break;
|
|
168
|
+
case MenuItemRole.menuitemradio:
|
|
169
|
+
if (!this.checked) {
|
|
170
|
+
this.checked = true;
|
|
171
|
+
}
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
expandedChanged(prev, next) {
|
|
177
|
+
if (this.$fastController.isConnected) {
|
|
178
|
+
if (next && this.submenu) {
|
|
179
|
+
this.updateSubmenu();
|
|
180
|
+
}
|
|
181
|
+
this.$emit('expanded-change', this, { bubbles: false });
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
checkedChanged(oldValue, newValue) {
|
|
185
|
+
if (this.$fastController.isConnected) {
|
|
186
|
+
this.$emit('change');
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* @internal
|
|
191
|
+
*/
|
|
192
|
+
get hasSubmenu() {
|
|
193
|
+
return !!this.submenu;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Sets the submenu and updates its position.
|
|
197
|
+
*
|
|
198
|
+
* @internal
|
|
199
|
+
*/
|
|
200
|
+
slottedSubmenuChanged(prev, next) {
|
|
201
|
+
if (next.length) {
|
|
202
|
+
this.submenu = next[0];
|
|
203
|
+
this.updateSubmenu();
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* @internal
|
|
208
|
+
*/
|
|
209
|
+
disconnectedCallback() {
|
|
210
|
+
var _a;
|
|
211
|
+
(_a = this.cleanup) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
212
|
+
super.disconnectedCallback();
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Calculate and apply submenu positioning.
|
|
216
|
+
*
|
|
217
|
+
* @public
|
|
218
|
+
*/
|
|
219
|
+
updateSubmenu() {
|
|
220
|
+
var _a;
|
|
221
|
+
(_a = this.cleanup) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
222
|
+
if (!this.submenu || !this.expanded) {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
Updates.enqueue(() => {
|
|
226
|
+
this.cleanup = autoUpdate(this, this.submenuContainer, async () => {
|
|
227
|
+
const fallbackPlacements = ['left-start', 'right-start'];
|
|
228
|
+
const { x, y } = await computePosition(this, this.submenuContainer, {
|
|
229
|
+
middleware: [
|
|
230
|
+
shift(),
|
|
231
|
+
size({
|
|
232
|
+
apply: ({ availableWidth, rects }) => {
|
|
233
|
+
if (availableWidth < rects.floating.width) {
|
|
234
|
+
fallbackPlacements.push('bottom-end', 'top-end');
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
}),
|
|
238
|
+
flip({ fallbackPlacements }),
|
|
239
|
+
],
|
|
240
|
+
placement: 'right-start',
|
|
241
|
+
strategy: 'fixed',
|
|
242
|
+
});
|
|
243
|
+
Object.assign(this.submenuContainer.style, {
|
|
244
|
+
left: `${x}px`,
|
|
245
|
+
position: 'fixed',
|
|
246
|
+
top: `${y}px`,
|
|
247
|
+
});
|
|
248
|
+
this.submenuLoaded();
|
|
249
|
+
});
|
|
250
|
+
});
|
|
251
|
+
}
|
|
8
252
|
}
|
|
253
|
+
__decorate([
|
|
254
|
+
attr({ mode: 'boolean' })
|
|
255
|
+
], MenuItem.prototype, "disabled", void 0);
|
|
256
|
+
__decorate([
|
|
257
|
+
attr({ mode: 'boolean' })
|
|
258
|
+
], MenuItem.prototype, "expanded", void 0);
|
|
259
|
+
__decorate([
|
|
260
|
+
attr
|
|
261
|
+
], MenuItem.prototype, "role", void 0);
|
|
262
|
+
__decorate([
|
|
263
|
+
attr({ mode: 'boolean' })
|
|
264
|
+
], MenuItem.prototype, "checked", void 0);
|
|
265
|
+
__decorate([
|
|
266
|
+
attr({ mode: 'boolean' })
|
|
267
|
+
], MenuItem.prototype, "hidden", void 0);
|
|
268
|
+
__decorate([
|
|
269
|
+
observable
|
|
270
|
+
], MenuItem.prototype, "slottedSubmenu", void 0);
|
|
271
|
+
__decorate([
|
|
272
|
+
observable
|
|
273
|
+
], MenuItem.prototype, "submenu", void 0);
|
|
274
|
+
applyMixins(MenuItem, StartEnd);
|
|
9
275
|
//# sourceMappingURL=menu-item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item.js","sourceRoot":"","sources":["../../../src/menu-item/menu-item.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"menu-item.js","sourceRoot":"","sources":["../../../src/menu-item/menu-item.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Menu items roles.
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
5
|
+
export const MenuItemRole = {
|
|
6
|
+
/**
|
|
7
|
+
* The menu item has a "menuitem" role
|
|
8
|
+
*/
|
|
9
|
+
menuitem: 'menuitem',
|
|
10
|
+
/**
|
|
11
|
+
* The menu item has a "menuitemcheckbox" role
|
|
12
|
+
*/
|
|
13
|
+
menuitemcheckbox: 'menuitemcheckbox',
|
|
14
|
+
/**
|
|
15
|
+
* The menu item has a "menuitemradio" role
|
|
16
|
+
*/
|
|
17
|
+
menuitemradio: 'menuitemradio',
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export const roleForMenuItem = {
|
|
23
|
+
[MenuItemRole.menuitem]: 'menuitem',
|
|
24
|
+
[MenuItemRole.menuitemcheckbox]: 'menuitemcheckbox',
|
|
25
|
+
[MenuItemRole.menuitemradio]: 'menuitemradio',
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=menu-item.options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-item.options.js","sourceRoot":"","sources":["../../../src/menu-item/menu-item.options.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B;;OAEG;IACH,QAAQ,EAAE,UAAU;IAEpB;;OAEG;IACH,gBAAgB,EAAE,kBAAkB;IAEpC;;OAEG;IACH,aAAa,EAAE,eAAe;CACtB,CAAC;AAQX;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAExB;IACF,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,UAAU;IACnC,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,kBAAkB;IACnD,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,eAAe;CAC9C,CAAC"}
|
|
@@ -1,7 +1,62 @@
|
|
|
1
|
-
import { html } from '@microsoft/fast-element';
|
|
2
|
-
import {
|
|
1
|
+
import { elements, html, ref, slotted, when } from '@microsoft/fast-element';
|
|
2
|
+
import { staticallyCompose } from '../utils/template-helpers.js';
|
|
3
|
+
import { endSlotTemplate, startSlotTemplate } from '../patterns/index.js';
|
|
4
|
+
import { MenuItemRole } from './menu-item.js';
|
|
3
5
|
const Checkmark16Filled = html.partial(`<svg fill="currentColor" class="___12fm75w f1w7gpdv fez10in fg4l7m0" aria-hidden="true" width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.05 3.49c.28.3.27.77-.04 1.06l-7.93 7.47A.85.85 0 014.9 12L2.22 9.28a.75.75 0 111.06-1.06l2.24 2.27 7.47-7.04a.75.75 0 011.06.04z" fill="currentColor"></path></svg>`);
|
|
4
6
|
const chevronRight16Filled = html.partial(`<svg fill="currentColor" class="___12fm75w f1w7gpdv fez10in fg4l7m0" aria-hidden="true" width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5.74 3.2a.75.75 0 00-.04 1.06L9.23 8 5.7 11.74a.75.75 0 101.1 1.02l4-4.25a.75.75 0 000-1.02l-4-4.25a.75.75 0 00-1.06-.04z" fill="currentColor"></path></svg>`);
|
|
7
|
+
export function menuItemTemplate(options = {}) {
|
|
8
|
+
return html `
|
|
9
|
+
<template
|
|
10
|
+
aria-haspopup="${x => (x.hasSubmenu ? 'menu' : void 0)}"
|
|
11
|
+
aria-checked="${x => (x.role !== MenuItemRole.menuitem ? x.checked : void 0)}"
|
|
12
|
+
aria-disabled="${x => x.disabled}"
|
|
13
|
+
aria-expanded="${x => x.expanded}"
|
|
14
|
+
@keydown="${(x, c) => x.handleMenuItemKeyDown(c.event)}"
|
|
15
|
+
@click="${(x, c) => x.handleMenuItemClick(c.event)}"
|
|
16
|
+
@mouseover="${(x, c) => x.handleMouseOver(c.event)}"
|
|
17
|
+
@mouseout="${(x, c) => x.handleMouseOut(c.event)}"
|
|
18
|
+
>
|
|
19
|
+
${when(x => x.role === MenuItemRole.menuitemcheckbox, html `
|
|
20
|
+
<div part="input-container" class="input-container">
|
|
21
|
+
<span part="checkbox" class="checkbox">
|
|
22
|
+
<slot name="checkbox-indicator"> ${staticallyCompose(options.checkboxIndicator)} </slot>
|
|
23
|
+
</span>
|
|
24
|
+
</div>
|
|
25
|
+
`)}
|
|
26
|
+
${when(x => x.role === MenuItemRole.menuitemradio, html `
|
|
27
|
+
<div part="input-container" class="input-container">
|
|
28
|
+
<span part="radio" class="radio">
|
|
29
|
+
<slot name="radio-indicator"> ${staticallyCompose(options.radioIndicator)} </slot>
|
|
30
|
+
</span>
|
|
31
|
+
</div>
|
|
32
|
+
`)}
|
|
33
|
+
</div>
|
|
34
|
+
${startSlotTemplate(options)}
|
|
35
|
+
<span class="content" part="content">
|
|
36
|
+
<slot></slot>
|
|
37
|
+
</span>
|
|
38
|
+
${endSlotTemplate(options)}
|
|
39
|
+
${when(x => x.hasSubmenu, html `
|
|
40
|
+
<div part="expand-collapse-glyph-container" class="expand-collapse-glyph-container">
|
|
41
|
+
<span part="expand-collapse" class="expand-collapse">
|
|
42
|
+
<slot name="expand-collapse-indicator"> ${staticallyCompose(options.expandCollapseGlyph)} </slot>
|
|
43
|
+
</span>
|
|
44
|
+
</div>
|
|
45
|
+
`)}
|
|
46
|
+
<span
|
|
47
|
+
?hidden="${x => !x.expanded}"
|
|
48
|
+
class="submenu-container"
|
|
49
|
+
part="submenu-container"
|
|
50
|
+
${ref('submenuContainer')}
|
|
51
|
+
>
|
|
52
|
+
<slot name="submenu" ${slotted({
|
|
53
|
+
property: 'slottedSubmenu',
|
|
54
|
+
filter: elements("[role='menu']"),
|
|
55
|
+
})}></slot>
|
|
56
|
+
</span>
|
|
57
|
+
</template>
|
|
58
|
+
`;
|
|
59
|
+
}
|
|
5
60
|
export const template = menuItemTemplate({
|
|
6
61
|
checkboxIndicator: Checkmark16Filled,
|
|
7
62
|
expandCollapseGlyph: chevronRight16Filled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item.template.js","sourceRoot":"","sources":["../../../src/menu-item/menu-item.template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"menu-item.template.js","sourceRoot":"","sources":["../../../src/menu-item/menu-item.template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CACpC,wVAAwV,CACzV,CAAC;AACF,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CACvC,8UAA8U,CAC/U,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAqB,UAA2B,EAAE;IAChF,OAAO,IAAI,CAAG;;uBAEO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;sBACtC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;uBAC3D,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;uBACf,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;kBACpB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAsB,CAAC;gBAC7D,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAmB,CAAC;oBAClD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAmB,CAAC;mBACnD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAmB,CAAC;;YAExD,IAAI,CACJ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,gBAAgB,EAC7C,IAAI,CAAU;;;qDAG2B,iBAAiB,CAAC,OAAO,CAAC,iBAAiB,CAAC;;;aAGpF,CACF;YACC,IAAI,CACJ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,aAAa,EAC1C,IAAI,CAAU;;;kDAGwB,iBAAiB,CAAC,OAAO,CAAC,cAAc,CAAC;;;aAG9E,CACF;;QAEH,iBAAiB,CAAC,OAAO,CAAC;;;;QAI1B,eAAe,CAAC,OAAO,CAAC;QACxB,IAAI,CACJ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EACjB,IAAI,CAAG;;;wDAGyC,iBAAiB,CAAC,OAAO,CAAC,mBAAmB,CAAC;;;SAG7F,CACF;;qBAEc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ;;;YAGzB,GAAG,CAAC,kBAAkB,CAAC;;iCAEF,OAAO,CAAC;QAC7B,QAAQ,EAAE,gBAAgB;QAC1B,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC;KAClC,CAAC;;;GAGT,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAkC,gBAAgB,CAAC;IACtE,iBAAiB,EAAE,iBAAiB;IACpC,mBAAmB,EAAE,oBAAoB;IACzC,cAAc,EAAE,iBAAiB;CAClC,CAAC,CAAC"}
|
|
@@ -3,10 +3,6 @@ import { MenuList } from './menu-list.js';
|
|
|
3
3
|
import { styles } from './menu-list.styles.js';
|
|
4
4
|
import { template } from './menu-list.template.js';
|
|
5
5
|
/**
|
|
6
|
-
* The Fluent MenuList Element. Implements {@link @microsoft/fast-foundation#Menu },
|
|
7
|
-
* {@link @microsoft/fast-foundation#menuTemplate}
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
6
|
* @public
|
|
11
7
|
* @remarks
|
|
12
8
|
* HTML Element: <fluent-menu-list>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-list.definition.js","sourceRoot":"","sources":["../../../src/menu-list/menu-list.definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD
|
|
1
|
+
{"version":3,"file":"menu-list.definition.js","sourceRoot":"","sources":["../../../src/menu-list/menu-list.definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC;IACzC,IAAI,EAAE,GAAG,kBAAkB,CAAC,MAAM,YAAY;IAC9C,QAAQ;IACR,MAAM;CACP,CAAC,CAAC"}
|