@ni/nimble-components 7.2.2 → 7.4.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.
Files changed (105) hide show
  1. package/README.md +24 -1
  2. package/dist/all-components-bundle.js +18621 -0
  3. package/dist/all-components-bundle.js.map +1 -0
  4. package/dist/all-components-bundle.min.js +1344 -0
  5. package/dist/all-components-bundle.min.js.map +1 -0
  6. package/dist/esm/all-components.d.ts +27 -0
  7. package/dist/esm/all-components.js +28 -0
  8. package/dist/esm/all-components.js.map +1 -0
  9. package/dist/esm/breadcrumb/index.d.ts +1 -2
  10. package/dist/esm/breadcrumb/index.js +1 -2
  11. package/dist/esm/breadcrumb/index.js.map +1 -1
  12. package/dist/esm/breadcrumb-item/index.d.ts +1 -2
  13. package/dist/esm/breadcrumb-item/index.js +1 -2
  14. package/dist/esm/breadcrumb-item/index.js.map +1 -1
  15. package/dist/esm/button/index.d.ts +1 -2
  16. package/dist/esm/button/index.js +1 -2
  17. package/dist/esm/button/index.js.map +1 -1
  18. package/dist/esm/checkbox/index.d.ts +1 -2
  19. package/dist/esm/checkbox/index.js +1 -2
  20. package/dist/esm/checkbox/index.js.map +1 -1
  21. package/dist/esm/drawer/index.d.ts +1 -2
  22. package/dist/esm/drawer/index.js +1 -2
  23. package/dist/esm/drawer/index.js.map +1 -1
  24. package/dist/esm/listbox-option/index.d.ts +1 -2
  25. package/dist/esm/listbox-option/index.js +1 -2
  26. package/dist/esm/listbox-option/index.js.map +1 -1
  27. package/dist/esm/menu/index.d.ts +1 -2
  28. package/dist/esm/menu/index.js +1 -2
  29. package/dist/esm/menu/index.js.map +1 -1
  30. package/dist/esm/menu-item/index.d.ts +1 -2
  31. package/dist/esm/menu-item/index.js +1 -2
  32. package/dist/esm/menu-item/index.js.map +1 -1
  33. package/dist/esm/nimble-components/src/all-components.d.ts +27 -0
  34. package/dist/esm/nimble-components/src/breadcrumb/index.d.ts +1 -2
  35. package/dist/esm/nimble-components/src/breadcrumb-item/index.d.ts +1 -2
  36. package/dist/esm/nimble-components/src/button/index.d.ts +1 -2
  37. package/dist/esm/nimble-components/src/checkbox/index.d.ts +1 -2
  38. package/dist/esm/nimble-components/src/drawer/index.d.ts +1 -2
  39. package/dist/esm/nimble-components/src/listbox-option/index.d.ts +1 -2
  40. package/dist/esm/nimble-components/src/menu/index.d.ts +1 -2
  41. package/dist/esm/nimble-components/src/menu-item/index.d.ts +1 -2
  42. package/dist/esm/nimble-components/src/number-field/index.d.ts +1 -2
  43. package/dist/esm/nimble-components/src/select/index.d.ts +1 -2
  44. package/dist/esm/nimble-components/src/switch/index.d.ts +1 -2
  45. package/dist/esm/nimble-components/src/tab/index.d.ts +1 -2
  46. package/dist/esm/nimble-components/src/tab-panel/index.d.ts +1 -2
  47. package/dist/esm/nimble-components/src/tabs/index.d.ts +1 -2
  48. package/dist/esm/nimble-components/src/tabs-toolbar/index.d.ts +1 -2
  49. package/dist/esm/nimble-components/src/tabs-toolbar/template.d.ts +2 -1
  50. package/dist/esm/nimble-components/src/text-area/index.d.ts +1 -2
  51. package/dist/esm/nimble-components/src/text-field/index.d.ts +1 -2
  52. package/dist/esm/nimble-components/src/toggle-button/index.d.ts +1 -2
  53. package/dist/esm/nimble-components/src/toolbar/index.d.ts +11 -0
  54. package/dist/esm/nimble-components/src/toolbar/styles.d.ts +1 -0
  55. package/dist/esm/nimble-components/src/tree-item/index.d.ts +1 -2
  56. package/dist/esm/nimble-components/src/tree-item/styles.d.ts +2 -2
  57. package/dist/esm/nimble-components/src/tree-view/index.d.ts +1 -2
  58. package/dist/esm/number-field/index.d.ts +1 -2
  59. package/dist/esm/number-field/index.js +1 -2
  60. package/dist/esm/number-field/index.js.map +1 -1
  61. package/dist/esm/select/index.d.ts +1 -2
  62. package/dist/esm/select/index.js +1 -2
  63. package/dist/esm/select/index.js.map +1 -1
  64. package/dist/esm/switch/index.d.ts +1 -2
  65. package/dist/esm/switch/index.js +1 -1
  66. package/dist/esm/switch/index.js.map +1 -1
  67. package/dist/esm/tab/index.d.ts +1 -2
  68. package/dist/esm/tab/index.js +1 -2
  69. package/dist/esm/tab/index.js.map +1 -1
  70. package/dist/esm/tab-panel/index.d.ts +1 -2
  71. package/dist/esm/tab-panel/index.js +1 -2
  72. package/dist/esm/tab-panel/index.js.map +1 -1
  73. package/dist/esm/tabs/index.d.ts +1 -2
  74. package/dist/esm/tabs/index.js +1 -2
  75. package/dist/esm/tabs/index.js.map +1 -1
  76. package/dist/esm/tabs-toolbar/index.d.ts +1 -2
  77. package/dist/esm/tabs-toolbar/index.js +1 -1
  78. package/dist/esm/tabs-toolbar/index.js.map +1 -1
  79. package/dist/esm/tabs-toolbar/template.d.ts +2 -1
  80. package/dist/esm/tabs-toolbar/template.js.map +1 -1
  81. package/dist/esm/text-area/index.d.ts +1 -2
  82. package/dist/esm/text-area/index.js +1 -2
  83. package/dist/esm/text-area/index.js.map +1 -1
  84. package/dist/esm/text-field/index.d.ts +1 -2
  85. package/dist/esm/text-field/index.js +1 -2
  86. package/dist/esm/text-field/index.js.map +1 -1
  87. package/dist/esm/toggle-button/index.d.ts +1 -2
  88. package/dist/esm/toggle-button/index.js +1 -1
  89. package/dist/esm/toggle-button/index.js.map +1 -1
  90. package/dist/esm/toolbar/index.d.ts +11 -0
  91. package/dist/esm/toolbar/index.js +18 -0
  92. package/dist/esm/toolbar/index.js.map +1 -0
  93. package/dist/esm/toolbar/styles.d.ts +1 -0
  94. package/dist/esm/toolbar/styles.js +28 -0
  95. package/dist/esm/toolbar/styles.js.map +1 -0
  96. package/dist/esm/tree-item/index.d.ts +1 -2
  97. package/dist/esm/tree-item/index.js +6 -9
  98. package/dist/esm/tree-item/index.js.map +1 -1
  99. package/dist/esm/tree-item/styles.d.ts +2 -2
  100. package/dist/esm/tree-item/styles.js +180 -180
  101. package/dist/esm/tree-item/styles.js.map +1 -1
  102. package/dist/esm/tree-view/index.d.ts +1 -2
  103. package/dist/esm/tree-view/index.js +1 -2
  104. package/dist/esm/tree-view/index.js.map +1 -1
  105. package/package.json +8 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"all-components-bundle.js","sources":["../../../node_modules/@microsoft/fast-element/dist/esm/platform.js","../../../node_modules/@microsoft/fast-element/dist/esm/dom.js","../../../node_modules/@microsoft/fast-element/dist/esm/observation/notifier.js","../../../node_modules/@microsoft/fast-element/dist/esm/observation/observable.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/html-directive.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/binding.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/compiler.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/view.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/template.js","../../../node_modules/@microsoft/fast-element/dist/esm/styles/element-styles.js","../../../node_modules/@microsoft/fast-element/dist/esm/components/attributes.js","../../../node_modules/@microsoft/fast-element/dist/esm/components/fast-definitions.js","../../../node_modules/@microsoft/fast-element/dist/esm/components/controller.js","../../../node_modules/@microsoft/fast-element/dist/esm/components/fast-element.js","../../../node_modules/@microsoft/fast-element/dist/esm/styles/css-directive.js","../../../node_modules/@microsoft/fast-element/dist/esm/styles/css.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/ref.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/when.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/node-observation.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/slotted.js","../../../node_modules/@microsoft/fast-element/dist/esm/templating/children.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/patterns/start-end.js","../../../node_modules/@microsoft/fast-foundation/node_modules/tslib/tslib.es6.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/di/di.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/design-system/component-presentation.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/foundation-element/foundation-element.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/apply-mixins.js","../../../node_modules/@microsoft/fast-web-utilities/dist/array.js","../../../node_modules/exenv-es6/dist/can-use-dom.js","../../../node_modules/@microsoft/fast-web-utilities/dist/dom.js","../../../node_modules/@microsoft/fast-web-utilities/dist/events.js","../../../node_modules/@microsoft/fast-web-utilities/dist/key-codes.js","../../../node_modules/@microsoft/fast-web-utilities/dist/localization.js","../../../node_modules/@microsoft/fast-web-utilities/dist/numbers.js","../../../node_modules/@microsoft/fast-web-utilities/dist/strings.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/anchor/anchor.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/patterns/aria-global.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/anchor/anchor.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/direction.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/intersection-service.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/anchored-region/anchored-region.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/breadcrumb-item/breadcrumb-item.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/breadcrumb-item/breadcrumb-item.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/breadcrumb/breadcrumb.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/breadcrumb/breadcrumb.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/button/button.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/form-associated/form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/button/button.form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/button/button.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/checkbox/checkbox.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/checkbox/checkbox.form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/checkbox/checkbox.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/listbox-option/listbox-option.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/listbox/listbox.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/select/select.options.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/composed-parent.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/composed-contains.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/property-stylesheet-behavior.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/style/display.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/style/focus.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/utilities/whitespace-filter.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/design-token/custom-property-manager.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/design-token/design-token.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/design-system/design-system.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/dialog/dialog.template.js","../../../node_modules/tabbable/dist/index.esm.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/dialog/dialog.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/listbox-option/listbox-option.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/menu-item/menu-item.options.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/menu-item/menu-item.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/menu-item/menu-item.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/menu/menu.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/menu/menu.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/number-field/number-field.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/text-field/text-field.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/text-field/text-field.form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/text-field/text-field.options.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/text-field/text-field.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/number-field/number-field.form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/number-field/number-field.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/select/select.form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/select/select.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/select/select.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/switch/switch.form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/switch/switch.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tab-panel/tab-panel.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tab-panel/tab-panel.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tab/tab.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tab/tab.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tabs/tabs.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tabs/tabs.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/text-area/text-area.form-associated.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/text-area/text-area.options.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/text-area/text-area.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/text-area/text-area.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tree-item/tree-item.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tree-item/tree-item.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tree-view/tree-view.template.js","../../../node_modules/@microsoft/fast-foundation/dist/esm/tree-view/tree-view.js","../../nimble-tokens/dist/styledictionary/js/tokens.js","../../../node_modules/hex-rgb/index.js","esm/theme-provider/types.js","esm/theme-provider/design-token-names.js","../../../node_modules/tslib/tslib.es6.js","esm/theme-provider/template.js","esm/theme-provider/styles.js","esm/theme-provider/index.js","esm/utilities/style/colors.js","esm/theme-provider/design-tokens.js","esm/utilities/style/theme.js","esm/breadcrumb/styles.js","esm/breadcrumb/index.js","../../nimble-tokens/dist-icons-esm/nimble-icons-inline.js","esm/utilities/style/focus.js","esm/breadcrumb-item/styles.js","esm/breadcrumb-item/index.js","esm/utilities/style/appearance.js","esm/patterns/button/types.js","esm/patterns/button/styles.js","esm/button/styles.js","esm/button/index.js","esm/checkbox/styles.js","esm/checkbox/index.js","../../../node_modules/@microsoft/fast-animation/dist/animate/index.js","../../../node_modules/@microsoft/fast-animation/dist/animateTo/index.js","../../../node_modules/@microsoft/fast-animation/dist/animateFrom/index.js","../../../node_modules/@microsoft/fast-animation/dist/utilities/invokeFunctionForEach.js","../../../node_modules/@microsoft/fast-animation/dist/animateGroup/index.js","../../../node_modules/@microsoft/fast-animation/dist/animateSequence/index.js","../../../node_modules/@microsoft/fast-animation/dist/fade/index.js","../../../node_modules/@microsoft/fast-animation/dist/curves/config.js","../../../node_modules/@microsoft/fast-animation/dist/curves/index.js","../../../node_modules/@microsoft/fast-animation/dist/utilities/isElementInView.js","../../../node_modules/@microsoft/fast-animation/dist/utilities/scrollY.js","../../../node_modules/@microsoft/fast-animation/dist/triggers/ScrollBase.js","../../../node_modules/@microsoft/fast-animation/dist/triggers/ScrollTrigger.js","../../../node_modules/@microsoft/fast-animation/dist/triggers/ViewEnterTrigger.js","../../../node_modules/@microsoft/fast-animation/dist/triggers/ViewExitTrigger.js","../../../node_modules/@microsoft/fast-animation/dist/index.js","esm/utilities/style/prefers-reduced-motion.js","esm/drawer/animations.js","esm/drawer/styles.js","esm/drawer/types.js","esm/drawer/index.js","esm/icon-base/template.js","esm/icon-base/styles.js","esm/icon-base/index.js","esm/icons/add.js","esm/icons/arrow-down-right-and-arrow-up-left.js","esm/icons/arrow-expander-down.js","esm/icons/arrow-expander-left.js","esm/icons/arrow-expander-right.js","esm/icons/arrow-expander-up.js","esm/icons/arrow-left-from-line.js","esm/icons/arrow-partial-rotate-left.js","esm/icons/arrow-right-to-line.js","esm/icons/arrow-rotate-right.js","esm/icons/arrow-u-rotate-left.js","esm/icons/arrow-up-left-and-arrow-down-right.js","esm/icons/arrows-maximize.js","esm/icons/arrows-repeat.js","esm/icons/bars.js","esm/icons/bell.js","esm/icons/bell-and-comment.js","esm/icons/bell-circle.js","esm/icons/bell-solid-circle.js","esm/icons/block-with-ribbon.js","esm/icons/calendar.js","esm/icons/chart-diagram.js","esm/icons/chart-diagram-child-focus.js","esm/icons/chart-diagram-parent-focus.js","esm/icons/chart-diagram-parent-focus-two-child.js","esm/icons/check.js","esm/icons/check-dot.js","esm/icons/circle.js","esm/icons/circle-broken.js","esm/icons/circle-check.js","esm/icons/circle-partial-broken.js","esm/icons/circle-slash.js","esm/icons/circle-x.js","esm/icons/clipboard.js","esm/icons/clock.js","esm/icons/clock-cog.js","esm/icons/clock-triangle.js","esm/icons/clone.js","esm/icons/cloud-upload.js","esm/icons/cloud-with-arrow.js","esm/icons/cog.js","esm/icons/cog-database.js","esm/icons/cog-database-inset.js","esm/icons/cog-small-cog.js","esm/icons/cog-zoomed.js","esm/icons/comment.js","esm/icons/computer-and-monitor.js","esm/icons/copy.js","esm/icons/copy-text.js","esm/icons/dashboard-builder.js","esm/icons/dashboard-builder-legend.js","esm/icons/dashboard-builder-templates.js","esm/icons/dashboard-builder-tile.js","esm/icons/database.js","esm/icons/database-check.js","esm/icons/desktop.js","esm/icons/donut-chart.js","esm/icons/dot-solid-dot-stroke.js","esm/icons/download.js","esm/icons/electronic-chip-zoomed.js","esm/icons/exclamation-mark.js","esm/icons/eye.js","esm/icons/fancy-a.js","esm/icons/file.js","esm/icons/file-drawer.js","esm/icons/file-search.js","esm/icons/filter.js","esm/icons/floppy-disk-checkmark.js","esm/icons/floppy-disk-star-arrow-right.js","esm/icons/floppy-disk-three-dots.js","esm/icons/folder.js","esm/icons/folder-open.js","esm/icons/forward-slash.js","esm/icons/four-dots-square.js","esm/icons/function.js","esm/icons/gauge-simple.js","esm/icons/grid-three-by-three.js","esm/icons/grid-two-by-two.js","esm/icons/hammer.js","esm/icons/hashtag.js","esm/icons/home.js","esm/icons/hourglass.js","esm/icons/indeterminant-checkbox.js","esm/icons/info.js","esm/icons/info-circle.js","esm/icons/key.js","esm/icons/laptop.js","esm/icons/layer-group.js","esm/icons/lightning-bolt.js","esm/icons/link.js","esm/icons/link-cancel.js","esm/icons/list.js","esm/icons/list-tree.js","esm/icons/list-tree-database.js","esm/icons/lock.js","esm/icons/magnifying-glass.js","esm/icons/markdown.js","esm/icons/minus.js","esm/icons/minus-wide.js","esm/icons/mobile.js","esm/icons/notebook.js","esm/icons/paste.js","esm/icons/pencil.js","esm/icons/pot-with-lid.js","esm/icons/question.js","esm/icons/running-arrow.js","esm/icons/server.js","esm/icons/share-square.js","esm/icons/shield-check.js","esm/icons/shield-xmark.js","esm/icons/signal-bars.js","esm/icons/sine-graph.js","esm/icons/skip-arrow.js","esm/icons/spinner.js","esm/icons/square-check.js","esm/icons/square-t.js","esm/icons/t.js","esm/icons/tablet.js","esm/icons/tag.js","esm/icons/tags.js","esm/icons/target-crosshairs.js","esm/icons/target-crosshairs-progress.js","esm/icons/three-dots-line.js","esm/icons/thumbtack.js","esm/icons/tile-size.js","esm/icons/times.js","esm/icons/trash.js","esm/icons/triangle.js","esm/icons/true-false-rectangle.js","esm/icons/unlink.js","esm/icons/unlock.js","esm/icons/upload.js","esm/icons/user.js","esm/icons/watch.js","esm/icons/waveform.js","esm/icons/webvi-custom.js","esm/icons/webvi-host.js","esm/icons/window-code.js","esm/icons/window-text.js","esm/icons/wrench-hammer.js","esm/icons/xmark.js","esm/icons/xmark-check.js","esm/listbox-option/styles.js","esm/listbox-option/index.js","esm/menu/styles.js","esm/menu/index.js","esm/menu-item/styles.js","esm/menu-item/index.js","esm/number-field/styles.js","esm/number-field/index.js","esm/select/styles.js","esm/select/index.js","esm/switch/styles.js","esm/switch/template.js","esm/switch/index.js","esm/tab/styles.js","esm/tab/index.js","esm/tab-panel/styles.js","esm/tab-panel/index.js","esm/tabs/styles.js","esm/tabs/index.js","esm/tabs-toolbar/styles.js","esm/tabs-toolbar/template.js","esm/tabs-toolbar/index.js","esm/text-area/types.js","esm/text-area/styles.js","esm/text-area/index.js","esm/text-field/types.js","esm/text-field/styles.js","esm/text-field/index.js","esm/toggle-button/styles.js","esm/toggle-button/template.js","esm/toggle-button/index.js","esm/tree-view/types.js","esm/utilities/style/direction.js","esm/tree-item/styles.js","esm/tree-item/index.js","esm/tree-view/styles.js","esm/tree-view/index.js"],"sourcesContent":["/**\n * A reference to globalThis, with support\n * for browsers that don't yet support the spec.\n * @public\n */\nexport const $global = (function () {\n if (typeof globalThis !== \"undefined\") {\n // We're running in a modern environment.\n return globalThis;\n }\n if (typeof global !== \"undefined\") {\n // We're running in NodeJS\n return global;\n }\n if (typeof self !== \"undefined\") {\n // We're running in a worker.\n return self;\n }\n if (typeof window !== \"undefined\") {\n // We're running in the browser's main thread.\n return window;\n }\n try {\n // Hopefully we never get here...\n // Not all environments allow eval and Function. Use only as a last resort:\n // eslint-disable-next-line no-new-func\n return new Function(\"return this\")();\n }\n catch (_a) {\n // If all fails, give up and create an object.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n return {};\n }\n})();\n// API-only Polyfill for trustedTypes\nif ($global.trustedTypes === void 0) {\n $global.trustedTypes = { createPolicy: (n, r) => r };\n}\nconst propConfig = {\n configurable: false,\n enumerable: false,\n writable: false,\n};\nif ($global.FAST === void 0) {\n Reflect.defineProperty($global, \"FAST\", Object.assign({ value: Object.create(null) }, propConfig));\n}\n/**\n * The FAST global.\n * @internal\n */\nexport const FAST = $global.FAST;\nif (FAST.getById === void 0) {\n const storage = Object.create(null);\n Reflect.defineProperty(FAST, \"getById\", Object.assign({ value(id, initialize) {\n let found = storage[id];\n if (found === void 0) {\n found = initialize ? (storage[id] = initialize()) : null;\n }\n return found;\n } }, propConfig));\n}\n/**\n * A readonly, empty array.\n * @remarks\n * Typically returned by APIs that return arrays when there are\n * no actual items to return.\n * @internal\n */\nexport const emptyArray = Object.freeze([]);\n","import { $global } from \"./platform\";\nconst updateQueue = $global.FAST.getById(1 /* updateQueue */, () => {\n const tasks = [];\n const pendingErrors = [];\n function throwFirstError() {\n if (pendingErrors.length) {\n throw pendingErrors.shift();\n }\n }\n function tryRunTask(task) {\n try {\n task.call();\n }\n catch (error) {\n pendingErrors.push(error);\n setTimeout(throwFirstError, 0);\n }\n }\n function process() {\n const capacity = 1024;\n let index = 0;\n while (index < tasks.length) {\n tryRunTask(tasks[index]);\n index++;\n // Prevent leaking memory for long chains of recursive calls to `DOM.queueUpdate`.\n // If we call `DOM.queueUpdate` within a task scheduled by `DOM.queueUpdate`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (let scan = 0, newLength = tasks.length - index; scan < newLength; scan++) {\n tasks[scan] = tasks[scan + index];\n }\n tasks.length -= index;\n index = 0;\n }\n }\n tasks.length = 0;\n }\n function enqueue(callable) {\n if (tasks.length < 1) {\n $global.requestAnimationFrame(process);\n }\n tasks.push(callable);\n }\n return Object.freeze({\n enqueue,\n process,\n });\n});\n/* eslint-disable */\nconst fastHTMLPolicy = $global.trustedTypes.createPolicy(\"fast-html\", {\n createHTML: html => html,\n});\n/* eslint-enable */\nlet htmlPolicy = fastHTMLPolicy;\nconst marker = `fast-${Math.random().toString(36).substring(2, 8)}`;\n/** @internal */\nexport const _interpolationStart = `${marker}{`;\n/** @internal */\nexport const _interpolationEnd = `}${marker}`;\n/**\n * Common DOM APIs.\n * @public\n */\nexport const DOM = Object.freeze({\n /**\n * Indicates whether the DOM supports the adoptedStyleSheets feature.\n */\n supportsAdoptedStyleSheets: Array.isArray(document.adoptedStyleSheets) &&\n \"replace\" in CSSStyleSheet.prototype,\n /**\n * Sets the HTML trusted types policy used by the templating engine.\n * @param policy - The policy to set for HTML.\n * @remarks\n * This API can only be called once, for security reasons. It should be\n * called by the application developer at the start of their program.\n */\n setHTMLPolicy(policy) {\n if (htmlPolicy !== fastHTMLPolicy) {\n throw new Error(\"The HTML policy can only be set once.\");\n }\n htmlPolicy = policy;\n },\n /**\n * Turns a string into trusted HTML using the configured trusted types policy.\n * @param html - The string to turn into trusted HTML.\n * @remarks\n * Used internally by the template engine when creating templates\n * and setting innerHTML.\n */\n createHTML(html) {\n return htmlPolicy.createHTML(html);\n },\n /**\n * Determines if the provided node is a template marker used by the runtime.\n * @param node - The node to test.\n */\n isMarker(node) {\n return node && node.nodeType === 8 && node.data.startsWith(marker);\n },\n /**\n * Given a marker node, extract the {@link HTMLDirective} index from the placeholder.\n * @param node - The marker node to extract the index from.\n */\n extractDirectiveIndexFromMarker(node) {\n return parseInt(node.data.replace(`${marker}:`, \"\"));\n },\n /**\n * Creates a placeholder string suitable for marking out a location *within*\n * an attribute value or HTML content.\n * @param index - The directive index to create the placeholder for.\n * @remarks\n * Used internally by binding directives.\n */\n createInterpolationPlaceholder(index) {\n return `${_interpolationStart}${index}${_interpolationEnd}`;\n },\n /**\n * Creates a placeholder that manifests itself as an attribute on an\n * element.\n * @param attributeName - The name of the custom attribute.\n * @param index - The directive index to create the placeholder for.\n * @remarks\n * Used internally by attribute directives such as `ref`, `slotted`, and `children`.\n */\n createCustomAttributePlaceholder(attributeName, index) {\n return `${attributeName}=\"${this.createInterpolationPlaceholder(index)}\"`;\n },\n /**\n * Creates a placeholder that manifests itself as a marker within the DOM structure.\n * @param index - The directive index to create the placeholder for.\n * @remarks\n * Used internally by structural directives such as `repeat`.\n */\n createBlockPlaceholder(index) {\n return `<!--${marker}:${index}-->`;\n },\n /**\n * Schedules DOM update work in the next async batch.\n * @param callable - The callable function or object to queue.\n */\n queueUpdate: updateQueue.enqueue,\n /**\n * Immediately processes all work previously scheduled\n * through queueUpdate.\n * @remarks\n * This also forces nextUpdate promises\n * to resolve.\n */\n processUpdates: updateQueue.process,\n /**\n * Resolves with the next DOM update.\n */\n nextUpdate() {\n return new Promise(updateQueue.enqueue);\n },\n /**\n * Sets an attribute value on an element.\n * @param element - The element to set the attribute value on.\n * @param attributeName - The attribute name to set.\n * @param value - The value of the attribute to set.\n * @remarks\n * If the value is `null` or `undefined`, the attribute is removed, otherwise\n * it is set to the provided value using the standard `setAttribute` API.\n */\n setAttribute(element, attributeName, value) {\n if (value === null || value === undefined) {\n element.removeAttribute(attributeName);\n }\n else {\n element.setAttribute(attributeName, value);\n }\n },\n /**\n * Sets a boolean attribute value.\n * @param element - The element to set the boolean attribute value on.\n * @param attributeName - The attribute name to set.\n * @param value - The value of the attribute to set.\n * @remarks\n * If the value is true, the attribute is added; otherwise it is removed.\n */\n setBooleanAttribute(element, attributeName, value) {\n value\n ? element.setAttribute(attributeName, \"\")\n : element.removeAttribute(attributeName);\n },\n /**\n * Removes all the child nodes of the provided parent node.\n * @param parent - The node to remove the children from.\n */\n removeChildNodes(parent) {\n for (let child = parent.firstChild; child !== null; child = parent.firstChild) {\n parent.removeChild(child);\n }\n },\n /**\n * Creates a TreeWalker configured to walk a template fragment.\n * @param fragment - The fragment to walk.\n */\n createTemplateWalker(fragment) {\n return document.createTreeWalker(fragment, 133, // element, text, comment\n null, false);\n },\n});\n","function spilloverSubscribe(subscriber) {\n const spillover = this.spillover;\n const index = spillover.indexOf(subscriber);\n if (index === -1) {\n spillover.push(subscriber);\n }\n}\nfunction spilloverUnsubscribe(subscriber) {\n const spillover = this.spillover;\n const index = spillover.indexOf(subscriber);\n if (index !== -1) {\n spillover.splice(index, 1);\n }\n}\nfunction spilloverNotifySubscribers(args) {\n const spillover = this.spillover;\n const source = this.source;\n for (let i = 0, ii = spillover.length; i < ii; ++i) {\n spillover[i].handleChange(source, args);\n }\n}\nfunction spilloverHas(subscriber) {\n return this.spillover.indexOf(subscriber) !== -1;\n}\n/**\n * An implementation of {@link Notifier} that efficiently keeps track of\n * subscribers interested in a specific change notification on an\n * observable source.\n *\n * @remarks\n * This set is optimized for the most common scenario of 1 or 2 subscribers.\n * With this in mind, it can store a subscriber in an internal field, allowing it to avoid Array#push operations.\n * If the set ever exceeds two subscribers, it upgrades to an array automatically.\n * @public\n */\nexport class SubscriberSet {\n /**\n * Creates an instance of SubscriberSet for the specified source.\n * @param source - The object source that subscribers will receive notifications from.\n * @param initialSubscriber - An initial subscriber to changes.\n */\n constructor(source, initialSubscriber) {\n this.sub1 = void 0;\n this.sub2 = void 0;\n this.spillover = void 0;\n this.source = source;\n this.sub1 = initialSubscriber;\n }\n /**\n * Checks whether the provided subscriber has been added to this set.\n * @param subscriber - The subscriber to test for inclusion in this set.\n */\n has(subscriber) {\n return this.sub1 === subscriber || this.sub2 === subscriber;\n }\n /**\n * Subscribes to notification of changes in an object's state.\n * @param subscriber - The object that is subscribing for change notification.\n */\n subscribe(subscriber) {\n if (this.has(subscriber)) {\n return;\n }\n if (this.sub1 === void 0) {\n this.sub1 = subscriber;\n return;\n }\n if (this.sub2 === void 0) {\n this.sub2 = subscriber;\n return;\n }\n this.spillover = [this.sub1, this.sub2, subscriber];\n this.subscribe = spilloverSubscribe;\n this.unsubscribe = spilloverUnsubscribe;\n this.notify = spilloverNotifySubscribers;\n this.has = spilloverHas;\n this.sub1 = void 0;\n this.sub2 = void 0;\n }\n /**\n * Unsubscribes from notification of changes in an object's state.\n * @param subscriber - The object that is unsubscribing from change notification.\n */\n unsubscribe(subscriber) {\n if (this.sub1 === subscriber) {\n this.sub1 = void 0;\n }\n else if (this.sub2 === subscriber) {\n this.sub2 = void 0;\n }\n }\n /**\n * Notifies all subscribers.\n * @param args - Data passed along to subscribers during notification.\n */\n notify(args) {\n const sub1 = this.sub1;\n const sub2 = this.sub2;\n const source = this.source;\n if (sub1 !== void 0) {\n sub1.handleChange(source, args);\n }\n if (sub2 !== void 0) {\n sub2.handleChange(source, args);\n }\n }\n}\n/**\n * An implementation of Notifier that allows subscribers to be notified\n * of individual property changes on an object.\n * @public\n */\nexport class PropertyChangeNotifier {\n /**\n * Creates an instance of PropertyChangeNotifier for the specified source.\n * @param source - The object source that subscribers will receive notifications from.\n */\n constructor(source) {\n this.subscribers = {};\n this.sourceSubscribers = null;\n this.source = source;\n }\n /**\n * Notifies all subscribers, based on the specified property.\n * @param propertyName - The property name, passed along to subscribers during notification.\n */\n notify(propertyName) {\n var _a;\n const subscribers = this.subscribers[propertyName];\n if (subscribers !== void 0) {\n subscribers.notify(propertyName);\n }\n (_a = this.sourceSubscribers) === null || _a === void 0 ? void 0 : _a.notify(propertyName);\n }\n /**\n * Subscribes to notification of changes in an object's state.\n * @param subscriber - The object that is subscribing for change notification.\n * @param propertyToWatch - The name of the property that the subscriber is interested in watching for changes.\n */\n subscribe(subscriber, propertyToWatch) {\n var _a;\n if (propertyToWatch) {\n let subscribers = this.subscribers[propertyToWatch];\n if (subscribers === void 0) {\n this.subscribers[propertyToWatch] = subscribers = new SubscriberSet(this.source);\n }\n subscribers.subscribe(subscriber);\n }\n else {\n this.sourceSubscribers = (_a = this.sourceSubscribers) !== null && _a !== void 0 ? _a : new SubscriberSet(this.source);\n this.sourceSubscribers.subscribe(subscriber);\n }\n }\n /**\n * Unsubscribes from notification of changes in an object's state.\n * @param subscriber - The object that is unsubscribing from change notification.\n * @param propertyToUnwatch - The name of the property that the subscriber is no longer interested in watching.\n */\n unsubscribe(subscriber, propertyToUnwatch) {\n var _a;\n if (propertyToUnwatch) {\n const subscribers = this.subscribers[propertyToUnwatch];\n if (subscribers !== void 0) {\n subscribers.unsubscribe(subscriber);\n }\n }\n else {\n (_a = this.sourceSubscribers) === null || _a === void 0 ? void 0 : _a.unsubscribe(subscriber);\n }\n }\n}\n","import { DOM } from \"../dom\";\nimport { PropertyChangeNotifier, SubscriberSet } from \"./notifier\";\nimport { FAST } from \"../platform\";\n/**\n * Common Observable APIs.\n * @public\n */\nexport const Observable = FAST.getById(2 /* observable */, () => {\n const volatileRegex = /(:|&&|\\|\\||if)/;\n const notifierLookup = new WeakMap();\n const accessorLookup = new WeakMap();\n const queueUpdate = DOM.queueUpdate;\n let watcher = void 0;\n let createArrayObserver = (array) => {\n throw new Error(\"Must call enableArrayObservation before observing arrays.\");\n };\n function getNotifier(source) {\n let found = source.$fastController || notifierLookup.get(source);\n if (found === void 0) {\n if (Array.isArray(source)) {\n found = createArrayObserver(source);\n }\n else {\n notifierLookup.set(source, (found = new PropertyChangeNotifier(source)));\n }\n }\n return found;\n }\n function getAccessors(target) {\n let accessors = accessorLookup.get(target);\n if (accessors === void 0) {\n let currentTarget = Reflect.getPrototypeOf(target);\n while (accessors === void 0 && currentTarget !== null) {\n accessors = accessorLookup.get(currentTarget);\n currentTarget = Reflect.getPrototypeOf(currentTarget);\n }\n if (accessors === void 0) {\n accessors = [];\n }\n else {\n accessors = accessors.slice(0);\n }\n accessorLookup.set(target, accessors);\n }\n return accessors;\n }\n class DefaultObservableAccessor {\n constructor(name) {\n this.name = name;\n this.field = `_${name}`;\n this.callback = `${name}Changed`;\n }\n getValue(source) {\n if (watcher !== void 0) {\n watcher.watch(source, this.name);\n }\n return source[this.field];\n }\n setValue(source, newValue) {\n const field = this.field;\n const oldValue = source[field];\n if (oldValue !== newValue) {\n source[field] = newValue;\n const callback = source[this.callback];\n if (typeof callback === \"function\") {\n callback.call(source, oldValue, newValue);\n }\n getNotifier(source).notify(this.name);\n }\n }\n }\n class BindingObserverImplementation extends SubscriberSet {\n constructor(binding, initialSubscriber, isVolatileBinding = false) {\n super(binding, initialSubscriber);\n this.binding = binding;\n this.isVolatileBinding = isVolatileBinding;\n this.needsRefresh = true;\n this.needsQueue = true;\n this.first = this;\n this.last = null;\n this.propertySource = void 0;\n this.propertyName = void 0;\n this.notifier = void 0;\n this.next = void 0;\n }\n observe(source, context) {\n if (this.needsRefresh && this.last !== null) {\n this.disconnect();\n }\n const previousWatcher = watcher;\n watcher = this.needsRefresh ? this : void 0;\n this.needsRefresh = this.isVolatileBinding;\n const result = this.binding(source, context);\n watcher = previousWatcher;\n return result;\n }\n disconnect() {\n if (this.last !== null) {\n let current = this.first;\n while (current !== void 0) {\n current.notifier.unsubscribe(this, current.propertyName);\n current = current.next;\n }\n this.last = null;\n this.needsRefresh = this.needsQueue = true;\n }\n }\n watch(propertySource, propertyName) {\n const prev = this.last;\n const notifier = getNotifier(propertySource);\n const current = prev === null ? this.first : {};\n current.propertySource = propertySource;\n current.propertyName = propertyName;\n current.notifier = notifier;\n notifier.subscribe(this, propertyName);\n if (prev !== null) {\n if (!this.needsRefresh) {\n // Declaring the variable prior to assignment below circumvents\n // a bug in Angular's optimization process causing infinite recursion\n // of this watch() method. Details https://github.com/microsoft/fast/issues/4969\n let prevValue;\n watcher = void 0;\n /* eslint-disable-next-line */\n prevValue = prev.propertySource[prev.propertyName];\n watcher = this;\n if (propertySource === prevValue) {\n this.needsRefresh = true;\n }\n }\n prev.next = current;\n }\n this.last = current;\n }\n handleChange() {\n if (this.needsQueue) {\n this.needsQueue = false;\n queueUpdate(this);\n }\n }\n call() {\n if (this.last !== null) {\n this.needsQueue = true;\n this.notify(this);\n }\n }\n records() {\n let next = this.first;\n return {\n next: () => {\n const current = next;\n if (current === undefined) {\n return { value: void 0, done: true };\n }\n else {\n next = next.next;\n return {\n value: current,\n done: false,\n };\n }\n },\n [Symbol.iterator]: function () {\n return this;\n },\n };\n }\n }\n return Object.freeze({\n /**\n * @internal\n * @param factory - The factory used to create array observers.\n */\n setArrayObserverFactory(factory) {\n createArrayObserver = factory;\n },\n /**\n * Gets a notifier for an object or Array.\n * @param source - The object or Array to get the notifier for.\n */\n getNotifier,\n /**\n * Records a property change for a source object.\n * @param source - The object to record the change against.\n * @param propertyName - The property to track as changed.\n */\n track(source, propertyName) {\n if (watcher !== void 0) {\n watcher.watch(source, propertyName);\n }\n },\n /**\n * Notifies watchers that the currently executing property getter or function is volatile\n * with respect to its observable dependencies.\n */\n trackVolatile() {\n if (watcher !== void 0) {\n watcher.needsRefresh = true;\n }\n },\n /**\n * Notifies subscribers of a source object of changes.\n * @param source - the object to notify of changes.\n * @param args - The change args to pass to subscribers.\n */\n notify(source, args) {\n getNotifier(source).notify(args);\n },\n /**\n * Defines an observable property on an object or prototype.\n * @param target - The target object to define the observable on.\n * @param nameOrAccessor - The name of the property to define as observable;\n * or a custom accessor that specifies the property name and accessor implementation.\n */\n defineProperty(target, nameOrAccessor) {\n if (typeof nameOrAccessor === \"string\") {\n nameOrAccessor = new DefaultObservableAccessor(nameOrAccessor);\n }\n getAccessors(target).push(nameOrAccessor);\n Reflect.defineProperty(target, nameOrAccessor.name, {\n enumerable: true,\n get: function () {\n return nameOrAccessor.getValue(this);\n },\n set: function (newValue) {\n nameOrAccessor.setValue(this, newValue);\n },\n });\n },\n /**\n * Finds all the observable accessors defined on the target,\n * including its prototype chain.\n * @param target - The target object to search for accessor on.\n */\n getAccessors,\n /**\n * Creates a {@link BindingObserver} that can watch the\n * provided {@link Binding} for changes.\n * @param binding - The binding to observe.\n * @param initialSubscriber - An initial subscriber to changes in the binding value.\n * @param isVolatileBinding - Indicates whether the binding's dependency list must be re-evaluated on every value evaluation.\n */\n binding(binding, initialSubscriber, isVolatileBinding = this.isVolatileBinding(binding)) {\n return new BindingObserverImplementation(binding, initialSubscriber, isVolatileBinding);\n },\n /**\n * Determines whether a binding expression is volatile and needs to have its dependency list re-evaluated\n * on every evaluation of the value.\n * @param binding - The binding to inspect.\n */\n isVolatileBinding(binding) {\n return volatileRegex.test(binding.toString());\n },\n });\n});\n/**\n * Decorator: Defines an observable property on the target.\n * @param target - The target to define the observable on.\n * @param nameOrAccessor - The property name or accessor to define the observable as.\n * @public\n */\nexport function observable(target, nameOrAccessor) {\n Observable.defineProperty(target, nameOrAccessor);\n}\n/**\n * Decorator: Marks a property getter as having volatile observable dependencies.\n * @param target - The target that the property is defined on.\n * @param name - The property name.\n * @param name - The existing descriptor.\n * @public\n */\nexport function volatile(target, name, descriptor) {\n return Object.assign({}, descriptor, {\n get: function () {\n Observable.trackVolatile();\n return descriptor.get.apply(this);\n },\n });\n}\nconst contextEvent = FAST.getById(3 /* contextEvent */, () => {\n let current = null;\n return {\n get() {\n return current;\n },\n set(event) {\n current = event;\n },\n };\n});\n/**\n * Provides additional contextual information available to behaviors and expressions.\n * @public\n */\nexport class ExecutionContext {\n constructor() {\n /**\n * The index of the current item within a repeat context.\n */\n this.index = 0;\n /**\n * The length of the current collection within a repeat context.\n */\n this.length = 0;\n /**\n * The parent data object within a repeat context.\n */\n this.parent = null;\n /**\n * The parent execution context when in nested context scenarios.\n */\n this.parentContext = null;\n }\n /**\n * The current event within an event handler.\n */\n get event() {\n return contextEvent.get();\n }\n /**\n * Indicates whether the current item within a repeat context\n * has an even index.\n */\n get isEven() {\n return this.index % 2 === 0;\n }\n /**\n * Indicates whether the current item within a repeat context\n * has an odd index.\n */\n get isOdd() {\n return this.index % 2 !== 0;\n }\n /**\n * Indicates whether the current item within a repeat context\n * is the first item in the collection.\n */\n get isFirst() {\n return this.index === 0;\n }\n /**\n * Indicates whether the current item within a repeat context\n * is somewhere in the middle of the collection.\n */\n get isInMiddle() {\n return !this.isFirst && !this.isLast;\n }\n /**\n * Indicates whether the current item within a repeat context\n * is the last item in the collection.\n */\n get isLast() {\n return this.index === this.length - 1;\n }\n /**\n * Sets the event for the current execution context.\n * @param event - The event to set.\n * @internal\n */\n static setEvent(event) {\n contextEvent.set(event);\n }\n}\nObservable.defineProperty(ExecutionContext.prototype, \"index\");\nObservable.defineProperty(ExecutionContext.prototype, \"length\");\n/**\n * The default execution context used in binding expressions.\n * @public\n */\nexport const defaultExecutionContext = Object.seal(new ExecutionContext());\n","import { DOM } from \"../dom\";\n/**\n * Instructs the template engine to apply behavior to a node.\n * @public\n */\nexport class HTMLDirective {\n constructor() {\n /**\n * The index of the DOM node to which the created behavior will apply.\n */\n this.targetIndex = 0;\n }\n}\n/**\n * A {@link HTMLDirective} that targets a named attribute or property on a node.\n * @public\n */\nexport class TargetedHTMLDirective extends HTMLDirective {\n constructor() {\n super(...arguments);\n /**\n * Creates a placeholder string based on the directive's index within the template.\n * @param index - The index of the directive within the template.\n */\n this.createPlaceholder = DOM.createInterpolationPlaceholder;\n }\n}\n/**\n * A directive that attaches special behavior to an element via a custom attribute.\n * @public\n */\nexport class AttachedBehaviorHTMLDirective extends HTMLDirective {\n /**\n *\n * @param name - The name of the behavior; used as a custom attribute on the element.\n * @param behavior - The behavior to instantiate and attach to the element.\n * @param options - Options to pass to the behavior during creation.\n */\n constructor(name, behavior, options) {\n super();\n this.name = name;\n this.behavior = behavior;\n this.options = options;\n }\n /**\n * Creates a placeholder string based on the directive's index within the template.\n * @param index - The index of the directive within the template.\n * @remarks\n * Creates a custom attribute placeholder.\n */\n createPlaceholder(index) {\n return DOM.createCustomAttributePlaceholder(this.name, index);\n }\n /**\n * Creates a behavior for the provided target node.\n * @param target - The node instance to create the behavior for.\n * @remarks\n * Creates an instance of the `behavior` type this directive was constructed with\n * and passes the target and options to that `behavior`'s constructor.\n */\n createBehavior(target) {\n return new this.behavior(target, this.options);\n }\n}\n","import { DOM } from \"../dom\";\nimport { ExecutionContext, Observable, } from \"../observation/observable\";\nimport { TargetedHTMLDirective } from \"./html-directive\";\nfunction normalBind(source, context) {\n this.source = source;\n this.context = context;\n if (this.bindingObserver === null) {\n this.bindingObserver = Observable.binding(this.binding, this, this.isBindingVolatile);\n }\n this.updateTarget(this.bindingObserver.observe(source, context));\n}\nfunction triggerBind(source, context) {\n this.source = source;\n this.context = context;\n this.target.addEventListener(this.targetName, this);\n}\nfunction normalUnbind() {\n this.bindingObserver.disconnect();\n this.source = null;\n this.context = null;\n}\nfunction contentUnbind() {\n this.bindingObserver.disconnect();\n this.source = null;\n this.context = null;\n const view = this.target.$fastView;\n if (view !== void 0 && view.isComposed) {\n view.unbind();\n view.needsBindOnly = true;\n }\n}\nfunction triggerUnbind() {\n this.target.removeEventListener(this.targetName, this);\n this.source = null;\n this.context = null;\n}\nfunction updateAttributeTarget(value) {\n DOM.setAttribute(this.target, this.targetName, value);\n}\nfunction updateBooleanAttributeTarget(value) {\n DOM.setBooleanAttribute(this.target, this.targetName, value);\n}\nfunction updateContentTarget(value) {\n // If there's no actual value, then this equates to the\n // empty string for the purposes of content bindings.\n if (value === null || value === undefined) {\n value = \"\";\n }\n // If the value has a \"create\" method, then it's a template-like.\n if (value.create) {\n this.target.textContent = \"\";\n let view = this.target.$fastView;\n // If there's no previous view that we might be able to\n // reuse then create a new view from the template.\n if (view === void 0) {\n view = value.create();\n }\n else {\n // If there is a previous view, but it wasn't created\n // from the same template as the new value, then we\n // need to remove the old view if it's still in the DOM\n // and create a new view from the template.\n if (this.target.$fastTemplate !== value) {\n if (view.isComposed) {\n view.remove();\n view.unbind();\n }\n view = value.create();\n }\n }\n // It's possible that the value is the same as the previous template\n // and that there's actually no need to compose it.\n if (!view.isComposed) {\n view.isComposed = true;\n view.bind(this.source, this.context);\n view.insertBefore(this.target);\n this.target.$fastView = view;\n this.target.$fastTemplate = value;\n }\n else if (view.needsBindOnly) {\n view.needsBindOnly = false;\n view.bind(this.source, this.context);\n }\n }\n else {\n const view = this.target.$fastView;\n // If there is a view and it's currently composed into\n // the DOM, then we need to remove it.\n if (view !== void 0 && view.isComposed) {\n view.isComposed = false;\n view.remove();\n if (view.needsBindOnly) {\n view.needsBindOnly = false;\n }\n else {\n view.unbind();\n }\n }\n this.target.textContent = value;\n }\n}\nfunction updatePropertyTarget(value) {\n this.target[this.targetName] = value;\n}\nfunction updateClassTarget(value) {\n const classVersions = this.classVersions || Object.create(null);\n const target = this.target;\n let version = this.version || 0;\n // Add the classes, tracking the version at which they were added.\n if (value !== null && value !== undefined && value.length) {\n const names = value.split(/\\s+/);\n for (let i = 0, ii = names.length; i < ii; ++i) {\n const currentName = names[i];\n if (currentName === \"\") {\n continue;\n }\n classVersions[currentName] = version;\n target.classList.add(currentName);\n }\n }\n this.classVersions = classVersions;\n this.version = version + 1;\n // If this is the first call to add classes, there's no need to remove old ones.\n if (version === 0) {\n return;\n }\n // Remove classes from the previous version.\n version -= 1;\n for (const name in classVersions) {\n if (classVersions[name] === version) {\n target.classList.remove(name);\n }\n }\n}\n/**\n * A directive that configures data binding to element content and attributes.\n * @public\n */\nexport class HTMLBindingDirective extends TargetedHTMLDirective {\n /**\n * Creates an instance of BindingDirective.\n * @param binding - A binding that returns the data used to update the DOM.\n */\n constructor(binding) {\n super();\n this.binding = binding;\n this.bind = normalBind;\n this.unbind = normalUnbind;\n this.updateTarget = updateAttributeTarget;\n this.isBindingVolatile = Observable.isVolatileBinding(this.binding);\n }\n /**\n * Gets/sets the name of the attribute or property that this\n * binding is targeting.\n */\n get targetName() {\n return this.originalTargetName;\n }\n set targetName(value) {\n this.originalTargetName = value;\n if (value === void 0) {\n return;\n }\n switch (value[0]) {\n case \":\":\n this.cleanedTargetName = value.substr(1);\n this.updateTarget = updatePropertyTarget;\n if (this.cleanedTargetName === \"innerHTML\") {\n const binding = this.binding;\n this.binding = (s, c) => DOM.createHTML(binding(s, c));\n }\n break;\n case \"?\":\n this.cleanedTargetName = value.substr(1);\n this.updateTarget = updateBooleanAttributeTarget;\n break;\n case \"@\":\n this.cleanedTargetName = value.substr(1);\n this.bind = triggerBind;\n this.unbind = triggerUnbind;\n break;\n default:\n this.cleanedTargetName = value;\n if (value === \"class\") {\n this.updateTarget = updateClassTarget;\n }\n break;\n }\n }\n /**\n * Makes this binding target the content of an element rather than\n * a particular attribute or property.\n */\n targetAtContent() {\n this.updateTarget = updateContentTarget;\n this.unbind = contentUnbind;\n }\n /**\n * Creates the runtime BindingBehavior instance based on the configuration\n * information stored in the BindingDirective.\n * @param target - The target node that the binding behavior should attach to.\n */\n createBehavior(target) {\n /* eslint-disable-next-line @typescript-eslint/no-use-before-define */\n return new BindingBehavior(target, this.binding, this.isBindingVolatile, this.bind, this.unbind, this.updateTarget, this.cleanedTargetName);\n }\n}\n/**\n * A behavior that updates content and attributes based on a configured\n * BindingDirective.\n * @public\n */\nexport class BindingBehavior {\n /**\n * Creates an instance of BindingBehavior.\n * @param target - The target of the data updates.\n * @param binding - The binding that returns the latest value for an update.\n * @param isBindingVolatile - Indicates whether the binding has volatile dependencies.\n * @param bind - The operation to perform during binding.\n * @param unbind - The operation to perform during unbinding.\n * @param updateTarget - The operation to perform when updating.\n * @param targetName - The name of the target attribute or property to update.\n */\n constructor(target, binding, isBindingVolatile, bind, unbind, updateTarget, targetName) {\n /** @internal */\n this.source = null;\n /** @internal */\n this.context = null;\n /** @internal */\n this.bindingObserver = null;\n this.target = target;\n this.binding = binding;\n this.isBindingVolatile = isBindingVolatile;\n this.bind = bind;\n this.unbind = unbind;\n this.updateTarget = updateTarget;\n this.targetName = targetName;\n }\n /** @internal */\n handleChange() {\n this.updateTarget(this.bindingObserver.observe(this.source, this.context));\n }\n /** @internal */\n handleEvent(event) {\n ExecutionContext.setEvent(event);\n const result = this.binding(this.source, this.context);\n ExecutionContext.setEvent(null);\n if (result !== true) {\n event.preventDefault();\n }\n }\n}\n","import { _interpolationEnd, _interpolationStart, DOM } from \"../dom\";\nimport { HTMLBindingDirective } from \"./binding\";\nlet sharedContext = null;\nclass CompilationContext {\n addFactory(factory) {\n factory.targetIndex = this.targetIndex;\n this.behaviorFactories.push(factory);\n }\n captureContentBinding(directive) {\n directive.targetAtContent();\n this.addFactory(directive);\n }\n reset() {\n this.behaviorFactories = [];\n this.targetIndex = -1;\n }\n release() {\n sharedContext = this;\n }\n static borrow(directives) {\n const shareable = sharedContext || new CompilationContext();\n shareable.directives = directives;\n shareable.reset();\n sharedContext = null;\n return shareable;\n }\n}\nfunction createAggregateBinding(parts) {\n if (parts.length === 1) {\n return parts[0];\n }\n let targetName;\n const partCount = parts.length;\n const finalParts = parts.map((x) => {\n if (typeof x === \"string\") {\n return () => x;\n }\n targetName = x.targetName || targetName;\n return x.binding;\n });\n const binding = (scope, context) => {\n let output = \"\";\n for (let i = 0; i < partCount; ++i) {\n output += finalParts[i](scope, context);\n }\n return output;\n };\n const directive = new HTMLBindingDirective(binding);\n directive.targetName = targetName;\n return directive;\n}\nconst interpolationEndLength = _interpolationEnd.length;\nfunction parseContent(context, value) {\n const valueParts = value.split(_interpolationStart);\n if (valueParts.length === 1) {\n return null;\n }\n const bindingParts = [];\n for (let i = 0, ii = valueParts.length; i < ii; ++i) {\n const current = valueParts[i];\n const index = current.indexOf(_interpolationEnd);\n let literal;\n if (index === -1) {\n literal = current;\n }\n else {\n const directiveIndex = parseInt(current.substring(0, index));\n bindingParts.push(context.directives[directiveIndex]);\n literal = current.substring(index + interpolationEndLength);\n }\n if (literal !== \"\") {\n bindingParts.push(literal);\n }\n }\n return bindingParts;\n}\nfunction compileAttributes(context, node, includeBasicValues = false) {\n const attributes = node.attributes;\n for (let i = 0, ii = attributes.length; i < ii; ++i) {\n const attr = attributes[i];\n const attrValue = attr.value;\n const parseResult = parseContent(context, attrValue);\n let result = null;\n if (parseResult === null) {\n if (includeBasicValues) {\n result = new HTMLBindingDirective(() => attrValue);\n result.targetName = attr.name;\n }\n }\n else {\n result = createAggregateBinding(parseResult);\n }\n if (result !== null) {\n node.removeAttributeNode(attr);\n i--;\n ii--;\n context.addFactory(result);\n }\n }\n}\nfunction compileContent(context, node, walker) {\n const parseResult = parseContent(context, node.textContent);\n if (parseResult !== null) {\n let lastNode = node;\n for (let i = 0, ii = parseResult.length; i < ii; ++i) {\n const currentPart = parseResult[i];\n const currentNode = i === 0\n ? node\n : lastNode.parentNode.insertBefore(document.createTextNode(\"\"), lastNode.nextSibling);\n if (typeof currentPart === \"string\") {\n currentNode.textContent = currentPart;\n }\n else {\n currentNode.textContent = \" \";\n context.captureContentBinding(currentPart);\n }\n lastNode = currentNode;\n context.targetIndex++;\n if (currentNode !== node) {\n walker.nextNode();\n }\n }\n context.targetIndex--;\n }\n}\n/**\n * Compiles a template and associated directives into a raw compilation\n * result which include a cloneable DocumentFragment and factories capable\n * of attaching runtime behavior to nodes within the fragment.\n * @param template - The template to compile.\n * @param directives - The directives referenced by the template.\n * @remarks\n * The template that is provided for compilation is altered in-place\n * and cannot be compiled again. If the original template must be preserved,\n * it is recommended that you clone the original and pass the clone to this API.\n * @public\n */\nexport function compileTemplate(template, directives) {\n const fragment = template.content;\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1111864\n document.adoptNode(fragment);\n const context = CompilationContext.borrow(directives);\n compileAttributes(context, template, true);\n const hostBehaviorFactories = context.behaviorFactories;\n context.reset();\n const walker = DOM.createTemplateWalker(fragment);\n let node;\n while ((node = walker.nextNode())) {\n context.targetIndex++;\n switch (node.nodeType) {\n case 1: // element node\n compileAttributes(context, node);\n break;\n case 3: // text node\n compileContent(context, node, walker);\n break;\n case 8: // comment\n if (DOM.isMarker(node)) {\n context.addFactory(directives[DOM.extractDirectiveIndexFromMarker(node)]);\n }\n }\n }\n let targetOffset = 0;\n if (\n // If the first node in a fragment is a marker, that means it's an unstable first node,\n // because something like a when, repeat, etc. could add nodes before the marker.\n // To mitigate this, we insert a stable first node. However, if we insert a node,\n // that will alter the result of the TreeWalker. So, we also need to offset the target index.\n DOM.isMarker(fragment.firstChild) ||\n // Or if there is only one node and a directive, it means the template's content\n // is *only* the directive. In that case, HTMLView.dispose() misses any nodes inserted by\n // the directive. Inserting a new node ensures proper disposal of nodes added by the directive.\n (fragment.childNodes.length === 1 && directives.length)) {\n fragment.insertBefore(document.createComment(\"\"), fragment.firstChild);\n targetOffset = -1;\n }\n const viewBehaviorFactories = context.behaviorFactories;\n context.release();\n return {\n fragment,\n viewBehaviorFactories,\n hostBehaviorFactories,\n targetOffset,\n };\n}\n","// A singleton Range instance used to efficiently remove ranges of DOM nodes.\n// See the implementation of HTMLView below for further details.\nconst range = document.createRange();\n/**\n * The standard View implementation, which also implements ElementView and SyntheticView.\n * @public\n */\nexport class HTMLView {\n /**\n * Constructs an instance of HTMLView.\n * @param fragment - The html fragment that contains the nodes for this view.\n * @param behaviors - The behaviors to be applied to this view.\n */\n constructor(fragment, behaviors) {\n this.fragment = fragment;\n this.behaviors = behaviors;\n /**\n * The data that the view is bound to.\n */\n this.source = null;\n /**\n * The execution context the view is running within.\n */\n this.context = null;\n this.firstChild = fragment.firstChild;\n this.lastChild = fragment.lastChild;\n }\n /**\n * Appends the view's DOM nodes to the referenced node.\n * @param node - The parent node to append the view's DOM nodes to.\n */\n appendTo(node) {\n node.appendChild(this.fragment);\n }\n /**\n * Inserts the view's DOM nodes before the referenced node.\n * @param node - The node to insert the view's DOM before.\n */\n insertBefore(node) {\n if (this.fragment.hasChildNodes()) {\n node.parentNode.insertBefore(this.fragment, node);\n }\n else {\n const parentNode = node.parentNode;\n const end = this.lastChild;\n let current = this.firstChild;\n let next;\n while (current !== end) {\n next = current.nextSibling;\n parentNode.insertBefore(current, node);\n current = next;\n }\n parentNode.insertBefore(end, node);\n }\n }\n /**\n * Removes the view's DOM nodes.\n * The nodes are not disposed and the view can later be re-inserted.\n */\n remove() {\n const fragment = this.fragment;\n const end = this.lastChild;\n let current = this.firstChild;\n let next;\n while (current !== end) {\n next = current.nextSibling;\n fragment.appendChild(current);\n current = next;\n }\n fragment.appendChild(end);\n }\n /**\n * Removes the view and unbinds its behaviors, disposing of DOM nodes afterward.\n * Once a view has been disposed, it cannot be inserted or bound again.\n */\n dispose() {\n const parent = this.firstChild.parentNode;\n const end = this.lastChild;\n let current = this.firstChild;\n let next;\n while (current !== end) {\n next = current.nextSibling;\n parent.removeChild(current);\n current = next;\n }\n parent.removeChild(end);\n const behaviors = this.behaviors;\n const oldSource = this.source;\n for (let i = 0, ii = behaviors.length; i < ii; ++i) {\n behaviors[i].unbind(oldSource);\n }\n }\n /**\n * Binds a view's behaviors to its binding source.\n * @param source - The binding source for the view's binding behaviors.\n * @param context - The execution context to run the behaviors within.\n */\n bind(source, context) {\n const behaviors = this.behaviors;\n if (this.source === source) {\n return;\n }\n else if (this.source !== null) {\n const oldSource = this.source;\n this.source = source;\n this.context = context;\n for (let i = 0, ii = behaviors.length; i < ii; ++i) {\n const current = behaviors[i];\n current.unbind(oldSource);\n current.bind(source, context);\n }\n }\n else {\n this.source = source;\n this.context = context;\n for (let i = 0, ii = behaviors.length; i < ii; ++i) {\n behaviors[i].bind(source, context);\n }\n }\n }\n /**\n * Unbinds a view's behaviors from its binding source.\n */\n unbind() {\n if (this.source === null) {\n return;\n }\n const behaviors = this.behaviors;\n const oldSource = this.source;\n for (let i = 0, ii = behaviors.length; i < ii; ++i) {\n behaviors[i].unbind(oldSource);\n }\n this.source = null;\n }\n /**\n * Efficiently disposes of a contiguous range of synthetic view instances.\n * @param views - A contiguous range of views to be disposed.\n */\n static disposeContiguousBatch(views) {\n if (views.length === 0) {\n return;\n }\n range.setStartBefore(views[0].firstChild);\n range.setEndAfter(views[views.length - 1].lastChild);\n range.deleteContents();\n for (let i = 0, ii = views.length; i < ii; ++i) {\n const view = views[i];\n const behaviors = view.behaviors;\n const oldSource = view.source;\n for (let j = 0, jj = behaviors.length; j < jj; ++j) {\n behaviors[j].unbind(oldSource);\n }\n }\n }\n}\n","import { DOM } from \"../dom\";\nimport { defaultExecutionContext } from \"../observation/observable\";\nimport { compileTemplate } from \"./compiler\";\nimport { HTMLView } from \"./view\";\nimport { HTMLDirective, TargetedHTMLDirective, } from \"./html-directive\";\nimport { HTMLBindingDirective } from \"./binding\";\n/**\n * A template capable of creating HTMLView instances or rendering directly to DOM.\n * @public\n */\n/* eslint-disable-next-line @typescript-eslint/no-unused-vars */\nexport class ViewTemplate {\n /**\n * Creates an instance of ViewTemplate.\n * @param html - The html representing what this template will instantiate, including placeholders for directives.\n * @param directives - The directives that will be connected to placeholders in the html.\n */\n constructor(html, directives) {\n this.behaviorCount = 0;\n this.hasHostBehaviors = false;\n this.fragment = null;\n this.targetOffset = 0;\n this.viewBehaviorFactories = null;\n this.hostBehaviorFactories = null;\n this.html = html;\n this.directives = directives;\n }\n /**\n * Creates an HTMLView instance based on this template definition.\n * @param hostBindingTarget - The element that host behaviors will be bound to.\n */\n create(hostBindingTarget) {\n if (this.fragment === null) {\n let template;\n const html = this.html;\n if (typeof html === \"string\") {\n template = document.createElement(\"template\");\n template.innerHTML = DOM.createHTML(html);\n const fec = template.content.firstElementChild;\n if (fec !== null && fec.tagName === \"TEMPLATE\") {\n template = fec;\n }\n }\n else {\n template = html;\n }\n const result = compileTemplate(template, this.directives);\n this.fragment = result.fragment;\n this.viewBehaviorFactories = result.viewBehaviorFactories;\n this.hostBehaviorFactories = result.hostBehaviorFactories;\n this.targetOffset = result.targetOffset;\n this.behaviorCount =\n this.viewBehaviorFactories.length + this.hostBehaviorFactories.length;\n this.hasHostBehaviors = this.hostBehaviorFactories.length > 0;\n }\n const fragment = this.fragment.cloneNode(true);\n const viewFactories = this.viewBehaviorFactories;\n const behaviors = new Array(this.behaviorCount);\n const walker = DOM.createTemplateWalker(fragment);\n let behaviorIndex = 0;\n let targetIndex = this.targetOffset;\n let node = walker.nextNode();\n for (let ii = viewFactories.length; behaviorIndex < ii; ++behaviorIndex) {\n const factory = viewFactories[behaviorIndex];\n const factoryIndex = factory.targetIndex;\n while (node !== null) {\n if (targetIndex === factoryIndex) {\n behaviors[behaviorIndex] = factory.createBehavior(node);\n break;\n }\n else {\n node = walker.nextNode();\n targetIndex++;\n }\n }\n }\n if (this.hasHostBehaviors) {\n const hostFactories = this.hostBehaviorFactories;\n for (let i = 0, ii = hostFactories.length; i < ii; ++i, ++behaviorIndex) {\n behaviors[behaviorIndex] = hostFactories[i].createBehavior(hostBindingTarget);\n }\n }\n return new HTMLView(fragment, behaviors);\n }\n /**\n * Creates an HTMLView from this template, binds it to the source, and then appends it to the host.\n * @param source - The data source to bind the template to.\n * @param host - The Element where the template will be rendered.\n * @param hostBindingTarget - An HTML element to target the host bindings at if different from the\n * host that the template is being attached to.\n */\n render(source, host, hostBindingTarget) {\n if (typeof host === \"string\") {\n host = document.getElementById(host);\n }\n if (hostBindingTarget === void 0) {\n hostBindingTarget = host;\n }\n const view = this.create(hostBindingTarget);\n view.bind(source, defaultExecutionContext);\n view.appendTo(host);\n return view;\n }\n}\n// Much thanks to LitHTML for working this out!\nconst lastAttributeNameRegex = \n/* eslint-disable-next-line no-control-regex */\n/([ \\x09\\x0a\\x0c\\x0d])([^\\0-\\x1F\\x7F-\\x9F \"'>=/]+)([ \\x09\\x0a\\x0c\\x0d]*=[ \\x09\\x0a\\x0c\\x0d]*(?:[^ \\x09\\x0a\\x0c\\x0d\"'`<>=]*|\"[^\"]*|'[^']*))$/;\n/**\n * Transforms a template literal string into a renderable ViewTemplate.\n * @param strings - The string fragments that are interpolated with the values.\n * @param values - The values that are interpolated with the string fragments.\n * @remarks\n * The html helper supports interpolation of strings, numbers, binding expressions,\n * other template instances, and Directive instances.\n * @public\n */\nexport function html(strings, ...values) {\n const directives = [];\n let html = \"\";\n for (let i = 0, ii = strings.length - 1; i < ii; ++i) {\n const currentString = strings[i];\n let value = values[i];\n html += currentString;\n if (value instanceof ViewTemplate) {\n const template = value;\n value = () => template;\n }\n if (typeof value === \"function\") {\n value = new HTMLBindingDirective(value);\n }\n if (value instanceof TargetedHTMLDirective) {\n const match = lastAttributeNameRegex.exec(currentString);\n if (match !== null) {\n value.targetName = match[2];\n }\n }\n if (value instanceof HTMLDirective) {\n // Since not all values are directives, we can't use i\n // as the index for the placeholder. Instead, we need to\n // use directives.length to get the next index.\n html += value.createPlaceholder(directives.length);\n directives.push(value);\n }\n else {\n html += value;\n }\n }\n html += strings[strings.length - 1];\n return new ViewTemplate(html, directives);\n}\n","import { DOM } from \"../dom\";\n/**\n * Represents styles that can be applied to a custom element.\n * @public\n */\nexport class ElementStyles {\n constructor() {\n this.targets = new WeakSet();\n /** @internal */\n this.behaviors = null;\n }\n /** @internal */\n addStylesTo(target) {\n this.targets.add(target);\n }\n /** @internal */\n removeStylesFrom(target) {\n this.targets.delete(target);\n }\n /** @internal */\n isAttachedTo(target) {\n return this.targets.has(target);\n }\n /**\n * Associates behaviors with this set of styles.\n * @param behaviors - The behaviors to associate.\n */\n withBehaviors(...behaviors) {\n this.behaviors =\n this.behaviors === null ? behaviors : this.behaviors.concat(behaviors);\n return this;\n }\n}\n/**\n * Create ElementStyles from ComposableStyles.\n */\nElementStyles.create = (() => {\n if (DOM.supportsAdoptedStyleSheets) {\n const styleSheetCache = new Map();\n return (styles) => \n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n new AdoptedStyleSheetsStyles(styles, styleSheetCache);\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return (styles) => new StyleElementStyles(styles);\n})();\nfunction reduceStyles(styles) {\n return styles\n .map((x) => x instanceof ElementStyles ? reduceStyles(x.styles) : [x])\n .reduce((prev, curr) => prev.concat(curr), []);\n}\nfunction reduceBehaviors(styles) {\n return styles\n .map((x) => (x instanceof ElementStyles ? x.behaviors : null))\n .reduce((prev, curr) => {\n if (curr === null) {\n return prev;\n }\n if (prev === null) {\n prev = [];\n }\n return prev.concat(curr);\n }, null);\n}\n/**\n * https://wicg.github.io/construct-stylesheets/\n * https://developers.google.com/web/updates/2019/02/constructable-stylesheets\n *\n * @internal\n */\nexport class AdoptedStyleSheetsStyles extends ElementStyles {\n constructor(styles, styleSheetCache) {\n super();\n this.styles = styles;\n this.styleSheetCache = styleSheetCache;\n this._styleSheets = void 0;\n this.behaviors = reduceBehaviors(styles);\n }\n get styleSheets() {\n if (this._styleSheets === void 0) {\n const styles = this.styles;\n const styleSheetCache = this.styleSheetCache;\n this._styleSheets = reduceStyles(styles).map((x) => {\n if (x instanceof CSSStyleSheet) {\n return x;\n }\n let sheet = styleSheetCache.get(x);\n if (sheet === void 0) {\n sheet = new CSSStyleSheet();\n sheet.replaceSync(x);\n styleSheetCache.set(x, sheet);\n }\n return sheet;\n });\n }\n return this._styleSheets;\n }\n addStylesTo(target) {\n target.adoptedStyleSheets = [...target.adoptedStyleSheets, ...this.styleSheets];\n super.addStylesTo(target);\n }\n removeStylesFrom(target) {\n const sourceSheets = this.styleSheets;\n target.adoptedStyleSheets = target.adoptedStyleSheets.filter((x) => sourceSheets.indexOf(x) === -1);\n super.removeStylesFrom(target);\n }\n}\nlet styleClassId = 0;\nfunction getNextStyleClass() {\n return `fast-style-class-${++styleClassId}`;\n}\n/**\n * @internal\n */\nexport class StyleElementStyles extends ElementStyles {\n constructor(styles) {\n super();\n this.styles = styles;\n this.behaviors = null;\n this.behaviors = reduceBehaviors(styles);\n this.styleSheets = reduceStyles(styles);\n this.styleClass = getNextStyleClass();\n }\n addStylesTo(target) {\n const styleSheets = this.styleSheets;\n const styleClass = this.styleClass;\n target = this.normalizeTarget(target);\n for (let i = 0; i < styleSheets.length; i++) {\n const element = document.createElement(\"style\");\n element.innerHTML = styleSheets[i];\n element.className = styleClass;\n target.append(element);\n }\n super.addStylesTo(target);\n }\n removeStylesFrom(target) {\n target = this.normalizeTarget(target);\n const styles = target.querySelectorAll(`.${this.styleClass}`);\n for (let i = 0, ii = styles.length; i < ii; ++i) {\n target.removeChild(styles[i]);\n }\n super.removeStylesFrom(target);\n }\n isAttachedTo(target) {\n return super.isAttachedTo(this.normalizeTarget(target));\n }\n normalizeTarget(target) {\n return target === document ? document.body : target;\n }\n}\n","import { Observable } from \"../observation/observable\";\nimport { DOM } from \"../dom\";\n/**\n * A {@link ValueConverter} that converts to and from `boolean` values.\n * @remarks\n * Used automatically when the `boolean` {@link AttributeMode} is selected.\n * @public\n */\nexport const booleanConverter = {\n toView(value) {\n return value ? \"true\" : \"false\";\n },\n fromView(value) {\n if (value === null ||\n value === void 0 ||\n value === \"false\" ||\n value === false ||\n value === 0) {\n return false;\n }\n return true;\n },\n};\n/**\n * A {@link ValueConverter} that converts to and from `number` values.\n * @remarks\n * This converter allows for nullable numbers, returning `null` if the\n * input was `null`, `undefined`, or `NaN`.\n * @public\n */\nexport const nullableNumberConverter = {\n toView(value) {\n if (value === null || value === undefined) {\n return null;\n }\n const number = value * 1;\n return isNaN(number) ? null : number.toString();\n },\n fromView(value) {\n if (value === null || value === undefined) {\n return null;\n }\n const number = value * 1;\n return isNaN(number) ? null : number;\n },\n};\n/**\n * An implementation of {@link Accessor} that supports reactivity,\n * change callbacks, attribute reflection, and type conversion for\n * custom elements.\n * @public\n */\nexport class AttributeDefinition {\n /**\n * Creates an instance of AttributeDefinition.\n * @param Owner - The class constructor that owns this attribute.\n * @param name - The name of the property associated with the attribute.\n * @param attribute - The name of the attribute in HTML.\n * @param mode - The {@link AttributeMode} that describes the behavior of this attribute.\n * @param converter - A {@link ValueConverter} that integrates with the property getter/setter\n * to convert values to and from a DOM string.\n */\n constructor(Owner, name, attribute = name.toLowerCase(), mode = \"reflect\", converter) {\n this.guards = new Set();\n this.Owner = Owner;\n this.name = name;\n this.attribute = attribute;\n this.mode = mode;\n this.converter = converter;\n this.fieldName = `_${name}`;\n this.callbackName = `${name}Changed`;\n this.hasCallback = this.callbackName in Owner.prototype;\n if (mode === \"boolean\" && converter === void 0) {\n this.converter = booleanConverter;\n }\n }\n /**\n * Sets the value of the attribute/property on the source element.\n * @param source - The source element to access.\n * @param value - The value to set the attribute/property to.\n */\n setValue(source, newValue) {\n const oldValue = source[this.fieldName];\n const converter = this.converter;\n if (converter !== void 0) {\n newValue = converter.fromView(newValue);\n }\n if (oldValue !== newValue) {\n source[this.fieldName] = newValue;\n this.tryReflectToAttribute(source);\n if (this.hasCallback) {\n source[this.callbackName](oldValue, newValue);\n }\n source.$fastController.notify(this.name);\n }\n }\n /**\n * Gets the value of the attribute/property on the source element.\n * @param source - The source element to access.\n */\n getValue(source) {\n Observable.track(source, this.name);\n return source[this.fieldName];\n }\n /** @internal */\n onAttributeChangedCallback(element, value) {\n if (this.guards.has(element)) {\n return;\n }\n this.guards.add(element);\n this.setValue(element, value);\n this.guards.delete(element);\n }\n tryReflectToAttribute(element) {\n const mode = this.mode;\n const guards = this.guards;\n if (guards.has(element) || mode === \"fromView\") {\n return;\n }\n DOM.queueUpdate(() => {\n guards.add(element);\n const latestValue = element[this.fieldName];\n switch (mode) {\n case \"reflect\":\n const converter = this.converter;\n DOM.setAttribute(element, this.attribute, converter !== void 0 ? converter.toView(latestValue) : latestValue);\n break;\n case \"boolean\":\n DOM.setBooleanAttribute(element, this.attribute, latestValue);\n break;\n }\n guards.delete(element);\n });\n }\n /**\n * Collects all attribute definitions associated with the owner.\n * @param Owner - The class constructor to collect attribute for.\n * @param attributeLists - Any existing attributes to collect and merge with those associated with the owner.\n * @internal\n */\n static collect(Owner, ...attributeLists) {\n const attributes = [];\n attributeLists.push(Owner.attributes);\n for (let i = 0, ii = attributeLists.length; i < ii; ++i) {\n const list = attributeLists[i];\n if (list === void 0) {\n continue;\n }\n for (let j = 0, jj = list.length; j < jj; ++j) {\n const config = list[j];\n if (typeof config === \"string\") {\n attributes.push(new AttributeDefinition(Owner, config));\n }\n else {\n attributes.push(new AttributeDefinition(Owner, config.property, config.attribute, config.mode, config.converter));\n }\n }\n }\n return attributes;\n }\n}\nexport function attr(configOrTarget, prop) {\n let config;\n function decorator($target, $prop) {\n if (arguments.length > 1) {\n // Non invocation:\n // - @attr\n // Invocation with or w/o opts:\n // - @attr()\n // - @attr({...opts})\n config.property = $prop;\n }\n const attributes = $target.constructor.attributes ||\n ($target.constructor.attributes = []);\n attributes.push(config);\n }\n if (arguments.length > 1) {\n // Non invocation:\n // - @attr\n config = {};\n decorator(configOrTarget, prop);\n return;\n }\n // Invocation with or w/o opts:\n // - @attr()\n // - @attr({...opts})\n config = configOrTarget === void 0 ? {} : configOrTarget;\n return decorator;\n}\n","import { FAST } from \"../platform\";\nimport { Observable } from \"../observation/observable\";\nimport { ElementStyles } from \"../styles/element-styles\";\nimport { AttributeDefinition } from \"./attributes\";\nconst defaultShadowOptions = { mode: \"open\" };\nconst defaultElementOptions = {};\nconst fastRegistry = FAST.getById(4 /* elementRegistry */, () => {\n const typeToDefinition = new Map();\n return Object.freeze({\n register(definition) {\n if (typeToDefinition.has(definition.type)) {\n return false;\n }\n typeToDefinition.set(definition.type, definition);\n return true;\n },\n getByType(key) {\n return typeToDefinition.get(key);\n },\n });\n});\n/**\n * Defines metadata for a FASTElement.\n * @public\n */\nexport class FASTElementDefinition {\n /**\n * Creates an instance of FASTElementDefinition.\n * @param type - The type this definition is being created for.\n * @param nameOrConfig - The name of the element to define or a config object\n * that describes the element to define.\n */\n constructor(type, nameOrConfig = type.definition) {\n if (typeof nameOrConfig === \"string\") {\n nameOrConfig = { name: nameOrConfig };\n }\n this.type = type;\n this.name = nameOrConfig.name;\n this.template = nameOrConfig.template;\n const attributes = AttributeDefinition.collect(type, nameOrConfig.attributes);\n const observedAttributes = new Array(attributes.length);\n const propertyLookup = {};\n const attributeLookup = {};\n for (let i = 0, ii = attributes.length; i < ii; ++i) {\n const current = attributes[i];\n observedAttributes[i] = current.attribute;\n propertyLookup[current.name] = current;\n attributeLookup[current.attribute] = current;\n }\n this.attributes = attributes;\n this.observedAttributes = observedAttributes;\n this.propertyLookup = propertyLookup;\n this.attributeLookup = attributeLookup;\n this.shadowOptions =\n nameOrConfig.shadowOptions === void 0\n ? defaultShadowOptions\n : nameOrConfig.shadowOptions === null\n ? void 0\n : Object.assign(Object.assign({}, defaultShadowOptions), nameOrConfig.shadowOptions);\n this.elementOptions =\n nameOrConfig.elementOptions === void 0\n ? defaultElementOptions\n : Object.assign(Object.assign({}, defaultElementOptions), nameOrConfig.elementOptions);\n this.styles =\n nameOrConfig.styles === void 0\n ? void 0\n : Array.isArray(nameOrConfig.styles)\n ? ElementStyles.create(nameOrConfig.styles)\n : nameOrConfig.styles instanceof ElementStyles\n ? nameOrConfig.styles\n : ElementStyles.create([nameOrConfig.styles]);\n }\n /**\n * Indicates if this element has been defined in at least one registry.\n */\n get isDefined() {\n return !!fastRegistry.getByType(this.type);\n }\n /**\n * Defines a custom element based on this definition.\n * @param registry - The element registry to define the element in.\n */\n define(registry = customElements) {\n const type = this.type;\n if (fastRegistry.register(this)) {\n const attributes = this.attributes;\n const proto = type.prototype;\n for (let i = 0, ii = attributes.length; i < ii; ++i) {\n Observable.defineProperty(proto, attributes[i]);\n }\n Reflect.defineProperty(type, \"observedAttributes\", {\n value: this.observedAttributes,\n enumerable: true,\n });\n }\n if (!registry.get(this.name)) {\n registry.define(this.name, type, this.elementOptions);\n }\n return this;\n }\n}\n/**\n * Gets the element definition associated with the specified type.\n * @param type - The custom element type to retrieve the definition for.\n */\nFASTElementDefinition.forType = fastRegistry.getByType;\n","import { DOM } from \"../dom\";\nimport { PropertyChangeNotifier } from \"../observation/notifier\";\nimport { defaultExecutionContext, Observable } from \"../observation/observable\";\nimport { FASTElementDefinition } from \"./fast-definitions\";\nconst shadowRoots = new WeakMap();\nconst defaultEventOptions = {\n bubbles: true,\n composed: true,\n cancelable: true,\n};\nfunction getShadowRoot(element) {\n return element.shadowRoot || shadowRoots.get(element) || null;\n}\n/**\n * Controls the lifecycle and rendering of a `FASTElement`.\n * @public\n */\nexport class Controller extends PropertyChangeNotifier {\n /**\n * Creates a Controller to control the specified element.\n * @param element - The element to be controlled by this controller.\n * @param definition - The element definition metadata that instructs this\n * controller in how to handle rendering and other platform integrations.\n * @internal\n */\n constructor(element, definition) {\n super(element);\n this.boundObservables = null;\n this.behaviors = null;\n this.needsInitialization = true;\n this._template = null;\n this._styles = null;\n this._isConnected = false;\n /**\n * This allows Observable.getNotifier(...) to return the Controller\n * when the notifier for the Controller itself is being requested. The\n * result is that the Observable system does not need to create a separate\n * instance of Notifier for observables on the Controller. The component and\n * the controller will now share the same notifier, removing one-object construct\n * per web component instance.\n */\n this.$fastController = this;\n /**\n * The view associated with the custom element.\n * @remarks\n * If `null` then the element is managing its own rendering.\n */\n this.view = null;\n this.element = element;\n this.definition = definition;\n const shadowOptions = definition.shadowOptions;\n if (shadowOptions !== void 0) {\n const shadowRoot = element.attachShadow(shadowOptions);\n if (shadowOptions.mode === \"closed\") {\n shadowRoots.set(element, shadowRoot);\n }\n }\n // Capture any observable values that were set by the binding engine before\n // the browser upgraded the element. Then delete the property since it will\n // shadow the getter/setter that is required to make the observable operate.\n // Later, in the connect callback, we'll re-apply the values.\n const accessors = Observable.getAccessors(element);\n if (accessors.length > 0) {\n const boundObservables = (this.boundObservables = Object.create(null));\n for (let i = 0, ii = accessors.length; i < ii; ++i) {\n const propertyName = accessors[i].name;\n const value = element[propertyName];\n if (value !== void 0) {\n delete element[propertyName];\n boundObservables[propertyName] = value;\n }\n }\n }\n }\n /**\n * Indicates whether or not the custom element has been\n * connected to the document.\n */\n get isConnected() {\n Observable.track(this, \"isConnected\");\n return this._isConnected;\n }\n setIsConnected(value) {\n this._isConnected = value;\n Observable.notify(this, \"isConnected\");\n }\n /**\n * Gets/sets the template used to render the component.\n * @remarks\n * This value can only be accurately read after connect but can be set at any time.\n */\n get template() {\n return this._template;\n }\n set template(value) {\n if (this._template === value) {\n return;\n }\n this._template = value;\n if (!this.needsInitialization) {\n this.renderTemplate(value);\n }\n }\n /**\n * Gets/sets the primary styles used for the component.\n * @remarks\n * This value can only be accurately read after connect but can be set at any time.\n */\n get styles() {\n return this._styles;\n }\n set styles(value) {\n if (this._styles === value) {\n return;\n }\n if (this._styles !== null) {\n this.removeStyles(this._styles);\n }\n this._styles = value;\n if (!this.needsInitialization && value !== null) {\n this.addStyles(value);\n }\n }\n /**\n * Adds styles to this element. Providing an HTMLStyleElement will attach the element instance to the shadowRoot.\n * @param styles - The styles to add.\n */\n addStyles(styles) {\n const target = getShadowRoot(this.element) ||\n this.element.getRootNode();\n if (styles instanceof HTMLStyleElement) {\n target.append(styles);\n }\n else if (!styles.isAttachedTo(target)) {\n const sourceBehaviors = styles.behaviors;\n styles.addStylesTo(target);\n if (sourceBehaviors !== null) {\n this.addBehaviors(sourceBehaviors);\n }\n }\n }\n /**\n * Removes styles from this element. Providing an HTMLStyleElement will detach the element instance from the shadowRoot.\n * @param styles - the styles to remove.\n */\n removeStyles(styles) {\n const target = getShadowRoot(this.element) ||\n this.element.getRootNode();\n if (styles instanceof HTMLStyleElement) {\n target.removeChild(styles);\n }\n else if (styles.isAttachedTo(target)) {\n const sourceBehaviors = styles.behaviors;\n styles.removeStylesFrom(target);\n if (sourceBehaviors !== null) {\n this.removeBehaviors(sourceBehaviors);\n }\n }\n }\n /**\n * Adds behaviors to this element.\n * @param behaviors - The behaviors to add.\n */\n addBehaviors(behaviors) {\n const targetBehaviors = this.behaviors || (this.behaviors = new Map());\n const length = behaviors.length;\n const behaviorsToBind = [];\n for (let i = 0; i < length; ++i) {\n const behavior = behaviors[i];\n if (targetBehaviors.has(behavior)) {\n targetBehaviors.set(behavior, targetBehaviors.get(behavior) + 1);\n }\n else {\n targetBehaviors.set(behavior, 1);\n behaviorsToBind.push(behavior);\n }\n }\n if (this._isConnected) {\n const element = this.element;\n for (let i = 0; i < behaviorsToBind.length; ++i) {\n behaviorsToBind[i].bind(element, defaultExecutionContext);\n }\n }\n }\n /**\n * Removes behaviors from this element.\n * @param behaviors - The behaviors to remove.\n * @param force - Forces unbinding of behaviors.\n */\n removeBehaviors(behaviors, force = false) {\n const targetBehaviors = this.behaviors;\n if (targetBehaviors === null) {\n return;\n }\n const length = behaviors.length;\n const behaviorsToUnbind = [];\n for (let i = 0; i < length; ++i) {\n const behavior = behaviors[i];\n if (targetBehaviors.has(behavior)) {\n const count = targetBehaviors.get(behavior) - 1;\n count === 0 || force\n ? targetBehaviors.delete(behavior) && behaviorsToUnbind.push(behavior)\n : targetBehaviors.set(behavior, count);\n }\n }\n if (this._isConnected) {\n const element = this.element;\n for (let i = 0; i < behaviorsToUnbind.length; ++i) {\n behaviorsToUnbind[i].unbind(element);\n }\n }\n }\n /**\n * Runs connected lifecycle behavior on the associated element.\n */\n onConnectedCallback() {\n if (this._isConnected) {\n return;\n }\n const element = this.element;\n if (this.needsInitialization) {\n this.finishInitialization();\n }\n else if (this.view !== null) {\n this.view.bind(element, defaultExecutionContext);\n }\n const behaviors = this.behaviors;\n if (behaviors !== null) {\n for (const [behavior] of behaviors) {\n behavior.bind(element, defaultExecutionContext);\n }\n }\n this.setIsConnected(true);\n }\n /**\n * Runs disconnected lifecycle behavior on the associated element.\n */\n onDisconnectedCallback() {\n if (!this._isConnected) {\n return;\n }\n this.setIsConnected(false);\n const view = this.view;\n if (view !== null) {\n view.unbind();\n }\n const behaviors = this.behaviors;\n if (behaviors !== null) {\n const element = this.element;\n for (const [behavior] of behaviors) {\n behavior.unbind(element);\n }\n }\n }\n /**\n * Runs the attribute changed callback for the associated element.\n * @param name - The name of the attribute that changed.\n * @param oldValue - The previous value of the attribute.\n * @param newValue - The new value of the attribute.\n */\n onAttributeChangedCallback(name, oldValue, newValue) {\n const attrDef = this.definition.attributeLookup[name];\n if (attrDef !== void 0) {\n attrDef.onAttributeChangedCallback(this.element, newValue);\n }\n }\n /**\n * Emits a custom HTML event.\n * @param type - The type name of the event.\n * @param detail - The event detail object to send with the event.\n * @param options - The event options. By default bubbles and composed.\n * @remarks\n * Only emits events if connected.\n */\n emit(type, detail, options) {\n if (this._isConnected) {\n return this.element.dispatchEvent(new CustomEvent(type, Object.assign(Object.assign({ detail }, defaultEventOptions), options)));\n }\n return false;\n }\n finishInitialization() {\n const element = this.element;\n const boundObservables = this.boundObservables;\n // If we have any observables that were bound, re-apply their values.\n if (boundObservables !== null) {\n const propertyNames = Object.keys(boundObservables);\n for (let i = 0, ii = propertyNames.length; i < ii; ++i) {\n const propertyName = propertyNames[i];\n element[propertyName] = boundObservables[propertyName];\n }\n this.boundObservables = null;\n }\n const definition = this.definition;\n // 1. Template overrides take top precedence.\n if (this._template === null) {\n if (this.element.resolveTemplate) {\n // 2. Allow for element instance overrides next.\n this._template = this.element.resolveTemplate();\n }\n else if (definition.template) {\n // 3. Default to the static definition.\n this._template = definition.template || null;\n }\n }\n // If we have a template after the above process, render it.\n // If there's no template, then the element author has opted into\n // custom rendering and they will managed the shadow root's content themselves.\n if (this._template !== null) {\n this.renderTemplate(this._template);\n }\n // 1. Styles overrides take top precedence.\n if (this._styles === null) {\n if (this.element.resolveStyles) {\n // 2. Allow for element instance overrides next.\n this._styles = this.element.resolveStyles();\n }\n else if (definition.styles) {\n // 3. Default to the static definition.\n this._styles = definition.styles || null;\n }\n }\n // If we have styles after the above process, add them.\n if (this._styles !== null) {\n this.addStyles(this._styles);\n }\n this.needsInitialization = false;\n }\n renderTemplate(template) {\n const element = this.element;\n // When getting the host to render to, we start by looking\n // up the shadow root. If there isn't one, then that means\n // we're doing a Light DOM render to the element's direct children.\n const host = getShadowRoot(element) || element;\n if (this.view !== null) {\n // If there's already a view, we need to unbind and remove through dispose.\n this.view.dispose();\n this.view = null;\n }\n else if (!this.needsInitialization) {\n // If there was previous custom rendering, we need to clear out the host.\n DOM.removeChildNodes(host);\n }\n if (template) {\n // If a new template was provided, render it.\n this.view = template.render(element, host, element);\n }\n }\n /**\n * Locates or creates a controller for the specified element.\n * @param element - The element to return the controller for.\n * @remarks\n * The specified element must have a {@link FASTElementDefinition}\n * registered either through the use of the {@link customElement}\n * decorator or a call to `FASTElement.define`.\n */\n static forCustomElement(element) {\n const controller = element.$fastController;\n if (controller !== void 0) {\n return controller;\n }\n const definition = FASTElementDefinition.forType(element.constructor);\n if (definition === void 0) {\n throw new Error(\"Missing FASTElement definition.\");\n }\n return (element.$fastController = new Controller(element, definition));\n }\n}\n","import { Controller } from \"./controller\";\nimport { FASTElementDefinition } from \"./fast-definitions\";\n/* eslint-disable-next-line @typescript-eslint/explicit-function-return-type */\nfunction createFASTElement(BaseType) {\n return class extends BaseType {\n constructor() {\n /* eslint-disable-next-line */\n super();\n Controller.forCustomElement(this);\n }\n $emit(type, detail, options) {\n return this.$fastController.emit(type, detail, options);\n }\n connectedCallback() {\n this.$fastController.onConnectedCallback();\n }\n disconnectedCallback() {\n this.$fastController.onDisconnectedCallback();\n }\n attributeChangedCallback(name, oldValue, newValue) {\n this.$fastController.onAttributeChangedCallback(name, oldValue, newValue);\n }\n };\n}\n/**\n * A minimal base class for FASTElements that also provides\n * static helpers for working with FASTElements.\n * @public\n */\nexport const FASTElement = Object.assign(createFASTElement(HTMLElement), {\n /**\n * Creates a new FASTElement base class inherited from the\n * provided base type.\n * @param BaseType - The base element type to inherit from.\n */\n from(BaseType) {\n return createFASTElement(BaseType);\n },\n /**\n * Defines a platform custom element based on the provided type and definition.\n * @param type - The custom element type to define.\n * @param nameOrDef - The name of the element to define or a definition object\n * that describes the element to define.\n */\n define(type, nameOrDef) {\n return new FASTElementDefinition(type, nameOrDef).define().type;\n },\n});\n/**\n * Decorator: Defines a platform custom element based on `FASTElement`.\n * @param nameOrDef - The name of the element to define or a definition object\n * that describes the element to define.\n * @public\n */\nexport function customElement(nameOrDef) {\n /* eslint-disable-next-line @typescript-eslint/explicit-function-return-type */\n return function (type) {\n new FASTElementDefinition(type, nameOrDef).define();\n };\n}\n","/**\n * Directive for use in {@link css}.\n *\n * @public\n */\nexport class CSSDirective {\n /**\n * Creates a CSS fragment to interpolate into the CSS document.\n * @returns - the string to interpolate into CSS\n */\n createCSS() {\n return \"\";\n }\n /**\n * Creates a behavior to bind to the host element.\n * @returns - the behavior to bind to the host element, or undefined.\n */\n createBehavior() {\n return undefined;\n }\n}\n","import { CSSDirective } from \"./css-directive\";\nimport { ElementStyles } from \"./element-styles\";\nfunction collectStyles(strings, values) {\n const styles = [];\n let cssString = \"\";\n const behaviors = [];\n for (let i = 0, ii = strings.length - 1; i < ii; ++i) {\n cssString += strings[i];\n let value = values[i];\n if (value instanceof CSSDirective) {\n const behavior = value.createBehavior();\n value = value.createCSS();\n if (behavior) {\n behaviors.push(behavior);\n }\n }\n if (value instanceof ElementStyles || value instanceof CSSStyleSheet) {\n if (cssString.trim() !== \"\") {\n styles.push(cssString);\n cssString = \"\";\n }\n styles.push(value);\n }\n else {\n cssString += value;\n }\n }\n cssString += strings[strings.length - 1];\n if (cssString.trim() !== \"\") {\n styles.push(cssString);\n }\n return {\n styles,\n behaviors,\n };\n}\n/**\n * Transforms a template literal string into styles.\n * @param strings - The string fragments that are interpolated with the values.\n * @param values - The values that are interpolated with the string fragments.\n * @remarks\n * The css helper supports interpolation of strings and ElementStyle instances.\n * @public\n */\nexport function css(strings, ...values) {\n const { styles, behaviors } = collectStyles(strings, values);\n const elementStyles = ElementStyles.create(styles);\n if (behaviors.length) {\n elementStyles.withBehaviors(...behaviors);\n }\n return elementStyles;\n}\nclass CSSPartial extends CSSDirective {\n constructor(styles, behaviors) {\n super();\n this.behaviors = behaviors;\n this.css = \"\";\n const stylesheets = styles.reduce((accumulated, current) => {\n if (typeof current === \"string\") {\n this.css += current;\n }\n else {\n accumulated.push(current);\n }\n return accumulated;\n }, []);\n if (stylesheets.length) {\n this.styles = ElementStyles.create(stylesheets);\n }\n }\n createBehavior() {\n return this;\n }\n createCSS() {\n return this.css;\n }\n bind(el) {\n if (this.styles) {\n el.$fastController.addStyles(this.styles);\n }\n if (this.behaviors.length) {\n el.$fastController.addBehaviors(this.behaviors);\n }\n }\n unbind(el) {\n if (this.styles) {\n el.$fastController.removeStyles(this.styles);\n }\n if (this.behaviors.length) {\n el.$fastController.removeBehaviors(this.behaviors);\n }\n }\n}\n/**\n * Transforms a template literal string into partial CSS.\n * @param strings - The string fragments that are interpolated with the values.\n * @param values - The values that are interpolated with the string fragments.\n * @public\n */\nexport function cssPartial(strings, ...values) {\n const { styles, behaviors } = collectStyles(strings, values);\n return new CSSPartial(styles, behaviors);\n}\n","import { AttachedBehaviorHTMLDirective } from \"./html-directive\";\n/**\n * The runtime behavior for template references.\n * @public\n */\nexport class RefBehavior {\n /**\n * Creates an instance of RefBehavior.\n * @param target - The element to reference.\n * @param propertyName - The name of the property to assign the reference to.\n */\n constructor(target, propertyName) {\n this.target = target;\n this.propertyName = propertyName;\n }\n /**\n * Bind this behavior to the source.\n * @param source - The source to bind to.\n * @param context - The execution context that the binding is operating within.\n */\n bind(source) {\n source[this.propertyName] = this.target;\n }\n /**\n * Unbinds this behavior from the source.\n * @param source - The source to unbind from.\n */\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\n unbind() { }\n}\n/**\n * A directive that observes the updates a property with a reference to the element.\n * @param propertyName - The name of the property to assign the reference to.\n * @public\n */\nexport function ref(propertyName) {\n return new AttachedBehaviorHTMLDirective(\"fast-ref\", RefBehavior, propertyName);\n}\n","/**\n * A directive that enables basic conditional rendering in a template.\n * @param binding - The condition to test for rendering.\n * @param templateOrTemplateBinding - The template or a binding that gets\n * the template to render when the condition is true.\n * @public\n */\nexport function when(binding, templateOrTemplateBinding) {\n const getTemplate = typeof templateOrTemplateBinding === \"function\"\n ? templateOrTemplateBinding\n : () => templateOrTemplateBinding;\n return (source, context) => binding(source, context) ? getTemplate(source, context) : null;\n}\n","import { Observable } from \"../observation/observable\";\nimport { emptyArray } from \"../platform\";\n/**\n * Creates a function that can be used to filter a Node array, selecting only elements.\n * @param selector - An optional selector to restrict the filter to.\n * @public\n */\nexport function elements(selector) {\n if (selector) {\n return function (value, index, array) {\n return value.nodeType === 1 && value.matches(selector);\n };\n }\n return function (value, index, array) {\n return value.nodeType === 1;\n };\n}\n/**\n * A base class for node observation.\n * @internal\n */\nexport class NodeObservationBehavior {\n /**\n * Creates an instance of NodeObservationBehavior.\n * @param target - The target to assign the nodes property on.\n * @param options - The options to use in configuring node observation.\n */\n constructor(target, options) {\n this.target = target;\n this.options = options;\n this.source = null;\n }\n /**\n * Bind this behavior to the source.\n * @param source - The source to bind to.\n * @param context - The execution context that the binding is operating within.\n */\n bind(source) {\n const name = this.options.property;\n this.shouldUpdate = Observable.getAccessors(source).some((x) => x.name === name);\n this.source = source;\n this.updateTarget(this.computeNodes());\n if (this.shouldUpdate) {\n this.observe();\n }\n }\n /**\n * Unbinds this behavior from the source.\n * @param source - The source to unbind from.\n */\n unbind() {\n this.updateTarget(emptyArray);\n this.source = null;\n if (this.shouldUpdate) {\n this.disconnect();\n }\n }\n /** @internal */\n handleEvent() {\n this.updateTarget(this.computeNodes());\n }\n computeNodes() {\n let nodes = this.getNodes();\n if (this.options.filter !== void 0) {\n nodes = nodes.filter(this.options.filter);\n }\n return nodes;\n }\n updateTarget(value) {\n this.source[this.options.property] = value;\n }\n}\n","import { AttachedBehaviorHTMLDirective } from \"./html-directive\";\nimport { NodeObservationBehavior } from \"./node-observation\";\n/**\n * The runtime behavior for slotted node observation.\n * @public\n */\nexport class SlottedBehavior extends NodeObservationBehavior {\n /**\n * Creates an instance of SlottedBehavior.\n * @param target - The slot element target to observe.\n * @param options - The options to use when observing the slot.\n */\n constructor(target, options) {\n super(target, options);\n }\n /**\n * Begins observation of the nodes.\n */\n observe() {\n this.target.addEventListener(\"slotchange\", this);\n }\n /**\n * Disconnects observation of the nodes.\n */\n disconnect() {\n this.target.removeEventListener(\"slotchange\", this);\n }\n /**\n * Retrieves the nodes that should be assigned to the target.\n */\n getNodes() {\n return this.target.assignedNodes(this.options);\n }\n}\n/**\n * A directive that observes the `assignedNodes()` of a slot and updates a property\n * whenever they change.\n * @param propertyOrOptions - The options used to configure slotted node observation.\n * @public\n */\nexport function slotted(propertyOrOptions) {\n if (typeof propertyOrOptions === \"string\") {\n propertyOrOptions = { property: propertyOrOptions };\n }\n return new AttachedBehaviorHTMLDirective(\"fast-slotted\", SlottedBehavior, propertyOrOptions);\n}\n","import { AttachedBehaviorHTMLDirective } from \"./html-directive\";\nimport { NodeObservationBehavior } from \"./node-observation\";\n/**\n * The runtime behavior for child node observation.\n * @public\n */\nexport class ChildrenBehavior extends NodeObservationBehavior {\n /**\n * Creates an instance of ChildrenBehavior.\n * @param target - The element target to observe children on.\n * @param options - The options to use when observing the element children.\n */\n constructor(target, options) {\n super(target, options);\n this.observer = null;\n options.childList = true;\n }\n /**\n * Begins observation of the nodes.\n */\n observe() {\n if (this.observer === null) {\n this.observer = new MutationObserver(this.handleEvent.bind(this));\n }\n this.observer.observe(this.target, this.options);\n }\n /**\n * Disconnects observation of the nodes.\n */\n disconnect() {\n this.observer.disconnect();\n }\n /**\n * Retrieves the nodes that should be assigned to the target.\n */\n getNodes() {\n if (\"subtree\" in this.options) {\n return Array.from(this.target.querySelectorAll(this.options.selector));\n }\n return Array.from(this.target.childNodes);\n }\n}\n/**\n * A directive that observes the `childNodes` of an element and updates a property\n * whenever they change.\n * @param propertyOrOptions - The options used to configure child node observation.\n * @public\n */\nexport function children(propertyOrOptions) {\n if (typeof propertyOrOptions === \"string\") {\n propertyOrOptions = {\n property: propertyOrOptions,\n };\n }\n return new AttachedBehaviorHTMLDirective(\"fast-children\", ChildrenBehavior, propertyOrOptions);\n}\n","import { html, ref } from \"@microsoft/fast-element\";\n/**\n * A mixin class implementing start and end elements.\n * These are generally used to decorate text elements with icons or other visual indicators.\n * @public\n */\nexport class StartEnd {\n handleStartContentChange() {\n this.startContainer.classList.toggle(\"start\", this.start.assignedNodes().length > 0);\n }\n handleEndContentChange() {\n this.endContainer.classList.toggle(\"end\", this.end.assignedNodes().length > 0);\n }\n}\n/**\n * The template for the end element.\n * For use with {@link StartEnd}\n *\n * @public\n */\nexport const endSlotTemplate = (context, definition) => html `\n <span\n part=\"end\"\n ${ref(\"endContainer\")}\n class=${x => (definition.end ? \"end\" : void 0)}\n >\n <slot name=\"end\" ${ref(\"end\")} @slotchange=\"${x => x.handleEndContentChange()}\">\n ${definition.end || \"\"}\n </slot>\n </span>\n`;\n/**\n * The template for the start element.\n * For use with {@link StartEnd}\n *\n * @public\n */\nexport const startSlotTemplate = (context, definition) => html `\n <span\n part=\"start\"\n ${ref(\"startContainer\")}\n class=\"${x => (definition.start ? \"start\" : void 0)}\"\n >\n <slot\n name=\"start\"\n ${ref(\"start\")}\n @slotchange=\"${x => x.handleStartContentChange()}\"\n >\n ${definition.start || \"\"}\n </slot>\n </span>\n`;\n/**\n * The template for the end element.\n * For use with {@link StartEnd}\n *\n * @public\n * @deprecated - use endSlotTemplate\n */\nexport const endTemplate = html `\n <span part=\"end\" ${ref(\"endContainer\")}>\n <slot\n name=\"end\"\n ${ref(\"end\")}\n @slotchange=\"${x => x.handleEndContentChange()}\"\n ></slot>\n </span>\n`;\n/**\n * The template for the start element.\n * For use with {@link StartEnd}\n *\n * @public\n * @deprecated - use startSlotTemplate\n */\nexport const startTemplate = html `\n <span part=\"start\" ${ref(\"startContainer\")}>\n <slot\n name=\"start\"\n ${ref(\"start\")}\n @slotchange=\"${x => x.handleStartContentChange()}\"\n ></slot>\n </span>\n`;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n 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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/**\n * Big thanks to https://github.com/fkleuver and the https://github.com/aurelia/aurelia project\n * for the bulk of this code and many of the associated tests.\n */\nimport { emptyArray, FASTElement } from \"@microsoft/fast-element\";\n// Tiny polyfill for TypeScript's Reflect metadata API.\nconst metadataByTarget = new Map();\nif (!(\"metadata\" in Reflect)) {\n Reflect.metadata = function (key, value) {\n return function (target) {\n Reflect.defineMetadata(key, value, target);\n };\n };\n Reflect.defineMetadata = function (key, value, target) {\n let metadata = metadataByTarget.get(target);\n if (metadata === void 0) {\n metadataByTarget.set(target, (metadata = new Map()));\n }\n metadata.set(key, value);\n };\n Reflect.getOwnMetadata = function (key, target) {\n const metadata = metadataByTarget.get(target);\n if (metadata !== void 0) {\n return metadata.get(key);\n }\n return void 0;\n };\n}\n/**\n * A utility class used that constructs and registers resolvers for a dependency\n * injection container. Supports a standard set of object lifetimes.\n * @public\n */\nexport class ResolverBuilder {\n /**\n *\n * @param container - The container to create resolvers for.\n * @param key - The key to register resolvers under.\n */\n constructor(container, key) {\n this.container = container;\n this.key = key;\n }\n /**\n * Creates a resolver for an existing object instance.\n * @param value - The instance to resolve.\n * @returns The resolver.\n */\n instance(value) {\n return this.registerResolver(0 /* instance */, value);\n }\n /**\n * Creates a resolver that enforces a singleton lifetime.\n * @param value - The type to create and cache the singleton for.\n * @returns The resolver.\n */\n singleton(value) {\n return this.registerResolver(1 /* singleton */, value);\n }\n /**\n * Creates a resolver that creates a new instance for every dependency request.\n * @param value - The type to create instances of.\n * @returns - The resolver.\n */\n transient(value) {\n return this.registerResolver(2 /* transient */, value);\n }\n /**\n * Creates a resolver that invokes a callback function for every dependency resolution\n * request, allowing custom logic to return the dependency.\n * @param value - The callback to call during resolution.\n * @returns The resolver.\n */\n callback(value) {\n return this.registerResolver(3 /* callback */, value);\n }\n /**\n * Creates a resolver that invokes a callback function the first time that a dependency\n * resolution is requested. The returned value is then cached and provided for all\n * subsequent requests.\n * @param value - The callback to call during the first resolution.\n * @returns The resolver.\n */\n cachedCallback(value) {\n return this.registerResolver(3 /* callback */, cacheCallbackResult(value));\n }\n /**\n * Aliases the current key to a different key.\n * @param destinationKey - The key to point the alias to.\n * @returns The resolver.\n */\n aliasTo(destinationKey) {\n return this.registerResolver(5 /* alias */, destinationKey);\n }\n registerResolver(strategy, state) {\n const { container, key } = this;\n /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */\n this.container = this.key = (void 0);\n return container.registerResolver(key, new ResolverImpl(key, strategy, state));\n }\n}\nfunction cloneArrayWithPossibleProps(source) {\n const clone = source.slice();\n const keys = Object.keys(source);\n const len = keys.length;\n let key;\n for (let i = 0; i < len; ++i) {\n key = keys[i];\n if (!isArrayIndex(key)) {\n clone[key] = source[key];\n }\n }\n return clone;\n}\n/**\n * A set of default resolvers useful in configuring a container.\n * @public\n */\nexport const DefaultResolver = Object.freeze({\n /**\n * Disables auto-registration and throws for all un-registered dependencies.\n * @param key - The key to create the resolver for.\n */\n none(key) {\n throw Error(`${key.toString()} not registered, did you forget to add @singleton()?`);\n },\n /**\n * Provides default singleton resolution behavior during auto-registration.\n * @param key - The key to create the resolver for.\n * @returns The resolver.\n */\n singleton(key) {\n return new ResolverImpl(key, 1 /* singleton */, key);\n },\n /**\n * Provides default transient resolution behavior during auto-registration.\n * @param key - The key to create the resolver for.\n * @returns The resolver.\n */\n transient(key) {\n return new ResolverImpl(key, 2 /* transient */, key);\n },\n});\n/**\n * Configuration for a dependency injection container.\n * @public\n */\nexport const ContainerConfiguration = Object.freeze({\n /**\n * The default configuration used when creating a DOM-disconnected container.\n * @remarks\n * The default creates a root container, with no parent container. It does not handle\n * owner requests and it uses singleton resolution behavior for auto-registration.\n */\n default: Object.freeze({\n parentLocator: () => null,\n responsibleForOwnerRequests: false,\n defaultResolver: DefaultResolver.singleton,\n }),\n});\nconst dependencyLookup = new Map();\nfunction getParamTypes(key) {\n return (Type) => {\n return Reflect.getOwnMetadata(key, Type);\n };\n}\nlet rootDOMContainer = null;\n/**\n * The gateway to dependency injection APIs.\n * @public\n */\nexport const DI = Object.freeze({\n /**\n * Creates a new dependency injection container.\n * @param config - The configuration for the container.\n * @returns A newly created dependency injection container.\n */\n createContainer(config) {\n return new ContainerImpl(null, Object.assign({}, ContainerConfiguration.default, config));\n },\n /**\n * Finds the dependency injection container responsible for providing dependencies\n * to the specified node.\n * @param node - The node to find the responsible container for.\n * @returns The container responsible for providing dependencies to the node.\n * @remarks\n * This will be the same as the parent container if the specified node\n * does not itself host a container configured with responsibleForOwnerRequests.\n */\n findResponsibleContainer(node) {\n const owned = node.$$container$$;\n if (owned && owned.responsibleForOwnerRequests) {\n return owned;\n }\n return DI.findParentContainer(node);\n },\n /**\n * Find the dependency injection container up the DOM tree from this node.\n * @param node - The node to find the parent container for.\n * @returns The parent container of this node.\n * @remarks\n * This will be the same as the responsible container if the specified node\n * does not itself host a container configured with responsibleForOwnerRequests.\n */\n findParentContainer(node) {\n const event = new CustomEvent(DILocateParentEventType, {\n bubbles: true,\n composed: true,\n cancelable: true,\n detail: { container: void 0 },\n });\n node.dispatchEvent(event);\n return event.detail.container || DI.getOrCreateDOMContainer();\n },\n /**\n * Returns a dependency injection container if one is explicitly owned by the specified\n * node. If one is not owned, then a new container is created and assigned to the node.\n * @param node - The node to find or create the container for.\n * @param config - The configuration for the container if one needs to be created.\n * @returns The located or created container.\n * @remarks\n * This API does not search for a responsible or parent container. It looks only for a container\n * directly defined on the specified node and creates one at that location if one does not\n * already exist.\n */\n getOrCreateDOMContainer(node, config) {\n if (!node) {\n return (rootDOMContainer ||\n (rootDOMContainer = new ContainerImpl(null, Object.assign({}, ContainerConfiguration.default, config, {\n parentLocator: () => null,\n }))));\n }\n return (node.$$container$$ ||\n new ContainerImpl(node, Object.assign({}, ContainerConfiguration.default, config, {\n parentLocator: DI.findParentContainer,\n })));\n },\n /**\n * Gets the \"design:paramtypes\" metadata for the specified type.\n * @param Type - The type to get the metadata for.\n * @returns The metadata array or undefined if no metadata is found.\n */\n getDesignParamtypes: getParamTypes(\"design:paramtypes\"),\n /**\n * Gets the \"di:paramtypes\" metadata for the specified type.\n * @param Type - The type to get the metadata for.\n * @returns The metadata array or undefined if no metadata is found.\n */\n getAnnotationParamtypes: getParamTypes(\"di:paramtypes\"),\n /**\n *\n * @param Type - Gets the \"di:paramtypes\" metadata for the specified type. If none is found,\n * an empty metadata array is created and added.\n * @returns The metadata array.\n */\n getOrCreateAnnotationParamTypes(Type) {\n let annotationParamtypes = this.getAnnotationParamtypes(Type);\n if (annotationParamtypes === void 0) {\n Reflect.defineMetadata(\"di:paramtypes\", (annotationParamtypes = []), Type);\n }\n return annotationParamtypes;\n },\n /**\n * Gets the dependency keys representing what is needed to instantiate the specified type.\n * @param Type - The type to get the dependencies for.\n * @returns An array of dependency keys.\n */\n getDependencies(Type) {\n // Note: Every detail of this getDependencies method is pretty deliberate at the moment, and probably not yet 100% tested from every possible angle,\n // so be careful with making changes here as it can have a huge impact on complex end user apps.\n // Preferably, only make changes to the dependency resolution process via a RFC.\n let dependencies = dependencyLookup.get(Type);\n if (dependencies === void 0) {\n // Type.length is the number of constructor parameters. If this is 0, it could mean the class has an empty constructor\n // but it could also mean the class has no constructor at all (in which case it inherits the constructor from the prototype).\n // Non-zero constructor length + no paramtypes means emitDecoratorMetadata is off, or the class has no decorator.\n // We're not doing anything with the above right now, but it's good to keep in mind for any future issues.\n const inject = Type.inject;\n if (inject === void 0) {\n // design:paramtypes is set by tsc when emitDecoratorMetadata is enabled.\n const designParamtypes = DI.getDesignParamtypes(Type);\n // di:paramtypes is set by the parameter decorator from DI.createInterface or by @inject\n const annotationParamtypes = DI.getAnnotationParamtypes(Type);\n if (designParamtypes === void 0) {\n if (annotationParamtypes === void 0) {\n // Only go up the prototype if neither static inject nor any of the paramtypes is defined, as\n // there is no sound way to merge a type's deps with its prototype's deps\n const Proto = Object.getPrototypeOf(Type);\n if (typeof Proto === \"function\" && Proto !== Function.prototype) {\n dependencies = cloneArrayWithPossibleProps(DI.getDependencies(Proto));\n }\n else {\n dependencies = [];\n }\n }\n else {\n // No design:paramtypes so just use the di:paramtypes\n dependencies = cloneArrayWithPossibleProps(annotationParamtypes);\n }\n }\n else if (annotationParamtypes === void 0) {\n // No di:paramtypes so just use the design:paramtypes\n dependencies = cloneArrayWithPossibleProps(designParamtypes);\n }\n else {\n // We've got both, so merge them (in case of conflict on same index, di:paramtypes take precedence)\n dependencies = cloneArrayWithPossibleProps(designParamtypes);\n let len = annotationParamtypes.length;\n let auAnnotationParamtype;\n for (let i = 0; i < len; ++i) {\n auAnnotationParamtype = annotationParamtypes[i];\n if (auAnnotationParamtype !== void 0) {\n dependencies[i] = auAnnotationParamtype;\n }\n }\n const keys = Object.keys(annotationParamtypes);\n len = keys.length;\n let key;\n for (let i = 0; i < len; ++i) {\n key = keys[i];\n if (!isArrayIndex(key)) {\n dependencies[key] = annotationParamtypes[key];\n }\n }\n }\n }\n else {\n // Ignore paramtypes if we have static inject\n dependencies = cloneArrayWithPossibleProps(inject);\n }\n dependencyLookup.set(Type, dependencies);\n }\n return dependencies;\n },\n /**\n * Defines a property on a web component class. The value of this property will\n * be resolved from the dependency injection container responsible for the element\n * instance, based on where it is connected in the DOM.\n * @param target - The target to define the property on.\n * @param propertyName - The name of the property to define.\n * @param key - The dependency injection key.\n * @param respectConnection - Indicates whether or not to update the property value if the\n * hosting component is disconnected and then re-connected at a different location in the DOM.\n * @remarks\n * The respectConnection option is only applicable to elements that descend from FASTElement.\n */\n defineProperty(target, propertyName, key, respectConnection = false) {\n const diPropertyKey = `$di_${propertyName}`;\n Reflect.defineProperty(target, propertyName, {\n get: function () {\n let value = this[diPropertyKey];\n if (value === void 0) {\n const container = this instanceof HTMLElement\n ? DI.findResponsibleContainer(this)\n : DI.getOrCreateDOMContainer();\n value = container.get(key);\n this[diPropertyKey] = value;\n if (respectConnection && this instanceof FASTElement) {\n const notifier = this.$fastController;\n const handleChange = () => {\n const newContainer = DI.findResponsibleContainer(this);\n const newValue = newContainer.get(key);\n const oldValue = this[diPropertyKey];\n if (newValue !== oldValue) {\n this[diPropertyKey] = value;\n notifier.notify(propertyName);\n }\n };\n notifier.subscribe({ handleChange }, \"isConnected\");\n }\n }\n return value;\n },\n });\n },\n /**\n * Creates a dependency injection key.\n * @param nameConfigOrCallback - A friendly name for the key or a lambda that configures a\n * default resolution for the dependency.\n * @param configuror - If a friendly name was provided for the first parameter, then an optional\n * lambda that configures a default resolution for the dependency can be provided second.\n * @returns The created key.\n * @remarks\n * The created key can be used as a property decorator or constructor parameter decorator,\n * in addition to its standard use in an inject array or through direct container APIs.\n */\n createInterface(nameConfigOrCallback, configuror) {\n const configure = typeof nameConfigOrCallback === \"function\"\n ? nameConfigOrCallback\n : configuror;\n const friendlyName = typeof nameConfigOrCallback === \"string\"\n ? nameConfigOrCallback\n : nameConfigOrCallback && \"friendlyName\" in nameConfigOrCallback\n ? nameConfigOrCallback.friendlyName || defaultFriendlyName\n : defaultFriendlyName;\n const respectConnection = typeof nameConfigOrCallback === \"string\"\n ? false\n : nameConfigOrCallback && \"respectConnection\" in nameConfigOrCallback\n ? nameConfigOrCallback.respectConnection || false\n : false;\n const Interface = function (target, property, index) {\n if (target == null || new.target !== undefined) {\n throw new Error(`No registration for interface: '${Interface.friendlyName}'`);\n }\n if (property) {\n DI.defineProperty(target, property, Interface, respectConnection);\n }\n else {\n const annotationParamtypes = DI.getOrCreateAnnotationParamTypes(target);\n annotationParamtypes[index] = Interface;\n }\n };\n Interface.$isInterface = true;\n Interface.friendlyName = friendlyName == null ? \"(anonymous)\" : friendlyName;\n if (configure != null) {\n Interface.register = function (container, key) {\n return configure(new ResolverBuilder(container, key !== null && key !== void 0 ? key : Interface));\n };\n }\n Interface.toString = function toString() {\n return `InterfaceSymbol<${Interface.friendlyName}>`;\n };\n return Interface;\n },\n /**\n * A decorator that specifies what to inject into its target.\n * @param dependencies - The dependencies to inject.\n * @returns The decorator to be applied to the target class.\n * @remarks\n * The decorator can be used to decorate a class, listing all of the classes dependencies.\n * Or it can be used to decorate a constructor paramter, indicating what to inject for that\n * parameter.\n * Or it can be used for a web component property, indicating what that property should resolve to.\n */\n inject(...dependencies) {\n return function (target, key, descriptor) {\n if (typeof descriptor === \"number\") {\n // It's a parameter decorator.\n const annotationParamtypes = DI.getOrCreateAnnotationParamTypes(target);\n const dep = dependencies[0];\n if (dep !== void 0) {\n annotationParamtypes[descriptor] = dep;\n }\n }\n else if (key) {\n DI.defineProperty(target, key, dependencies[0]);\n }\n else {\n const annotationParamtypes = descriptor\n ? DI.getOrCreateAnnotationParamTypes(descriptor.value)\n : DI.getOrCreateAnnotationParamTypes(target);\n let dep;\n for (let i = 0; i < dependencies.length; ++i) {\n dep = dependencies[i];\n if (dep !== void 0) {\n annotationParamtypes[i] = dep;\n }\n }\n }\n };\n },\n /**\n * Registers the `target` class as a transient dependency; each time the dependency is resolved\n * a new instance will be created.\n *\n * @param target - The class / constructor function to register as transient.\n * @returns The same class, with a static `register` method that takes a container and returns the appropriate resolver.\n *\n * @example\n * On an existing class\n * ```ts\n * class Foo { }\n * DI.transient(Foo);\n * ```\n *\n * @example\n * Inline declaration\n *\n * ```ts\n * const Foo = DI.transient(class { });\n * // Foo is now strongly typed with register\n * Foo.register(container);\n * ```\n *\n * @public\n */\n transient(target) {\n target.register = function register(container) {\n const registration = Registration.transient(target, target);\n return registration.register(container);\n };\n target.registerInRequestor = false;\n return target;\n },\n /**\n * Registers the `target` class as a singleton dependency; the class will only be created once. Each\n * consecutive time the dependency is resolved, the same instance will be returned.\n *\n * @param target - The class / constructor function to register as a singleton.\n * @returns The same class, with a static `register` method that takes a container and returns the appropriate resolver.\n * @example\n * On an existing class\n * ```ts\n * class Foo { }\n * DI.singleton(Foo);\n * ```\n *\n * @example\n * Inline declaration\n * ```ts\n * const Foo = DI.singleton(class { });\n * // Foo is now strongly typed with register\n * Foo.register(container);\n * ```\n *\n * @public\n */\n singleton(target, options = defaultSingletonOptions) {\n target.register = function register(container) {\n const registration = Registration.singleton(target, target);\n return registration.register(container);\n };\n target.registerInRequestor = options.scoped;\n return target;\n },\n});\n/**\n * The interface key that resolves the dependency injection container itself.\n * @public\n */\nexport const Container = DI.createInterface(\"Container\");\n/**\n * The interface key that resolves the service locator itself.\n * @public\n */\nexport const ServiceLocator = Container;\nfunction createResolver(getter) {\n return function (key) {\n const resolver = function (target, property, descriptor) {\n DI.inject(resolver)(target, property, descriptor);\n };\n resolver.$isResolver = true;\n resolver.resolve = function (handler, requestor) {\n return getter(key, handler, requestor);\n };\n return resolver;\n };\n}\n/**\n * A decorator that specifies what to inject into its target.\n * @param dependencies - The dependencies to inject.\n * @returns The decorator to be applied to the target class.\n * @remarks\n * The decorator can be used to decorate a class, listing all of the classes dependencies.\n * Or it can be used to decorate a constructor paramter, indicating what to inject for that\n * parameter.\n * Or it can be used for a web component property, indicating what that property should resolve to.\n *\n * @public\n */\nexport const inject = DI.inject;\nfunction transientDecorator(target) {\n return DI.transient(target);\n}\nexport function transient(target) {\n return target == null ? transientDecorator : transientDecorator(target);\n}\nconst defaultSingletonOptions = { scoped: false };\nfunction singletonDecorator(target) {\n return DI.singleton(target);\n}\n/**\n * @public\n */\nexport function singleton(targetOrOptions) {\n if (typeof targetOrOptions === \"function\") {\n return DI.singleton(targetOrOptions);\n }\n return function ($target) {\n return DI.singleton($target, targetOrOptions);\n };\n}\nfunction createAllResolver(getter) {\n return function (key, searchAncestors) {\n searchAncestors = !!searchAncestors;\n const resolver = function (target, property, descriptor) {\n DI.inject(resolver)(target, property, descriptor);\n };\n resolver.$isResolver = true;\n resolver.resolve = function (handler, requestor) {\n /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */\n return getter(key, handler, requestor, searchAncestors);\n };\n return resolver;\n };\n}\n/**\n * A decorator and DI resolver that will resolve an array of all dependencies\n * registered with the specified key.\n * @param key - The key to resolve all dependencies for.\n * @param searchAncestors - [optional] Indicates whether to search ancestor containers.\n * @public\n */\nexport const all = createAllResolver((key, handler, requestor, searchAncestors) => requestor.getAll(key, searchAncestors));\n/**\n * A decorator that lazily injects a dependency depending on whether the `Key` is present at the time of function call.\n *\n * @example\n * You need to make your argument a function that returns the type, for example\n * ```ts\n * class Foo {\n * constructor( @lazy('random') public random: () => number )\n * }\n * const foo = container.get(Foo); // instanceof Foo\n * foo.random(); // throws\n * ```\n * would throw an exception because you haven't registered `'random'` before calling the method.\n * @example\n * This, would give you a new 'Math.random()' number each time.\n * ```ts\n * class Foo {\n * constructor( @lazy('random') public random: () => random )\n * }\n * container.register(Registration.callback('random', Math.random ));\n * container.get(Foo).random(); // some random number\n * container.get(Foo).random(); // another random number\n * ```\n *\n * `@lazy` does not manage the lifecycle of the underlying key. If you want a singleton, you have to register as a\n * `singleton`, `transient` would also behave as you would expect, providing you a new instance each time.\n *\n * @param key - The key to lazily resolve.\n * see {@link DI.createInterface} on interactions with interfaces\n *\n * @public\n */\nexport const lazy = createResolver((key, handler, requestor) => {\n return () => requestor.get(key);\n});\n/**\n * A decorator that allows you to optionally inject a dependency depending on whether the [[`Key`]] is present, for example:\n * @example\n * ```ts\n * class Foo {\n * constructor( @inject('mystring') public str: string = 'somestring' )\n * }\n * container.get(Foo); // throws\n * ```\n * would fail\n *\n * @example\n * ```ts\n * class Foo {\n * constructor( @optional('mystring') public str: string = 'somestring' )\n * }\n * container.get(Foo).str // somestring\n * ```\n * if you use it without a default it will inject `undefined`, so remember to mark your input type as\n * possibly `undefined`!\n *\n * @param key - The key to optionally resolve.\n * see {@link DI.createInterface} on interactions with interfaces\n *\n * @public\n */\nexport const optional = createResolver((key, handler, requestor) => {\n if (requestor.has(key, true)) {\n return requestor.get(key);\n }\n else {\n return undefined;\n }\n});\n/**\n * A decorator that tells the container not to try to inject a dependency.\n *\n * @public\n */\nexport function ignore(target, property, descriptor) {\n DI.inject(ignore)(target, property, descriptor);\n}\n// Hack: casting below used to prevent TS from generate a namespace which can't be commented\n// and results in documentation validation errors.\nignore.$isResolver = true;\nignore.resolve = () => undefined;\n/**\n * A decorator that indicates that a new instance should be injected scoped to the\n * container that requested the instance.\n * @param key - The dependency key for the new instance.\n * @remarks\n * This creates a resolver with an instance strategy pointing to the new instance, effectively\n * making this a singleton, scoped to the container or DOM's subtree.\n *\n * @public\n */\nexport const newInstanceForScope = createResolver((key, handler, requestor) => {\n const instance = createNewInstance(key, handler);\n const resolver = new ResolverImpl(key, 0 /* instance */, instance);\n requestor.registerResolver(key, resolver);\n return instance;\n});\n/**\n * A decorator that indicates that a new instance should be injected.\n * @param key - The dependency key for the new instance.\n * @remarks\n * The instance is not internally cached with a resolver as newInstanceForScope does.\n *\n * @public\n */\nexport const newInstanceOf = createResolver((key, handler, _requestor) => createNewInstance(key, handler));\nfunction createNewInstance(key, handler) {\n /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */\n return handler.getFactory(key).construct(handler);\n}\n/** @internal */\nexport class ResolverImpl {\n constructor(key, strategy, state) {\n this.key = key;\n this.strategy = strategy;\n this.state = state;\n this.resolving = false;\n }\n get $isResolver() {\n return true;\n }\n register(container) {\n return container.registerResolver(this.key, this);\n }\n resolve(handler, requestor) {\n switch (this.strategy) {\n case 0 /* instance */:\n return this.state;\n case 1 /* singleton */: {\n if (this.resolving) {\n throw new Error(`Cyclic dependency found: ${this.state.name}`);\n }\n this.resolving = true;\n this.state = handler\n .getFactory(this.state)\n .construct(requestor);\n this.strategy = 0 /* instance */;\n this.resolving = false;\n return this.state;\n }\n case 2 /* transient */: {\n // Always create transients from the requesting container\n const factory = handler.getFactory(this.state);\n if (factory === null) {\n throw new Error(`Resolver for ${String(this.key)} returned a null factory`);\n }\n return factory.construct(requestor);\n }\n case 3 /* callback */:\n return this.state(handler, requestor, this);\n case 4 /* array */:\n return this.state[0].resolve(handler, requestor);\n case 5 /* alias */:\n return requestor.get(this.state);\n default:\n throw new Error(`Invalid resolver strategy specified: ${this.strategy}.`);\n }\n }\n getFactory(container) {\n var _a, _b, _c;\n switch (this.strategy) {\n case 1 /* singleton */:\n case 2 /* transient */:\n return container.getFactory(this.state);\n case 5 /* alias */:\n return (_c = (_b = (_a = container.getResolver(this.state)) === null || _a === void 0 ? void 0 : _a.getFactory) === null || _b === void 0 ? void 0 : _b.call(_a, container)) !== null && _c !== void 0 ? _c : null;\n default:\n return null;\n }\n }\n}\nfunction containerGetKey(d) {\n return this.get(d);\n}\nfunction transformInstance(inst, transform) {\n return transform(inst);\n}\n/** @internal */\nexport class FactoryImpl {\n constructor(Type, dependencies) {\n this.Type = Type;\n this.dependencies = dependencies;\n this.transformers = null;\n }\n construct(container, dynamicDependencies) {\n let instance;\n if (dynamicDependencies === void 0) {\n instance = new this.Type(...this.dependencies.map(containerGetKey, container));\n }\n else {\n instance = new this.Type(...this.dependencies.map(containerGetKey, container), ...dynamicDependencies);\n }\n if (this.transformers == null) {\n return instance;\n }\n return this.transformers.reduce(transformInstance, instance);\n }\n registerTransformer(transformer) {\n (this.transformers || (this.transformers = [])).push(transformer);\n }\n}\nconst containerResolver = {\n $isResolver: true,\n resolve(handler, requestor) {\n return requestor;\n },\n};\nfunction isRegistry(obj) {\n return typeof obj.register === \"function\";\n}\nfunction isSelfRegistry(obj) {\n return isRegistry(obj) && typeof obj.registerInRequestor === \"boolean\";\n}\nfunction isRegisterInRequester(obj) {\n return isSelfRegistry(obj) && obj.registerInRequestor;\n}\nfunction isClass(obj) {\n return obj.prototype !== void 0;\n}\nconst InstrinsicTypeNames = new Set([\n \"Array\",\n \"ArrayBuffer\",\n \"Boolean\",\n \"DataView\",\n \"Date\",\n \"Error\",\n \"EvalError\",\n \"Float32Array\",\n \"Float64Array\",\n \"Function\",\n \"Int8Array\",\n \"Int16Array\",\n \"Int32Array\",\n \"Map\",\n \"Number\",\n \"Object\",\n \"Promise\",\n \"RangeError\",\n \"ReferenceError\",\n \"RegExp\",\n \"Set\",\n \"SharedArrayBuffer\",\n \"String\",\n \"SyntaxError\",\n \"TypeError\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"URIError\",\n \"WeakMap\",\n \"WeakSet\",\n]);\nconst DILocateParentEventType = \"__DI_LOCATE_PARENT__\";\nconst factories = new Map();\n/**\n * @internal\n */\nexport class ContainerImpl {\n constructor(owner, config) {\n this.owner = owner;\n this.config = config;\n this._parent = void 0;\n this.registerDepth = 0;\n this.context = null;\n if (owner !== null) {\n owner.$$container$$ = this;\n }\n this.resolvers = new Map();\n this.resolvers.set(Container, containerResolver);\n if (owner instanceof Node) {\n owner.addEventListener(DILocateParentEventType, (e) => {\n if (e.composedPath()[0] !== this.owner) {\n e.detail.container = this;\n e.stopImmediatePropagation();\n }\n });\n }\n }\n get parent() {\n if (this._parent === void 0) {\n this._parent = this.config.parentLocator(this.owner);\n }\n return this._parent;\n }\n get depth() {\n return this.parent === null ? 0 : this.parent.depth + 1;\n }\n get responsibleForOwnerRequests() {\n return this.config.responsibleForOwnerRequests;\n }\n registerWithContext(context, ...params) {\n this.context = context;\n this.register(...params);\n this.context = null;\n return this;\n }\n register(...params) {\n if (++this.registerDepth === 100) {\n throw new Error(\"Unable to autoregister dependency\");\n // Most likely cause is trying to register a plain object that does not have a\n // register method and is not a class constructor\n }\n let current;\n let keys;\n let value;\n let j;\n let jj;\n const context = this.context;\n for (let i = 0, ii = params.length; i < ii; ++i) {\n current = params[i];\n if (!isObject(current)) {\n continue;\n }\n if (isRegistry(current)) {\n current.register(this, context);\n }\n else if (isClass(current)) {\n Registration.singleton(current, current).register(this);\n }\n else {\n keys = Object.keys(current);\n j = 0;\n jj = keys.length;\n for (; j < jj; ++j) {\n value = current[keys[j]];\n if (!isObject(value)) {\n continue;\n }\n // note: we could remove this if-branch and call this.register directly\n // - the extra check is just a perf tweak to create fewer unnecessary arrays by the spread operator\n if (isRegistry(value)) {\n value.register(this, context);\n }\n else {\n this.register(value);\n }\n }\n }\n }\n --this.registerDepth;\n return this;\n }\n registerResolver(key, resolver) {\n validateKey(key);\n const resolvers = this.resolvers;\n const result = resolvers.get(key);\n if (result == null) {\n resolvers.set(key, resolver);\n }\n else if (result instanceof ResolverImpl &&\n result.strategy === 4 /* array */) {\n result.state.push(resolver);\n }\n else {\n resolvers.set(key, new ResolverImpl(key, 4 /* array */, [result, resolver]));\n }\n return resolver;\n }\n registerTransformer(key, transformer) {\n const resolver = this.getResolver(key);\n if (resolver == null) {\n return false;\n }\n if (resolver.getFactory) {\n const factory = resolver.getFactory(this);\n if (factory == null) {\n return false;\n }\n // This type cast is a bit of a hacky one, necessary due to the duplicity of IResolverLike.\n // Problem is that that interface's type arg can be of type Key, but the getFactory method only works on\n // type Constructable. So the return type of that optional method has this additional constraint, which\n // seems to confuse the type checker.\n factory.registerTransformer(transformer);\n return true;\n }\n return false;\n }\n getResolver(key, autoRegister = true) {\n validateKey(key);\n if (key.resolve !== void 0) {\n return key;\n }\n /* eslint-disable-next-line @typescript-eslint/no-this-alias */\n let current = this;\n let resolver;\n while (current != null) {\n resolver = current.resolvers.get(key);\n if (resolver == null) {\n if (current.parent == null) {\n const handler = isRegisterInRequester(key)\n ? this\n : current;\n return autoRegister ? this.jitRegister(key, handler) : null;\n }\n current = current.parent;\n }\n else {\n return resolver;\n }\n }\n return null;\n }\n has(key, searchAncestors = false) {\n return this.resolvers.has(key)\n ? true\n : searchAncestors && this.parent != null\n ? this.parent.has(key, true)\n : false;\n }\n get(key) {\n validateKey(key);\n if (key.$isResolver) {\n return key.resolve(this, this);\n }\n /* eslint-disable-next-line @typescript-eslint/no-this-alias */\n let current = this;\n let resolver;\n while (current != null) {\n resolver = current.resolvers.get(key);\n if (resolver == null) {\n if (current.parent == null) {\n const handler = isRegisterInRequester(key)\n ? this\n : current;\n resolver = this.jitRegister(key, handler);\n return resolver.resolve(current, this);\n }\n current = current.parent;\n }\n else {\n return resolver.resolve(current, this);\n }\n }\n throw new Error(`Unable to resolve key: ${key}`);\n }\n getAll(key, searchAncestors = false) {\n validateKey(key);\n /* eslint-disable-next-line @typescript-eslint/no-this-alias */\n const requestor = this;\n let current = requestor;\n let resolver;\n if (searchAncestors) {\n let resolutions = emptyArray;\n while (current != null) {\n resolver = current.resolvers.get(key);\n if (resolver != null) {\n resolutions = resolutions.concat(\n /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */\n buildAllResponse(resolver, current, requestor));\n }\n current = current.parent;\n }\n return resolutions;\n }\n else {\n while (current != null) {\n resolver = current.resolvers.get(key);\n if (resolver == null) {\n current = current.parent;\n if (current == null) {\n return emptyArray;\n }\n }\n else {\n return buildAllResponse(resolver, current, requestor);\n }\n }\n }\n return emptyArray;\n }\n getFactory(Type) {\n let factory = factories.get(Type);\n if (factory === void 0) {\n if (isNativeFunction(Type)) {\n throw new Error(`${Type.name} is a native function and therefore cannot be safely constructed by DI. If this is intentional, please use a callback or cachedCallback resolver.`);\n }\n factories.set(Type, (factory = new FactoryImpl(Type, DI.getDependencies(Type))));\n }\n return factory;\n }\n registerFactory(key, factory) {\n factories.set(key, factory);\n }\n createChild(config) {\n return new ContainerImpl(null, Object.assign({}, this.config, config, { parentLocator: () => this }));\n }\n jitRegister(keyAsValue, handler) {\n if (typeof keyAsValue !== \"function\") {\n throw new Error(`Attempted to jitRegister something that is not a constructor: '${keyAsValue}'. Did you forget to register this dependency?`);\n }\n if (InstrinsicTypeNames.has(keyAsValue.name)) {\n throw new Error(`Attempted to jitRegister an intrinsic type: ${keyAsValue.name}. Did you forget to add @inject(Key)`);\n }\n if (isRegistry(keyAsValue)) {\n const registrationResolver = keyAsValue.register(handler);\n if (!(registrationResolver instanceof Object) ||\n registrationResolver.resolve == null) {\n const newResolver = handler.resolvers.get(keyAsValue);\n if (newResolver != void 0) {\n return newResolver;\n }\n throw new Error(\"A valid resolver was not returned from the static register method\");\n }\n return registrationResolver;\n }\n else if (keyAsValue.$isInterface) {\n throw new Error(`Attempted to jitRegister an interface: ${keyAsValue.friendlyName}`);\n }\n else {\n const resolver = this.config.defaultResolver(keyAsValue, handler);\n handler.resolvers.set(keyAsValue, resolver);\n return resolver;\n }\n }\n}\nconst cache = new WeakMap();\nfunction cacheCallbackResult(fun) {\n return function (handler, requestor, resolver) {\n if (cache.has(resolver)) {\n return cache.get(resolver);\n }\n const t = fun(handler, requestor, resolver);\n cache.set(resolver, t);\n return t;\n };\n}\n/**\n * You can use the resulting Registration of any of the factory methods\n * to register with the container.\n *\n * @example\n * ```\n * class Foo {}\n * const container = DI.createContainer();\n * container.register(Registration.instance(Foo, new Foo()));\n * container.get(Foo);\n * ```\n *\n * @public\n */\nexport const Registration = Object.freeze({\n /**\n * Allows you to pass an instance.\n * Every time you request this {@link Key} you will get this instance back.\n *\n * @example\n * ```\n * Registration.instance(Foo, new Foo()));\n * ```\n *\n * @param key - The key to register the instance under.\n * @param value - The instance to return when the key is requested.\n */\n instance(key, value) {\n return new ResolverImpl(key, 0 /* instance */, value);\n },\n /**\n * Creates an instance from the class.\n * Every time you request this {@link Key} you will get the same one back.\n *\n * @example\n * ```\n * Registration.singleton(Foo, Foo);\n * ```\n *\n * @param key - The key to register the singleton under.\n * @param value - The class to instantiate as a singleton when first requested.\n */\n singleton(key, value) {\n return new ResolverImpl(key, 1 /* singleton */, value);\n },\n /**\n * Creates an instance from a class.\n * Every time you request this {@link Key} you will get a new instance.\n *\n * @example\n * ```\n * Registration.instance(Foo, Foo);\n * ```\n *\n * @param key - The key to register the instance type under.\n * @param value - The class to instantiate each time the key is requested.\n */\n transient(key, value) {\n return new ResolverImpl(key, 2 /* transient */, value);\n },\n /**\n * Delegates to a callback function to provide the dependency.\n * Every time you request this {@link Key} the callback will be invoked to provide\n * the dependency.\n *\n * @example\n * ```\n * Registration.callback(Foo, () => new Foo());\n * Registration.callback(Bar, (c: Container) => new Bar(c.get(Foo)));\n * ```\n *\n * @param key - The key to register the callback for.\n * @param callback - The function that is expected to return the dependency.\n */\n callback(key, callback) {\n return new ResolverImpl(key, 3 /* callback */, callback);\n },\n /**\n * Delegates to a callback function to provide the dependency and then caches the\n * dependency for future requests.\n *\n * @example\n * ```\n * Registration.cachedCallback(Foo, () => new Foo());\n * Registration.cachedCallback(Bar, (c: Container) => new Bar(c.get(Foo)));\n * ```\n *\n * @param key - The key to register the callback for.\n * @param callback - The function that is expected to return the dependency.\n * @remarks\n * If you pass the same Registration to another container, the same cached value will be used.\n * Should all references to the resolver returned be removed, the cache will expire.\n */\n cachedCallback(key, callback) {\n return new ResolverImpl(key, 3 /* callback */, cacheCallbackResult(callback));\n },\n /**\n * Creates an alternate {@link Key} to retrieve an instance by.\n *\n * @example\n * ```\n * Register.singleton(Foo, Foo)\n * Register.aliasTo(Foo, MyFoos);\n *\n * container.getAll(MyFoos) // contains an instance of Foo\n * ```\n *\n * @param originalKey - The original key that has been registered.\n * @param aliasKey - The alias to the original key.\n */\n aliasTo(originalKey, aliasKey) {\n return new ResolverImpl(aliasKey, 5 /* alias */, originalKey);\n },\n});\n/** @internal */\nexport function validateKey(key) {\n if (key === null || key === void 0) {\n throw new Error(\"key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?\");\n }\n}\nfunction buildAllResponse(resolver, handler, requestor) {\n if (resolver instanceof ResolverImpl &&\n resolver.strategy === 4 /* array */) {\n const state = resolver.state;\n let i = state.length;\n const results = new Array(i);\n while (i--) {\n results[i] = state[i].resolve(handler, requestor);\n }\n return results;\n }\n return [resolver.resolve(handler, requestor)];\n}\nconst defaultFriendlyName = \"(anonymous)\";\nfunction isObject(value) {\n return (typeof value === \"object\" && value !== null) || typeof value === \"function\";\n}\n/**\n * Determine whether the value is a native function.\n *\n * @param fn - The function to check.\n * @returns `true` is the function is a native function, otherwise `false`\n */\nconst isNativeFunction = (function () {\n const lookup = new WeakMap();\n let isNative = false;\n let sourceText = \"\";\n let i = 0;\n return function (fn) {\n isNative = lookup.get(fn);\n if (isNative === void 0) {\n sourceText = fn.toString();\n i = sourceText.length;\n // http://www.ecma-international.org/ecma-262/#prod-NativeFunction\n isNative =\n // 29 is the length of 'function () { [native code] }' which is the smallest length of a native function string\n i >= 29 &&\n // 100 seems to be a safe upper bound of the max length of a native function. In Chrome and FF it's 56, in Edge it's 61.\n i <= 100 &&\n // This whole heuristic *could* be tricked by a comment. Do we need to care about that?\n sourceText.charCodeAt(i - 1) === 0x7d && // }\n // TODO: the spec is a little vague about the precise constraints, so we do need to test this across various browsers to make sure just one whitespace is a safe assumption.\n sourceText.charCodeAt(i - 2) <= 0x20 && // whitespace\n sourceText.charCodeAt(i - 3) === 0x5d && // ]\n sourceText.charCodeAt(i - 4) === 0x65 && // e\n sourceText.charCodeAt(i - 5) === 0x64 && // d\n sourceText.charCodeAt(i - 6) === 0x6f && // o\n sourceText.charCodeAt(i - 7) === 0x63 && // c\n sourceText.charCodeAt(i - 8) === 0x20 && //\n sourceText.charCodeAt(i - 9) === 0x65 && // e\n sourceText.charCodeAt(i - 10) === 0x76 && // v\n sourceText.charCodeAt(i - 11) === 0x69 && // i\n sourceText.charCodeAt(i - 12) === 0x74 && // t\n sourceText.charCodeAt(i - 13) === 0x61 && // a\n sourceText.charCodeAt(i - 14) === 0x6e && // n\n sourceText.charCodeAt(i - 15) === 0x58; // [\n lookup.set(fn, isNative);\n }\n return isNative;\n };\n})();\nconst isNumericLookup = {};\nfunction isArrayIndex(value) {\n switch (typeof value) {\n case \"number\":\n return value >= 0 && (value | 0) === value;\n case \"string\": {\n const result = isNumericLookup[value];\n if (result !== void 0) {\n return result;\n }\n const length = value.length;\n if (length === 0) {\n return (isNumericLookup[value] = false);\n }\n let ch = 0;\n for (let i = 0; i < length; ++i) {\n ch = value.charCodeAt(i);\n if ((i === 0 && ch === 0x30 && length > 1) /* must not start with 0 */ ||\n ch < 0x30 /* 0 */ ||\n ch > 0x39 /* 9 */) {\n return (isNumericLookup[value] = false);\n }\n }\n return (isNumericLookup[value] = true);\n }\n default:\n return false;\n }\n}\n","import { ElementStyles, } from \"@microsoft/fast-element\";\nimport { DI, Registration } from \"../di/di\";\nfunction presentationKeyFromTag(tagName) {\n return `${tagName.toLowerCase()}:presentation`;\n}\nconst presentationRegistry = new Map();\n/**\n * An API gateway to component presentation features.\n * @public\n */\nexport const ComponentPresentation = Object.freeze({\n /**\n * Defines a component presentation for an element.\n * @param tagName - The element name to define the presentation for.\n * @param presentation - The presentation that will be applied to matching elements.\n * @param container - The dependency injection container to register the configuration in.\n * @public\n */\n define(tagName, presentation, container) {\n const key = presentationKeyFromTag(tagName);\n const existing = presentationRegistry.get(key);\n if (existing === void 0) {\n presentationRegistry.set(key, presentation);\n }\n else {\n // false indicates that we have more than one presentation\n // registered for a tagName and we must resolve through DI\n presentationRegistry.set(key, false);\n }\n container.register(Registration.instance(key, presentation));\n },\n /**\n * Finds a component presentation for the specified element name,\n * searching the DOM hierarchy starting from the provided element.\n * @param tagName - The name of the element to locate the presentation for.\n * @param element - The element to begin the search from.\n * @returns The component presentation or null if none is found.\n * @public\n */\n forTag(tagName, element) {\n const key = presentationKeyFromTag(tagName);\n const existing = presentationRegistry.get(key);\n if (existing === false) {\n const container = DI.findResponsibleContainer(element);\n return container.get(key);\n }\n return existing || null;\n },\n});\n/**\n * The default implementation of ComponentPresentation, used by FoundationElement.\n * @public\n */\nexport class DefaultComponentPresentation {\n /**\n * Creates an instance of DefaultComponentPresentation.\n * @param template - The template to apply to the element.\n * @param styles - The styles to apply to the element.\n * @public\n */\n constructor(template, styles) {\n this.template = template || null;\n this.styles =\n styles === void 0\n ? null\n : Array.isArray(styles)\n ? ElementStyles.create(styles)\n : styles instanceof ElementStyles\n ? styles\n : ElementStyles.create([styles]);\n }\n /**\n * Applies the presentation details to the specified element.\n * @param element - The element to apply the presentation details to.\n * @public\n */\n applyTo(element) {\n const controller = element.$fastController;\n if (controller.template === null) {\n controller.template = this.template;\n }\n if (controller.styles === null) {\n controller.styles = this.styles;\n }\n }\n}\n","import { __decorate } from \"tslib\";\nimport { FASTElement, observable } from \"@microsoft/fast-element\";\nimport { ComponentPresentation, DefaultComponentPresentation, } from \"../design-system/component-presentation\";\n/**\n * Defines a foundation element class that:\n * 1. Connects the element to its ComponentPresentation\n * 2. Allows resolving the element template from the instance or ComponentPresentation\n * 3. Allows resolving the element styles from the instance or ComponentPresentation\n *\n * @public\n */\nexport class FoundationElement extends FASTElement {\n constructor() {\n super(...arguments);\n this._presentation = void 0;\n }\n /**\n * A property which resolves the ComponentPresentation instance\n * for the current component.\n * @public\n */\n get $presentation() {\n if (this._presentation === void 0) {\n this._presentation = ComponentPresentation.forTag(this.tagName, this);\n }\n return this._presentation;\n }\n templateChanged() {\n if (this.template !== undefined) {\n this.$fastController.template = this.template;\n }\n }\n stylesChanged() {\n if (this.styles !== undefined) {\n this.$fastController.styles = this.styles;\n }\n }\n /**\n * The connected callback for this FASTElement.\n * @remarks\n * This method is invoked by the platform whenever this FoundationElement\n * becomes connected to the document.\n * @public\n */\n connectedCallback() {\n if (this.$presentation !== null) {\n this.$presentation.applyTo(this);\n }\n super.connectedCallback();\n }\n /**\n * Defines an element registry function with a set of element definition defaults.\n * @param elementDefinition - The definition of the element to create the registry\n * function for.\n * @public\n */\n static compose(elementDefinition) {\n return (overrideDefinition = {}) => new FoundationElementRegistry(this === FoundationElement\n ? class extends FoundationElement {\n }\n : this, elementDefinition, overrideDefinition);\n }\n}\n__decorate([\n observable\n], FoundationElement.prototype, \"template\", void 0);\n__decorate([\n observable\n], FoundationElement.prototype, \"styles\", void 0);\nfunction resolveOption(option, context, definition) {\n if (typeof option === \"function\") {\n return option(context, definition);\n }\n return option;\n}\n/**\n * Registry capable of defining presentation properties for a DOM Container hierarchy.\n *\n * @internal\n */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nexport class FoundationElementRegistry {\n constructor(type, elementDefinition, overrideDefinition) {\n this.type = type;\n this.elementDefinition = elementDefinition;\n this.overrideDefinition = overrideDefinition;\n this.definition = Object.assign(Object.assign({}, this.elementDefinition), this.overrideDefinition);\n }\n register(container, context) {\n const definition = this.definition;\n const overrideDefinition = this.overrideDefinition;\n const prefix = definition.prefix || context.elementPrefix;\n const name = `${prefix}-${definition.baseName}`;\n context.tryDefineElement({\n name,\n type: this.type,\n baseClass: this.elementDefinition.baseClass,\n callback: x => {\n const presentation = new DefaultComponentPresentation(resolveOption(definition.template, x, definition), resolveOption(definition.styles, x, definition));\n x.definePresentation(presentation);\n let shadowOptions = resolveOption(definition.shadowOptions, x, definition);\n if (x.shadowRootMode) {\n // If the design system has overridden the shadow root mode, we need special handling.\n if (shadowOptions) {\n // If there are shadow options present in the definition, then\n // either the component itself has specified an option or the\n // registry function has overridden it.\n if (!overrideDefinition.shadowOptions) {\n // There were shadow options provided by the component and not overridden by\n // the registry.\n shadowOptions.mode = x.shadowRootMode;\n }\n }\n else if (shadowOptions !== null) {\n // If the component author did not provide shadow options,\n // and did not null them out (light dom opt-in) then they\n // were relying on the FASTElement default. So, if the\n // design system provides a mode, we need to create the options\n // to override the default.\n shadowOptions = { mode: x.shadowRootMode };\n }\n }\n x.defineElement({\n elementOptions: resolveOption(definition.elementOptions, x, definition),\n shadowOptions,\n attributes: resolveOption(definition.attributes, x, definition),\n });\n },\n });\n }\n}\n/* eslint-enable @typescript-eslint/no-unused-vars */\n","/**\n * Apply mixins to a constructor.\n * Sourced from {@link https://www.typescriptlang.org/docs/handbook/mixins.html | TypeScript Documentation }.\n * @public\n */\nexport function applyMixins(derivedCtor, ...baseCtors) {\n baseCtors.forEach(baseCtor => {\n Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {\n if (name !== \"constructor\") {\n Object.defineProperty(derivedCtor.prototype, name, \n /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */\n Object.getOwnPropertyDescriptor(baseCtor.prototype, name));\n }\n });\n if (baseCtor.attributes) {\n const existing = derivedCtor.attributes || [];\n derivedCtor.attributes = existing.concat(baseCtor.attributes);\n }\n });\n}\n","/**\n * Returns the index of the last element in the array where predicate is true, and -1 otherwise.\n *\n * @param array - the array to test\n * @param predicate - find calls predicate once for each element of the array, in descending order, until it finds one where predicate returns true. If such an element is found, findLastIndex immediately returns that element index. Otherwise, findIndex returns -1.\n */\nexport function findLastIndex(array, predicate) {\n let k = array.length;\n while (k--) {\n if (predicate(array[k], k, array)) {\n return k;\n }\n }\n return -1;\n}\n","/**\n * Checks if the DOM is available to access and use\n */\nexport function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\n","import { canUseDOM } from \"exenv-es6\";\n/**\n * A test that ensures that all arguments are HTML Elements\n */\nexport function isHTMLElement(...args) {\n return args.every((arg) => arg instanceof HTMLElement);\n}\n/**\n * Returns all displayed elements inside of a root node that match a provided selector\n */\nexport function getDisplayedNodes(rootNode, selector) {\n if (!rootNode || !selector || !isHTMLElement(rootNode)) {\n return;\n }\n const nodes = Array.from(rootNode.querySelectorAll(selector));\n // offsetParent will be null if the element isn't currently displayed,\n // so this will allow us to operate only on visible nodes\n return nodes.filter((node) => node.offsetParent !== null);\n}\n/**\n * Gets the numeric key code associated with a keyboard event. This method is for use with DOM level 3 events\n * that still use the deprecated keyCode property.\n */\nexport function getKeyCode(event) {\n return event === null ? null : event.which || event.keyCode || event.charCode;\n}\n/**\n * Returns the nonce used in the page, if any.\n *\n * Based on https://github.com/cssinjs/jss/blob/master/packages/jss/src/DomRenderer.js\n */\nfunction getNonce() {\n const node = document.querySelector('meta[property=\"csp-nonce\"]');\n if (node) {\n return node.getAttribute(\"content\");\n }\n else {\n return null;\n }\n}\n/**\n * Test if the document supports :focus-visible\n */\nlet _canUseFocusVisible;\nexport function canUseFocusVisible() {\n if (typeof _canUseFocusVisible === \"boolean\") {\n return _canUseFocusVisible;\n }\n if (!canUseDOM()) {\n _canUseFocusVisible = false;\n return _canUseFocusVisible;\n }\n // Check to see if the document supports the focus-visible element\n const styleElement = document.createElement(\"style\");\n // If nonces are present on the page, use it when creating the style element\n // to test focus-visible support.\n const styleNonce = getNonce();\n if (styleNonce !== null) {\n styleElement.setAttribute(\"nonce\", styleNonce);\n }\n document.head.appendChild(styleElement);\n try {\n styleElement.sheet.insertRule(\"foo:focus-visible {color:inherit}\", 0);\n _canUseFocusVisible = true;\n }\n catch (e) {\n _canUseFocusVisible = false;\n }\n finally {\n document.head.removeChild(styleElement);\n }\n return _canUseFocusVisible;\n}\nlet _canUseCssGrid;\nexport function canUseCssGrid() {\n if (typeof _canUseCssGrid === \"boolean\") {\n return _canUseCssGrid;\n }\n try {\n _canUseCssGrid = CSS.supports(\"display\", \"grid\");\n }\n catch (_a) {\n _canUseCssGrid = false;\n }\n return _canUseCssGrid;\n}\nexport function canUseForcedColors() {\n return (canUseDOM() &&\n (window.matchMedia(\"(forced-colors: none)\").matches ||\n window.matchMedia(\"(forced-colors: active)\").matches));\n}\nexport function resetDocumentCache() {\n _canUseCssGrid = undefined;\n _canUseFocusVisible = undefined;\n}\n/**\n * @deprecated Use 'canUseForcedColors' instead\n */\nexport const canUsedForcedColors = canUseForcedColors;\n","/**\n * This set of exported strings reference https://developer.mozilla.org/en-US/docs/Web/Events\n * and should include all non-deprecated and non-experimental Standard events\n */\nexport const eventAbort = \"abort\";\nexport const eventAfterPrint = \"afterprint\";\nexport const eventAnimationCancel = \"animationcancel\";\nexport const eventAnimationEnd = \"animationend\";\nexport const eventAnimationIteration = \"animationiteration\";\nexport const eventAnimationStart = \"animationstart\";\nexport const eventAppInstalled = \"appinstalled\";\nexport const eventBeforePrint = \"beforeprint\";\nexport const eventBeforeUnload = \"beforeunload\";\nexport const eventBeginEvent = \"beginEvent\";\nexport const eventBlocked = \"blocked\";\nexport const eventBlur = \"blur\";\nexport const eventCanPlay = \"canplay\";\nexport const eventCanPlayThrough = \"canplaythrough\";\nexport const eventChange = \"change\";\nexport const eventChargingChange = \"chargingchange\";\nexport const eventChargingTimeChange = \"chargingtimechange\";\nexport const eventClick = \"click\";\nexport const eventClose = \"close\";\nexport const eventComplete = \"complete\";\nexport const eventCompositionEnd = \"compositionend\";\nexport const eventCompositionStart = \"compositionstart\";\nexport const eventCompositionUpdate = \"compositionupdate\";\nexport const eventContextMenu = \"contextmenu\";\nexport const eventCopy = \"copy\";\nexport const eventCut = \"cut\";\nexport const eventDblClick = \"dblclick\";\nexport const eventDeviceChange = \"devicechange\";\nexport const eventDeviceMotion = \"devicemotion\";\nexport const eventDeviceOrientation = \"deviceorientation\";\nexport const eventDischargingTimeChange = \"dischargingtimechange\";\nexport const eventDrag = \"drag\";\nexport const eventDragEnd = \"dragend\";\nexport const eventDragEnter = \"dragenter\";\nexport const eventDragLeave = \"dragleave\";\nexport const eventDragOver = \"dragover\";\nexport const eventDragStart = \"dragstart\";\nexport const eventDrop = \"drop\";\nexport const eventDurationChange = \"durationchange\";\nexport const eventEmptied = \"emptied\";\nexport const eventEnded = \"ended\";\nexport const eventEndEvent = \"endevent\";\nexport const eventError = \"error\";\nexport const eventFocus = \"focus\";\nexport const eventFocusIn = \"focusin\";\nexport const eventFocusOut = \"focusout\";\nexport const eventFullScreenChange = \"fullscreenchange\";\nexport const eventFullScreenError = \"fullscreenerror\";\nexport const eventGamePadConnected = \"gamepadconnected\";\nexport const eventGamePadDisconnected = \"gamepaddisconnected\";\nexport const eventGotPointerCapture = \"gotpointercapture\";\nexport const eventHashChange = \"hashchange\";\nexport const eventLostPointerCapture = \"lostpointercapture\";\nexport const eventInput = \"input\";\nexport const eventInvalid = \"invalid\";\nexport const eventKeyDown = \"keydown\";\nexport const eventKeyUp = \"keyup\";\nexport const eventLevelChange = \"levelchange\";\nexport const eventLoad = \"load\";\nexport const eventLoadedData = \"loadeddata\";\nexport const eventLoadedMetaData = \"loadedmetadata\";\nexport const eventLoadEnd = \"loadend\";\nexport const eventLoadStart = \"loadstart\";\nexport const eventMessage = \"message\";\nexport const eventMessageError = \"messageerror\";\nexport const eventMouseDown = \"mousedown\";\nexport const eventMouseEnter = \"mouseenter\";\nexport const eventMouseLeave = \"mouseleave\";\nexport const eventMouseMove = \"mousemove\";\nexport const eventMouseOut = \"mouseout\";\nexport const eventMouseOver = \"mouseover\";\nexport const eventMouseUp = \"mouseup\";\nexport const eventNotificationClick = \"notificationclick\";\nexport const eventOffline = \"offline\";\nexport const eventOnline = \"online\";\nexport const eventOpen = \"open\";\nexport const eventOrientationChange = \"orientationchange\";\nexport const eventPageHide = \"pagehide\";\nexport const eventPageShow = \"pageshow\";\nexport const eventPaste = \"paste\";\nexport const eventPause = \"pause\";\nexport const eventPointerCancel = \"pointercancel\";\nexport const eventPointerDown = \"pointerdown\";\nexport const eventPointerEnter = \"pointerenter\";\nexport const eventPointerLeave = \"pointerleave\";\nexport const eventPointerLockChange = \"pointerlockchange\";\nexport const eventPointerLockError = \"pointerlockerror\";\nexport const eventPointerMove = \"pointermove\";\nexport const eventPointerOut = \"pointerout\";\nexport const eventPointerOver = \"pointerover\";\nexport const eventPointerUp = \"pointerup\";\nexport const eventPlay = \"play\";\nexport const eventPlaying = \"playing\";\nexport const eventPopState = \"popstate\";\nexport const eventProgress = \"progress\";\nexport const eventPush = \"push\";\nexport const eventPushSubscriptionChange = \"pushsubscriptionchange\";\nexport const eventRateChange = \"ratechange\";\nexport const eventReadyStateChange = \"readystatechange\";\nexport const eventRepeatEvent = \"repeatevent\";\nexport const eventReset = \"reset\";\nexport const eventResize = \"resize\";\nexport const eventResourceTimingBufferFull = \"resourcetimingbufferfull\";\nexport const eventScroll = \"scroll\";\nexport const eventSeeked = \"seeked\";\nexport const eventSeeking = \"seeking\";\nexport const eventSelect = \"select\";\nexport const eventShow = \"show\";\nexport const eventSlotChange = \"slotchange\";\nexport const eventStalled = \"stalled\";\nexport const eventStart = \"start\";\nexport const eventStorage = \"storage\";\nexport const eventSubmit = \"submit\";\nexport const eventSuccess = \"success\";\nexport const eventSuspend = \"suspend\";\nexport const eventSVGAbort = \"SVGAbort\";\nexport const eventSVGError = \"SVGError\";\nexport const eventSVGLoad = \"SVGLoad\";\nexport const eventSVGResize = \"SVGResize\";\nexport const eventSVGScroll = \"SVGScroll\";\nexport const eventSVGUnload = \"SVGUnload\";\nexport const eventSVGZoom = \"SVGZoom\";\nexport const eventTimeOut = \"timeout\";\nexport const eventTimeUpdate = \"timeupdate\";\nexport const eventTouchCancel = \"touchcancel\";\nexport const eventTouchEnd = \"touchend\";\nexport const eventTouchMove = \"touchmove\";\nexport const eventTouchStart = \"touchstart\";\nexport const eventTransitionEnd = \"transitionend\";\nexport const eventUnload = \"unload\";\nexport const eventUpgradeNeeded = \"upgradeneeded\";\nexport const eventUserProximity = \"userproximity\";\nexport const eventVersionChange = \"versionchange\";\nexport const eventVisibilityChange = \"visibilitychange\";\nexport const eventVolumeChange = \"volumechange\";\nexport const eventWaiting = \"waiting\";\nexport const eventWheel = \"wheel\";\n","/**\n * Key Code values\n * @deprecated - KeyCodes are deprecated, use individual string key exports\n */\nexport var KeyCodes;\n(function (KeyCodes) {\n KeyCodes[KeyCodes[\"alt\"] = 18] = \"alt\";\n KeyCodes[KeyCodes[\"arrowDown\"] = 40] = \"arrowDown\";\n KeyCodes[KeyCodes[\"arrowLeft\"] = 37] = \"arrowLeft\";\n KeyCodes[KeyCodes[\"arrowRight\"] = 39] = \"arrowRight\";\n KeyCodes[KeyCodes[\"arrowUp\"] = 38] = \"arrowUp\";\n KeyCodes[KeyCodes[\"back\"] = 8] = \"back\";\n KeyCodes[KeyCodes[\"backSlash\"] = 220] = \"backSlash\";\n KeyCodes[KeyCodes[\"break\"] = 19] = \"break\";\n KeyCodes[KeyCodes[\"capsLock\"] = 20] = \"capsLock\";\n KeyCodes[KeyCodes[\"closeBracket\"] = 221] = \"closeBracket\";\n KeyCodes[KeyCodes[\"colon\"] = 186] = \"colon\";\n KeyCodes[KeyCodes[\"colon2\"] = 59] = \"colon2\";\n KeyCodes[KeyCodes[\"comma\"] = 188] = \"comma\";\n KeyCodes[KeyCodes[\"ctrl\"] = 17] = \"ctrl\";\n KeyCodes[KeyCodes[\"delete\"] = 46] = \"delete\";\n KeyCodes[KeyCodes[\"end\"] = 35] = \"end\";\n KeyCodes[KeyCodes[\"enter\"] = 13] = \"enter\";\n KeyCodes[KeyCodes[\"equals\"] = 187] = \"equals\";\n KeyCodes[KeyCodes[\"equals2\"] = 61] = \"equals2\";\n KeyCodes[KeyCodes[\"equals3\"] = 107] = \"equals3\";\n KeyCodes[KeyCodes[\"escape\"] = 27] = \"escape\";\n KeyCodes[KeyCodes[\"forwardSlash\"] = 191] = \"forwardSlash\";\n KeyCodes[KeyCodes[\"function1\"] = 112] = \"function1\";\n KeyCodes[KeyCodes[\"function10\"] = 121] = \"function10\";\n KeyCodes[KeyCodes[\"function11\"] = 122] = \"function11\";\n KeyCodes[KeyCodes[\"function12\"] = 123] = \"function12\";\n KeyCodes[KeyCodes[\"function2\"] = 113] = \"function2\";\n KeyCodes[KeyCodes[\"function3\"] = 114] = \"function3\";\n KeyCodes[KeyCodes[\"function4\"] = 115] = \"function4\";\n KeyCodes[KeyCodes[\"function5\"] = 116] = \"function5\";\n KeyCodes[KeyCodes[\"function6\"] = 117] = \"function6\";\n KeyCodes[KeyCodes[\"function7\"] = 118] = \"function7\";\n KeyCodes[KeyCodes[\"function8\"] = 119] = \"function8\";\n KeyCodes[KeyCodes[\"function9\"] = 120] = \"function9\";\n KeyCodes[KeyCodes[\"home\"] = 36] = \"home\";\n KeyCodes[KeyCodes[\"insert\"] = 45] = \"insert\";\n KeyCodes[KeyCodes[\"menu\"] = 93] = \"menu\";\n KeyCodes[KeyCodes[\"minus\"] = 189] = \"minus\";\n KeyCodes[KeyCodes[\"minus2\"] = 109] = \"minus2\";\n KeyCodes[KeyCodes[\"numLock\"] = 144] = \"numLock\";\n KeyCodes[KeyCodes[\"numPad0\"] = 96] = \"numPad0\";\n KeyCodes[KeyCodes[\"numPad1\"] = 97] = \"numPad1\";\n KeyCodes[KeyCodes[\"numPad2\"] = 98] = \"numPad2\";\n KeyCodes[KeyCodes[\"numPad3\"] = 99] = \"numPad3\";\n KeyCodes[KeyCodes[\"numPad4\"] = 100] = \"numPad4\";\n KeyCodes[KeyCodes[\"numPad5\"] = 101] = \"numPad5\";\n KeyCodes[KeyCodes[\"numPad6\"] = 102] = \"numPad6\";\n KeyCodes[KeyCodes[\"numPad7\"] = 103] = \"numPad7\";\n KeyCodes[KeyCodes[\"numPad8\"] = 104] = \"numPad8\";\n KeyCodes[KeyCodes[\"numPad9\"] = 105] = \"numPad9\";\n KeyCodes[KeyCodes[\"numPadDivide\"] = 111] = \"numPadDivide\";\n KeyCodes[KeyCodes[\"numPadDot\"] = 110] = \"numPadDot\";\n KeyCodes[KeyCodes[\"numPadMinus\"] = 109] = \"numPadMinus\";\n KeyCodes[KeyCodes[\"numPadMultiply\"] = 106] = \"numPadMultiply\";\n KeyCodes[KeyCodes[\"numPadPlus\"] = 107] = \"numPadPlus\";\n KeyCodes[KeyCodes[\"openBracket\"] = 219] = \"openBracket\";\n KeyCodes[KeyCodes[\"pageDown\"] = 34] = \"pageDown\";\n KeyCodes[KeyCodes[\"pageUp\"] = 33] = \"pageUp\";\n KeyCodes[KeyCodes[\"period\"] = 190] = \"period\";\n KeyCodes[KeyCodes[\"print\"] = 44] = \"print\";\n KeyCodes[KeyCodes[\"quote\"] = 222] = \"quote\";\n KeyCodes[KeyCodes[\"scrollLock\"] = 145] = \"scrollLock\";\n KeyCodes[KeyCodes[\"shift\"] = 16] = \"shift\";\n KeyCodes[KeyCodes[\"space\"] = 32] = \"space\";\n KeyCodes[KeyCodes[\"tab\"] = 9] = \"tab\";\n KeyCodes[KeyCodes[\"tilde\"] = 192] = \"tilde\";\n KeyCodes[KeyCodes[\"windowsLeft\"] = 91] = \"windowsLeft\";\n KeyCodes[KeyCodes[\"windowsOpera\"] = 219] = \"windowsOpera\";\n KeyCodes[KeyCodes[\"windowsRight\"] = 92] = \"windowsRight\";\n})(KeyCodes || (KeyCodes = {}));\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeAlt = 18;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeArrowDown = 40;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeArrowLeft = 37;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeArrowRight = 39;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeArrowUp = 38;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeBack = 8;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeBackSlash = 220;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeBreak = 19;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeCapsLock = 20;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeCloseBracket = 221;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeColon = 186;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeColon2 = 59; // Opera and Firefox\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeComma = 188;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeCtrl = 17;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeDelete = 46;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeEnd = 35;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeEnter = 13;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeEquals = 187;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeEquals2 = 61; // Opera\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeEquals3 = 107; // Firefox\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeEscape = 27;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeForwardSlash = 191;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction1 = 112;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction10 = 121;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction11 = 122;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction12 = 123;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction2 = 113;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction3 = 114;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction4 = 115;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction5 = 116;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction6 = 117;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction7 = 118;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction8 = 119;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeFunction9 = 120;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeHome = 36;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeInsert = 45;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeMenu = 93;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeMinus = 189;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeMinus2 = 109; // Opera and Firefox\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumLock = 144;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad0 = 96;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad1 = 97;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad2 = 98;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad3 = 99;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad4 = 100;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad5 = 101;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad6 = 102;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad7 = 103;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad8 = 104;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPad9 = 105;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPadDivide = 111;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPadDot = 110;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPadMinus = 109;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPadMultiply = 106;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeNumPadPlus = 107;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeOpenBracket = 219;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodePageDown = 34;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodePageUp = 33;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodePeriod = 190;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodePrint = 44;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeQuote = 222;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeScrollLock = 145;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeShift = 16;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeSpace = 32;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeTab = 9;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeTilde = 192;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeWindowsLeft = 91;\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeWindowsOpera = 219; // Opera\n/**\n * @deprecated - KeyCodes are deprecated, use string key exports\n */\nexport const keyCodeWindowsRight = 92;\n/**\n * String values for use with KeyboardEvent.key\n */\nexport const keyArrowDown = \"ArrowDown\";\nexport const keyArrowLeft = \"ArrowLeft\";\nexport const keyArrowRight = \"ArrowRight\";\nexport const keyArrowUp = \"ArrowUp\";\nexport const keyEnter = \"Enter\";\nexport const keyEscape = \"Escape\";\nexport const keyHome = \"Home\";\nexport const keyEnd = \"End\";\nexport const keyFunction2 = \"F2\";\nexport const keyPageDown = \"PageDown\";\nexport const keyPageUp = \"PageUp\";\nexport const keySpace = \" \";\nexport const keyTab = \"Tab\";\nexport const keyBackspace = \"Backspace\";\nexport const keyDelete = \"Delete\";\nexport const ArrowKeys = {\n ArrowDown: keyArrowDown,\n ArrowLeft: keyArrowLeft,\n ArrowRight: keyArrowRight,\n ArrowUp: keyArrowUp,\n};\n","/**\n * Expose ltr and rtl strings\n */\nexport var Direction;\n(function (Direction) {\n Direction[\"ltr\"] = \"ltr\";\n Direction[\"rtl\"] = \"rtl\";\n})(Direction || (Direction = {}));\n","/**\n * This method keeps a given value within the bounds of a min and max value. If the value\n * is larger than the max, the minimum value will be returned. If the value is smaller than the minimum,\n * the maximum will be returned. Otherwise, the value is returned un-changed.\n */\nexport function wrapInBounds(min, max, value) {\n if (value < min) {\n return max;\n }\n else if (value > max) {\n return min;\n }\n return value;\n}\n/**\n * Ensures that a value is between a min and max value. If value is lower than min, min will be returned.\n * If value is greater than max, max will be returned.\n */\nexport function limit(min, max, value) {\n return Math.min(Math.max(value, min), max);\n}\n/**\n * Determines if a number value is within a specified range.\n *\n * @param value - the value to check\n * @param min - the range start\n * @param max - the range end\n */\nexport function inRange(value, min, max = 0) {\n [min, max] = [min, max].sort((a, b) => a - b);\n return min <= value && value < max;\n}\n","let uniqueIdCounter = 0;\n/**\n * Generates a unique ID based on incrementing a counter.\n */\nexport function uniqueId(prefix = \"\") {\n return `${prefix}${uniqueIdCounter++}`;\n}\n/**\n * Builds a string from a format specifier and replacement parameters.\n */\nexport function format(formatSpecifier, ...parameters) {\n return formatSpecifier.replace(/{(\\d+)}/g, function (match, index) {\n if (index >= parameters.length) {\n return match;\n }\n const value = parameters[index];\n if (typeof value !== \"number\" && !value) {\n return \"\";\n }\n return value;\n });\n}\n/**\n * Check to see if one string starts with another\n */\nexport function startsWith(stringToSearch, searchFor, position = 0) {\n if (!stringToSearch || !searchFor) {\n return false;\n }\n return stringToSearch.substr(position, searchFor.length) === searchFor;\n}\n/**\n * Matches all instances of the RegExp in the string. Operates similarly to the\n * native `String.matchAll`, which is not yet available on all supported\n * browsers. Note that the regex *must* be global.\n */\nfunction matchAll(re, str) {\n const matches = [];\n let match;\n while ((match = re.exec(str))) {\n matches.push(match[1]);\n }\n re.lastIndex = 0;\n return matches;\n}\n/**\n * Determines if the specified string is undefined, null, empty, or whitespace.\n * True if the value is undefined, null, empty, or whitespace, otherwise false.\n */\nexport function isNullOrWhiteSpace(value) {\n return !value || !value.trim();\n}\nconst wordRe = /([A-Z]+[a-z0-9]*|[A-Z]*[a-z0-9]+)/g;\n/**\n * Converts a string to Pascal Case\n */\nexport function pascalCase(value) {\n return matchAll(wordRe, value)\n .map((word) => `${word.charAt(0).toUpperCase()}${word.slice(1).toLowerCase()}`)\n .join(\"\");\n}\n/**\n * converts a string from camelCase or pascalCase to spinal-case\n * which is an lowercase dash separated naming style.\n *\n * An example of spinal case: foo-bar-bat\n */\nexport function spinalCase(value) {\n const valueWithLowerCaseFirstLetter = `${value\n .charAt(0)\n .toLowerCase()}${value.slice(1)}`;\n return valueWithLowerCaseFirstLetter.replace(/([A-Z])/g, function (match, group1) {\n return `-${group1.toLowerCase()}`;\n });\n}\n","import { html, ref, slotted } from \"@microsoft/fast-element\";\nimport { endSlotTemplate, startSlotTemplate } from \"../patterns/start-end\";\n/**\n * The template for the {@link @microsoft/fast-foundation#(Anchor:class)} component.\n * @public\n */\nexport const anchorTemplate = (context, definition) => html `\n <a\n class=\"control\"\n part=\"control\"\n download=\"${x => x.download}\"\n href=\"${x => x.href}\"\n hreflang=\"${x => x.hreflang}\"\n ping=\"${x => x.ping}\"\n referrerpolicy=\"${x => x.referrerpolicy}\"\n rel=\"${x => x.rel}\"\n target=\"${x => x.target}\"\n type=\"${x => x.type}\"\n aria-atomic=\"${x => x.ariaAtomic}\"\n aria-busy=\"${x => x.ariaBusy}\"\n aria-controls=\"${x => x.ariaControls}\"\n aria-current=\"${x => x.ariaCurrent}\"\n aria-describedby=\"${x => x.ariaDescribedby}\"\n aria-details=\"${x => x.ariaDetails}\"\n aria-disabled=\"${x => x.ariaDisabled}\"\n aria-errormessage=\"${x => x.ariaErrormessage}\"\n aria-expanded=\"${x => x.ariaExpanded}\"\n aria-flowto=\"${x => x.ariaFlowto}\"\n aria-haspopup=\"${x => x.ariaHaspopup}\"\n aria-hidden=\"${x => x.ariaHidden}\"\n aria-invalid=\"${x => x.ariaInvalid}\"\n aria-keyshortcuts=\"${x => x.ariaKeyshortcuts}\"\n aria-label=\"${x => x.ariaLabel}\"\n aria-labelledby=\"${x => x.ariaLabelledby}\"\n aria-live=\"${x => x.ariaLive}\"\n aria-owns=\"${x => x.ariaOwns}\"\n aria-relevant=\"${x => x.ariaRelevant}\"\n aria-roledescription=\"${x => x.ariaRoledescription}\"\n ${ref(\"control\")}\n >\n ${startSlotTemplate(context, definition)}\n <span class=\"content\" part=\"content\">\n <slot ${slotted(\"defaultSlottedContent\")}></slot>\n </span>\n ${endSlotTemplate(context, definition)}\n </a>\n`;\n","import { __decorate } from \"tslib\";\nimport { attr } from \"@microsoft/fast-element\";\n/**\n * Some states and properties are applicable to all host language elements regardless of whether a role is applied.\n * The following global states and properties are supported by all roles and by all base markup elements.\n * {@link https://www.w3.org/TR/wai-aria-1.1/#global_states}\n *\n * This is intended to be used as a mixin. Be sure you extend FASTElement.\n *\n * @public\n */\nexport class ARIAGlobalStatesAndProperties {\n}\n__decorate([\n attr({ attribute: \"aria-atomic\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaAtomic\", void 0);\n__decorate([\n attr({ attribute: \"aria-busy\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaBusy\", void 0);\n__decorate([\n attr({ attribute: \"aria-controls\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaControls\", void 0);\n__decorate([\n attr({ attribute: \"aria-current\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaCurrent\", void 0);\n__decorate([\n attr({ attribute: \"aria-describedby\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaDescribedby\", void 0);\n__decorate([\n attr({ attribute: \"aria-details\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaDetails\", void 0);\n__decorate([\n attr({ attribute: \"aria-disabled\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaDisabled\", void 0);\n__decorate([\n attr({ attribute: \"aria-errormessage\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaErrormessage\", void 0);\n__decorate([\n attr({ attribute: \"aria-flowto\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaFlowto\", void 0);\n__decorate([\n attr({ attribute: \"aria-haspopup\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaHaspopup\", void 0);\n__decorate([\n attr({ attribute: \"aria-hidden\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaHidden\", void 0);\n__decorate([\n attr({ attribute: \"aria-invalid\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaInvalid\", void 0);\n__decorate([\n attr({ attribute: \"aria-keyshortcuts\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaKeyshortcuts\", void 0);\n__decorate([\n attr({ attribute: \"aria-label\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaLabel\", void 0);\n__decorate([\n attr({ attribute: \"aria-labelledby\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaLabelledby\", void 0);\n__decorate([\n attr({ attribute: \"aria-live\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaLive\", void 0);\n__decorate([\n attr({ attribute: \"aria-owns\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaOwns\", void 0);\n__decorate([\n attr({ attribute: \"aria-relevant\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaRelevant\", void 0);\n__decorate([\n attr({ attribute: \"aria-roledescription\", mode: \"fromView\" })\n], ARIAGlobalStatesAndProperties.prototype, \"ariaRoledescription\", void 0);\n","import { __decorate } from \"tslib\";\nimport { attr, observable } from \"@microsoft/fast-element\";\nimport { FoundationElement } from \"../foundation-element\";\nimport { ARIAGlobalStatesAndProperties, StartEnd, } from \"../patterns/index\";\nimport { applyMixins } from \"../utilities/apply-mixins\";\n/**\n * An Anchor Custom HTML Element.\n * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a | <a> element }.\n *\n * @public\n */\nexport class Anchor extends FoundationElement {\n constructor() {\n super(...arguments);\n /**\n * Overrides the focus call for where delegatesFocus is unsupported.\n * This check works for Chrome, Edge Chromium, FireFox, and Safari\n * Relevant PR on the Firefox browser: https://phabricator.services.mozilla.com/D123858\n */\n this.handleUnsupportedDelegatesFocus = () => {\n var _a;\n // Check to see if delegatesFocus is supported\n if (window.ShadowRoot &&\n !window.ShadowRoot.prototype.hasOwnProperty(\"delegatesFocus\") && ((_a = this.$fastController.definition.shadowOptions) === null || _a === void 0 ? void 0 : _a.delegatesFocus)) {\n this.focus = () => {\n this.control.focus();\n };\n }\n };\n }\n /**\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n this.handleUnsupportedDelegatesFocus();\n }\n}\n__decorate([\n attr\n], Anchor.prototype, \"download\", void 0);\n__decorate([\n attr\n], Anchor.prototype, \"href\", void 0);\n__decorate([\n attr\n], Anchor.prototype, \"hreflang\", void 0);\n__decorate([\n attr\n], Anchor.prototype, \"ping\", void 0);\n__decorate([\n attr\n], Anchor.prototype, \"referrerpolicy\", void 0);\n__decorate([\n attr\n], Anchor.prototype, \"rel\", void 0);\n__decorate([\n attr\n], Anchor.prototype, \"target\", void 0);\n__decorate([\n attr\n], Anchor.prototype, \"type\", void 0);\n__decorate([\n observable\n], Anchor.prototype, \"defaultSlottedContent\", void 0);\n/**\n * Includes ARIA states and properties relating to the ARIA link role\n *\n * @public\n */\nexport class DelegatesARIALink {\n}\n__decorate([\n attr({ attribute: \"aria-expanded\", mode: \"fromView\" })\n], DelegatesARIALink.prototype, \"ariaExpanded\", void 0);\napplyMixins(DelegatesARIALink, ARIAGlobalStatesAndProperties);\napplyMixins(Anchor, StartEnd, DelegatesARIALink);\n","import { Direction } from \"@microsoft/fast-web-utilities\";\n/**\n * a method to determine the current localization direction of the view\n * @param rootNode - the HTMLElement to begin the query from, usually \"this\" when used in a component controller\n * @public\n */\nexport const getDirection = (rootNode) => {\n const dirNode = rootNode.closest(\"[dir]\");\n return dirNode !== null && dirNode.dir === \"rtl\" ? Direction.rtl : Direction.ltr;\n};\n","import { $global } from \"@microsoft/fast-element\";\n/**\n * A service to batch intersection event callbacks so multiple elements can share a single observer\n *\n * @public\n */\nexport class IntersectionService {\n constructor() {\n this.intersectionDetector = null;\n this.observedElements = new Map();\n /**\n * Request the position of a target element\n *\n * @internal\n */\n this.requestPosition = (target, callback) => {\n var _a;\n if (this.intersectionDetector === null) {\n return;\n }\n if (this.observedElements.has(target)) {\n (_a = this.observedElements.get(target)) === null || _a === void 0 ? void 0 : _a.push(callback);\n return;\n }\n this.observedElements.set(target, [callback]);\n this.intersectionDetector.observe(target);\n };\n /**\n * Cancel a position request\n *\n * @internal\n */\n this.cancelRequestPosition = (target, callback) => {\n const callbacks = this.observedElements.get(target);\n if (callbacks !== undefined) {\n const callBackIndex = callbacks.indexOf(callback);\n if (callBackIndex !== -1) {\n callbacks.splice(callBackIndex, 1);\n }\n }\n };\n /**\n * initialize intersection detector\n */\n this.initializeIntersectionDetector = () => {\n if (!$global.IntersectionObserver) {\n //intersection observer not supported\n return;\n }\n this.intersectionDetector = new IntersectionObserver(this.handleIntersection, {\n root: null,\n rootMargin: \"0px\",\n threshold: [0, 1],\n });\n };\n /**\n * Handle intersections\n */\n this.handleIntersection = (entries) => {\n if (this.intersectionDetector === null) {\n return;\n }\n const pendingCallbacks = [];\n const pendingCallbackParams = [];\n // go through the entries to build a list of callbacks and params for each\n entries.forEach((entry) => {\n var _a;\n // stop watching this element until we get new update requests for it\n (_a = this.intersectionDetector) === null || _a === void 0 ? void 0 : _a.unobserve(entry.target);\n const thisElementCallbacks = this.observedElements.get(entry.target);\n if (thisElementCallbacks !== undefined) {\n thisElementCallbacks.forEach((callback) => {\n let targetCallbackIndex = pendingCallbacks.indexOf(callback);\n if (targetCallbackIndex === -1) {\n targetCallbackIndex = pendingCallbacks.length;\n pendingCallbacks.push(callback);\n pendingCallbackParams.push([]);\n }\n pendingCallbackParams[targetCallbackIndex].push(entry);\n });\n this.observedElements.delete(entry.target);\n }\n });\n // execute callbacks\n pendingCallbacks.forEach((callback, index) => {\n callback(pendingCallbackParams[index]);\n });\n };\n this.initializeIntersectionDetector();\n }\n}\n","import { __decorate } from \"tslib\";\nimport { attr, DOM, observable } from \"@microsoft/fast-element\";\nimport { Direction, eventResize, eventScroll } from \"@microsoft/fast-web-utilities\";\nimport { FoundationElement } from \"../foundation-element\";\nimport { getDirection } from \"../utilities/direction\";\nimport { IntersectionService } from \"../utilities/intersection-service\";\n/**\n * An anchored region Custom HTML Element.\n *\n * @public\n */\nexport class AnchoredRegion extends FoundationElement {\n constructor() {\n super(...arguments);\n /**\n * The HTML ID of the anchor element this region is positioned relative to\n *\n * @public\n * @remarks\n * HTML Attribute: anchor\n */\n this.anchor = \"\";\n /**\n * The HTML ID of the viewport element this region is positioned relative to\n *\n * @public\n * @remarks\n * HTML Attribute: anchor\n */\n this.viewport = \"\";\n /**\n * Sets what logic the component uses to determine horizontal placement.\n * 'locktodefault' forces the default position\n * 'dynamic' decides placement based on available space\n * 'uncontrolled' does not control placement on the horizontal axis\n *\n * @public\n * @remarks\n * HTML Attribute: horizontal-positioning-mode\n */\n this.horizontalPositioningMode = \"uncontrolled\";\n /**\n * The default horizontal position of the region relative to the anchor element\n *\n * @public\n * @remarks\n * HTML Attribute: horizontal-default-position\n */\n this.horizontalDefaultPosition = \"unset\";\n /**\n * Whether the region remains in the viewport (ie. detaches from the anchor) on the horizontal axis\n *\n * @public\n * @remarks\n * HTML Attribute: horizontal-viewport-lock\n */\n this.horizontalViewportLock = false;\n /**\n * Whether the region overlaps the anchor on the horizontal axis\n *\n * @public\n * @remarks\n * HTML Attribute: horizontal-inset\n */\n this.horizontalInset = false;\n /**\n * Defines how the width of the region is calculated\n *\n * @public\n * @remarks\n * HTML Attribute: horizontal-scaling\n */\n this.horizontalScaling = \"content\";\n /**\n * Sets what logic the component uses to determine vertical placement.\n * 'locktodefault' forces the default position\n * 'dynamic' decides placement based on available space\n * 'uncontrolled' does not control placement on the vertical axis\n *\n * @public\n * @remarks\n * HTML Attribute: vertical-positioning-mode\n */\n this.verticalPositioningMode = \"uncontrolled\";\n /**\n * The default vertical position of the region relative to the anchor element\n *\n * @public\n * @remarks\n * HTML Attribute: vertical-default-position\n */\n this.verticalDefaultPosition = \"unset\";\n /**\n * Whether the region remains in the viewport (ie. detaches from the anchor) on the vertical axis\n *\n * @public\n * @remarks\n * HTML Attribute: vertical-viewport-lock\n */\n this.verticalViewportLock = false;\n /**\n * Whether the region overlaps the anchor on the vertical axis\n *\n * @public\n * @remarks\n * HTML Attribute: vertical-inset\n */\n this.verticalInset = false;\n /**\n * Defines how the height of the region is calculated\n *\n * @public\n * @remarks\n * HTML Attribute: vertical-scaling\n */\n this.verticalScaling = \"content\";\n /**\n * Whether the region is positioned using css \"position: fixed\".\n * Otherwise the region uses \"position: absolute\".\n * Fixed placement allows the region to break out of parent containers,\n *\n * @public\n * @remarks\n * HTML Attribute: fixed-placement\n */\n this.fixedPlacement = false;\n /**\n * Defines what triggers the anchored region to revaluate positioning\n *\n * @public\n * @remarks\n * HTML Attribute: auto-update-mode\n */\n this.autoUpdateMode = \"anchor\";\n /**\n * The HTML element being used as the anchor\n *\n * @public\n */\n this.anchorElement = null;\n /**\n * The HTML element being used as the viewport\n *\n * @public\n */\n this.viewportElement = null;\n /**\n * indicates that an initial positioning pass on layout has completed\n *\n * @internal\n */\n this.initialLayoutComplete = false;\n this.resizeDetector = null;\n /**\n * base offsets between the positioner's base position and the anchor's\n */\n this.baseHorizontalOffset = 0;\n this.baseVerticalOffset = 0;\n this.pendingPositioningUpdate = false;\n this.pendingReset = false;\n this.currentDirection = Direction.ltr;\n this.regionVisible = false;\n // indicates that a layout update should occur even if geometry has not changed\n // used to ensure some attribute changes are applied\n this.forceUpdate = false;\n // defines how big a difference in pixels there must be between states to\n // justify a layout update that affects the dom (prevents repeated sub-pixel corrections)\n this.updateThreshold = 0.5;\n /**\n * update position\n */\n this.update = () => {\n if (!this.pendingPositioningUpdate) {\n this.requestPositionUpdates();\n }\n };\n /**\n * starts observers\n */\n this.startObservers = () => {\n this.stopObservers();\n if (this.anchorElement === null) {\n return;\n }\n this.requestPositionUpdates();\n if (this.resizeDetector !== null) {\n this.resizeDetector.observe(this.anchorElement);\n this.resizeDetector.observe(this);\n }\n };\n /**\n * get position updates\n */\n this.requestPositionUpdates = () => {\n if (this.anchorElement === null || this.pendingPositioningUpdate) {\n return;\n }\n AnchoredRegion.intersectionService.requestPosition(this, this.handleIntersection);\n AnchoredRegion.intersectionService.requestPosition(this.anchorElement, this.handleIntersection);\n if (this.viewportElement !== null) {\n AnchoredRegion.intersectionService.requestPosition(this.viewportElement, this.handleIntersection);\n }\n this.pendingPositioningUpdate = true;\n };\n /**\n * stops observers\n */\n this.stopObservers = () => {\n if (this.pendingPositioningUpdate) {\n this.pendingPositioningUpdate = false;\n AnchoredRegion.intersectionService.cancelRequestPosition(this, this.handleIntersection);\n if (this.anchorElement !== null) {\n AnchoredRegion.intersectionService.cancelRequestPosition(this.anchorElement, this.handleIntersection);\n }\n if (this.viewportElement !== null) {\n AnchoredRegion.intersectionService.cancelRequestPosition(this.viewportElement, this.handleIntersection);\n }\n }\n if (this.resizeDetector !== null) {\n this.resizeDetector.disconnect();\n }\n };\n /**\n * Gets the viewport element by id, or defaults to document root\n */\n this.getViewport = () => {\n if (typeof this.viewport !== \"string\" || this.viewport === \"\") {\n return document.documentElement;\n }\n return document.getElementById(this.viewport);\n };\n /**\n * Gets the anchor element by id\n */\n this.getAnchor = () => {\n return document.getElementById(this.anchor);\n };\n /**\n * Handle intersections\n */\n this.handleIntersection = (entries) => {\n if (!this.pendingPositioningUpdate) {\n return;\n }\n this.pendingPositioningUpdate = false;\n if (!this.applyIntersectionEntries(entries)) {\n return;\n }\n this.updateLayout();\n };\n /**\n * iterate through intersection entries and apply data\n */\n this.applyIntersectionEntries = (entries) => {\n const regionEntry = entries.find(x => x.target === this);\n const anchorEntry = entries.find(x => x.target === this.anchorElement);\n const viewportEntry = entries.find(x => x.target === this.viewportElement);\n if (regionEntry === undefined ||\n viewportEntry === undefined ||\n anchorEntry === undefined) {\n return false;\n }\n // don't update the dom unless there is a significant difference in rect positions\n if (!this.regionVisible ||\n this.forceUpdate ||\n this.regionRect === undefined ||\n this.anchorRect === undefined ||\n this.viewportRect === undefined ||\n this.isRectDifferent(this.anchorRect, anchorEntry.boundingClientRect) ||\n this.isRectDifferent(this.viewportRect, viewportEntry.boundingClientRect) ||\n this.isRectDifferent(this.regionRect, regionEntry.boundingClientRect)) {\n this.regionRect = regionEntry.boundingClientRect;\n this.anchorRect = anchorEntry.boundingClientRect;\n if (this.viewportElement === document.documentElement) {\n this.viewportRect = new DOMRectReadOnly(viewportEntry.boundingClientRect.x +\n document.documentElement.scrollLeft, viewportEntry.boundingClientRect.y +\n document.documentElement.scrollTop, viewportEntry.boundingClientRect.width, viewportEntry.boundingClientRect.height);\n }\n else {\n this.viewportRect = viewportEntry.boundingClientRect;\n }\n this.updateRegionOffset();\n this.forceUpdate = false;\n return true;\n }\n return false;\n };\n /**\n * Update the offset values\n */\n this.updateRegionOffset = () => {\n if (this.anchorRect && this.regionRect) {\n this.baseHorizontalOffset =\n this.baseHorizontalOffset +\n (this.anchorRect.left - this.regionRect.left) +\n (this.translateX - this.baseHorizontalOffset);\n this.baseVerticalOffset =\n this.baseVerticalOffset +\n (this.anchorRect.top - this.regionRect.top) +\n (this.translateY - this.baseVerticalOffset);\n }\n };\n /**\n * compare rects to see if there is enough change to justify a DOM update\n */\n this.isRectDifferent = (rectA, rectB) => {\n if (Math.abs(rectA.top - rectB.top) > this.updateThreshold ||\n Math.abs(rectA.right - rectB.right) > this.updateThreshold ||\n Math.abs(rectA.bottom - rectB.bottom) > this.updateThreshold ||\n Math.abs(rectA.left - rectB.left) > this.updateThreshold) {\n return true;\n }\n return false;\n };\n /**\n * Handle resize events\n */\n this.handleResize = (entries) => {\n this.update();\n };\n /**\n * resets the component\n */\n this.reset = () => {\n if (!this.pendingReset) {\n return;\n }\n this.pendingReset = false;\n if (this.anchorElement === null) {\n this.anchorElement = this.getAnchor();\n }\n if (this.viewportElement === null) {\n this.viewportElement = this.getViewport();\n }\n this.currentDirection = getDirection(this);\n this.startObservers();\n };\n /**\n * Recalculate layout related state values\n */\n this.updateLayout = () => {\n let desiredVerticalPosition = undefined;\n let desiredHorizontalPosition = undefined;\n if (this.horizontalPositioningMode !== \"uncontrolled\") {\n const horizontalOptions = this.getPositioningOptions(this.horizontalInset);\n if (this.horizontalDefaultPosition === \"center\") {\n desiredHorizontalPosition = \"center\";\n }\n else if (this.horizontalDefaultPosition !== \"unset\") {\n let dirCorrectedHorizontalDefaultPosition = this\n .horizontalDefaultPosition;\n if (dirCorrectedHorizontalDefaultPosition === \"start\" ||\n dirCorrectedHorizontalDefaultPosition === \"end\") {\n // if direction changes we reset the layout\n const newDirection = getDirection(this);\n if (newDirection !== this.currentDirection) {\n this.currentDirection = newDirection;\n this.initialize();\n return;\n }\n if (this.currentDirection === Direction.ltr) {\n dirCorrectedHorizontalDefaultPosition =\n dirCorrectedHorizontalDefaultPosition === \"start\"\n ? \"left\"\n : \"right\";\n }\n else {\n dirCorrectedHorizontalDefaultPosition =\n dirCorrectedHorizontalDefaultPosition === \"start\"\n ? \"right\"\n : \"left\";\n }\n }\n switch (dirCorrectedHorizontalDefaultPosition) {\n case \"left\":\n desiredHorizontalPosition = this.horizontalInset\n ? \"insetStart\"\n : \"start\";\n break;\n case \"right\":\n desiredHorizontalPosition = this.horizontalInset\n ? \"insetEnd\"\n : \"end\";\n break;\n }\n }\n const horizontalThreshold = this.horizontalThreshold !== undefined\n ? this.horizontalThreshold\n : this.regionRect !== undefined\n ? this.regionRect.width\n : 0;\n const anchorLeft = this.anchorRect !== undefined ? this.anchorRect.left : 0;\n const anchorRight = this.anchorRect !== undefined ? this.anchorRect.right : 0;\n const anchorWidth = this.anchorRect !== undefined ? this.anchorRect.width : 0;\n const viewportLeft = this.viewportRect !== undefined ? this.viewportRect.left : 0;\n const viewportRight = this.viewportRect !== undefined ? this.viewportRect.right : 0;\n if (desiredHorizontalPosition === undefined ||\n (!(this.horizontalPositioningMode === \"locktodefault\") &&\n this.getAvailableSpace(desiredHorizontalPosition, anchorLeft, anchorRight, anchorWidth, viewportLeft, viewportRight) < horizontalThreshold)) {\n desiredHorizontalPosition =\n this.getAvailableSpace(horizontalOptions[0], anchorLeft, anchorRight, anchorWidth, viewportLeft, viewportRight) >\n this.getAvailableSpace(horizontalOptions[1], anchorLeft, anchorRight, anchorWidth, viewportLeft, viewportRight)\n ? horizontalOptions[0]\n : horizontalOptions[1];\n }\n }\n if (this.verticalPositioningMode !== \"uncontrolled\") {\n const verticalOptions = this.getPositioningOptions(this.verticalInset);\n if (this.verticalDefaultPosition === \"center\") {\n desiredVerticalPosition = \"center\";\n }\n else if (this.verticalDefaultPosition !== \"unset\") {\n switch (this.verticalDefaultPosition) {\n case \"top\":\n desiredVerticalPosition = this.verticalInset\n ? \"insetStart\"\n : \"start\";\n break;\n case \"bottom\":\n desiredVerticalPosition = this.verticalInset ? \"insetEnd\" : \"end\";\n break;\n }\n }\n const verticalThreshold = this.verticalThreshold !== undefined\n ? this.verticalThreshold\n : this.regionRect !== undefined\n ? this.regionRect.height\n : 0;\n const anchorTop = this.anchorRect !== undefined ? this.anchorRect.top : 0;\n const anchorBottom = this.anchorRect !== undefined ? this.anchorRect.bottom : 0;\n const anchorHeight = this.anchorRect !== undefined ? this.anchorRect.height : 0;\n const viewportTop = this.viewportRect !== undefined ? this.viewportRect.top : 0;\n const viewportBottom = this.viewportRect !== undefined ? this.viewportRect.bottom : 0;\n if (desiredVerticalPosition === undefined ||\n (!(this.verticalPositioningMode === \"locktodefault\") &&\n this.getAvailableSpace(desiredVerticalPosition, anchorTop, anchorBottom, anchorHeight, viewportTop, viewportBottom) < verticalThreshold)) {\n desiredVerticalPosition =\n this.getAvailableSpace(verticalOptions[0], anchorTop, anchorBottom, anchorHeight, viewportTop, viewportBottom) >\n this.getAvailableSpace(verticalOptions[1], anchorTop, anchorBottom, anchorHeight, viewportTop, viewportBottom)\n ? verticalOptions[0]\n : verticalOptions[1];\n }\n }\n const nextPositionerDimension = this.getNextRegionDimension(desiredHorizontalPosition, desiredVerticalPosition);\n const positionChanged = this.horizontalPosition !== desiredHorizontalPosition ||\n this.verticalPosition !== desiredVerticalPosition;\n this.setHorizontalPosition(desiredHorizontalPosition, nextPositionerDimension);\n this.setVerticalPosition(desiredVerticalPosition, nextPositionerDimension);\n this.updateRegionStyle();\n if (!this.initialLayoutComplete) {\n this.initialLayoutComplete = true;\n this.requestPositionUpdates();\n return;\n }\n if (!this.regionVisible) {\n this.regionVisible = true;\n this.style.removeProperty(\"pointer-events\");\n this.style.removeProperty(\"opacity\");\n this.classList.toggle(\"loaded\", true);\n this.$emit(\"loaded\", this, { bubbles: false });\n }\n this.updatePositionClasses();\n if (positionChanged) {\n // emit change event\n this.$emit(\"positionchange\", this, { bubbles: false });\n }\n };\n /**\n * Updates the style string applied to the region element as well as the css classes attached\n * to the root element\n */\n this.updateRegionStyle = () => {\n this.style.width = this.regionWidth;\n this.style.height = this.regionHeight;\n this.style.transform = `translate(${this.translateX}px, ${this.translateY}px)`;\n };\n /**\n * Updates the css classes that reflect the current position of the element\n */\n this.updatePositionClasses = () => {\n this.classList.toggle(\"top\", this.verticalPosition === \"start\");\n this.classList.toggle(\"bottom\", this.verticalPosition === \"end\");\n this.classList.toggle(\"inset-top\", this.verticalPosition === \"insetStart\");\n this.classList.toggle(\"inset-bottom\", this.verticalPosition === \"insetEnd\");\n this.classList.toggle(\"vertical-center\", this.verticalPosition === \"center\");\n this.classList.toggle(\"left\", this.horizontalPosition === \"start\");\n this.classList.toggle(\"right\", this.horizontalPosition === \"end\");\n this.classList.toggle(\"inset-left\", this.horizontalPosition === \"insetStart\");\n this.classList.toggle(\"inset-right\", this.horizontalPosition === \"insetEnd\");\n this.classList.toggle(\"horizontal-center\", this.horizontalPosition === \"center\");\n };\n /**\n * Get horizontal positioning state based on desired position\n */\n this.setHorizontalPosition = (desiredHorizontalPosition, nextPositionerDimension) => {\n if (desiredHorizontalPosition === undefined ||\n this.regionRect === undefined ||\n this.anchorRect === undefined ||\n this.viewportRect === undefined) {\n return;\n }\n let nextRegionWidth = 0;\n switch (this.horizontalScaling) {\n case \"anchor\":\n case \"fill\":\n nextRegionWidth = nextPositionerDimension.width;\n this.regionWidth = `${nextRegionWidth}px`;\n break;\n case \"content\":\n nextRegionWidth = this.regionRect.width;\n this.regionWidth = \"unset\";\n break;\n }\n let sizeDelta = 0;\n switch (desiredHorizontalPosition) {\n case \"start\":\n this.translateX = this.baseHorizontalOffset - nextRegionWidth;\n if (this.horizontalViewportLock &&\n this.anchorRect.left > this.viewportRect.right) {\n this.translateX =\n this.translateX -\n (this.anchorRect.left - this.viewportRect.right);\n }\n break;\n case \"insetStart\":\n this.translateX =\n this.baseHorizontalOffset - nextRegionWidth + this.anchorRect.width;\n if (this.horizontalViewportLock &&\n this.anchorRect.right > this.viewportRect.right) {\n this.translateX =\n this.translateX -\n (this.anchorRect.right - this.viewportRect.right);\n }\n break;\n case \"insetEnd\":\n this.translateX = this.baseHorizontalOffset;\n if (this.horizontalViewportLock &&\n this.anchorRect.left < this.viewportRect.left) {\n this.translateX =\n this.translateX - (this.anchorRect.left - this.viewportRect.left);\n }\n break;\n case \"end\":\n this.translateX = this.baseHorizontalOffset + this.anchorRect.width;\n if (this.horizontalViewportLock &&\n this.anchorRect.right < this.viewportRect.left) {\n this.translateX =\n this.translateX -\n (this.anchorRect.right - this.viewportRect.left);\n }\n break;\n case \"center\":\n sizeDelta = (this.anchorRect.width - nextRegionWidth) / 2;\n this.translateX = this.baseHorizontalOffset + sizeDelta;\n if (this.horizontalViewportLock) {\n const regionLeft = this.anchorRect.left + sizeDelta;\n const regionRight = this.anchorRect.right - sizeDelta;\n if (regionLeft < this.viewportRect.left &&\n !(regionRight > this.viewportRect.right)) {\n this.translateX =\n this.translateX - (regionLeft - this.viewportRect.left);\n }\n else if (regionRight > this.viewportRect.right &&\n !(regionLeft < this.viewportRect.left)) {\n this.translateX =\n this.translateX - (regionRight - this.viewportRect.right);\n }\n }\n break;\n }\n this.horizontalPosition = desiredHorizontalPosition;\n };\n /**\n * Set vertical positioning state based on desired position\n */\n this.setVerticalPosition = (desiredVerticalPosition, nextPositionerDimension) => {\n if (desiredVerticalPosition === undefined ||\n this.regionRect === undefined ||\n this.anchorRect === undefined ||\n this.viewportRect === undefined) {\n return;\n }\n let nextRegionHeight = 0;\n switch (this.verticalScaling) {\n case \"anchor\":\n case \"fill\":\n nextRegionHeight = nextPositionerDimension.height;\n this.regionHeight = `${nextRegionHeight}px`;\n break;\n case \"content\":\n nextRegionHeight = this.regionRect.height;\n this.regionHeight = \"unset\";\n break;\n }\n let sizeDelta = 0;\n switch (desiredVerticalPosition) {\n case \"start\":\n this.translateY = this.baseVerticalOffset - nextRegionHeight;\n if (this.verticalViewportLock &&\n this.anchorRect.top > this.viewportRect.bottom) {\n this.translateY =\n this.translateY -\n (this.anchorRect.top - this.viewportRect.bottom);\n }\n break;\n case \"insetStart\":\n this.translateY =\n this.baseVerticalOffset - nextRegionHeight + this.anchorRect.height;\n if (this.verticalViewportLock &&\n this.anchorRect.bottom > this.viewportRect.bottom) {\n this.translateY =\n this.translateY -\n (this.anchorRect.bottom - this.viewportRect.bottom);\n }\n break;\n case \"insetEnd\":\n this.translateY = this.baseVerticalOffset;\n if (this.verticalViewportLock &&\n this.anchorRect.top < this.viewportRect.top) {\n this.translateY =\n this.translateY - (this.anchorRect.top - this.viewportRect.top);\n }\n break;\n case \"end\":\n this.translateY = this.baseVerticalOffset + this.anchorRect.height;\n if (this.verticalViewportLock &&\n this.anchorRect.bottom < this.viewportRect.top) {\n this.translateY =\n this.translateY -\n (this.anchorRect.bottom - this.viewportRect.top);\n }\n break;\n case \"center\":\n sizeDelta = (this.anchorRect.height - nextRegionHeight) / 2;\n this.translateY = this.baseVerticalOffset + sizeDelta;\n if (this.verticalViewportLock) {\n const regionTop = this.anchorRect.top + sizeDelta;\n const regionBottom = this.anchorRect.bottom - sizeDelta;\n if (regionTop < this.viewportRect.top &&\n !(regionBottom > this.viewportRect.bottom)) {\n this.translateY =\n this.translateY - (regionTop - this.viewportRect.top);\n }\n else if (regionBottom > this.viewportRect.bottom &&\n !(regionTop < this.viewportRect.top)) {\n this.translateY =\n this.translateY - (regionBottom - this.viewportRect.bottom);\n }\n }\n }\n this.verticalPosition = desiredVerticalPosition;\n };\n /**\n * Get available positions based on positioning mode\n */\n this.getPositioningOptions = (inset) => {\n if (inset) {\n return [\"insetStart\", \"insetEnd\"];\n }\n return [\"start\", \"end\"];\n };\n /**\n * Get the space available for a particular relative position\n */\n this.getAvailableSpace = (positionOption, anchorStart, anchorEnd, anchorSpan, viewportStart, viewportEnd) => {\n const spaceStart = anchorStart - viewportStart;\n const spaceEnd = viewportEnd - (anchorStart + anchorSpan);\n switch (positionOption) {\n case \"start\":\n return spaceStart;\n case \"insetStart\":\n return spaceStart + anchorSpan;\n case \"insetEnd\":\n return spaceEnd + anchorSpan;\n case \"end\":\n return spaceEnd;\n case \"center\":\n return Math.min(spaceStart, spaceEnd) * 2 + anchorSpan;\n }\n };\n /**\n * Get region dimensions\n */\n this.getNextRegionDimension = (desiredHorizontalPosition, desiredVerticalPosition) => {\n const newRegionDimension = {\n height: this.regionRect !== undefined ? this.regionRect.height : 0,\n width: this.regionRect !== undefined ? this.regionRect.width : 0,\n };\n if (desiredHorizontalPosition !== undefined &&\n this.horizontalScaling === \"fill\") {\n newRegionDimension.width = this.getAvailableSpace(desiredHorizontalPosition, this.anchorRect !== undefined ? this.anchorRect.left : 0, this.anchorRect !== undefined ? this.anchorRect.right : 0, this.anchorRect !== undefined ? this.anchorRect.width : 0, this.viewportRect !== undefined ? this.viewportRect.left : 0, this.viewportRect !== undefined ? this.viewportRect.right : 0);\n }\n else if (this.horizontalScaling === \"anchor\") {\n newRegionDimension.width =\n this.anchorRect !== undefined ? this.anchorRect.width : 0;\n }\n if (desiredVerticalPosition !== undefined && this.verticalScaling === \"fill\") {\n newRegionDimension.height = this.getAvailableSpace(desiredVerticalPosition, this.anchorRect !== undefined ? this.anchorRect.top : 0, this.anchorRect !== undefined ? this.anchorRect.bottom : 0, this.anchorRect !== undefined ? this.anchorRect.height : 0, this.viewportRect !== undefined ? this.viewportRect.top : 0, this.viewportRect !== undefined ? this.viewportRect.bottom : 0);\n }\n else if (this.verticalScaling === \"anchor\") {\n newRegionDimension.height =\n this.anchorRect !== undefined ? this.anchorRect.height : 0;\n }\n return newRegionDimension;\n };\n /**\n * starts event listeners that can trigger auto updating\n */\n this.startAutoUpdateEventListeners = () => {\n window.addEventListener(eventResize, this.update, { passive: true });\n window.addEventListener(eventScroll, this.update, {\n passive: true,\n capture: true,\n });\n if (this.resizeDetector !== null && this.viewportElement !== null) {\n this.resizeDetector.observe(this.viewportElement);\n }\n };\n /**\n * stops event listeners that can trigger auto updating\n */\n this.stopAutoUpdateEventListeners = () => {\n window.removeEventListener(eventResize, this.update);\n window.removeEventListener(eventScroll, this.update);\n if (this.resizeDetector !== null && this.viewportElement !== null) {\n this.resizeDetector.unobserve(this.viewportElement);\n }\n };\n }\n anchorChanged() {\n if (this.initialLayoutComplete) {\n this.anchorElement = this.getAnchor();\n }\n }\n viewportChanged() {\n if (this.initialLayoutComplete) {\n this.viewportElement = this.getViewport();\n }\n }\n horizontalPositioningModeChanged() {\n this.requestReset();\n }\n horizontalDefaultPositionChanged() {\n this.updateForAttributeChange();\n }\n horizontalViewportLockChanged() {\n this.updateForAttributeChange();\n }\n horizontalInsetChanged() {\n this.updateForAttributeChange();\n }\n horizontalThresholdChanged() {\n this.updateForAttributeChange();\n }\n horizontalScalingChanged() {\n this.updateForAttributeChange();\n }\n verticalPositioningModeChanged() {\n this.requestReset();\n }\n verticalDefaultPositionChanged() {\n this.updateForAttributeChange();\n }\n verticalViewportLockChanged() {\n this.updateForAttributeChange();\n }\n verticalInsetChanged() {\n this.updateForAttributeChange();\n }\n verticalThresholdChanged() {\n this.updateForAttributeChange();\n }\n verticalScalingChanged() {\n this.updateForAttributeChange();\n }\n fixedPlacementChanged() {\n if (this.$fastController.isConnected &&\n this.initialLayoutComplete) {\n this.initialize();\n }\n }\n autoUpdateModeChanged(prevMode, newMode) {\n if (this.$fastController.isConnected &&\n this.initialLayoutComplete) {\n if (prevMode === \"auto\") {\n this.stopAutoUpdateEventListeners();\n }\n if (newMode === \"auto\") {\n this.startAutoUpdateEventListeners();\n }\n }\n }\n anchorElementChanged() {\n this.requestReset();\n }\n viewportElementChanged() {\n if (this.$fastController.isConnected &&\n this.initialLayoutComplete) {\n this.initialize();\n }\n }\n /**\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n if (this.autoUpdateMode === \"auto\") {\n this.startAutoUpdateEventListeners();\n }\n this.initialize();\n }\n /**\n * @internal\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this.autoUpdateMode === \"auto\") {\n this.stopAutoUpdateEventListeners();\n }\n this.stopObservers();\n this.disconnectResizeDetector();\n }\n /**\n * @internal\n */\n adoptedCallback() {\n this.initialize();\n }\n /**\n * destroys the instance's resize observer\n */\n disconnectResizeDetector() {\n if (this.resizeDetector !== null) {\n this.resizeDetector.disconnect();\n this.resizeDetector = null;\n }\n }\n /**\n * initializes the instance's resize observer\n */\n initializeResizeDetector() {\n this.disconnectResizeDetector();\n this.resizeDetector = new window.ResizeObserver(this.handleResize);\n }\n /**\n * react to attribute changes that don't require a reset\n */\n updateForAttributeChange() {\n if (this.$fastController.isConnected &&\n this.initialLayoutComplete) {\n this.forceUpdate = true;\n this.update();\n }\n }\n /**\n * fully initializes the component\n */\n initialize() {\n this.initializeResizeDetector();\n if (this.anchorElement === null) {\n this.anchorElement = this.getAnchor();\n }\n this.requestReset();\n }\n /**\n * Request a reset if there are currently no open requests\n */\n requestReset() {\n if (this.$fastController.isConnected &&\n this.pendingReset === false) {\n this.setInitialState();\n DOM.queueUpdate(() => this.reset());\n this.pendingReset = true;\n }\n }\n /**\n * sets the starting configuration for component internal values\n */\n setInitialState() {\n this.initialLayoutComplete = false;\n this.regionVisible = false;\n this.translateX = 0;\n this.translateY = 0;\n this.baseHorizontalOffset = 0;\n this.baseVerticalOffset = 0;\n this.viewportRect = undefined;\n this.regionRect = undefined;\n this.anchorRect = undefined;\n this.verticalPosition = undefined;\n this.horizontalPosition = undefined;\n this.style.opacity = \"0\";\n this.style.pointerEvents = \"none\";\n this.forceUpdate = false;\n this.style.position = this.fixedPlacement ? \"fixed\" : \"absolute\";\n this.updatePositionClasses();\n this.updateRegionStyle();\n }\n}\nAnchoredRegion.intersectionService = new IntersectionService();\n__decorate([\n attr\n], AnchoredRegion.prototype, \"anchor\", void 0);\n__decorate([\n attr\n], AnchoredRegion.prototype, \"viewport\", void 0);\n__decorate([\n attr({ attribute: \"horizontal-positioning-mode\" })\n], AnchoredRegion.prototype, \"horizontalPositioningMode\", void 0);\n__decorate([\n attr({ attribute: \"horizontal-default-position\" })\n], AnchoredRegion.prototype, \"horizontalDefaultPosition\", void 0);\n__decorate([\n attr({ attribute: \"horizontal-viewport-lock\", mode: \"boolean\" })\n], AnchoredRegion.prototype, \"horizontalViewportLock\", void 0);\n__decorate([\n attr({ attribute: \"horizontal-inset\", mode: \"boolean\" })\n], AnchoredRegion.prototype, \"horizontalInset\", void 0);\n__decorate([\n attr({ attribute: \"horizontal-threshold\" })\n], AnchoredRegion.prototype, \"horizontalThreshold\", void 0);\n__decorate([\n attr({ attribute: \"horizontal-scaling\" })\n], AnchoredRegion.prototype, \"horizontalScaling\", void 0);\n__decorate([\n attr({ attribute: \"vertical-positioning-mode\" })\n], AnchoredRegion.prototype, \"verticalPositioningMode\", void 0);\n__decorate([\n attr({ attribute: \"vertical-default-position\" })\n], AnchoredRegion.prototype, \"verticalDefaultPosition\", void 0);\n__decorate([\n attr({ attribute: \"vertical-viewport-lock\", mode: \"boolean\" })\n], AnchoredRegion.prototype, \"verticalViewportLock\", void 0);\n__decorate([\n attr({ attribute: \"vertical-inset\", mode: \"boolean\" })\n], AnchoredRegion.prototype, \"verticalInset\", void 0);\n__decorate([\n attr({ attribute: \"vertical-threshold\" })\n], AnchoredRegion.prototype, \"verticalThreshold\", void 0);\n__decorate([\n attr({ attribute: \"vertical-scaling\" })\n], AnchoredRegion.prototype, \"verticalScaling\", void 0);\n__decorate([\n attr({ attribute: \"fixed-placement\", mode: \"boolean\" })\n], AnchoredRegion.prototype, \"fixedPlacement\", void 0);\n__decorate([\n attr({ attribute: \"auto-update-mode\" })\n], AnchoredRegion.prototype, \"autoUpdateMode\", void 0);\n__decorate([\n observable\n], AnchoredRegion.prototype, \"anchorElement\", void 0);\n__decorate([\n observable\n], AnchoredRegion.prototype, \"viewportElement\", void 0);\n__decorate([\n observable\n], AnchoredRegion.prototype, \"initialLayoutComplete\", void 0);\n","import { html, when } from \"@microsoft/fast-element\";\nimport { anchorTemplate } from \"../anchor\";\nimport { endSlotTemplate, startSlotTemplate } from \"../patterns/start-end\";\n/**\n * The template for the {@link @microsoft/fast-foundation#(BreadcrumbItem:class)} component.\n * @public\n */\nexport const breadcrumbItemTemplate = (context, definition) => html `\n <div role=\"listitem\" class=\"listitem\" part=\"listitem\">\n ${when(x => x.href && x.href.length > 0, html `\n ${anchorTemplate(context, definition)}\n `)}\n ${when(x => !x.href, html `\n ${startSlotTemplate(context, definition)}\n <slot></slot>\n ${endSlotTemplate(context, definition)}\n `)}\n ${when(x => x.separator, html `\n <span class=\"separator\" part=\"separator\" aria-hidden=\"true\">\n <slot name=\"separator\">${definition.separator || \"\"}</slot>\n </span>\n `)}\n </div>\n`;\n","import { __decorate } from \"tslib\";\nimport { observable } from \"@microsoft/fast-element\";\nimport { Anchor, DelegatesARIALink } from \"../anchor\";\nimport { StartEnd } from \"../patterns/index\";\nimport { applyMixins } from \"../utilities/apply-mixins\";\n/**\n * A Breadcrumb Item Custom HTML Element.\n *\n * @public\n */\nexport class BreadcrumbItem extends Anchor {\n constructor() {\n super(...arguments);\n /**\n * @internal\n */\n this.separator = true;\n }\n}\n__decorate([\n observable\n], BreadcrumbItem.prototype, \"separator\", void 0);\napplyMixins(BreadcrumbItem, StartEnd, DelegatesARIALink);\n","import { elements, html, slotted } from \"@microsoft/fast-element\";\n/**\n * The template for the {@link @microsoft/fast-foundation#Breadcrumb} component.\n * @public\n */\nexport const breadcrumbTemplate = (context, definition) => html `\n <template role=\"navigation\">\n <div role=\"list\" class=\"list\" part=\"list\">\n <slot\n ${slotted({ property: \"slottedBreadcrumbItems\", filter: elements() })}\n ></slot>\n </div>\n </template>\n`;\n","import { __decorate } from \"tslib\";\nimport { observable } from \"@microsoft/fast-element\";\nimport { BreadcrumbItem } from \"../breadcrumb-item\";\nimport { FoundationElement } from \"../foundation-element\";\n/**\n * A Breadcrumb Custom HTML Element.\n *\n * @public\n */\nexport class Breadcrumb extends FoundationElement {\n slottedBreadcrumbItemsChanged() {\n if (this.$fastController.isConnected) {\n if (this.slottedBreadcrumbItems === undefined ||\n this.slottedBreadcrumbItems.length === 0) {\n return;\n }\n const lastNode = this.slottedBreadcrumbItems[this.slottedBreadcrumbItems.length - 1];\n this.setItemSeparator(lastNode);\n this.setLastItemAriaCurrent(lastNode);\n }\n }\n setItemSeparator(lastNode) {\n this.slottedBreadcrumbItems.forEach((item) => {\n if (item instanceof BreadcrumbItem) {\n item.separator = true;\n }\n });\n if (lastNode instanceof BreadcrumbItem) {\n lastNode.separator = false;\n }\n }\n /**\n * @internal\n * Finds href on childnodes in the light DOM or shadow DOM.\n * We look in the shadow DOM because we insert an anchor when breadcrumb-item has an href.\n */\n findChildWithHref(node) {\n var _a, _b;\n if (node.childElementCount > 0) {\n return node.querySelector(\"a[href]\");\n }\n else if ((_a = node.shadowRoot) === null || _a === void 0 ? void 0 : _a.childElementCount) {\n return (_b = node.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector(\"a[href]\");\n }\n else\n return null;\n }\n /**\n * If child node with an anchor tag and with href is found then apply aria-current to child node otherwise apply aria-current to the host element, with an href\n */\n setLastItemAriaCurrent(lastNode) {\n const childNodeWithHref = this.findChildWithHref(lastNode);\n if (childNodeWithHref === null &&\n lastNode.hasAttribute(\"href\") &&\n lastNode instanceof BreadcrumbItem) {\n lastNode.ariaCurrent = \"page\";\n }\n else if (childNodeWithHref !== null) {\n childNodeWithHref.setAttribute(\"aria-current\", \"page\");\n }\n }\n}\n__decorate([\n observable\n], Breadcrumb.prototype, \"slottedBreadcrumbItems\", void 0);\n","import { html, ref, slotted } from \"@microsoft/fast-element\";\nimport { endSlotTemplate, startSlotTemplate } from \"../patterns/start-end\";\n/**\n * The template for the {@link @microsoft/fast-foundation#(Button:class)} component.\n * @public\n */\nexport const buttonTemplate = (context, definition) => html `\n <button\n class=\"control\"\n part=\"control\"\n ?autofocus=\"${x => x.autofocus}\"\n ?disabled=\"${x => x.disabled}\"\n form=\"${x => x.formId}\"\n formaction=\"${x => x.formaction}\"\n formenctype=\"${x => x.formenctype}\"\n formmethod=\"${x => x.formmethod}\"\n formnovalidate=\"${x => x.formnovalidate}\"\n formtarget=\"${x => x.formtarget}\"\n name=\"${x => x.name}\"\n type=\"${x => x.type}\"\n value=\"${x => x.value}\"\n aria-atomic=\"${x => x.ariaAtomic}\"\n aria-busy=\"${x => x.ariaBusy}\"\n aria-controls=\"${x => x.ariaControls}\"\n aria-current=\"${x => x.ariaCurrent}\"\n aria-describedby=\"${x => x.ariaDescribedby}\"\n aria-details=\"${x => x.ariaDetails}\"\n aria-disabled=\"${x => x.ariaDisabled}\"\n aria-errormessage=\"${x => x.ariaErrormessage}\"\n aria-expanded=\"${x => x.ariaExpanded}\"\n aria-flowto=\"${x => x.ariaFlowto}\"\n aria-haspopup=\"${x => x.ariaHaspopup}\"\n aria-hidden=\"${x => x.ariaHidden}\"\n aria-invalid=\"${x => x.ariaInvalid}\"\n aria-keyshortcuts=\"${x => x.ariaKeyshortcuts}\"\n aria-label=\"${x => x.ariaLabel}\"\n aria-labelledby=\"${x => x.ariaLabelledby}\"\n aria-live=\"${x => x.ariaLive}\"\n aria-owns=\"${x => x.ariaOwns}\"\n aria-pressed=\"${x => x.ariaPressed}\"\n aria-relevant=\"${x => x.ariaRelevant}\"\n aria-roledescription=\"${x => x.ariaRoledescription}\"\n ${ref(\"control\")}\n >\n ${startSlotTemplate(context, definition)}\n <span class=\"content\" part=\"content\">\n <slot ${slotted(\"defaultSlottedContent\")}></slot>\n </span>\n ${endSlotTemplate(context, definition)}\n </button>\n`;\n","import { attr, booleanConverter, DOM, emptyArray, observable, } from \"@microsoft/fast-element\";\nimport { keyEnter } from \"@microsoft/fast-web-utilities\";\nconst proxySlotName = \"form-associated-proxy\";\nconst ElementInternalsKey = \"ElementInternals\";\n/**\n * @alpha\n */\nexport const supportsElementInternals = ElementInternalsKey in window &&\n \"setFormValue\" in window[ElementInternalsKey].prototype;\nconst InternalsMap = new WeakMap();\n/**\n * Base function for providing Custom Element Form Association.\n *\n * @alpha\n */\nexport function FormAssociated(BaseCtor) {\n const C = class extends BaseCtor {\n constructor(...args) {\n super(...args);\n /**\n * Track whether the value has been changed from the initial value\n */\n this.dirtyValue = false;\n /**\n * Sets the element's disabled state. A disabled element will not be included during form submission.\n *\n * @remarks\n * HTML Attribute: disabled\n */\n this.disabled = false;\n /**\n * These are events that are still fired by the proxy\n * element based on user / programmatic interaction.\n *\n * The proxy implementation should be transparent to\n * the app author, so block these events from emitting.\n */\n this.proxyEventsToBlock = [\"change\", \"click\"];\n this.proxyInitialized = false;\n this.required = false;\n this.initialValue = this.initialValue || \"\";\n if (!this.elementInternals) {\n // When elementInternals is not supported, formResetCallback is\n // bound to an event listener, so ensure the handler's `this`\n // context is correct.\n this.formResetCallback = this.formResetCallback.bind(this);\n }\n }\n /**\n * Must evaluate to true to enable elementInternals.\n * Feature detects API support and resolve respectively\n *\n * @internal\n */\n static get formAssociated() {\n return supportsElementInternals;\n }\n /**\n * Returns the validity state of the element\n *\n * @alpha\n */\n get validity() {\n return this.elementInternals\n ? this.elementInternals.validity\n : this.proxy.validity;\n }\n /**\n * Retrieve a reference to the associated form.\n * Returns null if not associated to any form.\n *\n * @alpha\n */\n get form() {\n return this.elementInternals ? this.elementInternals.form : this.proxy.form;\n }\n /**\n * Retrieve the localized validation message,\n * or custom validation message if set.\n *\n * @alpha\n */\n get validationMessage() {\n return this.elementInternals\n ? this.elementInternals.validationMessage\n : this.proxy.validationMessage;\n }\n /**\n * Whether the element will be validated when the\n * form is submitted\n */\n get willValidate() {\n return this.elementInternals\n ? this.elementInternals.willValidate\n : this.proxy.willValidate;\n }\n /**\n * A reference to all associated label elements\n */\n get labels() {\n if (this.elementInternals) {\n return Object.freeze(Array.from(this.elementInternals.labels));\n }\n else if (this.proxy instanceof HTMLElement &&\n this.proxy.ownerDocument &&\n this.id) {\n // Labels associated by wrapping the element: <label><custom-element></custom-element></label>\n const parentLabels = this.proxy.labels;\n // Labels associated using the `for` attribute\n const forLabels = Array.from(this.proxy.getRootNode().querySelectorAll(`[for='${this.id}']`));\n const labels = parentLabels\n ? forLabels.concat(Array.from(parentLabels))\n : forLabels;\n return Object.freeze(labels);\n }\n else {\n return emptyArray;\n }\n }\n /**\n * Invoked when the `value` property changes\n * @param previous - the previous value\n * @param next - the new value\n *\n * @remarks\n * If elements extending `FormAssociated` implement a `valueChanged` method\n * They must be sure to invoke `super.valueChanged(previous, next)` to ensure\n * proper functioning of `FormAssociated`\n */\n valueChanged(previous, next) {\n this.dirtyValue = true;\n if (this.proxy instanceof HTMLElement) {\n this.proxy.value = this.value;\n }\n this.currentValue = this.value;\n this.setFormValue(this.value);\n this.validate();\n }\n currentValueChanged() {\n this.value = this.currentValue;\n }\n /**\n * Invoked when the `initialValue` property changes\n *\n * @param previous - the previous value\n * @param next - the new value\n *\n * @remarks\n * If elements extending `FormAssociated` implement a `initialValueChanged` method\n * They must be sure to invoke `super.initialValueChanged(previous, next)` to ensure\n * proper functioning of `FormAssociated`\n */\n initialValueChanged(previous, next) {\n // If the value is clean and the component is connected to the DOM\n // then set value equal to the attribute value.\n if (!this.dirtyValue) {\n this.value = this.initialValue;\n this.dirtyValue = false;\n }\n }\n /**\n * Invoked when the `disabled` property changes\n *\n * @param previous - the previous value\n * @param next - the new value\n *\n * @remarks\n * If elements extending `FormAssociated` implement a `disabledChanged` method\n * They must be sure to invoke `super.disabledChanged(previous, next)` to ensure\n * proper functioning of `FormAssociated`\n */\n disabledChanged(previous, next) {\n if (this.proxy instanceof HTMLElement) {\n this.proxy.disabled = this.disabled;\n }\n DOM.queueUpdate(() => this.classList.toggle(\"disabled\", this.disabled));\n }\n /**\n * Invoked when the `name` property changes\n *\n * @param previous - the previous value\n * @param next - the new value\n *\n * @remarks\n * If elements extending `FormAssociated` implement a `nameChanged` method\n * They must be sure to invoke `super.nameChanged(previous, next)` to ensure\n * proper functioning of `FormAssociated`\n */\n nameChanged(previous, next) {\n if (this.proxy instanceof HTMLElement) {\n this.proxy.name = this.name;\n }\n }\n /**\n * Invoked when the `required` property changes\n *\n * @param previous - the previous value\n * @param next - the new value\n *\n * @remarks\n * If elements extending `FormAssociated` implement a `requiredChanged` method\n * They must be sure to invoke `super.requiredChanged(previous, next)` to ensure\n * proper functioning of `FormAssociated`\n */\n requiredChanged(prev, next) {\n if (this.proxy instanceof HTMLElement) {\n this.proxy.required = this.required;\n }\n DOM.queueUpdate(() => this.classList.toggle(\"required\", this.required));\n this.validate();\n }\n /**\n * The element internals object. Will only exist\n * in browsers supporting the attachInternals API\n */\n get elementInternals() {\n if (!supportsElementInternals) {\n return null;\n }\n let internals = InternalsMap.get(this);\n if (!internals) {\n internals = this.attachInternals();\n InternalsMap.set(this, internals);\n }\n return internals;\n }\n /**\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"keypress\", this._keypressHandler);\n if (!this.value) {\n this.value = this.initialValue;\n this.dirtyValue = false;\n }\n if (!this.elementInternals) {\n this.attachProxy();\n if (this.form) {\n this.form.addEventListener(\"reset\", this.formResetCallback);\n }\n }\n }\n /**\n * @internal\n */\n disconnectedCallback() {\n this.proxyEventsToBlock.forEach(name => this.proxy.removeEventListener(name, this.stopPropagation));\n if (!this.elementInternals && this.form) {\n this.form.removeEventListener(\"reset\", this.formResetCallback);\n }\n }\n /**\n * Return the current validity of the element.\n */\n checkValidity() {\n return this.elementInternals\n ? this.elementInternals.checkValidity()\n : this.proxy.checkValidity();\n }\n /**\n * Return the current validity of the element.\n * If false, fires an invalid event at the element.\n */\n reportValidity() {\n return this.elementInternals\n ? this.elementInternals.reportValidity()\n : this.proxy.reportValidity();\n }\n /**\n * Set the validity of the control. In cases when the elementInternals object is not\n * available (and the proxy element is used to report validity), this function will\n * do nothing unless a message is provided, at which point the setCustomValidity method\n * of the proxy element will be invoked with the provided message.\n * @param flags - Validity flags\n * @param message - Optional message to supply\n * @param anchor - Optional element used by UA to display an interactive validation UI\n */\n setValidity(flags, message, anchor) {\n if (this.elementInternals) {\n this.elementInternals.setValidity(flags, message, anchor);\n }\n else if (typeof message === \"string\") {\n this.proxy.setCustomValidity(message);\n }\n }\n /**\n * Invoked when a connected component's form or fieldset has its disabled\n * state changed.\n * @param disabled - the disabled value of the form / fieldset\n */\n formDisabledCallback(disabled) {\n this.disabled = disabled;\n }\n formResetCallback() {\n this.value = this.initialValue;\n this.dirtyValue = false;\n }\n /**\n * Attach the proxy element to the DOM\n */\n attachProxy() {\n var _a;\n if (!this.proxyInitialized) {\n this.proxyInitialized = true;\n this.proxy.style.display = \"none\";\n this.proxyEventsToBlock.forEach(name => this.proxy.addEventListener(name, this.stopPropagation));\n // These are typically mapped to the proxy during\n // property change callbacks, but during initialization\n // on the initial call of the callback, the proxy is\n // still undefined. We should find a better way to address this.\n this.proxy.disabled = this.disabled;\n this.proxy.required = this.required;\n if (typeof this.name === \"string\") {\n this.proxy.name = this.name;\n }\n if (typeof this.value === \"string\") {\n this.proxy.value = this.value;\n }\n this.proxy.setAttribute(\"slot\", proxySlotName);\n this.proxySlot = document.createElement(\"slot\");\n this.proxySlot.setAttribute(\"name\", proxySlotName);\n }\n (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.appendChild(this.proxySlot);\n this.appendChild(this.proxy);\n }\n /**\n * Detach the proxy element from the DOM\n */\n detachProxy() {\n var _a;\n this.removeChild(this.proxy);\n (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.removeChild(this.proxySlot);\n }\n /**\n * Sets the validity of the custom element. By default this uses the proxy element to determine\n * validity, but this can be extended or replaced in implementation.\n */\n validate() {\n if (this.proxy instanceof HTMLElement) {\n this.setValidity(this.proxy.validity, this.proxy.validationMessage);\n }\n }\n /**\n * Associates the provided value (and optional state) with the parent form.\n * @param value - The value to set\n * @param state - The state object provided to during session restores and when autofilling.\n */\n setFormValue(value, state) {\n if (this.elementInternals) {\n this.elementInternals.setFormValue(value, state || value);\n }\n }\n _keypressHandler(e) {\n switch (e.key) {\n case keyEnter:\n if (this.form instanceof HTMLFormElement) {\n // Implicit submission\n const defaultButton = this.form.querySelector(\"[type=submit]\");\n defaultButton === null || defaultButton === void 0 ? void 0 : defaultButton.click();\n }\n break;\n }\n }\n /**\n * Used to stop propagation of proxy element events\n * @param e - Event object\n */\n stopPropagation(e) {\n e.stopPropagation();\n }\n };\n attr({ mode: \"boolean\" })(C.prototype, \"disabled\");\n attr({ mode: \"fromView\", attribute: \"value\" })(C.prototype, \"initialValue\");\n attr({ attribute: \"current-value\" })(C.prototype, \"currentValue\");\n attr(C.prototype, \"name\");\n attr({ mode: \"boolean\" })(C.prototype, \"required\");\n observable(C.prototype, \"value\");\n return C;\n}\n/**\n * @alpha\n */\nexport function CheckableFormAssociated(BaseCtor) {\n class C extends FormAssociated(BaseCtor) {\n }\n class D extends C {\n constructor(...args) {\n super(args);\n /**\n * Tracks whether the \"checked\" property has been changed.\n * This is necessary to provide consistent behavior with\n * normal input checkboxes\n */\n this.dirtyChecked = false;\n /**\n * Provides the default checkedness of the input element\n * Passed down to proxy\n *\n * @public\n * @remarks\n * HTML Attribute: checked\n */\n this.checkedAttribute = false;\n /**\n * The checked state of the control.\n *\n * @public\n */\n this.checked = false;\n // Re-initialize dirtyChecked because initialization of other values\n // causes it to become true\n this.dirtyChecked = false;\n }\n checkedAttributeChanged() {\n this.defaultChecked = this.checkedAttribute;\n }\n /**\n * @internal\n */\n defaultCheckedChanged() {\n if (!this.dirtyChecked) {\n // Setting this.checked will cause us to enter a dirty state,\n // but if we are clean when defaultChecked is changed, we want to stay\n // in a clean state, so reset this.dirtyChecked\n this.checked = this.defaultChecked;\n this.dirtyChecked = false;\n }\n }\n checkedChanged(prev, next) {\n if (!this.dirtyChecked) {\n this.dirtyChecked = true;\n }\n this.currentChecked = this.checked;\n this.updateForm();\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.checked = this.checked;\n }\n if (prev !== undefined) {\n this.$emit(\"change\");\n }\n this.validate();\n }\n currentCheckedChanged(prev, next) {\n this.checked = this.currentChecked;\n }\n updateForm() {\n const value = this.checked ? this.value : null;\n this.setFormValue(value, value);\n }\n connectedCallback() {\n super.connectedCallback();\n this.updateForm();\n }\n formResetCallback() {\n super.formResetCallback();\n this.checked = !!this.checkedAttribute;\n this.dirtyChecked = false;\n }\n }\n attr({ attribute: \"checked\", mode: \"boolean\" })(D.prototype, \"checkedAttribute\");\n attr({ attribute: \"current-checked\", converter: booleanConverter })(D.prototype, \"currentChecked\");\n observable(D.prototype, \"defaultChecked\");\n observable(D.prototype, \"checked\");\n return D;\n}\n","import { FormAssociated } from \"../form-associated/form-associated\";\nimport { FoundationElement } from \"../foundation-element\";\nclass _Button extends FoundationElement {\n}\n/**\n * A form-associated base class for the {@link @microsoft/fast-foundation#(Button:class)} component.\n *\n * @internal\n */\nexport class FormAssociatedButton extends FormAssociated(_Button) {\n constructor() {\n super(...arguments);\n this.proxy = document.createElement(\"input\");\n }\n}\n","import { __decorate } from \"tslib\";\nimport { attr, observable } from \"@microsoft/fast-element\";\nimport { ARIAGlobalStatesAndProperties, StartEnd, } from \"../patterns/index\";\nimport { applyMixins } from \"../utilities/apply-mixins\";\nimport { FormAssociatedButton } from \"./button.form-associated\";\n/**\n * A Button Custom HTML Element.\n * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button | <button> element }.\n *\n * @public\n */\nexport class Button extends FormAssociatedButton {\n constructor() {\n super(...arguments);\n /**\n * Prevent events to propagate if disabled and has no slotted content wrapped in HTML elements\n * @internal\n */\n this.handleClick = (e) => {\n var _a;\n if (this.disabled && ((_a = this.defaultSlottedContent) === null || _a === void 0 ? void 0 : _a.length) <= 1) {\n e.stopPropagation();\n }\n };\n /**\n * Submits the parent form\n */\n this.handleSubmission = () => {\n if (!this.form) {\n return;\n }\n const attached = this.proxy.isConnected;\n if (!attached) {\n this.attachProxy();\n }\n // Browser support for requestSubmit is not comprehensive\n // so click the proxy if it isn't supported\n typeof this.form.requestSubmit === \"function\"\n ? this.form.requestSubmit(this.proxy)\n : this.proxy.click();\n if (!attached) {\n this.detachProxy();\n }\n };\n /**\n * Resets the parent form\n */\n this.handleFormReset = () => {\n var _a;\n (_a = this.form) === null || _a === void 0 ? void 0 : _a.reset();\n };\n /**\n * Overrides the focus call for where delegatesFocus is unsupported.\n * This check works for Chrome, Edge Chromium, FireFox, and Safari\n * Relevant PR on the Firefox browser: https://phabricator.services.mozilla.com/D123858\n */\n this.handleUnsupportedDelegatesFocus = () => {\n var _a;\n // Check to see if delegatesFocus is supported\n if (window.ShadowRoot &&\n !window.ShadowRoot.prototype.hasOwnProperty(\"delegatesFocus\") && ((_a = this.$fastController.definition.shadowOptions) === null || _a === void 0 ? void 0 : _a.delegatesFocus)) {\n this.focus = () => {\n this.control.focus();\n };\n }\n };\n }\n formactionChanged() {\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.formAction = this.formaction;\n }\n }\n formenctypeChanged() {\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.formEnctype = this.formenctype;\n }\n }\n formmethodChanged() {\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.formMethod = this.formmethod;\n }\n }\n formnovalidateChanged() {\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.formNoValidate = this.formnovalidate;\n }\n }\n formtargetChanged() {\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.formTarget = this.formtarget;\n }\n }\n typeChanged(previous, next) {\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.type = this.type;\n }\n next === \"submit\" && this.addEventListener(\"click\", this.handleSubmission);\n previous === \"submit\" && this.removeEventListener(\"click\", this.handleSubmission);\n next === \"reset\" && this.addEventListener(\"click\", this.handleFormReset);\n previous === \"reset\" && this.removeEventListener(\"click\", this.handleFormReset);\n }\n /**\n * @internal\n */\n connectedCallback() {\n var _a;\n super.connectedCallback();\n this.proxy.setAttribute(\"type\", this.type);\n this.handleUnsupportedDelegatesFocus();\n const elements = Array.from((_a = this.control) === null || _a === void 0 ? void 0 : _a.children);\n if (elements) {\n elements.forEach((span) => {\n span.addEventListener(\"click\", this.handleClick);\n });\n }\n }\n /**\n * @internal\n */\n disconnectedCallback() {\n var _a;\n super.disconnectedCallback();\n const elements = Array.from((_a = this.control) === null || _a === void 0 ? void 0 : _a.children);\n if (elements) {\n elements.forEach((span) => {\n span.removeEventListener(\"click\", this.handleClick);\n });\n }\n }\n}\n__decorate([\n attr({ mode: \"boolean\" })\n], Button.prototype, \"autofocus\", void 0);\n__decorate([\n attr({ attribute: \"form\" })\n], Button.prototype, \"formId\", void 0);\n__decorate([\n attr\n], Button.prototype, \"formaction\", void 0);\n__decorate([\n attr\n], Button.prototype, \"formenctype\", void 0);\n__decorate([\n attr\n], Button.prototype, \"formmethod\", void 0);\n__decorate([\n attr({ mode: \"boolean\" })\n], Button.prototype, \"formnovalidate\", void 0);\n__decorate([\n attr\n], Button.prototype, \"formtarget\", void 0);\n__decorate([\n attr\n], Button.prototype, \"type\", void 0);\n__decorate([\n observable\n], Button.prototype, \"defaultSlottedContent\", void 0);\n/**\n * Includes ARIA states and properties relating to the ARIA button role\n *\n * @public\n */\nexport class DelegatesARIAButton {\n}\n__decorate([\n attr({ attribute: \"aria-expanded\", mode: \"fromView\" })\n], DelegatesARIAButton.prototype, \"ariaExpanded\", void 0);\n__decorate([\n attr({ attribute: \"aria-pressed\", mode: \"fromView\" })\n], DelegatesARIAButton.prototype, \"ariaPressed\", void 0);\napplyMixins(DelegatesARIAButton, ARIAGlobalStatesAndProperties);\napplyMixins(Button, StartEnd, DelegatesARIAButton);\n","import { html, slotted } from \"@microsoft/fast-element\";\n/**\n * The template for the {@link @microsoft/fast-foundation#(Checkbox:class)} component.\n * @public\n */\nexport const checkboxTemplate = (context, definition) => html `\n <template\n role=\"checkbox\"\n aria-checked=\"${x => x.checked}\"\n aria-required=\"${x => x.required}\"\n aria-disabled=\"${x => x.disabled}\"\n aria-readonly=\"${x => x.readOnly}\"\n tabindex=\"${x => (x.disabled ? null : 0)}\"\n @keypress=\"${(x, c) => x.keypressHandler(c.event)}\"\n @click=\"${(x, c) => x.clickHandler(c.event)}\"\n class=\"${x => (x.readOnly ? \"readonly\" : \"\")} ${x => x.checked ? \"checked\" : \"\"} ${x => (x.indeterminate ? \"indeterminate\" : \"\")}\"\n >\n <div part=\"control\" class=\"control\">\n <slot name=\"checked-indicator\">\n ${definition.checkedIndicator || \"\"}\n </slot>\n <slot name=\"indeterminate-indicator\">\n ${definition.indeterminateIndicator || \"\"}\n </slot>\n </div>\n <label\n part=\"label\"\n class=\"${x => x.defaultSlottedNodes && x.defaultSlottedNodes.length\n ? \"label\"\n : \"label label__hidden\"}\"\n >\n <slot ${slotted(\"defaultSlottedNodes\")}></slot>\n </label>\n </template>\n`;\n","import { CheckableFormAssociated } from \"../form-associated/form-associated\";\nimport { FoundationElement } from \"../foundation-element\";\nclass _Checkbox extends FoundationElement {\n}\n/**\n * A form-associated base class for the {@link @microsoft/fast-foundation#(Checkbox:class)} component.\n *\n * @internal\n */\nexport class FormAssociatedCheckbox extends CheckableFormAssociated(_Checkbox) {\n constructor() {\n super(...arguments);\n this.proxy = document.createElement(\"input\");\n }\n}\n","import { __decorate } from \"tslib\";\nimport { attr, observable } from \"@microsoft/fast-element\";\nimport { keySpace } from \"@microsoft/fast-web-utilities\";\nimport { FormAssociatedCheckbox } from \"./checkbox.form-associated\";\n/**\n * A Checkbox Custom HTML Element.\n * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#checkbox | ARIA checkbox }.\n *\n * @public\n */\nexport class Checkbox extends FormAssociatedCheckbox {\n constructor() {\n super();\n /**\n * The element's value to be included in form submission when checked.\n * Default to \"on\" to reach parity with input[type=\"checkbox\"]\n *\n * @internal\n */\n this.initialValue = \"on\";\n /**\n * The indeterminate state of the control\n */\n this.indeterminate = false;\n /**\n * @internal\n */\n this.keypressHandler = (e) => {\n switch (e.key) {\n case keySpace:\n this.checked = !this.checked;\n break;\n }\n };\n /**\n * @internal\n */\n this.clickHandler = (e) => {\n if (!this.disabled && !this.readOnly) {\n this.checked = !this.checked;\n }\n };\n this.proxy.setAttribute(\"type\", \"checkbox\");\n }\n readOnlyChanged() {\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.readOnly = this.readOnly;\n }\n }\n}\n__decorate([\n attr({ attribute: \"readonly\", mode: \"boolean\" })\n], Checkbox.prototype, \"readOnly\", void 0);\n__decorate([\n observable\n], Checkbox.prototype, \"defaultSlottedNodes\", void 0);\n__decorate([\n observable\n], Checkbox.prototype, \"indeterminate\", void 0);\n","import { __decorate } from \"tslib\";\nimport { attr, observable, Observable } from \"@microsoft/fast-element\";\nimport { isHTMLElement } from \"@microsoft/fast-web-utilities\";\nimport { FoundationElement } from \"../foundation-element\";\nimport { ARIAGlobalStatesAndProperties } from \"../patterns\";\nimport { StartEnd } from \"../patterns/start-end\";\nimport { applyMixins } from \"../utilities/apply-mixins\";\n/**\n * Determines if the element is a {@link (ListboxOption:class)}\n *\n * @param element - the element to test.\n * @public\n */\nexport function isListboxOption(el) {\n return (isHTMLElement(el) &&\n (el.getAttribute(\"role\") === \"option\" ||\n el instanceof HTMLOptionElement));\n}\n/**\n * An Option Custom HTML Element.\n * Implements {@link https://www.w3.org/TR/wai-aria-1.1/#option | ARIA option }.\n *\n * @public\n */\nexport class ListboxOption extends FoundationElement {\n constructor(text, value, defaultSelected, selected) {\n super();\n /**\n * The defaultSelected state of the option.\n * @public\n */\n this.defaultSelected = false;\n /**\n * Tracks whether the \"selected\" property has been changed.\n * @internal\n */\n this.dirtySelected = false;\n /**\n * The checked state of the control.\n *\n * @public\n */\n this.selected = this.defaultSelected;\n /**\n * Track whether the value has been changed from the initial value\n */\n this.dirtyValue = false;\n if (text) {\n this.textContent = text;\n }\n if (value) {\n this.initialValue = value;\n }\n if (defaultSelected) {\n this.defaultSelected = defaultSelected;\n }\n if (selected) {\n this.selected = selected;\n }\n this.proxy = new Option(`${this.textContent}`, this.initialValue, this.defaultSelected, this.selected);\n this.proxy.disabled = this.disabled;\n }\n /**\n * Updates the ariaChecked property when the checked property changes.\n *\n * @param prev - the previous checked value\n * @param next - the current checked value\n *\n * @public\n */\n checkedChanged(prev, next) {\n if (typeof next === \"boolean\") {\n this.ariaChecked = next ? \"true\" : \"false\";\n return;\n }\n this.ariaChecked = undefined;\n }\n defaultSelectedChanged() {\n if (!this.dirtySelected) {\n this.selected = this.defaultSelected;\n if (this.proxy instanceof HTMLOptionElement) {\n this.proxy.selected = this.defaultSelected;\n }\n }\n }\n disabledChanged(prev, next) {\n this.ariaDisabled = this.disabled ? \"true\" : \"false\";\n if (this.proxy instanceof HTMLOptionElement) {\n this.proxy.disabled = this.disabled;\n }\n }\n selectedAttributeChanged() {\n this.defaultSelected = this.selectedAttribute;\n if (this.proxy instanceof HTMLOptionElement) {\n this.proxy.defaultSelected = this.defaultSelected;\n }\n }\n selectedChanged() {\n this.ariaSelected = this.selected ? \"true\" : \"false\";\n if (!this.dirtySelected) {\n this.dirtySelected = true;\n }\n if (this.proxy instanceof HTMLOptionElement) {\n this.proxy.selected = this.selected;\n }\n }\n initialValueChanged(previous, next) {\n // If the value is clean and the component is connected to the DOM\n // then set value equal to the attribute value.\n if (!this.dirtyValue) {\n this.value = this.initialValue;\n this.dirtyValue = false;\n }\n }\n get label() {\n var _a, _b;\n return (_b = (_a = this.value) !== null && _a !== void 0 ? _a : this.textContent) !== null && _b !== void 0 ? _b : \"\";\n }\n get text() {\n return this.textContent;\n }\n set value(next) {\n this._value = next;\n this.dirtyValue = true;\n if (this.proxy instanceof HTMLElement) {\n this.proxy.value = next;\n }\n Observable.notify(this, \"value\");\n }\n get value() {\n var _a, _b;\n Observable.track(this, \"value\");\n return (_b = (_a = this._value) !== null && _a !== void 0 ? _a : this.textContent) !== null && _b !== void 0 ? _b : \"\";\n }\n get form() {\n return this.proxy ? this.proxy.form : null;\n }\n}\n__decorate([\n observable\n], ListboxOption.prototype, \"checked\", void 0);\n__decorate([\n observable\n], ListboxOption.prototype, \"defaultSelected\", void 0);\n__decorate([\n attr({ mode: \"boolean\" })\n], ListboxOption.prototype, \"disabled\", void 0);\n__decorate([\n attr({ attribute: \"selected\", mode: \"boolean\" })\n], ListboxOption.prototype, \"selectedAttribute\", void 0);\n__decorate([\n observable\n], ListboxOption.prototype, \"selected\", void 0);\n__decorate([\n attr({ attribute: \"value\", mode: \"fromView\" })\n], ListboxOption.prototype, \"initialValue\", void 0);\n/**\n * States and properties relating to the ARIA `option` role.\n *\n * @public\n */\nexport class DelegatesARIAListboxOption {\n}\n__decorate([\n observable\n], DelegatesARIAListboxOption.prototype, \"ariaChecked\", void 0);\n__decorate([\n observable\n], DelegatesARIAListboxOption.prototype, \"ariaPosInSet\", void 0);\n__decorate([\n observable\n], DelegatesARIAListboxOption.prototype, \"ariaSelected\", void 0);\n__decorate([\n observable\n], DelegatesARIAListboxOption.prototype, \"ariaSetSize\", void 0);\napplyMixins(DelegatesARIAListboxOption, ARIAGlobalStatesAndProperties);\napplyMixins(ListboxOption, StartEnd, DelegatesARIAListboxOption);\n","import { __decorate } from \"tslib\";\nimport { attr, observable, Observable } from \"@microsoft/fast-element\";\nimport { findLastIndex, keyArrowDown, keyArrowUp, keyEnd, keyEnter, keyEscape, keyHome, keySpace, keyTab, uniqueId, } from \"@microsoft/fast-web-utilities\";\nimport { FoundationElement } from \"../foundation-element\";\nimport { isListboxOption } from \"../listbox-option/listbox-option\";\nimport { ARIAGlobalStatesAndProperties } from \"../patterns/aria-global\";\nimport { applyMixins } from \"../utilities/apply-mixins\";\n/**\n * A Listbox Custom HTML Element.\n * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#listbox | ARIA listbox }.\n *\n * @public\n */\nexport class Listbox extends FoundationElement {\n constructor() {\n super(...arguments);\n /**\n * The internal unfiltered list of selectable options.\n *\n * @internal\n */\n this._options = [];\n /**\n * The index of the selected option.\n *\n * @public\n */\n this.selectedIndex = -1;\n /**\n * A collection of the selected options.\n *\n * @public\n */\n this.selectedOptions = [];\n /**\n * A standard `click` event creates a `focus` event before firing, so a\n * `mousedown` event is used to skip that initial focus.\n *\n * @internal\n */\n this.shouldSkipFocus = false;\n /**\n * The current typeahead buffer string.\n *\n * @internal\n */\n this.typeaheadBuffer = \"\";\n /**\n * Flag for the typeahead timeout expiration.\n *\n * @internal\n */\n this.typeaheadExpired = true;\n /**\n * The timeout ID for the typeahead handler.\n *\n * @internal\n */\n this.typeaheadTimeout = -1;\n }\n /**\n * The first selected option.\n *\n * @internal\n */\n get firstSelectedOption() {\n var _a;\n return (_a = this.selectedOptions[0]) !== null && _a !== void 0 ? _a : null;\n }\n /**\n * Returns true if there is one or more selectable option.\n *\n * @internal\n */\n get hasSelectableOptions() {\n return this.options.length > 0 && !this.options.every(o => o.disabled);\n }\n /**\n * The number of options.\n *\n * @public\n */\n get length() {\n var _a, _b;\n return (_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;\n }\n /**\n * The list of options.\n *\n * @public\n */\n get options() {\n Observable.track(this, \"options\");\n return this._options;\n }\n set options(value) {\n this._options = value;\n Observable.notify(this, \"options\");\n }\n /**\n * Flag for the typeahead timeout expiration.\n *\n * @deprecated use `Listbox.typeaheadExpired`\n * @internal\n */\n get typeAheadExpired() {\n return this.typeaheadExpired;\n }\n set typeAheadExpired(value) {\n this.typeaheadExpired = value;\n }\n /**\n * Handle click events for listbox options.\n *\n * @internal\n */\n clickHandler(e) {\n const captured = e.target.closest(`option,[role=option]`);\n if (captured && !captured.disabled) {\n this.selectedIndex = this.options.indexOf(captured);\n return true;\n }\n }\n /**\n * Ensures that the provided option is focused and scrolled into view.\n *\n * @param optionToFocus - The option to focus\n * @internal\n */\n focusAndScrollOptionIntoView(optionToFocus = this.firstSelectedOption) {\n // To ensure that the browser handles both `focus()` and `scrollIntoView()`, the\n // timing here needs to guarantee that they happen on different frames. Since this\n // function is typically called from the `openChanged` observer, `DOM.queueUpdate`\n // causes the calls to be grouped into the same frame. To prevent this,\n // `requestAnimationFrame` is used instead of `DOM.queueUpdate`.\n if (this.contains(document.activeElement) && optionToFocus !== null) {\n optionToFocus.focus();\n requestAnimationFrame(() => {\n optionToFocus.scrollIntoView({ block: \"nearest\" });\n });\n }\n }\n /**\n * Handles `focusin` actions for the component. When the component receives focus,\n * the list of selected options is refreshed and the first selected option is scrolled\n * into view.\n *\n * @internal\n */\n focusinHandler(e) {\n if (!this.shouldSkipFocus && e.target === e.currentTarget) {\n this.setSelectedOptions();\n this.focusAndScrollOptionIntoView();\n }\n this.shouldSkipFocus = false;\n }\n /**\n * Returns the options which match the current typeahead buffer.\n *\n * @internal\n */\n getTypeaheadMatches() {\n const pattern = this.typeaheadBuffer.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n const re = new RegExp(`^${pattern}`, \"gi\");\n return this.options.filter((o) => o.text.trim().match(re));\n }\n /**\n * Determines the index of the next option which is selectable, if any.\n *\n * @param prev - the previous selected index\n * @param next - the next index to select\n *\n * @internal\n */\n getSelectableIndex(prev = this.selectedIndex, next) {\n const direction = prev > next ? -1 : prev < next ? 1 : 0;\n const potentialDirection = prev + direction;\n let nextSelectableOption = null;\n switch (direction) {\n case -1: {\n nextSelectableOption = this.options.reduceRight((nextSelectableOption, thisOption, index) => !nextSelectableOption &&\n !thisOption.disabled &&\n index < potentialDirection\n ? thisOption\n : nextSelectableOption, nextSelectableOption);\n break;\n }\n case 1: {\n nextSelectableOption = this.options.reduce((nextSelectableOption, thisOption, index) => !nextSelectableOption &&\n !thisOption.disabled &&\n index > potentialDirection\n ? thisOption\n : nextSelectableOption, nextSelectableOption);\n break;\n }\n }\n return this.options.indexOf(nextSelectableOption);\n }\n /**\n * Handles external changes to child options.\n *\n * @param source - the source object\n * @param propertyName - the property\n *\n * @internal\n */\n handleChange(source, propertyName) {\n switch (propertyName) {\n case \"selected\": {\n if (Listbox.slottedOptionFilter(source)) {\n this.selectedIndex = this.options.indexOf(source);\n }\n this.setSelectedOptions();\n break;\n }\n }\n }\n /**\n * Moves focus to an option whose label matches characters typed by the user.\n * Consecutive keystrokes are batched into a buffer of search text used\n * to match against the set of options. If `TYPE_AHEAD_TIMEOUT_MS` passes\n * between consecutive keystrokes, the search restarts.\n *\n * @param key - the key to be evaluated\n *\n * @internal\n */\n handleTypeAhead(key) {\n if (this.typeaheadTimeout) {\n window.clearTimeout(this.typeaheadTimeout);\n }\n this.typeaheadTimeout = window.setTimeout(() => (this.typeaheadExpired = true), Listbox.TYPE_AHEAD_TIMEOUT_MS);\n if (key.length > 1) {\n return;\n }\n this.typeaheadBuffer = `${this.typeaheadExpired ? \"\" : this.typeaheadBuffer}${key}`;\n }\n /**\n * Handles `keydown` actions for listbox navigation and typeahead.\n *\n * @internal\n */\n keydownHandler(e) {\n if (this.disabled) {\n return true;\n }\n this.shouldSkipFocus = false;\n const key = e.key;\n switch (key) {\n // Select the first available option\n case keyHome: {\n if (!e.shiftKey) {\n e.preventDefault();\n this.selectFirstOption();\n }\n break;\n }\n // Select the next selectable option\n case keyArrowDown: {\n if (!e.shiftKey) {\n e.preventDefault();\n this.selectNextOption();\n }\n break;\n }\n // Select the previous selectable option\n case keyArrowUp: {\n if (!e.shiftKey) {\n e.preventDefault();\n this.selectPreviousOption();\n }\n break;\n }\n // Select the last available option\n case keyEnd: {\n e.preventDefault();\n this.selectLastOption();\n break;\n }\n case keyTab: {\n this.focusAndScrollOptionIntoView();\n return true;\n }\n case keyEnter:\n case keyEscape: {\n return true;\n }\n case keySpace: {\n if (this.typeaheadExpired) {\n return true;\n }\n }\n // Send key to Typeahead handler\n default: {\n if (key.length === 1) {\n this.handleTypeAhead(`${key}`);\n }\n return true;\n }\n }\n }\n /**\n * Prevents `focusin` events from firing before `click` events when the\n * element is unfocused.\n *\n * @internal\n */\n mousedownHandler(e) {\n this.shouldSkipFocus = !this.contains(document.activeElement);\n return true;\n }\n /**\n * Switches between single-selection and multi-selection mode.\n *\n * @param prev - the previous value of the `multiple` attribute\n * @param next - the next value of the `multiple` attribute\n *\n * @internal\n */\n multipleChanged(prev, next) {\n this.ariaMultiSelectable = next ? \"true\" : undefined;\n }\n /**\n * Updates the list of selected options when the `selectedIndex` changes.\n *\n * @param prev - the previous selected index value\n * @param next - the current selected index value\n *\n * @internal\n */\n selectedIndexChanged(prev, next) {\n var _a;\n if (!this.hasSelectableOptions) {\n this.selectedIndex = -1;\n return;\n }\n if (((_a = this.options[this.selectedIndex]) === null || _a === void 0 ? void 0 : _a.disabled) && typeof prev === \"number\") {\n const selectableIndex = this.getSelectableIndex(prev, next);\n const newNext = selectableIndex > -1 ? selectableIndex : prev;\n this.selectedIndex = newNext;\n if (next === newNext) {\n this.selectedIndexChanged(next, newNext);\n }\n return;\n }\n this.setSelectedOptions();\n }\n /**\n * Updates the selectedness of each option when the list of selected options changes.\n *\n * @param prev - the previous list of selected options\n * @param next - the current list of selected options\n *\n * @internal\n */\n selectedOptionsChanged(prev, next) {\n var _a;\n const filteredNext = next.filter(Listbox.slottedOptionFilter);\n (_a = this.options) === null || _a === void 0 ? void 0 : _a.forEach(o => {\n const notifier = Observable.getNotifier(o);\n notifier.unsubscribe(this, \"selected\");\n o.selected = filteredNext.includes(o);\n notifier.subscribe(this, \"selected\");\n });\n }\n /**\n * Moves focus to the first selectable option.\n *\n * @public\n */\n selectFirstOption() {\n var _a, _b;\n if (!this.disabled) {\n this.selectedIndex = (_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.findIndex(o => !o.disabled)) !== null && _b !== void 0 ? _b : -1;\n }\n }\n /**\n * Moves focus to the last selectable option.\n *\n * @internal\n */\n selectLastOption() {\n if (!this.disabled) {\n this.selectedIndex = findLastIndex(this.options, o => !o.disabled);\n }\n }\n /**\n * Moves focus to the next selectable option.\n *\n * @internal\n */\n selectNextOption() {\n if (!this.disabled && this.selectedIndex < this.options.length - 1) {\n this.selectedIndex += 1;\n }\n }\n /**\n * Moves focus to the previous selectable option.\n *\n * @internal\n */\n selectPreviousOption() {\n if (!this.disabled && this.selectedIndex > 0) {\n this.selectedIndex = this.selectedIndex - 1;\n }\n }\n /**\n * Updates the selected index to match the first selected option.\n *\n * @internal\n */\n setDefaultSelectedOption() {\n var _a, _b;\n this.selectedIndex = (_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.findIndex(el => el.defaultSelected)) !== null && _b !== void 0 ? _b : -1;\n }\n /**\n * Sets an option as selected and gives it focus.\n *\n * @public\n */\n setSelectedOptions() {\n var _a, _b, _c;\n if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.length) {\n this.selectedOptions = [this.options[this.selectedIndex]];\n this.ariaActiveDescendant = (_c = (_b = this.firstSelectedOption) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : \"\";\n this.focusAndScrollOptionIntoView();\n }\n }\n /**\n * Updates the list of options and resets the selected option when the slotted option content changes.\n *\n * @param prev - the previous list of slotted options\n * @param next - the current list of slotted options\n *\n * @internal\n */\n slottedOptionsChanged(prev, next) {\n this.options = next.reduce((options, item) => {\n if (isListboxOption(item)) {\n options.push(item);\n }\n return options;\n }, []);\n const setSize = `${this.options.length}`;\n this.options.forEach((option, index) => {\n if (!option.id) {\n option.id = uniqueId(\"option-\");\n }\n option.ariaPosInSet = `${index + 1}`;\n option.ariaSetSize = setSize;\n });\n if (this.$fastController.isConnected) {\n this.setSelectedOptions();\n this.setDefaultSelectedOption();\n }\n }\n /**\n * Updates the filtered list of options when the typeahead buffer changes.\n *\n * @param prev - the previous typeahead buffer value\n * @param next - the current typeahead buffer value\n *\n * @internal\n */\n typeaheadBufferChanged(prev, next) {\n if (this.$fastController.isConnected) {\n const typeaheadMatches = this.getTypeaheadMatches();\n if (typeaheadMatches.length) {\n const selectedIndex = this.options.indexOf(typeaheadMatches[0]);\n if (selectedIndex > -1) {\n this.selectedIndex = selectedIndex;\n }\n }\n this.typeaheadExpired = false;\n }\n }\n}\n/**\n * A static filter to include only selectable options.\n *\n * @param n - element to filter\n * @public\n */\nListbox.slottedOptionFilter = (n) => isListboxOption(n) && !n.disabled && !n.hidden;\n/**\n * Typeahead timeout in milliseconds.\n *\n * @internal\n */\nListbox.TYPE_AHEAD_TIMEOUT_MS = 1000;\n__decorate([\n attr({ mode: \"boolean\" })\n], Listbox.prototype, \"disabled\", void 0);\n__decorate([\n attr({ mode: \"boolean\" })\n], Listbox.prototype, \"multiple\", void 0);\n__decorate([\n observable\n], Listbox.prototype, \"selectedIndex\", void 0);\n__decorate([\n observable\n], Listbox.prototype, \"selectedOptions\", void 0);\n__decorate([\n observable\n], Listbox.prototype, \"slottedOptions\", void 0);\n__decorate([\n observable\n], Listbox.prototype, \"typeaheadBuffer\", void 0);\n/**\n * Includes ARIA states and properties relating to the ARIA listbox role\n *\n * @public\n */\nexport class DelegatesARIAListbox {\n}\n__decorate([\n observable\n], DelegatesARIAListbox.prototype, \"ariaActiveDescendant\", void 0);\n__decorate([\n observable\n], DelegatesARIAListbox.prototype, \"ariaDisabled\", void 0);\n__decorate([\n observable\n], DelegatesARIAListbox.prototype, \"ariaExpanded\", void 0);\n__decorate([\n observable\n], DelegatesARIAListbox.prototype, \"ariaMultiSelectable\", void 0);\napplyMixins(DelegatesARIAListbox, ARIAGlobalStatesAndProperties);\napplyMixins(Listbox, DelegatesARIAListbox);\n","/**\n * Positioning directions for the listbox when a select is open.\n * @public\n */\nexport var SelectPosition;\n(function (SelectPosition) {\n SelectPosition[\"above\"] = \"above\";\n SelectPosition[\"below\"] = \"below\";\n})(SelectPosition || (SelectPosition = {}));\n","/**\n * Retrieves the \"composed parent\" element of a node, ignoring DOM tree boundaries.\n * When the parent of a node is a shadow-root, it will return the host\n * element of the shadow root. Otherwise it will return the parent node or null if\n * no parent node exists.\n * @param element - The element for which to retrieve the composed parent\n *\n * @public\n */\nexport function composedParent(element) {\n const parentNode = element.parentElement;\n if (parentNode) {\n return parentNode;\n }\n else {\n const rootNode = element.getRootNode();\n if (rootNode.host instanceof HTMLElement) {\n // this is shadow-root\n return rootNode.host;\n }\n }\n return null;\n}\n","import { composedParent } from \"./composed-parent\";\n/**\n * Determines if the reference element contains the test element in a \"composed\" DOM tree that\n * ignores shadow DOM boundaries.\n *\n * Returns true of the test element is a descendent of the reference, or exist in\n * a shadow DOM that is a logical descendent of the reference. Otherwise returns false.\n * @param reference - The element to test for containment against.\n * @param test - The element being tested for containment.\n *\n * @public\n */\nexport function composedContains(reference, test) {\n let current = test;\n while (current !== null) {\n if (current === reference) {\n return true;\n }\n current = composedParent(current);\n }\n return false;\n}\n","import { Observable, } from \"@microsoft/fast-element\";\n/**\n * A behavior to add or remove a stylesheet from an element based on a property. The behavior ensures that\n * styles are applied while the property matches and that styles are not applied if the property does\n * not match.\n *\n * @public\n */\nexport class PropertyStyleSheetBehavior {\n /**\n * Constructs a {@link PropertyStyleSheetBehavior} instance.\n * @param propertyName - The property name to operate from.\n * @param value - The property value to operate from.\n * @param styles - The styles to coordinate with the property.\n */\n constructor(propertyName, value, styles) {\n this.propertyName = propertyName;\n this.value = value;\n this.styles = styles;\n }\n /**\n * Binds the behavior to the element.\n * @param elementInstance - The element for which the property is applied.\n */\n bind(elementInstance) {\n Observable.getNotifier(elementInstance).subscribe(this, this.propertyName);\n this.handleChange(elementInstance, this.propertyName);\n }\n /**\n * Unbinds the behavior from the element.\n * @param source - The element for which the behavior is unbinding.\n * @internal\n */\n unbind(source) {\n Observable.getNotifier(source).unsubscribe(this, this.propertyName);\n source.$fastController.removeStyles(this.styles);\n }\n /**\n * Change event for the provided element.\n * @param source - the element for which to attach or detach styles.\n * @param key - the key to lookup to know if the element already has the styles\n * @internal\n */\n handleChange(source, key) {\n if (source[key] === this.value) {\n source.$fastController.addStyles(this.styles);\n }\n else {\n source.$fastController.removeStyles(this.styles);\n }\n }\n}\n","/**\n * A CSS fragment to set `display: none;` when the host is hidden using the [hidden] attribute.\n * @public\n */\nexport const hidden = `:host([hidden]){display:none}`;\n/**\n * Applies a CSS display property.\n * Also adds CSS rules to not display the element when the [hidden] attribute is applied to the element.\n * @param display - The CSS display property value\n * @public\n */\nexport function display(displayValue) {\n return `${hidden}:host{display:${displayValue}}`;\n}\n","import { canUseFocusVisible } from \"@microsoft/fast-web-utilities\";\n/**\n * The string representing the focus selector to be used. Value\n * will be \"focus-visible\" when https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo\n * is supported and \"focus\" when it is not.\n *\n * @public\n */\nexport const focusVisible = canUseFocusVisible() ? \"focus-visible\" : \"focus\";\n","/**\n * a method to filter out any whitespace _only_ nodes, to be used inside a template\n * @param value - The Node that is being inspected\n * @param index - The index of the node within the array\n * @param array - The Node array that is being filtered\n *\n * @public\n */\nexport function whitespaceFilter(value, index, array) {\n return value.nodeType !== Node.TEXT_NODE\n ? true\n : typeof value.nodeValue === \"string\" && !!value.nodeValue.trim().length;\n}\n","import { __decorate } from \"tslib\";\nimport { DOM, ElementStyles, FASTElement, observable, Observable, } from \"@microsoft/fast-element\";\nexport const defaultElement = document.createElement(\"div\");\nfunction isFastElement(element) {\n return element instanceof FASTElement;\n}\nclass QueuedStyleSheetTarget {\n setProperty(name, value) {\n DOM.queueUpdate(() => this.target.setProperty(name, value));\n }\n removeProperty(name) {\n DOM.queueUpdate(() => this.target.removeProperty(name));\n }\n}\n/**\n * Handles setting properties for a FASTElement using Constructable Stylesheets\n */\nclass ConstructableStyleSheetTarget extends QueuedStyleSheetTarget {\n constructor(source) {\n super();\n const sheet = new CSSStyleSheet();\n this.target = sheet.cssRules[sheet.insertRule(\":host{}\")].style;\n source.$fastController.addStyles(ElementStyles.create([sheet]));\n }\n}\nclass DocumentStyleSheetTarget extends QueuedStyleSheetTarget {\n constructor() {\n super();\n const sheet = new CSSStyleSheet();\n this.target = sheet.cssRules[sheet.insertRule(\":root{}\")].style;\n document.adoptedStyleSheets = [\n ...document.adoptedStyleSheets,\n sheet,\n ];\n }\n}\nclass HeadStyleElementStyleSheetTarget extends QueuedStyleSheetTarget {\n constructor() {\n super();\n this.style = document.createElement(\"style\");\n document.head.appendChild(this.style);\n const { sheet } = this.style;\n // Because the HTMLStyleElement has been appended,\n // there shouldn't exist a case where `sheet` is null,\n // but if-check it just in case.\n if (sheet) {\n // https://github.com/jsdom/jsdom uses https://github.com/NV/CSSOM for it's CSSOM implementation,\n // which implements the DOM Level 2 spec for CSSStyleSheet where insertRule() requires an index argument.\n const index = sheet.insertRule(\":root{}\", sheet.cssRules.length);\n this.target = sheet.cssRules[index].style;\n }\n }\n}\n/**\n * Handles setting properties for a FASTElement using an HTMLStyleElement\n */\nclass StyleElementStyleSheetTarget {\n constructor(target) {\n this.store = new Map();\n this.target = null;\n const controller = target.$fastController;\n this.style = document.createElement(\"style\");\n controller.addStyles(this.style);\n Observable.getNotifier(controller).subscribe(this, \"isConnected\");\n this.handleChange(controller, \"isConnected\");\n }\n targetChanged() {\n if (this.target !== null) {\n for (const [key, value] of this.store.entries()) {\n this.target.setProperty(key, value);\n }\n }\n }\n setProperty(name, value) {\n this.store.set(name, value);\n DOM.queueUpdate(() => {\n if (this.target !== null) {\n this.target.setProperty(name, value);\n }\n });\n }\n removeProperty(name) {\n this.store.delete(name);\n DOM.queueUpdate(() => {\n if (this.target !== null) {\n this.target.removeProperty(name);\n }\n });\n }\n handleChange(source, key) {\n // HTMLStyleElement.sheet is null if the element isn't connected to the DOM,\n // so this method reacts to changes in DOM connection for the element hosting\n // the HTMLStyleElement.\n //\n // All rules applied via the CSSOM also get cleared when the element disconnects,\n // so we need to add a new rule each time and populate it with the stored properties\n const { sheet } = this.style;\n if (sheet) {\n // Safari will throw if we try to use the return result of insertRule()\n // to index the rule inline, so store as a const prior to indexing.\n // https://github.com/jsdom/jsdom uses https://github.com/NV/CSSOM for it's CSSOM implementation,\n // which implements the DOM Level 2 spec for CSSStyleSheet where insertRule() requires an index argument.\n const index = sheet.insertRule(\":host{}\", sheet.cssRules.length);\n this.target = sheet.cssRules[index].style;\n }\n else {\n this.target = null;\n }\n }\n}\n__decorate([\n observable\n], StyleElementStyleSheetTarget.prototype, \"target\", void 0);\n/**\n * Handles setting properties for a normal HTMLElement\n */\nclass ElementStyleSheetTarget {\n constructor(source) {\n this.target = source.style;\n }\n setProperty(name, value) {\n DOM.queueUpdate(() => this.target.setProperty(name, value));\n }\n removeProperty(name) {\n DOM.queueUpdate(() => this.target.removeProperty(name));\n }\n}\n/**\n * Controls emission for default values. This control is capable\n * of emitting to multiple {@link PropertyTarget | PropertyTargets},\n * and only emits if it has at least one root.\n *\n * @internal\n */\nexport class RootStyleSheetTarget {\n setProperty(name, value) {\n RootStyleSheetTarget.properties[name] = value;\n for (const target of RootStyleSheetTarget.roots.values()) {\n PropertyTargetManager.getOrCreate(RootStyleSheetTarget.normalizeRoot(target)).setProperty(name, value);\n }\n }\n removeProperty(name) {\n delete RootStyleSheetTarget.properties[name];\n for (const target of RootStyleSheetTarget.roots.values()) {\n PropertyTargetManager.getOrCreate(RootStyleSheetTarget.normalizeRoot(target)).removeProperty(name);\n }\n }\n static registerRoot(root) {\n const { roots } = RootStyleSheetTarget;\n if (!roots.has(root)) {\n roots.add(root);\n const target = PropertyTargetManager.getOrCreate(this.normalizeRoot(root));\n for (const key in RootStyleSheetTarget.properties) {\n target.setProperty(key, RootStyleSheetTarget.properties[key]);\n }\n }\n }\n static unregisterRoot(root) {\n const { roots } = RootStyleSheetTarget;\n if (roots.has(root)) {\n roots.delete(root);\n const target = PropertyTargetManager.getOrCreate(RootStyleSheetTarget.normalizeRoot(root));\n for (const key in RootStyleSheetTarget.properties) {\n target.removeProperty(key);\n }\n }\n }\n /**\n * Returns the document when provided the default element,\n * otherwise is a no-op\n * @param root - the root to normalize\n */\n static normalizeRoot(root) {\n return root === defaultElement ? document : root;\n }\n}\nRootStyleSheetTarget.roots = new Set();\nRootStyleSheetTarget.properties = {};\n// Caches PropertyTarget instances\nconst propertyTargetCache = new WeakMap();\n// Use Constructable StyleSheets for FAST elements when supported, otherwise use\n// HTMLStyleElement instances\nconst propertyTargetCtor = DOM.supportsAdoptedStyleSheets\n ? ConstructableStyleSheetTarget\n : StyleElementStyleSheetTarget;\n/**\n * Manages creation and caching of PropertyTarget instances.\n *\n * @internal\n */\nexport const PropertyTargetManager = Object.freeze({\n getOrCreate(source) {\n if (propertyTargetCache.has(source)) {\n /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */\n return propertyTargetCache.get(source);\n }\n let target;\n if (source === defaultElement) {\n target = new RootStyleSheetTarget();\n }\n else if (source instanceof Document) {\n target = DOM.supportsAdoptedStyleSheets\n ? new DocumentStyleSheetTarget()\n : new HeadStyleElementStyleSheetTarget();\n }\n else if (isFastElement(source)) {\n target = new propertyTargetCtor(source);\n }\n else {\n target = new ElementStyleSheetTarget(source);\n }\n propertyTargetCache.set(source, target);\n return target;\n },\n});\n","import { __decorate } from \"tslib\";\nimport { CSSDirective, defaultExecutionContext, FASTElement, observable, Observable, } from \"@microsoft/fast-element\";\nimport { composedParent } from \"../utilities\";\nimport { composedContains } from \"../utilities/composed-contains\";\nimport { PropertyTargetManager, RootStyleSheetTarget } from \"./custom-property-manager\";\nimport { defaultElement } from \"./custom-property-manager\";\n/**\n * Implementation of {@link (DesignToken:interface)}\n */\nclass DesignTokenImpl extends CSSDirective {\n constructor(configuration) {\n super();\n this.subscribers = new WeakMap();\n this._appliedTo = new Set();\n this.name = configuration.name;\n if (configuration.cssCustomPropertyName !== null) {\n this.cssCustomProperty = `--${configuration.cssCustomPropertyName}`;\n this.cssVar = `var(${this.cssCustomProperty})`;\n }\n this.id = DesignTokenImpl.uniqueId();\n DesignTokenImpl.tokensById.set(this.id, this);\n }\n get appliedTo() {\n return [...this._appliedTo];\n }\n static from(nameOrConfig) {\n return new DesignTokenImpl({\n name: typeof nameOrConfig === \"string\" ? nameOrConfig : nameOrConfig.name,\n cssCustomPropertyName: typeof nameOrConfig === \"string\"\n ? nameOrConfig\n : nameOrConfig.cssCustomPropertyName === void 0\n ? nameOrConfig.name\n : nameOrConfig.cssCustomPropertyName,\n });\n }\n static isCSSDesignToken(token) {\n return typeof token.cssCustomProperty === \"string\";\n }\n static isDerivedDesignTokenValue(value) {\n return typeof value === \"function\";\n }\n /**\n * Gets a token by ID. Returns undefined if the token was not found.\n * @param id - The ID of the token\n * @returns\n */\n static getTokenById(id) {\n return DesignTokenImpl.tokensById.get(id);\n }\n getOrCreateSubscriberSet(target = this) {\n return (this.subscribers.get(target) ||\n (this.subscribers.set(target, new Set()) && this.subscribers.get(target)));\n }\n createCSS() {\n return this.cssVar || \"\";\n }\n getValueFor(element) {\n const value = DesignTokenNode.getOrCreate(element).get(this);\n if (value !== undefined) {\n return value;\n }\n throw new Error(`Value could not be retrieved for token named \"${this.name}\". Ensure the value is set for ${element} or an ancestor of ${element}.`);\n }\n setValueFor(element, value) {\n this._appliedTo.add(element);\n if (value instanceof DesignTokenImpl) {\n value = this.alias(value);\n }\n DesignTokenNode.getOrCreate(element).set(this, value);\n return this;\n }\n deleteValueFor(element) {\n this._appliedTo.delete(element);\n if (DesignTokenNode.existsFor(element)) {\n DesignTokenNode.getOrCreate(element).delete(this);\n }\n return this;\n }\n withDefault(value) {\n this.setValueFor(defaultElement, value);\n return this;\n }\n subscribe(subscriber, target) {\n const subscriberSet = this.getOrCreateSubscriberSet(target);\n if (target && !DesignTokenNode.existsFor(target)) {\n DesignTokenNode.getOrCreate(target);\n }\n if (!subscriberSet.has(subscriber)) {\n subscriberSet.add(subscriber);\n }\n }\n unsubscribe(subscriber, target) {\n const list = this.subscribers.get(target || this);\n if (list && list.has(subscriber)) {\n list.delete(subscriber);\n }\n }\n /**\n * Notifies subscribers that the value for an element has changed.\n * @param element - The element to emit a notification for\n */\n notify(element) {\n const record = Object.freeze({ token: this, target: element });\n if (this.subscribers.has(this)) {\n this.subscribers.get(this).forEach(sub => sub.handleChange(record));\n }\n if (this.subscribers.has(element)) {\n this.subscribers.get(element).forEach(sub => sub.handleChange(record));\n }\n }\n /**\n * Alias the token to the provided token.\n * @param token - the token to alias to\n */\n alias(token) {\n return ((target) => token.getValueFor(target));\n }\n}\nDesignTokenImpl.uniqueId = (() => {\n let id = 0;\n return () => {\n id++;\n return id.toString(16);\n };\n})();\n/**\n * Token storage by token ID\n */\nDesignTokenImpl.tokensById = new Map();\nclass CustomPropertyReflector {\n startReflection(token, target) {\n token.subscribe(this, target);\n this.handleChange({ token, target });\n }\n stopReflection(token, target) {\n token.unsubscribe(this, target);\n this.remove(token, target);\n }\n handleChange(record) {\n const { token, target } = record;\n this.add(token, target);\n }\n add(token, target) {\n PropertyTargetManager.getOrCreate(target).setProperty(token.cssCustomProperty, this.resolveCSSValue(DesignTokenNode.getOrCreate(target).get(token)));\n }\n remove(token, target) {\n PropertyTargetManager.getOrCreate(target).removeProperty(token.cssCustomProperty);\n }\n resolveCSSValue(value) {\n return value && typeof value.createCSS === \"function\" ? value.createCSS() : value;\n }\n}\n/**\n * A light wrapper around BindingObserver to handle value caching and\n * token notification\n */\nclass DesignTokenBindingObserver {\n constructor(source, token, node) {\n this.source = source;\n this.token = token;\n this.node = node;\n this.dependencies = new Set();\n this.observer = Observable.binding(source, this, false);\n // This is a little bit hacky because it's using internal APIs of BindingObserverImpl.\n // BindingObserverImpl queues updates to batch it's notifications which doesn't work for this\n // scenario because the DesignToken.getValueFor API is not async. Without this, using DesignToken.getValueFor()\n // after DesignToken.setValueFor() when setting a dependency of the value being retrieved can return a stale\n // value. Assigning .handleChange to .call forces immediate invocation of this classes handleChange() method,\n // allowing resolution of values synchronously.\n // TODO: https://github.com/microsoft/fast/issues/5110\n this.observer.handleChange = this.observer.call;\n this.handleChange();\n }\n disconnect() {\n this.observer.disconnect();\n }\n /**\n * @internal\n */\n handleChange() {\n this.node.store.set(this.token, this.observer.observe(this.node.target, defaultExecutionContext));\n }\n}\n/**\n * Stores resolved token/value pairs and notifies on changes\n */\nclass Store {\n constructor() {\n this.values = new Map();\n }\n set(token, value) {\n if (this.values.get(token) !== value) {\n this.values.set(token, value);\n Observable.getNotifier(this).notify(token.id);\n }\n }\n get(token) {\n Observable.track(this, token.id);\n return this.values.get(token);\n }\n delete(token) {\n this.values.delete(token);\n }\n all() {\n return this.values.entries();\n }\n}\nconst nodeCache = new WeakMap();\nconst childToParent = new WeakMap();\n/**\n * A node responsible for setting and getting token values,\n * emitting values to CSS custom properties, and maintaining\n * inheritance structures.\n */\nclass DesignTokenNode {\n constructor(target) {\n this.target = target;\n /**\n * Stores all resolved token values for a node\n */\n this.store = new Store();\n /**\n * All children assigned to the node\n */\n this.children = [];\n /**\n * All values explicitly assigned to the node in their raw form\n */\n this.assignedValues = new Map();\n /**\n * Tokens currently being reflected to CSS custom properties\n */\n this.reflecting = new Set();\n /**\n * Binding observers for assigned and inherited derived values.\n */\n this.bindingObservers = new Map();\n /**\n * Emits notifications to token when token values\n * change the DesignTokenNode\n */\n this.tokenValueChangeHandler = {\n handleChange: (source, arg) => {\n const token = DesignTokenImpl.getTokenById(arg);\n if (token) {\n // Notify any token subscribers\n token.notify(this.target);\n if (DesignTokenImpl.isCSSDesignToken(token)) {\n const parent = this.parent;\n const reflecting = this.isReflecting(token);\n if (parent) {\n const parentValue = parent.get(token);\n const sourceValue = source.get(token);\n if (parentValue !== sourceValue && !reflecting) {\n this.reflectToCSS(token);\n }\n else if (parentValue === sourceValue && reflecting) {\n this.stopReflectToCSS(token);\n }\n }\n else if (!reflecting) {\n this.reflectToCSS(token);\n }\n }\n }\n },\n };\n nodeCache.set(target, this);\n // Map store change notifications to token change notifications\n Observable.getNotifier(this.store).subscribe(this.tokenValueChangeHandler);\n if (target instanceof FASTElement) {\n target.$fastController.addBehaviors([this]);\n }\n else if (target.isConnected) {\n this.bind();\n }\n }\n /**\n * Returns a DesignTokenNode for an element.\n * Creates a new instance if one does not already exist for a node,\n * otherwise returns the cached instance\n *\n * @param target - The HTML element to retrieve a DesignTokenNode for\n */\n static getOrCreate(target) {\n return nodeCache.get(target) || new DesignTokenNode(target);\n }\n /**\n * Determines if a DesignTokenNode has been created for a target\n * @param target - The element to test\n */\n static existsFor(target) {\n return nodeCache.has(target);\n }\n /**\n * Searches for and return the nearest parent DesignTokenNode.\n * Null is returned if no node is found or the node provided is for a default element.\n */\n static findParent(node) {\n if (!(defaultElement === node.target)) {\n let parent = composedParent(node.target);\n while (parent !== null) {\n if (nodeCache.has(parent)) {\n return nodeCache.get(parent);\n }\n parent = composedParent(parent);\n }\n return DesignTokenNode.getOrCreate(defaultElement);\n }\n return null;\n }\n /**\n * Finds the closest node with a value explicitly assigned for a token, otherwise null.\n * @param token - The token to look for\n * @param start - The node to start looking for value assignment\n * @returns\n */\n static findClosestAssignedNode(token, start) {\n let current = start;\n do {\n if (current.has(token)) {\n return current;\n }\n current = current.parent\n ? current.parent\n : current.target !== defaultElement\n ? DesignTokenNode.getOrCreate(defaultElement)\n : null;\n } while (current !== null);\n return null;\n }\n /**\n * The parent DesignTokenNode, or null.\n */\n get parent() {\n return childToParent.get(this) || null;\n }\n /**\n * Checks if a token has been assigned an explicit value the node.\n * @param token - the token to check.\n */\n has(token) {\n return this.assignedValues.has(token);\n }\n /**\n * Gets the value of a token for a node\n * @param token - The token to retrieve the value for\n * @returns\n */\n get(token) {\n const value = this.store.get(token);\n if (value !== undefined) {\n return value;\n }\n const raw = this.getRaw(token);\n if (raw !== undefined) {\n this.hydrate(token, raw);\n return this.get(token);\n }\n }\n /**\n * Retrieves the raw assigned value of a token from the nearest assigned node.\n * @param token - The token to retrieve a raw value for\n * @returns\n */\n getRaw(token) {\n var _a;\n if (this.assignedValues.has(token)) {\n return this.assignedValues.get(token);\n }\n return (_a = DesignTokenNode.findClosestAssignedNode(token, this)) === null || _a === void 0 ? void 0 : _a.getRaw(token);\n }\n /**\n * Sets a token to a value for a node\n * @param token - The token to set\n * @param value - The value to set the token to\n */\n set(token, value) {\n if (DesignTokenImpl.isDerivedDesignTokenValue(this.assignedValues.get(token))) {\n this.tearDownBindingObserver(token);\n }\n this.assignedValues.set(token, value);\n if (DesignTokenImpl.isDerivedDesignTokenValue(value)) {\n this.setupBindingObserver(token, value);\n }\n else {\n this.store.set(token, value);\n }\n }\n /**\n * Deletes a token value for the node.\n * @param token - The token to delete the value for\n */\n delete(token) {\n this.assignedValues.delete(token);\n this.tearDownBindingObserver(token);\n const upstream = this.getRaw(token);\n if (upstream) {\n this.hydrate(token, upstream);\n }\n else {\n this.store.delete(token);\n }\n }\n /**\n * Invoked when the DesignTokenNode.target is attached to the document\n */\n bind() {\n const parent = DesignTokenNode.findParent(this);\n if (parent) {\n parent.appendChild(this);\n }\n for (const key of this.assignedValues.keys()) {\n key.notify(this.target);\n }\n }\n /**\n * Invoked when the DesignTokenNode.target is detached from the document\n */\n unbind() {\n if (this.parent) {\n const parent = childToParent.get(this);\n parent.removeChild(this);\n }\n }\n /**\n * Appends a child to a parent DesignTokenNode.\n * @param child - The child to append to the node\n */\n appendChild(child) {\n if (child.parent) {\n childToParent.get(child).removeChild(child);\n }\n const reParent = this.children.filter(x => child.contains(x));\n childToParent.set(child, this);\n this.children.push(child);\n reParent.forEach(x => child.appendChild(x));\n Observable.getNotifier(this.store).subscribe(child);\n // How can we not notify *every* subscriber?\n for (const [token, value] of this.store.all()) {\n child.hydrate(token, this.bindingObservers.has(token) ? this.getRaw(token) : value);\n }\n }\n /**\n * Removes a child from a node.\n * @param child - The child to remove.\n */\n removeChild(child) {\n const childIndex = this.children.indexOf(child);\n if (childIndex !== -1) {\n this.children.splice(childIndex, 1);\n }\n Observable.getNotifier(this.store).unsubscribe(child);\n return child.parent === this ? childToParent.delete(child) : false;\n }\n /**\n * Tests whether a provided node is contained by\n * the calling node.\n * @param test - The node to test\n */\n contains(test) {\n return composedContains(this.target, test.target);\n }\n /**\n * Instructs the node to reflect a design token for the provided token.\n * @param token - The design token to reflect\n */\n reflectToCSS(token) {\n if (!this.isReflecting(token)) {\n this.reflecting.add(token);\n DesignTokenNode.cssCustomPropertyReflector.startReflection(token, this.target);\n }\n }\n /**\n * Stops reflecting a DesignToken to CSS\n * @param token - The design token to stop reflecting\n */\n stopReflectToCSS(token) {\n if (this.isReflecting(token)) {\n this.reflecting.delete(token);\n DesignTokenNode.cssCustomPropertyReflector.stopReflection(token, this.target);\n }\n }\n /**\n * Determines if a token is being reflected to CSS for a node.\n * @param token - The token to check for reflection\n * @returns\n */\n isReflecting(token) {\n return this.reflecting.has(token);\n }\n /**\n * Handle changes to upstream tokens\n * @param source - The parent DesignTokenNode\n * @param property - The token ID that changed\n */\n handleChange(source, property) {\n const token = DesignTokenImpl.getTokenById(property);\n if (!token) {\n return;\n }\n this.hydrate(token, this.getRaw(token));\n }\n /**\n * Hydrates a token with a DesignTokenValue, making retrieval available.\n * @param token - The token to hydrate\n * @param value - The value to hydrate\n */\n hydrate(token, value) {\n if (!this.has(token)) {\n const observer = this.bindingObservers.get(token);\n if (DesignTokenImpl.isDerivedDesignTokenValue(value)) {\n if (observer) {\n // If the binding source doesn't match, we need\n // to update the binding\n if (observer.source !== value) {\n this.tearDownBindingObserver(token);\n this.setupBindingObserver(token, value);\n }\n }\n else {\n this.setupBindingObserver(token, value);\n }\n }\n else {\n if (observer) {\n this.tearDownBindingObserver(token);\n }\n this.store.set(token, value);\n }\n }\n }\n /**\n * Sets up a binding observer for a derived token value that notifies token\n * subscribers on change.\n *\n * @param token - The token to notify when the binding updates\n * @param source - The binding source\n */\n setupBindingObserver(token, source) {\n const binding = new DesignTokenBindingObserver(source, token, this);\n this.bindingObservers.set(token, binding);\n return binding;\n }\n /**\n * Tear down a binding observer for a token.\n */\n tearDownBindingObserver(token) {\n if (this.bindingObservers.has(token)) {\n this.bindingObservers.get(token).disconnect();\n this.bindingObservers.delete(token);\n return true;\n }\n return false;\n }\n}\n/**\n * Responsible for reflecting tokens to CSS custom properties\n */\nDesignTokenNode.cssCustomPropertyReflector = new CustomPropertyReflector();\n__decorate([\n observable\n], DesignTokenNode.prototype, \"children\", void 0);\nfunction create(nameOrConfig) {\n return DesignTokenImpl.from(nameOrConfig);\n}\n/* eslint-enable @typescript-eslint/no-unused-vars */\n/**\n * Factory object for creating {@link (DesignToken:interface)} instances.\n * @public\n */\nexport const DesignToken = Object.freeze({\n create,\n /**\n * Informs DesignToken that an HTMLElement for which tokens have\n * been set has been connected to the document.\n *\n * The browser does not provide a reliable mechanism to observe an HTMLElement's connectedness\n * in all scenarios, so invoking this method manually is necessary when:\n *\n * 1. Token values are set for an HTMLElement.\n * 2. The HTMLElement does not inherit from FASTElement.\n * 3. The HTMLElement is not connected to the document when token values are set.\n *\n * @param element - The element to notify\n * @returns - true if notification was successful, otherwise false.\n */\n notifyConnection(element) {\n if (!element.isConnected || !DesignTokenNode.existsFor(element)) {\n return false;\n }\n DesignTokenNode.getOrCreate(element).bind();\n return true;\n },\n /**\n * Informs DesignToken that an HTMLElement for which tokens have\n * been set has been disconnected to the document.\n *\n * The browser does not provide a reliable mechanism to observe an HTMLElement's connectedness\n * in all scenarios, so invoking this method manually is necessary when:\n *\n * 1. Token values are set for an HTMLElement.\n * 2. The HTMLElement does not inherit from FASTElement.\n *\n * @param element - The element to notify\n * @returns - true if notification was successful, otherwise false.\n */\n notifyDisconnection(element) {\n if (element.isConnected || !DesignTokenNode.existsFor(element)) {\n return false;\n }\n DesignTokenNode.getOrCreate(element).unbind();\n return true;\n },\n /**\n * Registers and element or document as a DesignToken root.\n * {@link CSSDesignToken | CSSDesignTokens} with default values assigned via\n * {@link (DesignToken:interface).withDefault} will emit CSS custom properties to all\n * registered roots.\n * @param target - The root to register\n */\n registerRoot(target = defaultElement) {\n RootStyleSheetTarget.registerRoot(target);\n },\n /**\n * Unregister an element or document as a DesignToken root.\n * @param target - The root to deregister\n */\n unregisterRoot(target = defaultElement) {\n RootStyleSheetTarget.unregisterRoot(target);\n },\n});\n/* eslint-enable @typescript-eslint/no-non-null-assertion */\n","import { FASTElementDefinition } from \"@microsoft/fast-element\";\nimport { FoundationElement } from \"../foundation-element/foundation-element\";\nimport { DI, Registration } from \"../di/di\";\nimport { DesignToken } from \"../design-token/design-token\";\nimport { ComponentPresentation } from \"./component-presentation\";\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/**\n * Indicates what to do with an ambiguous (duplicate) element.\n * @public\n */\nexport const ElementDisambiguation = Object.freeze({\n /**\n * Skip defining the element but still call the provided callback passed\n * to DesignSystemRegistrationContext.tryDefineElement\n */\n definitionCallbackOnly: null,\n /**\n * Ignore the duplicate element entirely.\n */\n ignoreDuplicate: Symbol(),\n});\nconst elementTypesByTag = new Map();\nconst elementTagsByType = new Map();\nlet rootDesignSystem = null;\nconst designSystemKey = DI.createInterface(x => x.cachedCallback(handler => {\n if (rootDesignSystem === null) {\n rootDesignSystem = new DefaultDesignSystem(null, handler);\n }\n return rootDesignSystem;\n}));\n/**\n * An API gateway to design system features.\n * @public\n */\nexport const DesignSystem = Object.freeze({\n /**\n * Returns the HTML element name that the type is defined as.\n * @param type - The type to lookup.\n * @public\n */\n tagFor(type) {\n return elementTagsByType.get(type);\n },\n /**\n * Searches the DOM hierarchy for the design system that is responsible\n * for the provided element.\n * @param element - The element to locate the design system for.\n * @returns The located design system.\n * @public\n */\n responsibleFor(element) {\n const owned = element.$$designSystem$$;\n if (owned) {\n return owned;\n }\n const container = DI.findResponsibleContainer(element);\n return container.get(designSystemKey);\n },\n /**\n * Gets the DesignSystem if one is explicitly defined on the provided element;\n * otherwise creates a design system defined directly on the element.\n * @param element - The element to get or create a design system for.\n * @returns The design system.\n * @public\n */\n getOrCreate(node) {\n if (!node) {\n if (rootDesignSystem === null) {\n rootDesignSystem = DI.getOrCreateDOMContainer().get(designSystemKey);\n }\n return rootDesignSystem;\n }\n const owned = node.$$designSystem$$;\n if (owned) {\n return owned;\n }\n const container = DI.getOrCreateDOMContainer(node);\n if (container.has(designSystemKey, false)) {\n return container.get(designSystemKey);\n }\n else {\n const system = new DefaultDesignSystem(node, container);\n container.register(Registration.instance(designSystemKey, system));\n return system;\n }\n },\n});\nfunction extractTryDefineElementParams(params, elementDefinitionType, elementDefinitionCallback) {\n if (typeof params === \"string\") {\n return {\n name: params,\n type: elementDefinitionType,\n callback: elementDefinitionCallback,\n };\n }\n else {\n return params;\n }\n}\nclass DefaultDesignSystem {\n constructor(owner, container) {\n this.owner = owner;\n this.container = container;\n this.designTokensInitialized = false;\n this.prefix = \"fast\";\n this.shadowRootMode = undefined;\n this.disambiguate = () => ElementDisambiguation.definitionCallbackOnly;\n if (owner !== null) {\n owner.$$designSystem$$ = this;\n }\n }\n withPrefix(prefix) {\n this.prefix = prefix;\n return this;\n }\n withShadowRootMode(mode) {\n this.shadowRootMode = mode;\n return this;\n }\n withElementDisambiguation(callback) {\n this.disambiguate = callback;\n return this;\n }\n withDesignTokenRoot(root) {\n this.designTokenRoot = root;\n return this;\n }\n register(...registrations) {\n const container = this.container;\n const elementDefinitionEntries = [];\n const disambiguate = this.disambiguate;\n const shadowRootMode = this.shadowRootMode;\n const context = {\n elementPrefix: this.prefix,\n tryDefineElement(params, elementDefinitionType, elementDefinitionCallback) {\n const extractedParams = extractTryDefineElementParams(params, elementDefinitionType, elementDefinitionCallback);\n const { name, callback, baseClass } = extractedParams;\n let { type } = extractedParams;\n let elementName = name;\n let typeFoundByName = elementTypesByTag.get(elementName);\n let needsDefine = true;\n while (typeFoundByName) {\n const result = disambiguate(elementName, type, typeFoundByName);\n switch (result) {\n case ElementDisambiguation.ignoreDuplicate:\n return;\n case ElementDisambiguation.definitionCallbackOnly:\n needsDefine = false;\n typeFoundByName = void 0;\n break;\n default:\n elementName = result;\n typeFoundByName = elementTypesByTag.get(elementName);\n break;\n }\n }\n if (needsDefine) {\n if (elementTagsByType.has(type) || type === FoundationElement) {\n type = class extends type {\n };\n }\n elementTypesByTag.set(elementName, type);\n elementTagsByType.set(type, elementName);\n if (baseClass) {\n elementTagsByType.set(baseClass, elementName);\n }\n }\n elementDefinitionEntries.push(new ElementDefinitionEntry(container, elementName, type, shadowRootMode, callback, needsDefine));\n },\n };\n if (!this.designTokensInitialized) {\n this.designTokensInitialized = true;\n if (this.designTokenRoot !== null) {\n DesignToken.registerRoot(this.designTokenRoot);\n }\n }\n container.registerWithContext(context, ...registrations);\n for (const entry of elementDefinitionEntries) {\n entry.callback(entry);\n if (entry.willDefine && entry.definition !== null) {\n entry.definition.define();\n }\n }\n return this;\n }\n}\nclass ElementDefinitionEntry {\n constructor(container, name, type, shadowRootMode, callback, willDefine) {\n this.container = container;\n this.name = name;\n this.type = type;\n this.shadowRootMode = shadowRootMode;\n this.callback = callback;\n this.willDefine = willDefine;\n this.definition = null;\n }\n definePresentation(presentation) {\n ComponentPresentation.define(this.name, presentation, this.container);\n }\n defineElement(definition) {\n this.definition = new FASTElementDefinition(this.type, Object.assign(Object.assign({}, definition), { name: this.name }));\n }\n tagFor(type) {\n return DesignSystem.tagFor(type);\n }\n}\n/* eslint-enable @typescript-eslint/no-non-null-assertion */\n","import { html, ref, when } from \"@microsoft/fast-element\";\n/**\n * The template for the {@link @microsoft/fast-foundation#Dialog} component.\n * @public\n */\nexport const dialogTemplate = (context, definition) => html `\n <div class=\"positioning-region\" part=\"positioning-region\">\n ${when(x => x.modal, html `\n <div\n class=\"overlay\"\n part=\"overlay\"\n role=\"presentation\"\n @click=\"${x => x.dismiss()}\"\n ></div>\n `)}\n <div\n role=\"dialog\"\n tabindex=\"-1\"\n class=\"control\"\n part=\"control\"\n aria-modal=\"${x => x.modal}\"\n aria-describedby=\"${x => x.ariaDescribedby}\"\n aria-labelledby=\"${x => x.ariaLabelledby}\"\n aria-label=\"${x => x.ariaLabel}\"\n ${ref(\"dialog\")}\n >\n <slot></slot>\n </div>\n </div>\n`;\n","/*!\n* tabbable 5.2.1\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\nvar candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])', 'details>summary:first-of-type', 'details'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar matches = typeof Element === 'undefined' ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n\n candidates = candidates.filter(filter);\n return candidates;\n};\n\nvar isContentEditable = function isContentEditable(node) {\n return node.contentEditable === 'true';\n};\n\nvar getTabindex = function getTabindex(node) {\n var tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);\n\n if (!isNaN(tabindexAttr)) {\n return tabindexAttr;\n } // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n\n\n if (isContentEditable(node)) {\n return 0;\n } // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n\n\n if ((node.nodeName === 'AUDIO' || node.nodeName === 'VIDEO' || node.nodeName === 'DETAILS') && node.getAttribute('tabindex') === null) {\n return 0;\n }\n\n return node.tabIndex;\n};\n\nvar sortOrderedTabbables = function sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\n\nvar isInput = function isInput(node) {\n return node.tagName === 'INPUT';\n};\n\nvar isHiddenInput = function isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n};\n\nvar isDetailsWithSummary = function isDetailsWithSummary(node) {\n var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {\n return child.tagName === 'SUMMARY';\n });\n return r;\n};\n\nvar getCheckedRadio = function getCheckedRadio(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\n\nvar isTabbableRadio = function isTabbableRadio(node) {\n if (!node.name) {\n return true;\n }\n\n var radioScope = node.form || node.ownerDocument;\n\n var queryRadios = function queryRadios(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n\n var radioSet;\n\n if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);\n return false;\n }\n }\n\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\n\nvar isRadio = function isRadio(node) {\n return isInput(node) && node.type === 'radio';\n};\n\nvar isNonTabbableRadio = function isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\nvar isHidden = function isHidden(node, displayCheck) {\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n\n var isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n\n if (!displayCheck || displayCheck === 'full') {\n while (node) {\n if (getComputedStyle(node).display === 'none') {\n return true;\n }\n\n node = node.parentElement;\n }\n } else if (displayCheck === 'non-zero-area') {\n var _node$getBoundingClie = node.getBoundingClientRect(),\n width = _node$getBoundingClie.width,\n height = _node$getBoundingClie.height;\n\n return width === 0 && height === 0;\n }\n\n return false;\n}; // form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\n\n\nvar isDisabledFromFieldset = function isDisabledFromFieldset(node) {\n if (isInput(node) || node.tagName === 'SELECT' || node.tagName === 'TEXTAREA' || node.tagName === 'BUTTON') {\n var parentNode = node.parentElement;\n\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> as an immediate child of the disabled\n // <fieldset>: if the node is in that legend, it'll be enabled even\n // though the fieldset is disabled; otherwise, the node is in a\n // secondary/subsequent legend, or somewhere else within the fieldset\n // (however deep nested) and it'll be disabled\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n\n if (child.tagName === 'LEGEND') {\n if (child.contains(node)) {\n return false;\n } // the node isn't in the first legend (in doc order), so no matter\n // where it is now, it'll be disabled\n\n\n return true;\n }\n } // the node isn't in a legend, so no matter where it is now, it'll be disabled\n\n\n return true;\n }\n\n parentNode = parentNode.parentElement;\n }\n } // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n\n\n return false;\n};\n\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {\n if (node.disabled || isHiddenInput(node) || isHidden(node, options.displayCheck) || // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n\n return true;\n};\n\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {\n if (!isNodeMatchingSelectorFocusable(options, node) || isNonTabbableRadio(node) || getTabindex(node) < 0) {\n return false;\n }\n\n return true;\n};\n\nvar tabbable = function tabbable(el, options) {\n options = options || {};\n var regularTabbables = [];\n var orderedTabbables = [];\n var candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n candidates.forEach(function (candidate, i) {\n var candidateTabindex = getTabindex(candidate);\n\n if (candidateTabindex === 0) {\n regularTabbables.push(candidate);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n node: candidate\n });\n }\n });\n var tabbableNodes = orderedTabbables.sort(sortOrderedTabbables).map(function (a) {\n return a.node;\n }).concat(regularTabbables);\n return tabbableNodes;\n};\n\nvar focusable = function focusable(el, options) {\n options = options || {};\n var candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n return candidates;\n};\n\nvar isTabbable = function isTabbable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorTabbable(options, node);\n};\n\nvar focusableCandidateSelector = /* #__PURE__ */candidateSelectors.concat('iframe').join(',');\n\nvar isFocusable = function isFocusable(node, options) {\n options = options || {};\n\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { focusable, isFocusable, isTabbable, tabbable };\n//# sourceMappingURL=index.esm.js.map\n","import { __decorate } from \"tslib\";\nimport { attr, DOM, Observable } from \"@microsoft/fast-element\";\nimport { keyEscape, keyTab } from \"@microsoft/fast-web-utilities\";\nimport { isTabbable } from \"tabbable\";\nimport { FoundationElement } from \"../foundation-element\";\n/**\n * A Switch Custom HTML Element.\n * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#dialog | ARIA dialog }.\n *\n * @public\n */\nexport class Dialog extends FoundationElement {\n constructor() {\n super(...arguments);\n /**\n * Indicates the element is modal. When modal, user mouse interaction will be limited to the contents of the element by a modal\n * overlay. Clicks on the overlay will cause the dialog to emit a \"dismiss\" event.\n * @public\n * @defaultValue - true\n * @remarks\n * HTML Attribute: modal\n */\n this.modal = true;\n /**\n * The hidden state of the element.\n *\n * @public\n * @defaultValue - false\n * @remarks\n * HTML Attribute: hidden\n */\n this.hidden = false;\n /**\n * Indicates that the dialog should trap focus.\n *\n * @public\n * @defaultValue - true\n * @remarks\n * HTML Attribute: trap-focus\n */\n this.trapFocus = true;\n this.trapFocusChanged = () => {\n if (this.$fastController.isConnected) {\n this.updateTrapFocus();\n }\n };\n /**\n * @internal\n */\n this.isTrappingFocus = false;\n this.handleDocumentKeydown = (e) => {\n if (!e.defaultPrevented && !this.hidden) {\n switch (e.key) {\n case keyEscape:\n this.dismiss();\n e.preventDefault();\n break;\n case keyTab:\n this.handleTabKeyDown(e);\n break;\n }\n }\n };\n this.handleDocumentFocus = (e) => {\n if (!e.defaultPrevented && this.shouldForceFocus(e.target)) {\n this.focusFirstElement();\n e.preventDefault();\n }\n };\n this.handleTabKeyDown = (e) => {\n if (!this.trapFocus || this.hidden) {\n return;\n }\n const bounds = this.getTabQueueBounds();\n if (bounds.length === 0) {\n return;\n }\n if (bounds.length === 1) {\n // keep focus on single element\n bounds[0].focus();\n e.preventDefault();\n return;\n }\n if (e.shiftKey && e.target === bounds[0]) {\n bounds[bounds.length - 1].focus();\n e.preventDefault();\n }\n else if (!e.shiftKey && e.target === bounds[bounds.length - 1]) {\n bounds[0].focus();\n e.preventDefault();\n }\n return;\n };\n this.getTabQueueBounds = () => {\n const bounds = [];\n return Dialog.reduceTabbableItems(bounds, this);\n };\n /**\n * focus on first element of tab queue\n */\n this.focusFirstElement = () => {\n const bounds = this.getTabQueueBounds();\n if (bounds.length > 0) {\n bounds[0].focus();\n }\n else {\n if (this.dialog instanceof HTMLElement) {\n this.dialog.focus();\n }\n }\n };\n /**\n * we should only focus if focus has not already been brought to the dialog\n */\n this.shouldForceFocus = (currentFocusElement) => {\n return this.isTrappingFocus && !this.contains(currentFocusElement);\n };\n /**\n * we should we be active trapping focus\n */\n this.shouldTrapFocus = () => {\n return this.trapFocus && !this.hidden;\n };\n /**\n *\n *\n * @internal\n */\n this.updateTrapFocus = (shouldTrapFocusOverride) => {\n const shouldTrapFocus = shouldTrapFocusOverride === undefined\n ? this.shouldTrapFocus()\n : shouldTrapFocusOverride;\n if (shouldTrapFocus && !this.isTrappingFocus) {\n this.isTrappingFocus = true;\n // Add an event listener for focusin events if we are trapping focus\n document.addEventListener(\"focusin\", this.handleDocumentFocus);\n DOM.queueUpdate(() => {\n if (this.shouldForceFocus(document.activeElement)) {\n this.focusFirstElement();\n }\n });\n }\n else if (!shouldTrapFocus && this.isTrappingFocus) {\n this.isTrappingFocus = false;\n // remove event listener if we are not trapping focus\n document.removeEventListener(\"focusin\", this.handleDocumentFocus);\n }\n };\n }\n /**\n * @internal\n */\n dismiss() {\n this.$emit(\"dismiss\");\n }\n /**\n * The method to show the dialog.\n *\n * @public\n */\n show() {\n this.hidden = false;\n }\n /**\n * The method to hide the dialog.\n *\n * @public\n */\n hide() {\n this.hidden = true;\n }\n /**\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener(\"keydown\", this.handleDocumentKeydown);\n this.notifier = Observable.getNotifier(this);\n this.notifier.subscribe(this, \"hidden\");\n this.updateTrapFocus();\n }\n /**\n * @internal\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n // remove keydown event listener\n document.removeEventListener(\"keydown\", this.handleDocumentKeydown);\n // if we are trapping focus remove the focusin listener\n this.updateTrapFocus(false);\n this.notifier.unsubscribe(this, \"hidden\");\n }\n /**\n * @internal\n */\n handleChange(source, propertyName) {\n switch (propertyName) {\n case \"hidden\":\n this.updateTrapFocus();\n break;\n default:\n break;\n }\n }\n /**\n * Reduce a collection to only its focusable elements.\n *\n * @param elements - Collection of elements to reduce\n * @param element - The current element\n *\n * @internal\n */\n static reduceTabbableItems(elements, element) {\n if (element.getAttribute(\"tabindex\") === \"-1\") {\n return elements;\n }\n if (isTabbable(element) ||\n (Dialog.isFocusableFastElement(element) && Dialog.hasTabbableShadow(element))) {\n elements.push(element);\n return elements;\n }\n if (element.childElementCount) {\n return elements.concat(Array.from(element.children).reduce(Dialog.reduceTabbableItems, []));\n }\n return elements;\n }\n /**\n * Test if element is focusable fast element\n *\n * @param element - The element to check\n *\n * @internal\n */\n static isFocusableFastElement(element) {\n var _a, _b;\n return !!((_b = (_a = element.$fastController) === null || _a === void 0 ? void 0 : _a.definition.shadowOptions) === null || _b === void 0 ? void 0 : _b.delegatesFocus);\n }\n /**\n * Test if the element has a focusable shadow\n *\n * @param element - The element to check\n *\n * @internal\n */\n static hasTabbableShadow(element) {\n var _a, _b;\n return Array.from((_b = (_a = element.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll(\"*\")) !== null && _b !== void 0 ? _b : []).some(x => {\n return isTabbable(x);\n });\n }\n}\n__decorate([\n attr({ mode: \"boolean\" })\n], Dialog.prototype, \"modal\", void 0);\n__decorate([\n attr({ mode: \"boolean\" })\n], Dialog.prototype, \"hidden\", void 0);\n__decorate([\n attr({ attribute: \"trap-focus\", mode: \"boolean\" })\n], Dialog.prototype, \"trapFocus\", void 0);\n__decorate([\n attr({ attribute: \"aria-describedby\" })\n], Dialog.prototype, \"ariaDescribedby\", void 0);\n__decorate([\n attr({ attribute: \"aria-labelledby\" })\n], Dialog.prototype, \"ariaLabelledby\", void 0);\n__decorate([\n attr({ attribute: \"aria-label\" })\n], Dialog.prototype, \"ariaLabel\", void 0);\n","import { html } from \"@microsoft/fast-element\";\nimport { endSlotTemplate, startSlotTemplate } from \"../patterns/start-end\";\n/**\n * The template for the {@link @microsoft/fast-foundation#(ListboxOption:class)} component.\n * @public\n */\nexport const listboxOptionTemplate = (context, definition) => html `\n <template\n aria-checked=\"${x => x.ariaChecked}\"\n aria-disabled=\"${x => x.ariaDisabled}\"\n aria-posinset=\"${x => x.ariaPosInSet}\"\n aria-selected=\"${x => x.ariaSelected}\"\n aria-setsize=\"${x => x.ariaSetSize}\"\n class=\"${x => [x.checked && \"checked\", x.selected && \"selected\", x.disabled && \"disabled\"]\n .filter(Boolean)\n .join(\" \")}\"\n role=\"option\"\n >\n ${startSlotTemplate(context, definition)}\n <span class=\"content\" part=\"content\">\n <slot></slot>\n </span>\n ${endSlotTemplate(context, definition)}\n </template>\n`;\n","/**\n * Menu items roles.\n * @public\n */\nexport var MenuItemRole;\n(function (MenuItemRole) {\n /**\n * The menu item has a \"menuitem\" role\n */\n MenuItemRole[\"menuitem\"] = \"menuitem\";\n /**\n * The menu item has a \"menuitemcheckbox\" role\n */\n MenuItemRole[\"menuitemcheckbox\"] = \"menuitemcheckbox\";\n /**\n * The menu item has a \"menuitemradio\" role\n */\n MenuItemRole[\"menuitemradio\"] = \"menuitemradio\";\n})(MenuItemRole || (MenuItemRole = {}));\n/**\n * @internal\n */\nexport const roleForMenuItem = {\n [MenuItemRole.menuitem]: \"menuitem\",\n [MenuItemRole.menuitemcheckbox]: \"menuitemcheckbox\",\n [MenuItemRole.menuitemradio]: \"menuitemradio\",\n};\n","import { __decorate } from \"tslib\";\nimport { attr, DOM, observable } from \"@microsoft/fast-element\";\nimport { Direction, keyArrowLeft, keyArrowRight, keyEnter, keySpace, } from \"@microsoft/fast-web-utilities\";\nimport { FoundationElement } from \"../foundation-element\";\nimport { StartEnd } from \"../patterns/start-end\";\nimport { getDirection } from \"../utilities/\";\nimport { applyMixins } from \"../utilities/apply-mixins\";\nimport { MenuItemRole, roleForMenuItem } from \"./menu-item.options\";\nexport { MenuItemRole, roleForMenuItem };\n/**\n * A Switch Custom HTML Element.\n * 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 }.\n *\n * @public\n */\nexport class MenuItem extends FoundationElement {\n constructor() {\n super(...arguments);\n /**\n * The role of the element.\n *\n * @public\n * @remarks\n * HTML Attribute: role\n */\n this.role = MenuItemRole.menuitem;\n /**\n * @internal\n */\n this.hasSubmenu = false;\n /**\n * Track current direction to pass to the anchored region\n *\n * @internal\n */\n this.currentDirection = Direction.ltr;\n this.focusSubmenuOnLoad = false;\n /**\n * @internal\n */\n this.handleMenuItemKeyDown = (e) => {\n if (e.defaultPrevented) {\n return false;\n }\n switch (e.key) {\n case keyEnter:\n case keySpace:\n this.invoke();\n return false;\n case keyArrowRight:\n //open/focus on submenu\n this.expandAndFocus();\n return false;\n case keyArrowLeft:\n //close submenu\n if (this.expanded) {\n this.expanded = false;\n this.focus();\n return false;\n }\n }\n return true;\n };\n /**\n * @internal\n */\n this.handleMenuItemClick = (e) => {\n if (e.defaultPrevented || this.disabled) {\n return false;\n }\n this.invoke();\n return false;\n };\n /**\n * @internal\n */\n this.submenuLoaded = () => {\n if (!this.focusSubmenuOnLoad) {\n return;\n }\n this.focusSubmenuOnLoad = false;\n if (this.hasSubmenu) {\n this.submenu.focus();\n this.setAttribute(\"tabindex\", \"-1\");\n }\n };\n /**\n * @internal\n */\n this.handleMouseOver = (e) => {\n if (this.disabled || !this.hasSubmenu || this.expanded) {\n return false;\n }\n this.expanded = true;\n return false;\n };\n /**\n * @internal\n */\n this.handleMouseOut = (e) => {\n if (!this.expanded || this.contains(document.activeElement)) {\n return false;\n }\n this.expanded = false;\n return false;\n };\n /**\n * @internal\n */\n this.expandAndFocus = () => {\n if (!this.hasSubmenu) {\n return;\n }\n this.focusSubmenuOnLoad = true;\n this.expanded = true;\n };\n /**\n * @internal\n */\n this.invoke = () => {\n if (this.disabled) {\n return;\n }\n switch (this.role) {\n case MenuItemRole.menuitemcheckbox:\n this.checked = !this.checked;\n break;\n case MenuItemRole.menuitem:\n // update submenu\n this.updateSubmenu();\n if (this.hasSubmenu) {\n this.expandAndFocus();\n }\n else {\n this.$emit(\"change\");\n }\n break;\n case MenuItemRole.menuitemradio:\n if (!this.checked) {\n this.checked = true;\n }\n break;\n }\n };\n /**\n * Gets the submenu element if any\n *\n * @internal\n */\n this.updateSubmenu = () => {\n this.submenu = this.domChildren().find((element) => {\n return element.getAttribute(\"role\") === \"menu\";\n });\n this.hasSubmenu = this.submenu === undefined ? false : true;\n };\n }\n expandedChanged(oldValue) {\n if (this.$fastController.isConnected) {\n if (this.submenu === undefined) {\n return;\n }\n if (this.expanded === false) {\n this.submenu.collapseExpandedItem();\n }\n else {\n this.currentDirection = getDirection(this);\n }\n this.$emit(\"expanded-change\", this, { bubbles: false });\n }\n }\n checkedChanged(oldValue, newValue) {\n if (this.$fastController.isConnected) {\n this.$emit(\"change\");\n }\n }\n /**\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n DOM.queueUpdate(() => {\n this.updateSubmenu();\n });\n if (!this.startColumnCount) {\n this.startColumnCount = 1;\n }\n this.observer = new MutationObserver(this.updateSubmenu);\n }\n /**\n * @internal\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n this.submenu = undefined;\n if (this.observer !== undefined) {\n this.observer.disconnect();\n this.observer = undefined;\n }\n }\n /**\n * get an array of valid DOM children\n */\n domChildren() {\n return Array.from(this.children);\n }\n}\n__decorate([\n attr({ mode: \"boolean\" })\n], MenuItem.prototype, \"disabled\", void 0);\n__decorate([\n attr({ mode: \"boolean\" })\n], MenuItem.prototype, \"expanded\", void 0);\n__decorate([\n observable\n], MenuItem.prototype, \"startColumnCount\", void 0);\n__decorate([\n attr\n], MenuItem.prototype, \"role\", void 0);\n__decorate([\n attr({ mode: \"boolean\" })\n], MenuItem.prototype, \"checked\", void 0);\n__decorate([\n observable\n], MenuItem.prototype, \"submenuRegion\", void 0);\n__decorate([\n observable\n], MenuItem.prototype, \"hasSubmenu\", void 0);\n__decorate([\n observable\n], MenuItem.prototype, \"currentDirection\", void 0);\n__decorate([\n observable\n], MenuItem.prototype, \"submenu\", void 0);\napplyMixins(MenuItem, StartEnd);\n","import { html, ref, when } from \"@microsoft/fast-element\";\nimport { AnchoredRegion } from \"../anchored-region\";\nimport { endSlotTemplate, startSlotTemplate } from \"../patterns/start-end\";\nimport { MenuItemRole } from \"./menu-item\";\n/**\n * Generates a template for the {@link @microsoft/fast-foundation#(MenuItem:class)} component using\n * the provided prefix.\n *\n * @public\n */\nexport const menuItemTemplate = (context, definition) => html `\n <template\n role=\"${x => x.role}\"\n aria-haspopup=\"${x => (x.hasSubmenu ? \"menu\" : void 0)}\"\n aria-checked=\"${x => (x.role !== MenuItemRole.menuitem ? x.checked : void 0)}\"\n aria-disabled=\"${x => x.disabled}\"\n aria-expanded=\"${x => x.expanded}\"\n @keydown=\"${(x, c) => x.handleMenuItemKeyDown(c.event)}\"\n @click=\"${(x, c) => x.handleMenuItemClick(c.event)}\"\n @mouseover=\"${(x, c) => x.handleMouseOver(c.event)}\"\n @mouseout=\"${(x, c) => x.handleMouseOut(c.event)}\"\n class=\"${x => (x.disabled ? \"disabled\" : \"\")} ${x => x.expanded ? \"expanded\" : \"\"} ${x => `indent-${x.startColumnCount}`}\"\n >\n ${when(x => x.role === MenuItemRole.menuitemcheckbox, html `\n <div part=\"input-container\" class=\"input-container\">\n <span part=\"checkbox\" class=\"checkbox\">\n <slot name=\"checkbox-indicator\">\n ${definition.checkboxIndicator || \"\"}\n </slot>\n </span>\n </div>\n `)}\n ${when(x => x.role === MenuItemRole.menuitemradio, html `\n <div part=\"input-container\" class=\"input-container\">\n <span part=\"radio\" class=\"radio\">\n <slot name=\"radio-indicator\">\n ${definition.radioIndicator || \"\"}\n </slot>\n </span>\n </div>\n `)}\n </div>\n ${startSlotTemplate(context, definition)}\n <span class=\"content\" part=\"content\">\n <slot></slot>\n </span>\n ${endSlotTemplate(context, definition)}\n ${when(x => x.hasSubmenu, html `\n <div\n part=\"expand-collapse-glyph-container\"\n class=\"expand-collapse-glyph-container\"\n >\n <span part=\"expand-collapse\" class=\"expand-collapse\">\n <slot name=\"expand-collapse-indicator\">\n ${definition.expandCollapseGlyph || \"\"}\n </slot>\n </span>\n </div>\n `)}\n ${when(x => x.expanded, html `\n <${context.tagFor(AnchoredRegion)}\n :anchorElement=\"${x => x}\"\n vertical-positioning-mode=\"dynamic\"\n vertical-default-position=\"bottom\"\n vertical-inset=\"true\"\n horizontal-positioning-mode=\"dynamic\"\n horizontal-default-position=\"end\"\n class=\"submenu-region\"\n dir=\"${x => x.currentDirection}\"\n @loaded=\"${x => x.submenuLoaded()}\"\n ${ref(\"submenuRegion\")}\n part=\"submenu-region\"\n >\n <slot name=\"submenu\"></slot>\n </${context.tagFor(AnchoredRegion)}>\n `)}\n </template>\n`;\n","import { html, slotted } from \"@microsoft/fast-element\";\n/**\n * The template for the {@link @microsoft/fast-foundation#Menu} component.\n * @public\n */\nexport const menuTemplate = (context, definition) => html `\n <template\n slot=\"${x => (x.slot ? x.slot : x.isNestedMenu() ? \"submenu\" : void 0)}\"\n role=\"menu\"\n @keydown=\"${(x, c) => x.handleMenuKeyDown(c.event)}\"\n @focusout=\"${(x, c) => x.handleFocusOut(c.event)}\"\n >\n <slot ${slotted(\"items\")}></slot>\n </template>\n`;\n","import { __decorate } from \"tslib\";\nimport { DOM, observable } from \"@microsoft/fast-element\";\nimport { isHTMLElement, keyArrowDown, keyArrowUp, keyEnd, keyHome, } from \"@microsoft/fast-web-utilities\";\nimport { MenuItem, MenuItemRole, roleForMenuItem, } from \"../menu-item/index\";\nimport { FoundationElement } from \"../foundation-element\";\n/**\n * A Menu Custom HTML Element.\n * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#menu | ARIA menu }.\n *\n * @public\n */\nexport class Menu extends FoundationElement {\n constructor() {\n super(...arguments);\n this.expandedItem = null;\n /**\n * The index of the focusable element in the items array\n * defaults to -1\n */\n this.focusIndex = -1;\n /**\n * @internal\n */\n this.isNestedMenu = () => {\n return (this.parentElement !== null &&\n isHTMLElement(this.parentElement) &&\n this.parentElement.getAttribute(\"role\") === \"menuitem\");\n };\n /**\n * if focus is moving out of the menu, reset to a stable initial state\n * @internal\n */\n this.handleFocusOut = (e) => {\n if (!this.contains(e.relatedTarget) && this.menuItems !== undefined) {\n this.collapseExpandedItem();\n // find our first focusable element\n const focusIndex = this.menuItems.findIndex(this.isFocusableElement);\n // set the current focus index's tabindex to -1\n this.menuItems[this.focusIndex].setAttribute(\"tabindex\", \"-1\");\n // set the first focusable element tabindex to 0\n this.menuItems[focusIndex].setAttribute(\"tabindex\", \"0\");\n // set the focus index\n this.focusIndex = focusIndex;\n }\n };\n this.handleItemFocus = (e) => {\n const targetItem = e.target;\n if (this.menuItems !== undefined &&\n targetItem !== this.menuItems[this.focusIndex]) {\n this.menuItems[this.focusIndex].setAttribute(\"tabindex\", \"-1\");\n this.focusIndex = this.menuItems.indexOf(targetItem);\n targetItem.setAttribute(\"tabindex\", \"0\");\n }\n };\n this.handleExpandedChanged = (e) => {\n if (e.defaultPrevented ||\n e.target === null ||\n this.menuItems === undefined ||\n this.menuItems.indexOf(e.target) < 0) {\n return;\n }\n e.preventDefault();\n const changedItem = e.target;\n // closing an expanded item without opening another\n if (this.expandedItem !== null &&\n changedItem === this.expandedItem &&\n changedItem.expanded === false) {\n this.expandedItem = null;\n return;\n }\n if (changedItem.expanded) {\n if (this.expandedItem !== null && this.expandedItem !== changedItem) {\n this.expandedItem.expanded = false;\n }\n this.menuItems[this.focusIndex].setAttribute(\"tabindex\", \"-1\");\n this.expandedItem = changedItem;\n this.focusIndex = this.menuItems.indexOf(changedItem);\n changedItem.setAttribute(\"tabindex\", \"0\");\n }\n };\n this.removeItemListeners = () => {\n if (this.menuItems !== undefined) {\n this.menuItems.forEach((item) => {\n item.removeEventListener(\"expanded-change\", this.handleExpandedChanged);\n item.removeEventListener(\"focus\", this.handleItemFocus);\n });\n }\n };\n this.setItems = () => {\n const newItems = this.domChildren();\n this.removeItemListeners();\n this.menuItems = newItems;\n const menuItems = this.menuItems.filter(this.isMenuItemElement);\n // if our focus index is not -1 we have items\n if (menuItems.length) {\n this.focusIndex = 0;\n }\n function elementIndent(el) {\n const role = el.getAttribute(\"role\");\n const startSlot = el.querySelector(\"[slot=start]\");\n if (role !== MenuItemRole.menuitem && startSlot === null) {\n return 1;\n }\n else if (role === MenuItemRole.menuitem && startSlot !== null) {\n return 1;\n }\n else if (role !== MenuItemRole.menuitem && startSlot !== null) {\n return 2;\n }\n else {\n return 0;\n }\n }\n const indent = menuItems.reduce((accum, current) => {\n const elementValue = elementIndent(current);\n return accum > elementValue ? accum : elementValue;\n }, 0);\n menuItems.forEach((item, index) => {\n item.setAttribute(\"tabindex\", index === 0 ? \"0\" : \"-1\");\n item.addEventListener(\"expanded-change\", this.handleExpandedChanged);\n item.addEventListener(\"focus\", this.handleItemFocus);\n if (item instanceof MenuItem) {\n item.startColumnCount = indent;\n }\n });\n };\n /**\n * handle change from child element\n */\n this.changeHandler = (e) => {\n if (this.menuItems === undefined) {\n return;\n }\n const changedMenuItem = e.target;\n const changeItemIndex = this.menuItems.indexOf(changedMenuItem);\n if (changeItemIndex === -1) {\n return;\n }\n if (changedMenuItem.role === \"menuitemradio\" &&\n changedMenuItem.checked === true) {\n for (let i = changeItemIndex - 1; i >= 0; --i) {\n const item = this.menuItems[i];\n const role = item.getAttribute(\"role\");\n if (role === MenuItemRole.menuitemradio) {\n item.checked = false;\n }\n if (role === \"separator\") {\n break;\n }\n }\n const maxIndex = this.menuItems.length - 1;\n for (let i = changeItemIndex + 1; i <= maxIndex; ++i) {\n const item = this.menuItems[i];\n const role = item.getAttribute(\"role\");\n if (role === MenuItemRole.menuitemradio) {\n item.checked = false;\n }\n if (role === \"separator\") {\n break;\n }\n }\n }\n };\n /**\n * check if the item is a menu item\n */\n this.isMenuItemElement = (el) => {\n return (isHTMLElement(el) &&\n Menu.focusableElementRoles.hasOwnProperty(el.getAttribute(\"role\")));\n };\n /**\n * check if the item is focusable\n */\n this.isFocusableElement = (el) => {\n return this.isMenuItemElement(el);\n };\n }\n itemsChanged(oldValue, newValue) {\n // only update children after the component is connected and\n // the setItems has run on connectedCallback\n // (menuItems is undefined until then)\n if (this.$fastController.isConnected && this.menuItems !== undefined) {\n this.setItems();\n }\n }\n /**\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n DOM.queueUpdate(() => {\n // wait until children have had a chance to\n // connect before setting/checking their props/attributes\n this.setItems();\n });\n this.addEventListener(\"change\", this.changeHandler);\n }\n /**\n * @internal\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeItemListeners();\n this.menuItems = undefined;\n this.removeEventListener(\"change\", this.changeHandler);\n }\n /**\n * Focuses the first item in the menu.\n *\n * @public\n */\n focus() {\n this.setFocus(0, 1);\n }\n /**\n * Collapses any expanded menu items.\n *\n * @public\n */\n collapseExpandedItem() {\n if (this.expandedItem !== null) {\n this.expandedItem.expanded = false;\n this.expandedItem = null;\n }\n }\n /**\n * @internal\n */\n handleMenuKeyDown(e) {\n if (e.defaultPrevented || this.menuItems === undefined) {\n return;\n }\n switch (e.key) {\n case keyArrowDown:\n // go forward one index\n this.setFocus(this.focusIndex + 1, 1);\n return;\n case keyArrowUp:\n // go back one index\n this.setFocus(this.focusIndex - 1, -1);\n return;\n case keyEnd:\n // set focus on last item\n this.setFocus(this.menuItems.length - 1, -1);\n return;\n case keyHome:\n // set focus on first item\n this.setFocus(0, 1);\n return;\n default:\n // if we are not handling the event, do not prevent default\n return true;\n }\n }\n /**\n * get an array of valid DOM children\n */\n domChildren() {\n return Array.from(this.children);\n }\n setFocus(focusIndex, adjustment) {\n if (this.menuItems === undefined) {\n return;\n }\n while (focusIndex >= 0 && focusIndex < this.menuItems.length) {\n const child = this.menuItems[focusIndex];\n if (this.isFocusableElement(child)) {\n // change the previous index to -1\n if (this.focusIndex > -1 &&\n this.menuItems.length >= this.focusIndex - 1) {\n this.menuItems[this.focusIndex].setAttribute(\"tabindex\", \"-1\");\n }\n // update the focus index\n this.focusIndex = focusIndex;\n // update the tabindex of next focusable element\n child.setAttribute(\"tabindex\", \"0\");\n // focus the element\n child.focus();\n break;\n }\n focusIndex += adjustment;\n }\n }\n}\nMenu.focusableElementRoles = roleForMenuItem;\n__decorate([\n observable\n], Menu.prototype, \"items\", void 0);\n","import { html, ref, slotted, when } from \"@microsoft/fast-element\";\nimport { endSlotTemplate, startSlotTemplate } from \"../patterns\";\n/**\n * The template for the {@link @microsoft/fast-foundation#(NumberField:class)} component.\n * @public\n */\nexport const numberFieldTemplate = (context, definition) => html `\n <template class=\"${x => (x.readOnly ? \"readonly\" : \"\")}\">\n <label\n part=\"label\"\n for=\"control\"\n class=\"${x => x.defaultSlottedNodes && x.defaultSlottedNodes.length\n ? \"label\"\n : \"label label__hidden\"}\"\n >\n <slot ${slotted(\"defaultSlottedNodes\")}></slot>\n </label>\n <div class=\"root\" part=\"root\">\n ${startSlotTemplate(context, definition)}\n <input\n class=\"control\"\n part=\"control\"\n id=\"control\"\n @input=\"${x => x.handleTextInput()}\"\n @change=\"${x => x.handleChange()}\"\n @keydown=\"${(x, c) => x.handleKeyDown(c.event)}\"\n @blur=\"${(x, c) => x.handleBlur()}\"\n ?autofocus=\"${x => x.autofocus}\"\n ?disabled=\"${x => x.disabled}\"\n list=\"${x => x.list}\"\n maxlength=\"${x => x.maxlength}\"\n minlength=\"${x => x.minlength}\"\n placeholder=\"${x => x.placeholder}\"\n ?readonly=\"${x => x.readOnly}\"\n ?required=\"${x => x.required}\"\n size=\"${x => x.size}\"\n type=\"text\"\n inputmode=\"numeric\"\n min=\"${x => x.min}\"\n max=\"${x => x.max}\"\n step=\"${x => x.step}\"\n aria-atomic=\"${x => x.ariaAtomic}\"\n aria-busy=\"${x => x.ariaBusy}\"\n aria-controls=\"${x => x.ariaControls}\"\n aria-current=\"${x => x.ariaCurrent}\"\n aria-describedby=\"${x => x.ariaDescribedby}\"\n aria-details=\"${x => x.ariaDetails}\"\n aria-disabled=\"${x => x.ariaDisabled}\"\n aria-errormessage=\"${x => x.ariaErrormessage}\"\n aria-flowto=\"${x => x.ariaFlowto}\"\n aria-haspopup=\"${x => x.ariaHaspopup}\"\n aria-hidden=\"${x => x.ariaHidden}\"\n aria-invalid=\"${x => x.ariaInvalid}\"\n aria-keyshortcuts=\"${x => x.ariaKeyshortcuts}\"\n aria-label=\"${x => x.ariaLabel}\"\n aria-labelledby=\"${x => x.ariaLabelledby}\"\n aria-live=\"${x => x.ariaLive}\"\n aria-owns=\"${x => x.ariaOwns}\"\n aria-relevant=\"${x => x.ariaRelevant}\"\n aria-roledescription=\"${x => x.ariaRoledescription}\"\n ${ref(\"control\")}\n />\n ${when(x => !x.hideStep && !x.readOnly && !x.disabled, html `\n <div class=\"controls\" part=\"controls\">\n <div class=\"step-up\" part=\"step-up\" @click=\"${x => x.stepUp()}\">\n <slot name=\"step-up-glyph\">\n ${definition.stepUpGlyph || \"\"}\n </slot>\n </div>\n <div\n class=\"step-down\"\n part=\"step-down\"\n @click=\"${x => x.stepDown()}\"\n >\n <slot name=\"step-down-glyph\">\n ${definition.stepDownGlyph || \"\"}\n </slot>\n </div>\n </div>\n `)}\n ${endSlotTemplate(context, definition)}\n </div>\n </template>\n`;\n","import { html, ref, slotted } from \"@microsoft/fast-element\";\nimport { endSlotTemplate, startSlotTemplate } from \"../patterns\";\nimport { whitespaceFilter } from \"../utilities\";\n/**\n * The template for the {@link @microsoft/fast-foundation#(TextField:class)} component.\n * @public\n */\nexport const textFieldTemplate = (context, definition) => html `\n <template\n class=\"\n ${x => (x.readOnly ? \"readonly\" : \"\")}\n \"\n >\n <label\n part=\"label\"\n for=\"control\"\n class=\"${x => x.defaultSlottedNodes && x.defaultSlottedNodes.length\n ? \"label\"\n : \"label label__hidden\"}\"\n >\n <slot\n ${slotted({ property: \"defaultSlottedNodes\", filter: whitespaceFilter })}\n ></slot>\n </label>\n <div class=\"root\" part=\"root\">\n ${startSlotTemplate(context, definition)}\n <input\n class=\"control\"\n part=\"control\"\n id=\"control\"\n @input=\"${x => x.handleTextInput()}\"\n @change=\"${x => x.handleChange()}\"\n ?autofocus=\"${x => x.autofocus}\"\n ?disabled=\"${x => x.disabled}\"\n list=\"${x => x.list}\"\n maxlength=\"${x => x.maxlength}\"\n minlength=\"${x => x.minlength}\"\n pattern=\"${x => x.pattern}\"\n placeholder=\"${x => x.placeholder}\"\n ?readonly=\"${x => x.readOnly}\"\n ?required=\"${x => x.required}\"\n size=\"${x => x.size}\"\n ?spellcheck=\"${x => x.spellcheck}\"\n :value=\"${x => x.value}\"\n type=\"${x => x.type}\"\n aria-atomic=\"${x => x.ariaAtomic}\"\n aria-busy=\"${x => x.ariaBusy}\"\n aria-controls=\"${x => x.ariaControls}\"\n aria-current=\"${x => x.ariaCurrent}\"\n aria-describedby=\"${x => x.ariaDescribedby}\"\n aria-details=\"${x => x.ariaDetails}\"\n aria-disabled=\"${x => x.ariaDisabled}\"\n aria-errormessage=\"${x => x.ariaErrormessage}\"\n aria-flowto=\"${x => x.ariaFlowto}\"\n aria-haspopup=\"${x => x.ariaHaspopup}\"\n aria-hidden=\"${x => x.ariaHidden}\"\n aria-invalid=\"${x => x.ariaInvalid}\"\n aria-keyshortcuts=\"${x => x.ariaKeyshortcuts}\"\n aria-label=\"${x => x.ariaLabel}\"\n aria-labelledby=\"${x => x.ariaLabelledby}\"\n aria-live=\"${x => x.ariaLive}\"\n aria-owns=\"${x => x.ariaOwns}\"\n aria-relevant=\"${x => x.ariaRelevant}\"\n aria-roledescription=\"${x => x.ariaRoledescription}\"\n ${ref(\"control\")}\n />\n ${endSlotTemplate(context, definition)}\n </div>\n </template>\n`;\n","import { FormAssociated } from \"../form-associated/form-associated\";\nimport { FoundationElement } from \"../foundation-element\";\nclass _TextField extends FoundationElement {\n}\n/**\n * A form-associated base class for the {@link @microsoft/fast-foundation#(TextField:class)} component.\n *\n * @internal\n */\nexport class FormAssociatedTextField extends FormAssociated(_TextField) {\n constructor() {\n super(...arguments);\n this.proxy = document.createElement(\"input\");\n }\n}\n","/**\n * Text field sub-types\n * @public\n */\nexport var TextFieldType;\n(function (TextFieldType) {\n /**\n * An email TextField\n */\n TextFieldType[\"email\"] = \"email\";\n /**\n * A password TextField\n */\n TextFieldType[\"password\"] = \"password\";\n /**\n * A telephone TextField\n */\n TextFieldType[\"tel\"] = \"tel\";\n /**\n * A text TextField\n */\n TextFieldType[\"text\"] = \"text\";\n /**\n * A URL TextField\n */\n TextFieldType[\"url\"] = \"url\";\n})(TextFieldType || (TextFieldType = {}));\n","import { __decorate } from \"tslib\";\nimport { attr, DOM, nullableNumberConverter, observable } from \"@microsoft/fast-element\";\nimport { ARIAGlobalStatesAndProperties, StartEnd, } from \"../patterns/index\";\nimport { applyMixins } from \"../utilities/index\";\nimport { FormAssociatedTextField } from \"./text-field.form-associated\";\nimport { TextFieldType } from \"./text-field.options\";\nexport { TextFieldType };\n/**\n * A Text Field Custom HTML Element.\n * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/text | <input type=\"text\" /> element }.\n *\n * @public\n */\nexport class TextField extends FormAssociatedTextField {\n constructor() {\n super(...arguments);\n /**\n * Allows setting a type or mode of text.\n * @public\n * @remarks\n * HTML Attribute: type\n */\n this.type = TextFieldType.text;\n }\n readOnlyChanged() {\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.readOnly = this.readOnly;\n this.validate();\n }\n }\n autofocusChanged() {\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.autofocus = this.autofocus;\n this.validate();\n }\n }\n placeholderChanged() {\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.placeholder = this.placeholder;\n }\n }\n typeChanged() {\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.type = this.type;\n this.validate();\n }\n }\n listChanged() {\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.setAttribute(\"list\", this.list);\n this.validate();\n }\n }\n maxlengthChanged() {\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.maxLength = this.maxlength;\n this.validate();\n }\n }\n minlengthChanged() {\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.minLength = this.minlength;\n this.validate();\n }\n }\n patternChanged() {\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.pattern = this.pattern;\n this.validate();\n }\n }\n sizeChanged() {\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.size = this.size;\n }\n }\n spellcheckChanged() {\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.spellcheck = this.spellcheck;\n }\n }\n /**\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n this.proxy.setAttribute(\"type\", this.type);\n this.validate();\n if (this.autofocus) {\n DOM.queueUpdate(() => {\n this.focus();\n });\n }\n }\n /**\n * Handles the internal control's `input` event\n * @internal\n */\n handleTextInput() {\n this.value = this.control.value;\n }\n /**\n * Change event handler for inner control.\n * @remarks\n * \"Change\" events are not `composable` so they will not\n * permeate the shadow DOM boundary. This fn effectively proxies\n * the change event, emitting a `change` event whenever the internal\n * control emits a `change` event\n * @internal\n */\n handleChange() {\n this.$emit(\"change\");\n }\n}\n__decorate([\n attr({ attribute: \"readonly\", mode: \"boolean\" })\n], TextField.prototype, \"readOnly\", void 0);\n__decorate([\n attr({ mode: \"boolean\" })\n], TextField.prototype, \"autofocus\", void 0);\n__decorate([\n attr\n], TextField.prototype, \"placeholder\", void 0);\n__decorate([\n attr\n], TextField.prototype, \"type\", void 0);\n__decorate([\n attr\n], TextField.prototype, \"list\", void 0);\n__decorate([\n attr({ converter: nullableNumberConverter })\n], TextField.prototype, \"maxlength\", void 0);\n__decorate([\n attr({ converter: nullableNumberConverter })\n], TextField.prototype, \"minlength\", void 0);\n__decorate([\n attr\n], TextField.prototype, \"pattern\", void 0);\n__decorate([\n attr({ converter: nullableNumberConverter })\n], TextField.prototype, \"size\", void 0);\n__decorate([\n attr({ mode: \"boolean\" })\n], TextField.prototype, \"spellcheck\", void 0);\n__decorate([\n observable\n], TextField.prototype, \"defaultSlottedNodes\", void 0);\n/**\n * Includes ARIA states and properties relating to the ARIA textbox role\n *\n * @public\n */\nexport class DelegatesARIATextbox {\n}\napplyMixins(DelegatesARIATextbox, ARIAGlobalStatesAndProperties);\napplyMixins(TextField, StartEnd, DelegatesARIATextbox);\n","import { FormAssociated } from \"../form-associated/form-associated\";\nimport { FoundationElement } from \"../foundation-element\";\nclass _NumberField extends FoundationElement {\n}\n/**\n * A form-associated base class for the {@link @microsoft/fast-foundation#(NumberField:class)} component.\n *\n * @internal\n */\nexport class FormAssociatedNumberField extends FormAssociated(_NumberField) {\n constructor() {\n super(...arguments);\n this.proxy = document.createElement(\"input\");\n }\n}\n","import { __decorate } from \"tslib\";\nimport { attr, DOM, nullableNumberConverter, observable, } from \"@microsoft/fast-element\";\nimport { keyArrowDown, keyArrowUp } from \"@microsoft/fast-web-utilities\";\nimport { StartEnd } from \"../patterns/index\";\nimport { applyMixins } from \"../utilities/index\";\nimport { DelegatesARIATextbox } from \"../text-field/index\";\nimport { FormAssociatedNumberField } from \"./number-field.form-associated\";\n/**\n * A Number Field Custom HTML Element.\n * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number | <input type=\"number\" /> element }.\n *\n * @public\n */\nexport class NumberField extends FormAssociatedNumberField {\n constructor() {\n super(...arguments);\n /**\n * When true, spin buttons will not be rendered\n * @public\n * @remarks\n * HTML Attribute: autofocus\n */\n this.hideStep = false;\n /**\n * Amount to increment or decrement the value by\n * @public\n * @remarks\n * HTMLAttribute: step\n */\n this.step = 1;\n /**\n * Flag to indicate that the value change is from the user input\n * @internal\n */\n this.isUserInput = false;\n }\n /**\n * Ensures that the max is greater than the min and that the value\n * is less than the max\n * @param previous - the previous max value\n * @param next - updated max value\n *\n * @internal\n */\n maxChanged(previous, next) {\n var _a;\n this.max = Math.max(next, (_a = this.min) !== null && _a !== void 0 ? _a : next);\n const min = Math.min(this.min, this.max);\n if (this.min !== undefined && this.min !== min) {\n this.min = min;\n }\n this.value = this.getValidValue(this.value);\n }\n /**\n * Ensures that the min is less than the max and that the value\n * is greater than the min\n * @param previous - previous min value\n * @param next - updated min value\n *\n * @internal\n */\n minChanged(previous, next) {\n var _a;\n this.min = Math.min(next, (_a = this.max) !== null && _a !== void 0 ? _a : next);\n const max = Math.max(this.min, this.max);\n if (this.max !== undefined && this.max !== max) {\n this.max = max;\n }\n this.value = this.getValidValue(this.value);\n }\n /**\n * The value property, typed as a number.\n *\n * @public\n */\n get valueAsNumber() {\n return parseFloat(super.value);\n }\n set valueAsNumber(next) {\n this.value = next.toString();\n }\n /**\n * Validates that the value is a number between the min and max\n * @param previous - previous stored value\n * @param next - value being updated\n * @param updateControl - should the text field be updated with value, defaults to true\n * @internal\n */\n valueChanged(previous, next) {\n this.value = this.getValidValue(next);\n if (next !== this.value) {\n return;\n }\n if (this.control && !this.isUserInput) {\n this.control.value = this.value;\n }\n super.valueChanged(previous, this.value);\n if (previous !== undefined && !this.isUserInput) {\n this.$emit(\"input\");\n this.$emit(\"change\");\n }\n this.isUserInput = false;\n }\n /**\n * Sets the internal value to a valid number between the min and max properties\n * @param value - user input\n *\n * @internal\n */\n getValidValue(value) {\n var _a, _b;\n let validValue = parseFloat(parseFloat(value).toPrecision(12));\n if (isNaN(validValue)) {\n validValue = \"\";\n }\n else {\n validValue = Math.min(validValue, (_a = this.max) !== null && _a !== void 0 ? _a : validValue);\n validValue = Math.max(validValue, (_b = this.min) !== null && _b !== void 0 ? _b : validValue).toString();\n }\n return validValue;\n }\n /**\n * Increments the value using the step value\n *\n * @public\n */\n stepUp() {\n const value = parseFloat(this.value);\n const stepUpValue = !isNaN(value)\n ? value + this.step\n : this.min > 0\n ? this.min\n : this.max < 0\n ? this.max\n : !this.min\n ? this.step\n : 0;\n this.value = stepUpValue.toString();\n }\n /**\n * Decrements the value using the step value\n *\n * @public\n */\n stepDown() {\n const value = parseFloat(this.value);\n const stepDownValue = !isNaN(value)\n ? value - this.step\n : this.min > 0\n ? this.min\n : this.max < 0\n ? this.max\n : !this.min\n ? 0 - this.step\n : 0;\n this.value = stepDownValue.toString();\n }\n /**\n * Sets up the initial state of the number field\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n this.proxy.setAttribute(\"type\", \"number\");\n this.validate();\n this.control.value = this.value;\n if (this.autofocus) {\n DOM.queueUpdate(() => {\n this.focus();\n });\n }\n }\n /**\n * Handles the internal control's `input` event\n * @internal\n */\n handleTextInput() {\n this.control.value = this.control.value.replace(/[^0-9\\-+e.]/g, \"\");\n this.isUserInput = true;\n this.value = this.control.value;\n }\n /**\n * Change event handler for inner control.\n * @remarks\n * \"Change\" events are not `composable` so they will not\n * permeate the shadow DOM boundary. This fn effectively proxies\n * the change event, emitting a `change` event whenever the internal\n * control emits a `change` event\n * @internal\n */\n handleChange() {\n this.$emit(\"change\");\n }\n /**\n * Handles the internal control's `keydown` event\n * @internal\n */\n handleKeyDown(e) {\n const key = e.key;\n switch (key) {\n case keyArrowUp:\n this.stepUp();\n return false;\n case keyArrowDown:\n this.stepDown();\n return false;\n }\n return true;\n }\n /**\n * Handles populating the input field with a validated value when\n * leaving the input field.\n * @internal\n */\n handleBlur() {\n this.control.value = this.value;\n }\n}\n__decorate([\n attr({ attribute: \"readonly\", mode: \"boolean\" })\n], NumberField.prototype, \"readOnly\", void 0);\n__decorate([\n attr({ mode: \"boolean\" })\n], NumberField.prototype, \"autofocus\", void 0);\n__decorate([\n attr({ attribute: \"hide-step\", mode: \"boolean\" })\n], NumberField.prototype, \"hideStep\", void 0);\n__decorate([\n attr\n], NumberField.prototype, \"placeholder\", void 0);\n__decorate([\n attr\n], NumberField.prototype, \"list\", void 0);\n__decorate([\n attr({ converter: nullableNumberConverter })\n], NumberField.prototype, \"maxlength\", void 0);\n__decorate([\n attr({ converter: nullableNumberConverter })\n], NumberField.prototype, \"minlength\", void 0);\n__decorate([\n attr({ converter: nullableNumberConverter })\n], NumberField.prototype, \"size\", void 0);\n__decorate([\n attr({ converter: nullableNumberConverter })\n], NumberField.prototype, \"step\", void 0);\n__decorate([\n attr({ converter: nullableNumberConverter })\n], NumberField.prototype, \"max\", void 0);\n__decorate([\n attr({ converter: nullableNumberConverter })\n], NumberField.prototype, \"min\", void 0);\n__decorate([\n observable\n], NumberField.prototype, \"defaultSlottedNodes\", void 0);\napplyMixins(NumberField, StartEnd, DelegatesARIATextbox);\n","import { Listbox } from \"../listbox/listbox\";\nimport { FormAssociated } from \"../form-associated/form-associated\";\nclass _Select extends Listbox {\n}\n/**\n * A form-associated base class for the {@link @microsoft/fast-foundation#(Select:class)} component.\n *\n * @internal\n */\nexport class FormAssociatedSelect extends FormAssociated(_Select) {\n constructor() {\n super(...arguments);\n this.proxy = document.createElement(\"select\");\n }\n}\n","import { __decorate } from \"tslib\";\nimport { attr, DOM, Observable, observable } from \"@microsoft/fast-element\";\nimport { uniqueId } from \"@microsoft/fast-web-utilities\";\nimport { DelegatesARIAListbox, Listbox } from \"../listbox\";\nimport { StartEnd } from \"../patterns/start-end\";\nimport { applyMixins } from \"../utilities/apply-mixins\";\nimport { FormAssociatedSelect } from \"./select.form-associated\";\nimport { SelectPosition } from \"./select.options\";\n/**\n * A Select Custom HTML Element.\n * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#select | ARIA select }.\n *\n * @public\n */\nexport class Select extends FormAssociatedSelect {\n constructor() {\n super(...arguments);\n /**\n * The open attribute.\n *\n * @internal\n */\n this.open = false;\n /**\n * Indicates the initial state of the position attribute.\n *\n * @internal\n */\n this.forcedPosition = false;\n /**\n * Holds the current state for the calculated position of the listbox.\n *\n * @public\n */\n this.position = SelectPosition.below;\n /**\n * The unique id for the internal listbox element.\n *\n * @internal\n */\n this.listboxId = uniqueId(\"listbox-\");\n /**\n * The max height for the listbox when opened.\n *\n * @internal\n */\n this.maxHeight = 0;\n /**\n * The value displayed on the button.\n *\n * @public\n */\n this.displayValue = \"\";\n }\n openChanged() {\n if (this.open) {\n this.ariaControls = this.listboxId;\n this.ariaExpanded = \"true\";\n this.setPositioning();\n this.focusAndScrollOptionIntoView();\n this.indexWhenOpened = this.selectedIndex;\n // focus is directed to the element when `open` is changed programmatically\n DOM.queueUpdate(() => this.focus());\n return;\n }\n this.ariaControls = \"\";\n this.ariaExpanded = \"false\";\n }\n /**\n * The value property.\n *\n * @public\n */\n get value() {\n Observable.track(this, \"value\");\n return this._value;\n }\n set value(next) {\n var _a;\n const prev = `${this._value}`;\n if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.length) {\n const selectedIndex = this.options.findIndex(el => el.value === next);\n const prevSelectedOption = this.options[this.selectedIndex];\n const nextSelectedOption = this.options[selectedIndex];\n const prevSelectedValue = prevSelectedOption\n ? prevSelectedOption.value\n : null;\n const nextSelectedValue = nextSelectedOption\n ? nextSelectedOption.value\n : null;\n if (selectedIndex === -1 || prevSelectedValue !== nextSelectedValue) {\n next = \"\";\n this.selectedIndex = selectedIndex;\n }\n if (this.firstSelectedOption) {\n next = this.firstSelectedOption.value;\n }\n }\n if (prev !== next) {\n this._value = next;\n super.valueChanged(prev, next);\n Observable.notify(this, \"value\");\n }\n }\n updateValue(shouldEmit) {\n if (this.$fastController.isConnected) {\n this.value = this.firstSelectedOption ? this.firstSelectedOption.value : \"\";\n this.displayValue = this.firstSelectedOption\n ? this.firstSelectedOption.textContent || this.firstSelectedOption.value\n : this.value;\n }\n if (shouldEmit) {\n this.$emit(\"input\");\n this.$emit(\"change\", this, {\n bubbles: true,\n composed: undefined,\n });\n }\n }\n /**\n * Updates the proxy value when the selected index changes.\n *\n * @param prev - the previous selected index\n * @param next - the next selected index\n *\n * @internal\n */\n selectedIndexChanged(prev, next) {\n super.selectedIndexChanged(prev, next);\n this.updateValue();\n }\n positionChanged() {\n this.positionAttribute = this.position;\n this.setPositioning();\n }\n /**\n * Calculate and apply listbox positioning based on available viewport space.\n *\n * @param force - direction to force the listbox to display\n * @public\n */\n setPositioning() {\n const currentBox = this.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n const availableBottom = viewportHeight - currentBox.bottom;\n this.position = this.forcedPosition\n ? this.positionAttribute\n : currentBox.top > availableBottom\n ? SelectPosition.above\n : SelectPosition.below;\n this.positionAttribute = this.forcedPosition\n ? this.positionAttribute\n : this.position;\n this.maxHeight =\n this.position === SelectPosition.above ? ~~currentBox.top : ~~availableBottom;\n }\n maxHeightChanged() {\n if (this.listbox) {\n this.listbox.style.setProperty(\"--max-height\", `${this.maxHeight}px`);\n }\n }\n /**\n * Synchronize the `aria-disabled` property when the `disabled` property changes.\n *\n * @param prev - The previous disabled value\n * @param next - The next disabled value\n *\n * @internal\n */\n disabledChanged(prev, next) {\n if (super.disabledChanged) {\n super.disabledChanged(prev, next);\n }\n this.ariaDisabled = this.disabled ? \"true\" : \"false\";\n }\n /**\n * Reset the element to its first selectable option when its parent form is reset.\n *\n * @internal\n */\n formResetCallback() {\n this.setProxyOptions();\n // Call the base class's implementation setDefaultSelectedOption instead of the select's\n // override, in order to reset the selectedIndex without using the value property.\n super.setDefaultSelectedOption();\n if (this.selectedIndex === -1) {\n this.selectedIndex = 0;\n }\n }\n /**\n * Handle opening and closing the listbox when the select is clicked.\n *\n * @param e - the mouse event\n * @internal\n */\n clickHandler(e) {\n // do nothing if the select is disabled\n if (this.disabled) {\n return;\n }\n if (this.open) {\n const captured = e.target.closest(`option,[role=option]`);\n if (captured && captured.disabled) {\n return;\n }\n }\n super.clickHandler(e);\n this.open = !this.open;\n if (!this.open && this.indexWhenOpened !== this.selectedIndex) {\n this.updateValue(true);\n }\n return true;\n }\n /**\n * Handle focus state when the element or its children lose focus.\n *\n * @param e - The focus event\n * @internal\n */\n focusoutHandler(e) {\n var _a;\n if (!this.open) {\n return true;\n }\n const focusTarget = e.relatedTarget;\n if (this.isSameNode(focusTarget)) {\n this.focus();\n return;\n }\n if (!((_a = this.options) === null || _a === void 0 ? void 0 : _a.includes(focusTarget))) {\n this.open = false;\n if (this.indexWhenOpened !== this.selectedIndex) {\n this.updateValue(true);\n }\n }\n }\n /**\n * Synchronize the form-associated proxy and update the value property of the element.\n *\n * @param prev - the previous collection of slotted option elements\n * @param next - the next collection of slotted option elements\n *\n * @internal\n */\n slottedOptionsChanged(prev, next) {\n super.slottedOptionsChanged(prev, next);\n this.setProxyOptions();\n this.updateValue();\n }\n setDefaultSelectedOption() {\n var _a;\n const options = (_a = this.options) !== null && _a !== void 0 ? _a : Array.from(this.children).filter(Listbox.slottedOptionFilter);\n const selectedIndex = options === null || options === void 0 ? void 0 : options.findIndex(el => el.hasAttribute(\"selected\") || el.selected || el.value === this.value);\n if (selectedIndex !== -1) {\n this.selectedIndex = selectedIndex;\n return;\n }\n this.selectedIndex = 0;\n }\n /**\n * Reset and fill the proxy to match the component's options.\n *\n * @internal\n */\n setProxyOptions() {\n if (this.proxy instanceof HTMLSelectElement && this.options) {\n this.proxy.options.length = 0;\n this.options.forEach(option => {\n const proxyOption = option.proxy ||\n (option instanceof HTMLOptionElement ? option.cloneNode() : null);\n if (proxyOption) {\n this.proxy.appendChild(proxyOption);\n }\n });\n }\n }\n /**\n * Handle keyboard interaction for the select.\n *\n * @param e - the keyboard event\n * @internal\n */\n keydownHandler(e) {\n super.keydownHandler(e);\n const key = e.key || e.key.charCodeAt(0);\n switch (key) {\n case \" \": {\n if (this.typeaheadExpired) {\n e.preventDefault();\n this.open = !this.open;\n }\n break;\n }\n case \"Enter\": {\n e.preventDefault();\n this.open = !this.open;\n break;\n }\n case \"Escape\": {\n if (this.open) {\n e.preventDefault();\n this.open = false;\n }\n break;\n }\n case \"Tab\": {\n if (!this.open) {\n return true;\n }\n e.preventDefault();\n this.open = false;\n }\n }\n if (!this.open && this.indexWhenOpened !== this.selectedIndex) {\n this.updateValue(true);\n this.indexWhenOpened = this.selectedIndex;\n }\n return true;\n }\n connectedCallback() {\n super.connectedCallback();\n this.forcedPosition = !!this.positionAttribute;\n }\n}\n__decorate([\n attr({ attribute: \"open\", mode: \"boolean\" })\n], Select.prototype, \"open\", void 0);\n__decorate([\n attr({ attribute: \"position\" })\n], Select.prototype, \"positionAttribute\", void 0);\n__decorate([\n observable\n], Select.prototype, \"position\", void 0);\n__decorate([\n observable\n], Select.prototype, \"maxHeight\", void 0);\n__decorate([\n observable\n], Select.prototype, \"displayValue\", void 0);\n/**\n * Includes ARIA states and properties relating to the ARIA select role.\n *\n * @public\n */\nexport class DelegatesARIASelect {\n}\n__decorate([\n observable\n], DelegatesARIASelect.prototype, \"ariaControls\", void 0);\napplyMixins(DelegatesARIASelect, DelegatesARIAListbox);\napplyMixins(Select, StartEnd, DelegatesARIASelect);\n","import { html, ref, slotted } from \"@microsoft/fast-element\";\nimport { Listbox } from \"../listbox/listbox\";\nimport { endSlotTemplate, startSlotTemplate } from \"../patterns/start-end\";\n/**\n * The template for the {@link @microsoft/fast-foundation#(Select:class)} component.\n * @public\n */\nexport const selectTemplate = (context, definition) => html `\n <template\n class=\"${x => (x.open ? \"open\" : \"\")} ${x => x.disabled ? \"disabled\" : \"\"} ${x => x.position}\"\n aria-activedescendant=\"${x => x.ariaActiveDescendant}\"\n aria-controls=\"${x => x.ariaControls}\"\n aria-disabled=\"${x => x.ariaDisabled}\"\n aria-expanded=\"${x => x.ariaExpanded}\"\n aria-haspopup=\"listbox\"\n ?open=\"${x => x.open}\"\n role=\"combobox\"\n tabindex=\"${x => (!x.disabled ? \"0\" : null)}\"\n @click=\"${(x, c) => x.clickHandler(c.event)}\"\n @focusout=\"${(x, c) => x.focusoutHandler(c.event)}\"\n @keydown=\"${(x, c) => x.keydownHandler(c.event)}\"\n >\n <div class=\"control\" part=\"control\" ?disabled=\"${x => x.disabled}\">\n ${startSlotTemplate(context, definition)}\n <slot name=\"button-container\">\n <div class=\"selected-value\" part=\"selected-value\">\n <slot name=\"selected-value\">${x => x.displayValue}</slot>\n </div>\n <div aria-hidden=\"true\" class=\"indicator\" part=\"indicator\">\n <slot name=\"indicator\">\n ${definition.indicator || \"\"}\n </slot>\n </div>\n </slot>\n ${endSlotTemplate(context, definition)}\n </div>\n <div\n class=\"listbox\"\n id=\"${x => x.listboxId}\"\n part=\"listbox\"\n role=\"listbox\"\n ?disabled=\"${x => x.disabled}\"\n ?hidden=\"${x => !x.open}\"\n ${ref(\"listbox\")}\n >\n <slot\n ${slotted({\n filter: Listbox.slottedOptionFilter,\n flatten: true,\n property: \"slottedOptions\",\n})}\n ></slot>\n </div>\n </template>\n`;\n","import { CheckableFormAssociated } from \"../form-associated/form-associated\";\nimport { FoundationElement } from \"../foundation-element\";\nclass _Switch extends FoundationElement {\n}\n/**\n * A form-associated base class for the {@link @microsoft/fast-foundation#(Switch:class)} component.\n *\n * @internal\n */\nexport class FormAssociatedSwitch extends CheckableFormAssociated(_Switch) {\n constructor() {\n super(...arguments);\n this.proxy = document.createElement(\"input\");\n }\n}\n","import { __decorate } from \"tslib\";\nimport { attr, observable } from \"@microsoft/fast-element\";\nimport { keyEnter, keySpace } from \"@microsoft/fast-web-utilities\";\nimport { FormAssociatedSwitch } from \"./switch.form-associated\";\n/**\n * A Switch Custom HTML Element.\n * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#switch | ARIA switch }.\n *\n * @public\n */\nexport class Switch extends FormAssociatedSwitch {\n constructor() {\n super();\n /**\n * The element's value to be included in form submission when checked.\n * Default to \"on\" to reach parity with input[type=\"checkbox\"]\n *\n * @internal\n */\n this.initialValue = \"on\";\n /**\n * @internal\n */\n this.keypressHandler = (e) => {\n switch (e.key) {\n case keyEnter:\n case keySpace:\n this.checked = !this.checked;\n break;\n }\n };\n /**\n * @internal\n */\n this.clickHandler = (e) => {\n if (!this.disabled && !this.readOnly) {\n this.checked = !this.checked;\n }\n };\n this.proxy.setAttribute(\"type\", \"checkbox\");\n }\n readOnlyChanged() {\n if (this.proxy instanceof HTMLInputElement) {\n this.proxy.readOnly = this.readOnly;\n }\n this.readOnly\n ? this.classList.add(\"readonly\")\n : this.classList.remove(\"readonly\");\n }\n /**\n * @internal\n */\n checkedChanged(prev, next) {\n super.checkedChanged(prev, next);\n /**\n * @deprecated - this behavior already exists in the template and should not exist in the class.\n */\n this.checked ? this.classList.add(\"checked\") : this.classList.remove(\"checked\");\n }\n}\n__decorate([\n attr({ attribute: \"readonly\", mode: \"boolean\" })\n], Switch.prototype, \"readOnly\", void 0);\n__decorate([\n observable\n], Switch.prototype, \"defaultSlottedNodes\", void 0);\n","import { html } from \"@microsoft/fast-element\";\n/**\n * The template for the {@link @microsoft/fast-foundation#TabPanel} component.\n * @public\n */\nexport const tabPanelTemplate = (context, definition) => html `\n <template slot=\"tabpanel\" role=\"tabpanel\">\n <slot></slot>\n </template>\n`;\n","import { FoundationElement } from \"../foundation-element\";\n/**\n * A TabPanel Component to be used with {@link @microsoft/fast-foundation#(Tabs:class)}\n * @public\n */\nexport class TabPanel extends FoundationElement {\n}\n","import { html } from \"@microsoft/fast-element\";\n/**\n * The template for the {@link @microsoft/fast-foundation#Tab} component.\n * @public\n */\nexport const tabTemplate = (context, definition) => html `\n <template slot=\"tab\" role=\"tab\" aria-disabled=\"${x => x.disabled}\">\n <slot></slot>\n </template>\n`;\n","import { __decorate } from \"tslib\";\nimport { attr } from \"@microsoft/fast-element\";\nimport { FoundationElement } from \"../foundation-element\";\n/**\n * A Tab Component to be used with {@link @microsoft/fast-foundation#(Tabs:class)}\n * @public\n */\nexport class Tab extends FoundationElement {\n}\n__decorate([\n attr({ mode: \"boolean\" })\n], Tab.prototype, \"disabled\", void 0);\n","import { html, ref, slotted, when } from \"@microsoft/fast-element\";\nimport { endSlotTemplate, startSlotTemplate } from \"../patterns/start-end\";\n/**\n * The template for the {@link @microsoft/fast-foundation#(Tabs:class)} component.\n * @public\n */\nexport const tabsTemplate = (context, definition) => html `\n <template class=\"${x => x.orientation}\">\n ${startSlotTemplate(context, definition)}\n <div class=\"tablist\" part=\"tablist\" role=\"tablist\">\n <slot class=\"tab\" name=\"tab\" part=\"tab\" ${slotted(\"tabs\")}></slot>\n\n ${when(x => x.showActiveIndicator, html `\n <div\n ${ref(\"activeIndicatorRef\")}\n class=\"activeIndicator\"\n part=\"activeIndicator\"\n ></div>\n `)}\n </div>\n ${endSlotTemplate(context, definition)}\n <div class=\"tabpanel\">\n <slot name=\"tabpanel\" part=\"tabpanel\" ${slotted(\"tabpanels\")}></slot>\n </div>\n </template>\n`;\n","import { __decorate } from \"tslib\";\nimport { attr, observable } from \"@microsoft/fast-element\";\nimport { keyArrowDown, keyArrowLeft, keyArrowRight, keyArrowUp, keyEnd, keyHome, wrapInBounds, } from \"@microsoft/fast-web-utilities\";\nimport { StartEnd } from \"../patterns/start-end\";\nimport { applyMixins } from \"../utilities/apply-mixins\";\nimport { FoundationElement } from \"../foundation-element\";\n/**\n * The orientation of the {@link @microsoft/fast-foundation#(Tabs:class)} component\n * @public\n */\nexport var TabsOrientation;\n(function (TabsOrientation) {\n TabsOrientation[\"vertical\"] = \"vertical\";\n TabsOrientation[\"horizontal\"] = \"horizontal\";\n})(TabsOrientation || (TabsOrientation = {}));\n/**\n * A Tabs Custom HTML Element.\n * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#tablist | ARIA tablist }.\n *\n * @public\n */\nexport class Tabs extends FoundationElement {\n constructor() {\n super(...arguments);\n /**\n * The orientation\n * @public\n * @remarks\n * HTML Attribute: orientation\n */\n this.orientation = TabsOrientation.horizontal;\n /**\n * Whether or not to show the active indicator\n * @public\n * @remarks\n * HTML Attribute: activeindicator\n */\n this.activeindicator = true;\n /**\n * @internal\n */\n this.showActiveIndicator = true;\n this.prevActiveTabIndex = 0;\n this.activeTabIndex = 0;\n this.ticking = false;\n this.change = () => {\n this.$emit(\"change\", this.activetab);\n };\n this.isDisabledElement = (el) => {\n return el.getAttribute(\"aria-disabled\") === \"true\";\n };\n this.isFocusableElement = (el) => {\n return !this.isDisabledElement(el);\n };\n this.setTabs = () => {\n const gridHorizontalProperty = \"gridColumn\";\n const gridVerticalProperty = \"gridRow\";\n const gridProperty = this.isHorizontal()\n ? gridHorizontalProperty\n : gridVerticalProperty;\n this.tabIds = this.getTabIds();\n this.tabpanelIds = this.getTabPanelIds();\n this.activeTabIndex = this.getActiveIndex();\n this.showActiveIndicator = false;\n this.tabs.forEach((tab, index) => {\n if (tab.slot === \"tab\") {\n const isActiveTab = this.activeTabIndex === index && this.isFocusableElement(tab);\n if (this.activeindicator && this.isFocusableElement(tab)) {\n this.showActiveIndicator = true;\n }\n const tabId = this.tabIds[index];\n const tabpanelId = this.tabpanelIds[index];\n tab.setAttribute(\"id\", typeof tabId !== \"string\" ? `tab-${index + 1}` : tabId);\n tab.setAttribute(\"aria-selected\", isActiveTab ? \"true\" : \"false\");\n tab.setAttribute(\"aria-controls\", typeof tabpanelId !== \"string\" ? `panel-${index + 1}` : tabpanelId);\n tab.addEventListener(\"click\", this.handleTabClick);\n tab.addEventListener(\"keydown\", this.handleTabKeyDown);\n tab.setAttribute(\"tabindex\", isActiveTab ? \"0\" : \"-1\");\n if (isActiveTab) {\n this.activetab = tab;\n }\n }\n // If the original property isn't emptied out,\n // the next set will morph into a grid-area style setting that is not what we want\n tab.style[gridHorizontalProperty] = \"\";\n tab.style[gridVerticalProperty] = \"\";\n tab.style[gridProperty] = `${index + 1}`;\n !this.isHorizontal()\n ? tab.classList.add(\"vertical\")\n : tab.classList.remove(\"vertical\");\n });\n };\n this.setTabPanels = () => {\n this.tabIds = this.getTabIds();\n this.tabpanelIds = this.getTabPanelIds();\n this.tabpanels.forEach((tabpanel, index) => {\n const tabId = this.tabIds[index];\n const tabpanelId = this.tabpanelIds[index];\n tabpanel.setAttribute(\"id\", typeof tabpanelId !== \"string\" ? `panel-${index + 1}` : tabpanelId);\n tabpanel.setAttribute(\"aria-labelledby\", typeof tabId !== \"string\" ? `tab-${index + 1}` : tabId);\n this.activeTabIndex !== index\n ? tabpanel.setAttribute(\"hidden\", \"\")\n : tabpanel.removeAttribute(\"hidden\");\n });\n };\n this.handleTabClick = (event) => {\n const selectedTab = event.currentTarget;\n if (selectedTab.nodeType === 1 && this.isFocusableElement(selectedTab)) {\n this.prevActiveTabIndex = this.activeTabIndex;\n this.activeTabIndex = this.tabs.indexOf(selectedTab);\n this.setComponent();\n }\n };\n this.handleTabKeyDown = (event) => {\n if (this.isHorizontal()) {\n switch (event.key) {\n case keyArrowLeft:\n event.preventDefault();\n this.adjustBackward(event);\n break;\n case keyArrowRight:\n event.preventDefault();\n this.adjustForward(event);\n break;\n }\n }\n else {\n switch (event.key) {\n case keyArrowUp:\n event.preventDefault();\n this.adjustBackward(event);\n break;\n case keyArrowDown:\n event.preventDefault();\n this.adjustForward(event);\n break;\n }\n }\n switch (event.key) {\n case keyHome:\n event.preventDefault();\n this.adjust(-this.activeTabIndex);\n break;\n case keyEnd:\n event.preventDefault();\n this.adjust(this.tabs.length - this.activeTabIndex - 1);\n break;\n }\n };\n this.adjustForward = (e) => {\n const group = this.tabs;\n let index = 0;\n index = this.activetab ? group.indexOf(this.activetab) + 1 : 1;\n if (index === group.length) {\n index = 0;\n }\n while (index < group.length && group.length > 1) {\n if (this.isFocusableElement(group[index])) {\n this.moveToTabByIndex(group, index);\n break;\n }\n else if (this.activetab && index === group.indexOf(this.activetab)) {\n break;\n }\n else if (index + 1 >= group.length) {\n index = 0;\n }\n else {\n index += 1;\n }\n }\n };\n this.adjustBackward = (e) => {\n const group = this.tabs;\n let index = 0;\n index = this.activetab ? group.indexOf(this.activetab) - 1 : 0;\n index = index < 0 ? group.length - 1 : index;\n while (index >= 0 && group.length > 1) {\n if (this.isFocusableElement(group[index])) {\n this.moveToTabByIndex(group, index);\n break;\n }\n else if (index - 1 < 0) {\n index = group.length - 1;\n }\n else {\n index -= 1;\n }\n }\n };\n this.moveToTabByIndex = (group, index) => {\n const tab = group[index];\n this.activetab = tab;\n this.prevActiveTabIndex = this.activeTabIndex;\n this.activeTabIndex = index;\n tab.focus();\n this.setComponent();\n };\n }\n /**\n * @internal\n */\n orientationChanged() {\n if (this.$fastController.isConnected) {\n this.setTabs();\n this.setTabPanels();\n this.handleActiveIndicatorPosition();\n }\n }\n /**\n * @internal\n */\n activeidChanged(oldValue, newValue) {\n if (this.$fastController.isConnected &&\n this.tabs.length <= this.tabpanels.length) {\n this.prevActiveTabIndex = this.tabs.findIndex((item) => item.id === oldValue);\n this.setTabs();\n this.setTabPanels();\n this.handleActiveIndicatorPosition();\n }\n }\n /**\n * @internal\n */\n tabsChanged() {\n if (this.$fastController.isConnected &&\n this.tabs.length <= this.tabpanels.length) {\n this.setTabs();\n this.setTabPanels();\n this.handleActiveIndicatorPosition();\n }\n }\n /**\n * @internal\n */\n tabpanelsChanged() {\n if (this.$fastController.isConnected &&\n this.tabpanels.length <= this.tabs.length) {\n this.setTabs();\n this.setTabPanels();\n this.handleActiveIndicatorPosition();\n }\n }\n getActiveIndex() {\n const id = this.activeid;\n if (id !== undefined) {\n return this.tabIds.indexOf(this.activeid) === -1\n ? 0\n : this.tabIds.indexOf(this.activeid);\n }\n else {\n return 0;\n }\n }\n getTabIds() {\n return this.tabs.map((tab) => {\n return tab.getAttribute(\"id\");\n });\n }\n getTabPanelIds() {\n return this.tabpanels.map((tabPanel) => {\n return tabPanel.getAttribute(\"id\");\n });\n }\n setComponent() {\n if (this.activeTabIndex !== this.prevActiveTabIndex) {\n this.activeid = this.tabIds[this.activeTabIndex];\n this.focusTab();\n this.change();\n }\n }\n isHorizontal() {\n return this.orientation === TabsOrientation.horizontal;\n }\n handleActiveIndicatorPosition() {\n // Ignore if we click twice on the same tab\n if (this.showActiveIndicator &&\n this.activeindicator &&\n this.activeTabIndex !== this.prevActiveTabIndex) {\n if (this.ticking) {\n this.ticking = false;\n }\n else {\n this.ticking = true;\n this.animateActiveIndicator();\n }\n }\n }\n animateActiveIndicator() {\n this.ticking = true;\n const gridProperty = this.isHorizontal() ? \"gridColumn\" : \"gridRow\";\n const translateProperty = this.isHorizontal()\n ? \"translateX\"\n : \"translateY\";\n const offsetProperty = this.isHorizontal() ? \"offsetLeft\" : \"offsetTop\";\n const prev = this.activeIndicatorRef[offsetProperty];\n this.activeIndicatorRef.style[gridProperty] = `${this.activeTabIndex + 1}`;\n const next = this.activeIndicatorRef[offsetProperty];\n this.activeIndicatorRef.style[gridProperty] = `${this.prevActiveTabIndex + 1}`;\n const dif = next - prev;\n this.activeIndicatorRef.style.transform = `${translateProperty}(${dif}px)`;\n this.activeIndicatorRef.classList.add(\"activeIndicatorTransition\");\n this.activeIndicatorRef.addEventListener(\"transitionend\", () => {\n this.ticking = false;\n this.activeIndicatorRef.style[gridProperty] = `${this.activeTabIndex + 1}`;\n this.activeIndicatorRef.style.transform = `${translateProperty}(0px)`;\n this.activeIndicatorRef.classList.remove(\"activeIndicatorTransition\");\n });\n }\n /**\n * The adjust method for FASTTabs\n * @public\n * @remarks\n * This method allows the active index to be adjusted by numerical increments\n */\n adjust(adjustment) {\n this.prevActiveTabIndex = this.activeTabIndex;\n this.activeTabIndex = wrapInBounds(0, this.tabs.length - 1, this.activeTabIndex + adjustment);\n this.setComponent();\n }\n focusTab() {\n this.tabs[this.activeTabIndex].focus();\n }\n /**\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n this.tabIds = this.getTabIds();\n this.tabpanelIds = this.getTabPanelIds();\n this.activeTabIndex = this.getActiveIndex();\n }\n}\n__decorate([\n attr\n], Tabs.prototype, \"orientation\", void 0);\n__decorate([\n attr\n], Tabs.prototype, \"activeid\", void 0);\n__decorate([\n observable\n], Tabs.prototype, \"tabs\", void 0);\n__decorate([\n observable\n], Tabs.prototype, \"tabpanels\", void 0);\n__decorate([\n attr({ mode: \"boolean\" })\n], Tabs.prototype, \"activeindicator\", void 0);\n__decorate([\n observable\n], Tabs.prototype, \"activeIndicatorRef\", void 0);\n__decorate([\n observable\n], Tabs.prototype, \"showActiveIndicator\", void 0);\napplyMixins(Tabs, StartEnd);\n","import { FormAssociated } from \"../form-associated/form-associated\";\nimport { FoundationElement } from \"../foundation-element\";\nclass _TextArea extends FoundationElement {\n}\n/**\n * A form-associated base class for the {@link @microsoft/fast-foundation#(TextArea:class)} component.\n *\n * @internal\n */\nexport class FormAssociatedTextArea extends FormAssociated(_TextArea) {\n constructor() {\n super(...arguments);\n this.proxy = document.createElement(\"textarea\");\n }\n}\n","/**\n * Resize mode for a TextArea\n * @public\n */\nexport var TextAreaResize;\n(function (TextAreaResize) {\n /**\n * No resize.\n */\n TextAreaResize[\"none\"] = \"none\";\n /**\n * Resize vertically and horizontally.\n */\n TextAreaResize[\"both\"] = \"both\";\n /**\n * Resize horizontally.\n */\n TextAreaResize[\"horizontal\"] = \"horizontal\";\n /**\n * Resize vertically.\n */\n TextAreaResize[\"vertical\"] = \"vertical\";\n})(TextAreaResize || (TextAreaResize = {}));\n","import { __decorate } from \"tslib\";\nimport { attr, nullableNumberConverter, observable } from \"@microsoft/fast-element\";\nimport { DelegatesARIATextbox } from \"../text-field/index\";\nimport { applyMixins } from \"../utilities\";\nimport { FormAssociatedTextArea } from \"./text-area.form-associated\";\nimport { TextAreaResize } from \"./text-area.options\";\nexport { TextAreaResize };\n/**\n * A Text Area Custom HTML Element.\n * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea | <textarea> element }.\n *\n * @public\n */\nexport class TextArea extends FormAssociatedTextArea {\n constructor() {\n super(...arguments);\n /**\n * The resize mode of the element.\n * @public\n * @remarks\n * HTML Attribute: resize\n */\n this.resize = TextAreaResize.none;\n /**\n * Sizes the element horizontally by a number of character columns.\n *\n * @public\n * @remarks\n * HTML Attribute: cols\n */\n this.cols = 20;\n /**\n * @internal\n */\n this.handleTextInput = () => {\n this.value = this.control.value;\n };\n }\n readOnlyChanged() {\n if (this.proxy instanceof HTMLTextAreaElement) {\n this.proxy.readOnly = this.readOnly;\n }\n }\n autofocusChanged() {\n if (this.proxy instanceof HTMLTextAreaElement) {\n this.proxy.autofocus = this.autofocus;\n }\n }\n listChanged() {\n if (this.proxy instanceof HTMLTextAreaElement) {\n this.proxy.setAttribute(\"list\", this.list);\n }\n }\n maxlengthChanged() {\n if (this.proxy instanceof HTMLTextAreaElement) {\n this.proxy.maxLength = this.maxlength;\n }\n }\n minlengthChanged() {\n if (this.proxy instanceof HTMLTextAreaElement) {\n this.proxy.minLength = this.minlength;\n }\n }\n spellcheckChanged() {\n if (this.proxy instanceof HTMLTextAreaElement) {\n this.proxy.spellcheck = this.spellcheck;\n }\n }\n /**\n * Change event handler for inner control.\n * @remarks\n * \"Change\" events are not `composable` so they will not\n * permeate the shadow DOM boundary. This fn effectively proxies\n * the change event, emitting a `change` event whenever the internal\n * control emits a `change` event\n * @internal\n */\n handleChange() {\n this.$emit(\"change\");\n }\n}\n__decorate([\n attr({ mode: \"boolean\" })\n], TextArea.prototype, \"readOnly\", void 0);\n__decorate([\n attr\n], TextArea.prototype, \"resize\", void 0);\n__decorate([\n attr({ mode: \"boolean\" })\n], TextArea.prototype, \"autofocus\", void 0);\n__decorate([\n attr({ attribute: \"form\" })\n], TextArea.prototype, \"formId\", void 0);\n__decorate([\n attr\n], TextArea.prototype, \"list\", void 0);\n__decorate([\n attr({ converter: nullableNumberConverter })\n], TextArea.prototype, \"maxlength\", void 0);\n__decorate([\n attr({ converter: nullableNumberConverter })\n], TextArea.prototype, \"minlength\", void 0);\n__decorate([\n attr\n], TextArea.prototype, \"name\", void 0);\n__decorate([\n attr\n], TextArea.prototype, \"placeholder\", void 0);\n__decorate([\n attr({ converter: nullableNumberConverter, mode: \"fromView\" })\n], TextArea.prototype, \"cols\", void 0);\n__decorate([\n attr({ converter: nullableNumberConverter, mode: \"fromView\" })\n], TextArea.prototype, \"rows\", void 0);\n__decorate([\n attr({ mode: \"boolean\" })\n], TextArea.prototype, \"spellcheck\", void 0);\n__decorate([\n observable\n], TextArea.prototype, \"defaultSlottedNodes\", void 0);\napplyMixins(TextArea, DelegatesARIATextbox);\n","import { html, ref, slotted } from \"@microsoft/fast-element\";\nimport { TextAreaResize } from \"./text-area\";\n/**\n * The template for the {@link @microsoft/fast-foundation#(TextArea:class)} component.\n * @public\n */\nexport const textAreaTemplate = (context, definition) => html `\n <template\n class=\"\n ${x => (x.readOnly ? \"readonly\" : \"\")}\n ${x => (x.resize !== TextAreaResize.none ? `resize-${x.resize}` : \"\")}\"\n >\n <label\n part=\"label\"\n for=\"control\"\n class=\"${x => x.defaultSlottedNodes && x.defaultSlottedNodes.length\n ? \"label\"\n : \"label label__hidden\"}\"\n >\n <slot ${slotted(\"defaultSlottedNodes\")}></slot>\n </label>\n <textarea\n part=\"control\"\n class=\"control\"\n id=\"control\"\n ?autofocus=\"${x => x.autofocus}\"\n cols=\"${x => x.cols}\"\n ?disabled=\"${x => x.disabled}\"\n form=\"${x => x.form}\"\n list=\"${x => x.list}\"\n maxlength=\"${x => x.maxlength}\"\n minlength=\"${x => x.minlength}\"\n name=\"${x => x.name}\"\n placeholder=\"${x => x.placeholder}\"\n ?readonly=\"${x => x.readOnly}\"\n ?required=\"${x => x.required}\"\n rows=\"${x => x.rows}\"\n ?spellcheck=\"${x => x.spellcheck}\"\n :value=\"${x => x.value}\"\n aria-atomic=\"${x => x.ariaAtomic}\"\n aria-busy=\"${x => x.ariaBusy}\"\n aria-controls=\"${x => x.ariaControls}\"\n aria-current=\"${x => x.ariaCurrent}\"\n aria-describedby=\"${x => x.ariaDescribedby}\"\n aria-details=\"${x => x.ariaDetails}\"\n aria-disabled=\"${x => x.ariaDisabled}\"\n aria-errormessage=\"${x => x.ariaErrormessage}\"\n aria-flowto=\"${x => x.ariaFlowto}\"\n aria-haspopup=\"${x => x.ariaHaspopup}\"\n aria-hidden=\"${x => x.ariaHidden}\"\n aria-invalid=\"${x => x.ariaInvalid}\"\n aria-keyshortcuts=\"${x => x.ariaKeyshortcuts}\"\n aria-label=\"${x => x.ariaLabel}\"\n aria-labelledby=\"${x => x.ariaLabelledby}\"\n aria-live=\"${x => x.ariaLive}\"\n aria-owns=\"${x => x.ariaOwns}\"\n aria-relevant=\"${x => x.ariaRelevant}\"\n aria-roledescription=\"${x => x.ariaRoledescription}\"\n @input=\"${(x, c) => x.handleTextInput()}\"\n @change=\"${x => x.handleChange()}\"\n ${ref(\"control\")}\n ></textarea>\n </template>\n`;\n","import { children, elements, html, ref, slotted, when } from \"@microsoft/fast-element\";\nimport { endSlotTemplate, startSlotTemplate } from \"../patterns/start-end\";\n/**\n * The template for the {@link @microsoft/fast-foundation#(TreeItem:class)} component.\n * @public\n */\nexport const treeItemTemplate = (context, definition) => html `\n <template\n role=\"treeitem\"\n slot=\"${x => (x.isNestedItem() ? \"item\" : void 0)}\"\n tabindex=\"-1\"\n class=\"${x => (x.expanded ? \"expanded\" : \"\")} ${x => x.selected ? \"selected\" : \"\"} ${x => (x.nested ? \"nested\" : \"\")}\n ${x => (x.disabled ? \"disabled\" : \"\")}\"\n aria-expanded=\"${x => x.childItems && x.childItemLength() > 0 ? x.expanded : void 0}\"\n aria-selected=\"${x => x.selected}\"\n aria-disabled=\"${x => x.disabled}\"\n @focusin=\"${(x, c) => x.handleFocus(c.event)}\"\n @focusout=\"${(x, c) => x.handleBlur(c.event)}\"\n ${children({\n property: \"childItems\",\n filter: elements(),\n})}\n >\n <div class=\"positioning-region\" part=\"positioning-region\">\n <div class=\"content-region\" part=\"content-region\">\n ${when(x => x.childItems && x.childItemLength() > 0, html `\n <div\n aria-hidden=\"true\"\n class=\"expand-collapse-button\"\n part=\"expand-collapse-button\"\n @click=\"${(x, c) => x.handleExpandCollapseButtonClick(c.event)}\"\n ${ref(\"expandCollapseButton\")}\n >\n <slot name=\"expand-collapse-glyph\">\n ${definition.expandCollapseGlyph || \"\"}\n </slot>\n </div>\n `)}\n ${startSlotTemplate(context, definition)}\n <slot></slot>\n ${endSlotTemplate(context, definition)}\n </div>\n </div>\n ${when(x => x.childItems &&\n x.childItemLength() > 0 &&\n (x.expanded || x.renderCollapsedChildren), html `\n <div role=\"group\" class=\"items\" part=\"items\">\n <slot name=\"item\" ${slotted(\"items\")}></slot>\n </div>\n `)}\n </template>\n`;\n","import { __decorate } from \"tslib\";\nimport { attr, observable } from \"@microsoft/fast-element\";\nimport { isHTMLElement } from \"@microsoft/fast-web-utilities\";\nimport { StartEnd } from \"../patterns/start-end\";\nimport { applyMixins } from \"../utilities/apply-mixins\";\nimport { FoundationElement } from \"../foundation-element\";\n/**\n * check if the item is a tree item\n * @public\n * @remarks\n * determines if element is an HTMLElement and if it has the role treeitem\n */\nexport function isTreeItemElement(el) {\n return isHTMLElement(el) && el.getAttribute(\"role\") === \"treeitem\";\n}\n/**\n * A Tree item Custom HTML Element.\n *\n * @public\n */\nexport class TreeItem extends FoundationElement {\n constructor() {\n super(...arguments);\n /**\n * When true, the control will be appear expanded by user interaction.\n * @public\n * @remarks\n * HTML Attribute: expanded\n */\n this.expanded = false;\n /**\n * Whether the item is focusable\n *\n * @internal\n */\n this.focusable = false;\n /**\n * Whether the tree is nested\n *\n * @public\n */\n this.isNestedItem = () => {\n return isTreeItemElement(this.parentElement);\n };\n /**\n * Handle expand button click\n *\n * @internal\n */\n this.handleExpandCollapseButtonClick = (e) => {\n if (!this.disabled && !e.defaultPrevented) {\n this.expanded = !this.expanded;\n }\n };\n /**\n * Handle focus events\n *\n * @internal\n */\n this.handleFocus = (e) => {\n this.setAttribute(\"tabindex\", \"0\");\n };\n /**\n * Handle blur events\n *\n * @internal\n */\n this.handleBlur = (e) => {\n this.setAttribute(\"tabindex\", \"-1\");\n };\n }\n expandedChanged() {\n if (this.$fastController.isConnected) {\n this.$emit(\"expanded-change\", this);\n }\n }\n selectedChanged() {\n if (this.$fastController.isConnected) {\n this.$emit(\"selected-change\", this);\n }\n }\n itemsChanged(oldValue, newValue) {\n if (this.$fastController.isConnected) {\n this.items.forEach((node) => {\n if (isTreeItemElement(node)) {\n // TODO: maybe not require it to be a TreeItem?\n node.nested = true;\n }\n });\n }\n }\n /**\n * Places document focus on a tree item\n *\n * @public\n * @param el - the element to focus\n */\n static focusItem(el) {\n el.focusable = true;\n el.focus();\n }\n /**\n * Gets number of children\n *\n * @internal\n */\n childItemLength() {\n const treeChildren = this.childItems.filter((item) => {\n return isTreeItemElement(item);\n });\n return treeChildren ? treeChildren.length : 0;\n }\n}\n__decorate([\n attr({ mode: \"boolean\" })\n], TreeItem.prototype, \"expanded\", void 0);\n__decorate([\n attr({ mode: \"boolean\" })\n], TreeItem.prototype, \"selected\", void 0);\n__decorate([\n attr({ mode: \"boolean\" })\n], TreeItem.prototype, \"disabled\", void 0);\n__decorate([\n observable\n], TreeItem.prototype, \"focusable\", void 0);\n__decorate([\n observable\n], TreeItem.prototype, \"childItems\", void 0);\n__decorate([\n observable\n], TreeItem.prototype, \"items\", void 0);\n__decorate([\n observable\n], TreeItem.prototype, \"nested\", void 0);\n__decorate([\n observable\n], TreeItem.prototype, \"renderCollapsedChildren\", void 0);\napplyMixins(TreeItem, StartEnd);\n","import { html, ref, slotted } from \"@microsoft/fast-element\";\n/**\n * The template for the {@link @microsoft/fast-foundation#TreeView} component.\n * @public\n */\nexport const treeViewTemplate = (context, definition) => html `\n <template\n role=\"tree\"\n ${ref(\"treeView\")}\n @keydown=\"${(x, c) => x.handleKeyDown(c.event)}\"\n @focusin=\"${(x, c) => x.handleFocus(c.event)}\"\n @focusout=\"${(x, c) => x.handleBlur(c.event)}\"\n @click=\"${(x, c) => x.handleClick(c.event)}\"\n @selected-change=\"${(x, c) => x.handleSelectedChange(c.event)}\"\n >\n <slot ${slotted(\"slottedTreeItems\")}></slot>\n </template>\n`;\n","import { __decorate } from \"tslib\";\nimport { attr, DOM, observable } from \"@microsoft/fast-element\";\nimport { getDisplayedNodes, isHTMLElement, keyArrowDown, keyArrowLeft, keyArrowRight, keyArrowUp, keyEnd, keyEnter, keyHome, } from \"@microsoft/fast-web-utilities\";\nimport { isTreeItemElement, TreeItem } from \"../tree-item\";\nimport { FoundationElement } from \"../foundation-element\";\n/**\n * A Tree view Custom HTML Element.\n * Implements the {@link https://w3c.github.io/aria-practices/#TreeView | ARIA TreeView }.\n *\n * @public\n */\nexport class TreeView extends FoundationElement {\n constructor() {\n super(...arguments);\n /**\n * The tree item that is designated to be in the tab queue.\n *\n * @internal\n */\n this.currentFocused = null;\n /**\n * Handle focus events\n *\n * @internal\n */\n this.handleFocus = (e) => {\n if (this.slottedTreeItems.length < 1) {\n // no child items, nothing to do\n return;\n }\n if (e.target === this) {\n if (this.currentFocused === null) {\n this.currentFocused = this.getValidFocusableItem();\n }\n if (this.currentFocused !== null) {\n TreeItem.focusItem(this.currentFocused);\n }\n return;\n }\n if (this.contains(e.target)) {\n this.setAttribute(\"tabindex\", \"-1\");\n this.currentFocused = e.target;\n }\n };\n /**\n * Handle blur events\n *\n * @internal\n */\n this.handleBlur = (e) => {\n if (e.target instanceof HTMLElement &&\n (e.relatedTarget === null || !this.contains(e.relatedTarget))) {\n this.setAttribute(\"tabindex\", \"0\");\n }\n };\n /**\n * KeyDown handler\n *\n * @internal\n */\n this.handleKeyDown = (e) => {\n if (e.defaultPrevented) {\n return;\n }\n if (this.slottedTreeItems.length < 1) {\n return true;\n }\n const treeItems = this.getVisibleNodes();\n switch (e.key) {\n case keyHome:\n if (treeItems.length) {\n TreeItem.focusItem(treeItems[0]);\n }\n return;\n case keyEnd:\n if (treeItems.length) {\n TreeItem.focusItem(treeItems[treeItems.length - 1]);\n }\n return;\n case keyArrowLeft:\n if (e.target && this.isFocusableElement(e.target)) {\n const item = e.target;\n if (item instanceof TreeItem && item.childItemLength() > 0) {\n item.expanded = false;\n }\n }\n return false;\n case keyArrowRight:\n if (e.target && this.isFocusableElement(e.target)) {\n const item = e.target;\n if (item instanceof TreeItem && item.childItemLength() > 0) {\n item.expanded = true;\n }\n }\n return;\n case keyArrowDown:\n if (e.target && this.isFocusableElement(e.target)) {\n this.focusNextNode(1, e.target);\n }\n return;\n case keyArrowUp:\n if (e.target && this.isFocusableElement(e.target)) {\n this.focusNextNode(-1, e.target);\n }\n return;\n case keyEnter:\n // In single-select trees where selection does not follow focus (see note below),\n // the default action is typically to select the focused node.\n this.handleClick(e);\n return;\n }\n // don't prevent default if we took no action\n return true;\n };\n /**\n * Handles the selected-changed events bubbling up\n * from child tree items\n *\n * @internal\n */\n this.handleSelectedChange = (e) => {\n if (e.defaultPrevented) {\n return;\n }\n if (!(e.target instanceof Element) || !isTreeItemElement(e.target)) {\n return true;\n }\n const item = e.target;\n if (item.selected) {\n if (this.currentSelected && this.currentSelected !== item) {\n this.currentSelected.selected = false;\n }\n // new selected item\n this.currentSelected = item;\n }\n else if (!item.selected && this.currentSelected === item) {\n // selected item deselected\n this.currentSelected = null;\n }\n return;\n };\n /**\n * Updates the tree view when slottedTreeItems changes\n */\n this.setItems = () => {\n // force single selection\n // defaults to first one found\n const selectedItem = this.treeView.querySelector(\"[aria-selected='true']\");\n this.currentSelected = selectedItem;\n // invalidate the current focused item if it is no longer valid\n if (this.currentFocused === null || !this.contains(this.currentFocused)) {\n this.currentFocused = this.getValidFocusableItem();\n }\n // toggle properties on child elements\n this.nested = this.checkForNestedItems();\n const treeItems = this.getVisibleNodes();\n treeItems.forEach(node => {\n if (isTreeItemElement(node)) {\n node.nested = this.nested;\n }\n });\n };\n /**\n * check if the item is focusable\n */\n this.isFocusableElement = (el) => {\n return isTreeItemElement(el);\n };\n this.isSelectedElement = (el) => {\n return el.selected;\n };\n }\n slottedTreeItemsChanged() {\n if (this.$fastController.isConnected) {\n // update for slotted children change\n this.setItems();\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute(\"tabindex\", \"0\");\n DOM.queueUpdate(() => {\n this.setItems();\n });\n }\n /**\n * Handles click events bubbling up\n *\n * @internal\n */\n handleClick(e) {\n if (e.defaultPrevented) {\n // handled, do nothing\n return;\n }\n if (!(e.target instanceof Element) || !isTreeItemElement(e.target)) {\n // not a tree item, ignore\n return true;\n }\n const item = e.target;\n if (!item.disabled) {\n item.selected = !item.selected;\n }\n return;\n }\n /**\n * Move focus to a tree item based on its offset from the provided item\n */\n focusNextNode(delta, item) {\n const visibleNodes = this.getVisibleNodes();\n if (!visibleNodes) {\n return;\n }\n const focusItem = visibleNodes[visibleNodes.indexOf(item) + delta];\n if (isHTMLElement(focusItem)) {\n TreeItem.focusItem(focusItem);\n }\n }\n /**\n * checks if there are any nested tree items\n */\n getValidFocusableItem() {\n const treeItems = this.getVisibleNodes();\n // default to selected element if there is one\n let focusIndex = treeItems.findIndex(this.isSelectedElement);\n if (focusIndex === -1) {\n // otherwise first focusable tree item\n focusIndex = treeItems.findIndex(this.isFocusableElement);\n }\n if (focusIndex !== -1) {\n return treeItems[focusIndex];\n }\n return null;\n }\n /**\n * checks if there are any nested tree items\n */\n checkForNestedItems() {\n return this.slottedTreeItems.some((node) => {\n return isTreeItemElement(node) && node.querySelector(\"[role='treeitem']\");\n });\n }\n getVisibleNodes() {\n return getDisplayedNodes(this, \"[role='treeitem']\") || [];\n }\n}\n__decorate([\n attr({ attribute: \"render-collapsed-nodes\" })\n], TreeView.prototype, \"renderCollapsedNodes\", void 0);\n__decorate([\n observable\n], TreeView.prototype, \"currentSelected\", void 0);\n__decorate([\n observable\n], TreeView.prototype, \"slottedTreeItems\", void 0);\n","/**\n * Do not edit directly\n * Generated on Tue, 01 Mar 2022 15:26:47 GMT\n */\n\nexport const SlLegacyBlue = \"#009ff5\";\nexport const Information100DarkUi = \"#a46eff\";\nexport const Information100LightUi = \"#804ad9\";\nexport const Warning100DarkUi = \"#ff8126\";\nexport const Pass100LightUi = \"#009921\";\nexport const Pass100DarkUi = \"#00c12b\";\nexport const WarningTypographyLightUi = \"#d3440d\";\nexport const PassTypographyLightUi = \"#00801c\";\nexport const Fail100LightUi = \"#c4000c\";\nexport const Fail100DarkUi = \"#ff4646\";\nexport const Black75 = \"#818386\";\nexport const Black15 = \"#f1f1f2\";\nexport const Black7 = \"#f5f5f5\";\nexport const White = \"#ffffff\";\nexport const Black88 = \"#252526\";\nexport const Black85 = \"#363738\";\nexport const Black80 = \"#505153\";\nexport const Black = \"#000000\";\nexport const Black95 = \"#0e0f0f\";\nexport const Black91 = \"#161617\";\nexport const ForestGreen = \"#074023\";\nexport const DigitalGreenLight = \"#009b65\";\nexport const Brand85 = \"#26a97c\";\nexport const Brand100 = \"#009b65\";\nexport const Fail85 = \"#cf1a37\";\nexport const RgbNiSky = \"#3cb4e7\";\nexport const BannerFail100DarkUi = \"#d63434\";\nexport const Warning100LightUi = \"#ff4b00\";\nexport const Black30 = \"#d3d5d6\";\nexport const Black50 = \"#aeb0b3\";\nexport const DigitalGreenDark = \"#006b46\";\nexport const PowerGreen = \"#32eb96\";\nexport const Black22 = \"#e6e6e6\";\nexport const Title2Family = \"Source Sans Pro\";\nexport const Title2Weight = \"400\";\nexport const ControlLabel1Family = \"Source Sans Pro\";\nexport const ControlLabel1Weight = \"600\";\nexport const BodyFamily = \"Source Sans Pro\";\nexport const BodyWeight = \"400\";\nexport const Header0Family = \"Noto Serif\";\nexport const Header0Weight = \"400\";\nexport const SubHeaderFamily = \"Source Sans Pro\";\nexport const SubHeaderWeight = \"400\";\nexport const Header1Family = \"Noto Serif\";\nexport const Header1Weight = \"400\";\nexport const GroupLabel1Family = \"Space Mono\";\nexport const GroupLabel1Weight = \"400\";\nexport const ButtonLabel1Family = \"Source Sans Pro\";\nexport const ButtonLabel1Weight = \"400\";\nexport const Title1Family = \"Source Sans Pro\";\nexport const Title1Weight = \"400\";\nexport const LinkColorUiFamily = \"Source Sans Pro\";\nexport const LinkColorUiWeight = \"400\";\nexport const LinkDarkUiFamily = \"Source Sans Pro\";\nexport const LinkDarkUiWeight = \"400\";\nexport const Headline2Family = \"Noto Serif\";\nexport const Headline2Weight = \"400\";\nexport const PlaceholderFamily = \"Source Sans Pro\";\nexport const PlaceholderWeight = \"400\";\nexport const TooltipCaptionFamily = \"Source Sans Pro\";\nexport const TooltipCaptionWeight = \"400\";\nexport const BodyEmphasizedFamily = \"Source Sans Pro\";\nexport const BodyEmphasizedWeight = \"600\";\nexport const Subtitle1Family = \"Source Sans Pro\";\nexport const Subtitle1Weight = \"300\";\nexport const Title3Family = \"Source Sans Pro\";\nexport const Title3Weight = \"400\";\nexport const Subtitle2Family = \"Source Sans Pro\";\nexport const Subtitle2Weight = \"300\";\nexport const LinkLightUiFamily = \"Source Sans Pro\";\nexport const LinkLightUiWeight = \"400\";\nexport const Headline1Family = \"Noto Serif\";\nexport const Headline1Weight = \"400\";\nexport const LegacyContentFamily = \"'Roboto', 'Microsoft YaHei', 'Hiragino Kaku Gothic Pro', sans-serif\";\nexport const ControlLabel1ChineseMacFamily = \"Noto Sans\";\nexport const ControlLabel1ChineseMacWeight = \"700\";\nexport const ButtonLabel1ChineseMacFamily = \"Noto Sans\";\nexport const ButtonLabel1ChineseMacWeight = \"400\";\nexport const BodyChineseMacFamily = \"Noto Sans\";\nexport const BodyChineseMacWeight = \"400\";\nexport const ErrorColorUiFamily = \"Source Sans Pro\";\nexport const ErrorColorUiWeight = \"400\";\nexport const LinkVisitedLightUiFamily = \"Source Sans Pro\";\nexport const LinkVisitedLightUiWeight = \"400\";\nexport const ErrorLightUiFamily = \"Source Sans Pro\";\nexport const ErrorLightUiWeight = \"400\";\nexport const ErrorDarkUiFamily = \"Source Sans Pro\";\nexport const ErrorDarkUiWeight = \"400\";\nexport const LinkSelection100LightUiFamily = \"Source Sans Pro\";\nexport const LinkSelection100LightUiWeight = \"400\";\nexport const Title2Size = \"22px\";\nexport const ControlLabel1Size = \"11px\";\nexport const BodySize = \"14px\";\nexport const Header0Size = \"36px\";\nexport const SubHeaderSize = \"12px\";\nexport const Header1Size = \"24px\";\nexport const GroupLabel1Size = \"11px\";\nexport const ButtonLabel1Size = \"12.800000190734863px\";\nexport const Title1Size = \"19px\";\nexport const LinkColorUiSize = \"14px\";\nexport const LinkDarkUiSize = \"14px\";\nexport const Headline2Size = \"29.100000381469727px\";\nexport const PlaceholderSize = \"14px\";\nexport const TooltipCaptionSize = \"11px\";\nexport const BodyEmphasizedSize = \"14px\";\nexport const Subtitle1Size = \"12.800000190734863px\";\nexport const Title3Size = \"25px\";\nexport const Subtitle2Size = \"16px\";\nexport const LinkLightUiSize = \"14px\";\nexport const Headline1Size = \"25px\";\nexport const ControlLabel1ChineseMacSize = \"11px\";\nexport const ButtonLabel1ChineseMacSize = \"11px\";\nexport const BodyChineseMacSize = \"13px\";\nexport const ErrorColorUiSize = \"9px\";\nexport const LinkVisitedLightUiSize = \"14px\";\nexport const ErrorLightUiSize = \"9px\";\nexport const ErrorDarkUiSize = \"9px\";\nexport const LinkSelection100LightUiSize = \"14px\";\nexport const BodyLineHeight = \"18px\";\nexport const ControlLabel1LineHeight = \"16px\";\nexport const GroupLabel1LineHeight = \"16px\";\nexport const Headline2LineHeight = \"40px\";\nexport const Headline1LineHeight = \"32px\";\nexport const Title3LineHeight = \"32px\";\nexport const Title2LineHeight = \"28px\";\nexport const Title1LineHeight = \"24px\";\nexport const Subtitle2LineHeight = \"20px\";\nexport const Subtitle1LineHeight = \"16px\";\nexport const LinkLineHeight = \"18px\";\nexport const PlaceholderLineHeight = \"18px\";\nexport const BodyEmphasizedLineHeight = \"18px\";\nexport const ButtonLabel1LineHeight = \"16px\";\nexport const TooltipCaptionLineHeight = \"14px\";\nexport const SmallDelay = \"0.1s\"; // Short animation delay used for control state change animation\nexport const MediumDelay = \"0.15s\"; // Medium animation delay for control state change animation","const hexCharacters = 'a-f\\\\d';\nconst match3or4Hex = `#?[${hexCharacters}]{3}[${hexCharacters}]?`;\nconst match6or8Hex = `#?[${hexCharacters}]{6}([${hexCharacters}]{2})?`;\nconst nonHexChars = new RegExp(`[^#${hexCharacters}]`, 'gi');\nconst validHexSize = new RegExp(`^${match3or4Hex}$|^${match6or8Hex}$`, 'i');\n\nexport default function hexRgb(hex, options = {}) {\n\tif (typeof hex !== 'string' || nonHexChars.test(hex) || !validHexSize.test(hex)) {\n\t\tthrow new TypeError('Expected a valid hex string');\n\t}\n\n\thex = hex.replace(/^#/, '');\n\tlet alphaFromHex = 1;\n\n\tif (hex.length === 8) {\n\t\talphaFromHex = Number.parseInt(hex.slice(6, 8), 16) / 255;\n\t\thex = hex.slice(0, 6);\n\t}\n\n\tif (hex.length === 4) {\n\t\talphaFromHex = Number.parseInt(hex.slice(3, 4).repeat(2), 16) / 255;\n\t\thex = hex.slice(0, 3);\n\t}\n\n\tif (hex.length === 3) {\n\t\thex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n\t}\n\n\tconst number = Number.parseInt(hex, 16);\n\tconst red = number >> 16;\n\tconst green = (number >> 8) & 255;\n\tconst blue = number & 255;\n\tconst alpha = typeof options.alpha === 'number' ? options.alpha : alphaFromHex;\n\n\tif (options.format === 'array') {\n\t\treturn [red, green, blue, alpha];\n\t}\n\n\tif (options.format === 'css') {\n\t\tconst alphaString = alpha === 1 ? '' : ` / ${Number((alpha * 100).toFixed(2))}%`;\n\t\treturn `rgb(${red} ${green} ${blue}${alphaString})`;\n\t}\n\n\treturn {red, green, blue, alpha};\n}\n","export var Theme;\n(function (Theme) {\n Theme[\"Light\"] = \"light\";\n Theme[\"Dark\"] = \"dark\";\n Theme[\"Color\"] = \"color\";\n})(Theme || (Theme = {}));\n//# sourceMappingURL=types.js.map","/**\n * Design token names should follow the token naming convention:\n * See: https://github.com/ni/nimble/blob/main/packages/nimble-components/CONTRIBUTING.md#token-naming\n */\nexport const tokenNames = {\n actionRgbPartialColor: 'action-rgb-partial-color',\n applicationBackgroundColor: 'application-background-color',\n headerBackgroundColor: 'header-background-color',\n sectionBackgroundColor: 'section-background-color',\n fillSelectedColor: 'fill-selected-color',\n fillSelectedRgbPartialColor: 'fill-selected-rgb-partial-color',\n fillHoverSelectedColor: 'fill-hover-selected-color',\n fillHoverColor: 'fill-hover-color',\n borderColor: 'border-color',\n borderRgbPartialColor: 'border-rgb-partial-color',\n failColor: 'fail-color',\n warningColor: 'warning-color',\n passColor: 'pass-color',\n borderHoverColor: 'border-hover-color',\n iconColor: 'icon-color',\n popupBoxShadowColor: 'popup-box-shadow-color',\n popupBorderColor: 'popup-border-color',\n controlHeight: 'control-height',\n smallPadding: 'small-padding',\n standardPadding: 'standard-padding',\n labelHeight: 'label-height',\n borderWidth: 'border-width',\n iconSize: 'icon-size',\n groupHeaderTextTransform: 'group-header-text-transform',\n drawerWidth: 'drawer-width',\n smallDelay: 'small-delay',\n mediumDelay: 'medium-delay',\n largeDelay: 'large-delay',\n headlinePlus1Font: 'headline-plus-1-font',\n headlinePlus1FontColor: 'headline-plus-1-font-color',\n headlinePlus1DisabledFontColor: 'headline-plus-1-disabled-font-color',\n headlinePlus1FontFamily: 'headline-plus-1-font-family',\n headlinePlus1FontSize: 'headline-plus-1-font-size',\n headlinePlus1FontWeight: 'headline-plus-1-font-weight',\n headlinePlus1FontLineHeight: 'headline-plus-1-font-line-height',\n headlinePlus1FallbackFontFamily: 'headline-plus-1-fallback-font-family',\n headlineFont: 'headline-font',\n headlineFontColor: 'headline-font-color',\n headlineDisabledFontColor: 'headline-disabled-font-color',\n headlineFontFamily: 'headline-font-family',\n headlineFontSize: 'headline-font-size',\n headlineFontWeight: 'headline-font-weight',\n headlineFontLineHeight: 'headline-font-line-height',\n headlineFallbackFontFamily: 'headline-fallback-font-family',\n titlePlus2Font: 'title-plus-2-font',\n titlePlus2FontColor: 'title-plus-2-font-color',\n titlePlus2DisabledFontColor: 'title-plus-2-disabled-font-color',\n titlePlus2FontFamily: 'title-plus-2-font-family',\n titlePlus2FontSize: 'title-plus-2-font-size',\n titlePlus2FontWeight: 'title-plus-2-font-weight',\n titlePlus2FontLineHeight: 'title-plus-2-font-line-height',\n titlePlus2FallbackFontFamily: 'title-plus-2-fallback-font-family',\n titlePlus1Font: 'title-plus-1-font',\n titlePlus1FontColor: 'title-plus-1-font-color',\n titlePlus1DisabledFontColor: 'title-plus-1-disabled-font-color',\n titlePlus1FontFamily: 'title-plus-1-font-family',\n titlePlus1FontSize: 'title-plus-1-font-size',\n titlePlus1FontWeight: 'title-plus-1-font-weight',\n titlePlus1FontLineHeight: 'title-plus-1-font-line-height',\n titlePlus1FallbackFontFamily: 'title-plus-1-fallback-font-family',\n titleFont: 'title-font',\n titleFontColor: 'title-font-color',\n titleDisabledFontColor: 'title-disabled-font-color',\n titleFontFamily: 'title-font-family',\n titleFontSize: 'title-font-size',\n titleFontWeight: 'title-font-weight',\n titleFontLineHeight: 'title-font-line-height',\n titleFallbackFontFamily: 'title-fallback-font-family',\n subtitlePlus1Font: 'subtitle-plus-1-font',\n subtitlePlus1FontColor: 'subtitle-plus-1-font-color',\n subtitlePlus1DisabledFontColor: 'subtitle-plus-1-disabled-font-color',\n subtitlePlus1FontFamily: 'subtitle-plus-1-font-family',\n subtitlePlus1FontSize: 'subtitle-plus-1-font-size',\n subtitlePlus1FontWeight: 'subtitle-plus-1-font-weight',\n subtitlePlus1FontLineHeight: 'subtitle-plus-1-font-line-height',\n subtitlePlus1FallbackFontFamily: 'subtitle-plus-1-fallback-font-family',\n subtitleFont: 'subtitle-font',\n subtitleFontColor: 'subtitle-font-color',\n subtitleDisabledFontColor: 'subtitle-disabled-font-color',\n subtitleFontFamily: 'subtitle-font-family',\n subtitleFontSize: 'subtitle-font-size',\n subtitleFontWeight: 'subtitle-font-weight',\n subtitleFontLineHeight: 'subtitle-font-line-height',\n subtitleFallbackFontFamily: 'subtitle-fallback-font-family',\n linkStandardFont: 'link-standard-font',\n linkStandardFontColor: 'link-standard-font-color',\n linkStandardDisabledFontColor: 'link-standard-disabled-font-color',\n linkStandardFontFamily: 'link-standard-font-family',\n linkStandardFontSize: 'link-standard-font-size',\n linkStandardFontWeight: 'link-standard-font-weight',\n linkStandardFontLineHeight: 'link-standard-font-line-height',\n linkStandardFallbackFontFamily: 'link-standard-fallback-font-family',\n placeholderFont: 'placeholder-font',\n placeholderFontColor: 'placeholder-font-color',\n placeholderDisabledFontColor: 'placeholder-disabled-font-color',\n placeholderFontFamily: 'placeholder-font-family',\n placeholderFontSize: 'placeholder-font-size',\n placeholderFontWeight: 'placeholder-font-weight',\n placeholderFontLineHeight: 'placeholder-font-line-height',\n placeholderFallbackFontFamily: 'placeholder-fallback-font-family',\n bodyEmphasizedFont: 'body-emphasized-font',\n bodyEmphasizedFontColor: 'body-emphasized-font-color',\n bodyEmphasizedDisabledFontColor: 'body-emphasized-disabled-font-color',\n bodyEmphasizedFontFamily: 'body-emphasized-font-family',\n bodyEmphasizedFontSize: 'body-emphasized-font-size',\n bodyEmphasizedFontWeight: 'body-emphasized-font-weight',\n bodyEmphasizedFontLineHeight: 'body-emphasized-font-line-height',\n bodyEmphasizedFallbackFontFamily: 'body-emphasized-fallback-font-family',\n bodyFont: 'body-font',\n bodyFontColor: 'body-font-color',\n bodyDisabledFontColor: 'body-disabled-font-color',\n bodyFontFamily: 'body-font-family',\n bodyFontSize: 'body-font-size',\n bodyFontWeight: 'body-font-weight',\n bodyFontLineHeight: 'body-font-line-height',\n bodyFallbackFontFamily: 'body-fallback-font-family',\n groupHeaderFont: 'group-header-font',\n groupHeaderFontColor: 'group-header-font-color',\n groupHeaderDisabledFontColor: 'group-header-disabled-font-color',\n groupHeaderFontFamily: 'group-header-font-family',\n groupHeaderFontSize: 'group-header-font-size',\n groupHeaderFontWeight: 'group-header-font-weight',\n groupHeaderFontLineHeight: 'group-header-font-line-height',\n groupHeaderFallbackFontFamily: 'group-header-fallback-font-family',\n controlLabelFont: 'control-label-font',\n controlLabelFontColor: 'control-label-font-color',\n controlLabelDisabledFontColor: 'control-label-disabled-font-color',\n controlLabelFontFamily: 'control-label-font-family',\n controlLabelFontSize: 'control-label-font-size',\n controlLabelFontWeight: 'control-label-font-weight',\n controlLabelFontLineHeight: 'control-label-font-line-height',\n controlLabelFallbackFontFamily: 'control-label-fallback-font-family',\n buttonLabelFont: 'button-label-font',\n buttonLabelFontColor: 'button-label-font-color',\n buttonLabelDisabledFontColor: 'button-label-disabled-font-color',\n buttonLabelFontFamily: 'button-label-font-family',\n buttonLabelFontSize: 'button-label-font-size',\n buttonLabelFontWeight: 'button-label-font-weight',\n buttonLabelFontLineHeight: 'button-label-font-line-height',\n buttonLabelFallbackFontFamily: 'button-label-fallback-font-family',\n tooltipCaptionFont: 'tooltip-caption-font',\n tooltipCaptionFontColor: 'tooltip-caption-font-color',\n tooltipCaptionDisabledFontColor: 'tooltip-caption-disabled-font-color',\n tooltipCaptionFontFamily: 'tooltip-caption-font-family',\n tooltipCaptionFontSize: 'tooltip-caption-font-size',\n tooltipCaptionFontWeight: 'tooltip-caption-font-weight',\n tooltipCaptionFontLineHeight: 'tooltip-caption-font-line-height',\n tooltipCaptionFallbackFontFamily: 'tooltip-caption-fallback-font-family',\n errorTextFont: 'error-text-font',\n errorTextFontColor: 'error-text-font-color',\n errorTextDisabledFontColor: 'error-text-disabled-font-color',\n errorTextFontFamily: 'error-text-font-family',\n errorTextFontSize: 'error-text-font-size',\n errorTextFontWeight: 'error-text-font-weight',\n errorTextFontLineHeight: 'error-text-font-line-height',\n errorTextFallbackFontFamily: 'error-text-fallback-font-family'\n};\nconst prefix = 'ni-nimble';\nexport const styleNameFromTokenName = (tokenName) => `${prefix}-${tokenName}`;\nexport const cssPropertyFromTokenName = (tokenName) => `--${prefix}-${tokenName}`;\nexport const scssPropertyFromTokenName = (tokenName) => `$${prefix}-${tokenName}`;\nexport const scssInternalPropertyFromTokenName = (tokenName) => `$${prefix}-internal-${tokenName}`;\nexport const scssInternalPropertySetterMarkdown = (tokenName, property) => `\\`#{$${prefix}-internal-${tokenName}}: ${property};\\``;\n//# sourceMappingURL=design-token-names.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n 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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { html } from '@microsoft/fast-element';\nexport const template = html `<slot></slot>`;\n//# sourceMappingURL=template.js.map","import { css } from '@microsoft/fast-element';\nexport const styles = css `\n :host {\n display: contents;\n }\n`;\n//# sourceMappingURL=styles.js.map","import { __decorate } from \"tslib\";\nimport { DesignSystem, DesignToken, FoundationElement } from '@microsoft/fast-foundation';\nimport { attr } from '@microsoft/fast-element';\nimport { Direction } from '@microsoft/fast-web-utilities';\nimport { template } from './template';\nimport { styles } from './styles';\nimport { Theme } from './types';\n// Not represented as a CSS Custom Property, instead available\n// as an attribute of theme provider.\nexport const direction = DesignToken.create({\n name: 'direction',\n cssCustomPropertyName: null\n}).withDefault(Direction.ltr);\nexport const theme = DesignToken.create({\n name: 'theme',\n cssCustomPropertyName: null\n}).withDefault(Theme.Light);\n/**\n * The ThemeProvider implementation. Add this component to the page and set its `theme` attribute to control\n * the values of design tokens that provide colors and fonts as CSS custom properties to any descendant components.\n * @internal\n */\nexport class ThemeProvider extends FoundationElement {\n constructor() {\n super(...arguments);\n this.direction = Direction.ltr;\n this.theme = Theme.Light;\n }\n directionChanged(_prev, next) {\n if (next !== undefined && next !== null) {\n direction.setValueFor(this, next);\n }\n else {\n direction.deleteValueFor(this);\n }\n }\n themeChanged(_prev, next) {\n if (next !== undefined && next !== null) {\n theme.setValueFor(this, next);\n }\n else {\n theme.deleteValueFor(this);\n }\n }\n}\n__decorate([\n attr({\n attribute: 'direction'\n })\n], ThemeProvider.prototype, \"direction\", void 0);\n__decorate([\n attr({\n attribute: 'theme'\n })\n], ThemeProvider.prototype, \"theme\", void 0);\nconst nimbleDesignSystemProvider = ThemeProvider.compose({\n baseName: 'theme-provider',\n styles,\n template\n});\nDesignSystem.getOrCreate()\n .withPrefix('nimble')\n .register(nimbleDesignSystemProvider());\n//# sourceMappingURL=index.js.map","import hexRgb from 'hex-rgb';\n/**\n * Convert a hexadecimal color string to an RGBA CSS color string\n * Example: 'ff0102' or '#ff0102' to 'rgba(255, 1, 2, 1)'\n * @param hexValue Hex color (with or without a starting '#')\n * @param alpha CSS alpha value between 0 (transparent) and 1 (opaque)\n * @returns An rgba()-formatted CSS color string\n */\nexport function hexToRgbaCssColor(hexValue, alpha) {\n const { red, green, blue } = hexRgb(hexValue);\n return `rgba(${red}, ${green}, ${blue}, ${alpha})`;\n}\n//# sourceMappingURL=colors.js.map","import { DesignToken } from '@microsoft/fast-foundation';\nimport hexRgb from 'hex-rgb';\nimport { Black7, Black91, Black85, Black15, Black30, Black75, Black80, White, ForestGreen, DigitalGreenLight, Fail100LightUi, SmallDelay, MediumDelay, Fail100DarkUi, Warning100LightUi, Warning100DarkUi, Pass100LightUi, Pass100DarkUi, BodyFamily, BodySize, BodyWeight, ControlLabel1Family, ControlLabel1Size, ControlLabel1Weight, GroupLabel1Family, GroupLabel1Size, GroupLabel1Weight, Headline2Size, Headline2Family, Headline2Weight, Headline1Size, Headline1Family, Headline1Weight, Title3Size, Title3Family, Title3Weight, Title2Size, Title2Family, Title2Weight, Title1Size, Title1Family, Title1Weight, Subtitle2Size, Subtitle2Family, Subtitle2Weight, Subtitle1Size, Subtitle1Family, Subtitle1Weight, LinkLightUiSize, LinkLightUiFamily, LinkLightUiWeight, PlaceholderSize, PlaceholderFamily, PlaceholderWeight, BodyEmphasizedSize, BodyEmphasizedFamily, BodyEmphasizedWeight, ButtonLabel1Size, ButtonLabel1Family, ButtonLabel1Weight, TooltipCaptionSize, TooltipCaptionFamily, TooltipCaptionWeight, ErrorLightUiSize, ErrorLightUiFamily, ErrorLightUiWeight, Headline2LineHeight, Headline1LineHeight, Title3LineHeight, Title2LineHeight, Title1LineHeight, Subtitle2LineHeight, Subtitle1LineHeight, LinkLineHeight, PlaceholderLineHeight, BodyEmphasizedLineHeight, BodyLineHeight, GroupLabel1LineHeight, ControlLabel1LineHeight, ButtonLabel1LineHeight, TooltipCaptionLineHeight } from '@ni/nimble-tokens/dist/styledictionary/js/tokens';\nimport { Theme } from './types';\nimport { tokenNames, styleNameFromTokenName } from './design-token-names';\nimport { theme } from '.';\nimport { hexToRgbaCssColor } from '../utilities/style/colors';\n// Color Tokens\nexport const actionRgbPartialColor = DesignToken.create(styleNameFromTokenName(tokenNames.actionRgbPartialColor)).withDefault((element) => hexToRgbPartial(getColorForTheme(element, Black91, Black15, White)));\nexport const applicationBackgroundColor = DesignToken.create(styleNameFromTokenName(tokenNames.applicationBackgroundColor)).withDefault((element) => getColorForTheme(element, White, Black85, ForestGreen));\nexport const headerBackgroundColor = DesignToken.create(styleNameFromTokenName(tokenNames.headerBackgroundColor)).withDefault((element) => getColorForTheme(element, Black7, Black80, ForestGreen));\nexport const sectionBackgroundColor = DesignToken.create(styleNameFromTokenName(tokenNames.sectionBackgroundColor)).withDefault((element) => getColorForTheme(element, Black30, Black91, ForestGreen));\nexport const fillSelectedColor = DesignToken.create(styleNameFromTokenName(tokenNames.fillSelectedColor)).withDefault((element) => hexToRgbaCssColor(getFillSelectedColorForTheme(element), 0.3));\nexport const fillSelectedRgbPartialColor = DesignToken.create(styleNameFromTokenName(tokenNames.fillSelectedRgbPartialColor)).withDefault((element) => hexToRgbPartial(getFillSelectedColorForTheme(element)));\nexport const fillHoverSelectedColor = DesignToken.create(styleNameFromTokenName(tokenNames.fillHoverSelectedColor)).withDefault((element) => hexToRgbaCssColor(getFillSelectedColorForTheme(element), 0.15));\nexport const fillHoverColor = DesignToken.create(styleNameFromTokenName(tokenNames.fillHoverColor)).withDefault((element) => hexToRgbaCssColor(getFillHoverColorForTheme(element), 0.1));\nexport const borderColor = DesignToken.create(styleNameFromTokenName(tokenNames.borderColor)).withDefault((element) => getDefaultLineColorForTheme(element));\nexport const borderRgbPartialColor = DesignToken.create(styleNameFromTokenName(tokenNames.borderRgbPartialColor)).withDefault((element) => hexToRgbPartial(getDefaultLineColorForTheme(element)));\nexport const failColor = DesignToken.create(styleNameFromTokenName(tokenNames.failColor)).withDefault((element) => getFailColorForTheme(element));\nexport const warningColor = DesignToken.create(styleNameFromTokenName(tokenNames.warningColor)).withDefault((element) => getWarningColorForTheme(element));\nexport const passColor = DesignToken.create(styleNameFromTokenName(tokenNames.passColor)).withDefault((element) => getPassColorForTheme(element));\nexport const borderHoverColor = DesignToken.create(styleNameFromTokenName(tokenNames.borderHoverColor)).withDefault((element) => getColorForTheme(element, DigitalGreenLight, DigitalGreenLight, White));\n// Component Color Tokens\nexport const iconColor = DesignToken.create(styleNameFromTokenName(tokenNames.iconColor)).withDefault((element) => getColorForTheme(element, Black91, Black15, White));\nexport const popupBoxShadowColor = DesignToken.create(styleNameFromTokenName(tokenNames.popupBoxShadowColor)).withDefault((element) => hexToRgbaCssColor(getColorForTheme(element, Black75, Black85, Black85), 0.3));\nexport const popupBorderColor = DesignToken.create(styleNameFromTokenName(tokenNames.popupBorderColor)).withDefault((element) => hexToRgbaCssColor(getColorForTheme(element, Black91, Black15, White), 0.3));\n// Component Sizing Tokens\nexport const controlHeight = DesignToken.create(styleNameFromTokenName(tokenNames.controlHeight)).withDefault('32px');\nexport const smallPadding = DesignToken.create(styleNameFromTokenName(tokenNames.smallPadding)).withDefault('4px');\nexport const standardPadding = DesignToken.create(styleNameFromTokenName(tokenNames.standardPadding)).withDefault('16px');\nexport const labelHeight = DesignToken.create(styleNameFromTokenName(tokenNames.labelHeight)).withDefault('16px');\nexport const borderWidth = DesignToken.create(styleNameFromTokenName(tokenNames.borderWidth)).withDefault('1px');\nexport const iconSize = DesignToken.create(styleNameFromTokenName(tokenNames.iconSize)).withDefault('16px');\nexport const drawerWidth = DesignToken.create(styleNameFromTokenName(tokenNames.drawerWidth)).withDefault('784px');\n// Font Tokens\nexport const [headlineFont, headlineFontColor, headlineDisabledFontColor, headlineFontFamily, headlineFontWeight, headlineFontSize, headlineFontLineHeight, headlineFallbackFontFamily] = createFontTokens(tokenNames.headlineFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Headline1Family, Headline1Weight, Headline1Size, Headline1LineHeight, 'serif');\nexport const [headlinePlus1Font, headlinePlus1FontColor, headlinePlus1DisabledFontColor, headlinePlus1FontFamily, headlinePlus1FontWeight, headlinePlus1FontSize, headlinePlus1FontLineHeight, headlinePlus1FallbackFontFamily] = createFontTokens(tokenNames.headlinePlus1Font, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Headline2Family, Headline2Weight, Headline2Size, Headline2LineHeight, 'serif');\nexport const [titlePlus2Font, titlePlus2FontColor, titlePlus2DisabledFontColor, titlePlus2FontFamily, titlePlus2FontWeight, titlePlus2FontSize, titlePlus2FontLineHeight, titlePlus2FallbackFontFamily] = createFontTokens(tokenNames.titlePlus2Font, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Title3Family, Title3Weight, Title3Size, Title3LineHeight, 'sans-serif');\nexport const [titlePlus1Font, titlePlus1FontColor, titlePlus1DisabledFontColor, titlePlus1FontFamily, titlePlus1FontWeight, titlePlus1FontSize, titlePlus1FontLineHeight, titlePlus1FallbackFontFamily] = createFontTokens(tokenNames.titlePlus1Font, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Title2Family, Title2Weight, Title2Size, Title2LineHeight, 'sans-serif');\nexport const [titleFont, titleFontColor, titleDisabledFontColor, titleFontFamily, titleFontWeight, titleFontSize, titleFontLineHeight, titleFallbackFontFamily] = createFontTokens(tokenNames.titleFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Title1Family, Title1Weight, Title1Size, Title1LineHeight, 'sans-serif');\nexport const [subtitlePlus1Font, subtitlePlus1FontColor, subtitlePlus1DisabledFontColor, subtitlePlus1FontFamily, subtitlePlus1FontWeight, subtitlePlus1FontSize, subtitlePlus1FontLineHeight, subtitlePlus1FallbackFontFamily] = createFontTokens(tokenNames.subtitlePlus1Font, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Subtitle2Family, Subtitle2Weight, Subtitle2Size, Subtitle2LineHeight, 'sans-serif');\nexport const [subtitleFont, subtitleFontColor, subtitleDisabledFontColor, subtitleFontFamily, subtitleFontWeight, subtitleFontSize, subtitleFontLineHeight, subtitleFallbackFontFamily] = createFontTokens(tokenNames.subtitleFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Subtitle1Family, Subtitle1Weight, Subtitle1Size, Subtitle1LineHeight, 'sans-serif');\nexport const [linkStandardFont, linkStandardFontColor, linkStandardDisabledFontColor, linkStandardFontFamily, linkStandardFontWeight, linkStandardFontSize, linkStandardFontLineHeight, linkStandardFallbackFontFamily] = createFontTokens(tokenNames.linkStandardFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), LinkLightUiFamily, LinkLightUiWeight, LinkLightUiSize, LinkLineHeight, 'sans-serif');\nexport const [placeholderFont, placeholderFontColor, placeholderDisabledFontColor, placeholderFontFamily, placeholderFontWeight, placeholderFontSize, placeholderFontLineHeight, placeholderFallbackFontFamily] = createFontTokens(tokenNames.placeholderFont, (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.6), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), PlaceholderFamily, PlaceholderWeight, PlaceholderSize, PlaceholderLineHeight, 'sans-serif');\nexport const [bodyEmphasizedFont, bodyEmphasizedFontColor, bodyEmphasizedDisabledFontColor, bodyEmphasizedFontFamily, bodyEmphasizedFontWeight, bodyEmphasizedFontSize, bodyEmphasizedFontLineHeight, bodyEmphasizedFallbackFontFamily] = createFontTokens(tokenNames.bodyEmphasizedFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), BodyEmphasizedFamily, BodyEmphasizedWeight, BodyEmphasizedSize, BodyEmphasizedLineHeight, 'sans-serif');\nexport const [bodyFont, bodyFontColor, bodyDisabledFontColor, bodyFontFamily, bodyFontWeight, bodyFontSize, bodyFontLineHeight, bodyFallbackFontFamily] = createFontTokens(tokenNames.bodyFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), BodyFamily, BodyWeight, BodySize, BodyLineHeight, 'sans-serif');\nexport const [groupHeaderFont, groupHeaderFontColor, groupHeaderDisabledFontColor, groupHeaderFontFamily, groupHeaderFontWeight, groupHeaderFontSize, groupHeaderFontLineHeight, groupHeaderFallbackFontFamily] = createFontTokens(tokenNames.groupHeaderFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), GroupLabel1Family, GroupLabel1Weight, GroupLabel1Size, GroupLabel1LineHeight, 'sans-serif');\nexport const [controlLabelFont, controlLabelFontColor, controlLabelDisabledFontColor, controlLabelFontFamily, controlLabelFontWeight, controlLabelFontSize, controlLabelFontLineHeight, controlLabelFallbackFontFamily] = createFontTokens(tokenNames.controlLabelFont, (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.6), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), ControlLabel1Family, ControlLabel1Weight, ControlLabel1Size, ControlLabel1LineHeight, 'sans-serif');\nexport const [buttonLabelFont, buttonLabelFontColor, buttonLabelDisabledFontColor, buttonLabelFontFamily, buttonLabelFontWeight, buttonLabelFontSize, buttonLabelFontLineHeight, buttonLabelFallbackFontFamily] = createFontTokens(tokenNames.buttonLabelFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), ButtonLabel1Family, ButtonLabel1Weight, ButtonLabel1Size, ButtonLabel1LineHeight, 'sans-serif');\nexport const [tooltipCaptionFont, tooltipCaptionFontColor, tooltipCaptionDisabledFontColor, tooltipCaptionFontFamily, tooltipCaptionFontWeight, tooltipCaptionFontSize, tooltipCaptionFontLineHeight, tooltipCaptionFallbackFontFamily] = createFontTokens(tokenNames.tooltipCaptionFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), TooltipCaptionFamily, TooltipCaptionWeight, TooltipCaptionSize, TooltipCaptionLineHeight, 'sans-serif');\nexport const [errorTextFont, errorTextFontColor, errorTextDisabledFontColor, errorTextFontFamily, errorTextFontWeight, errorTextFontSize, errorTextFontLineHeight, errorTextFallbackFontFamily] = createFontTokens(tokenNames.errorTextFont, (element) => getFailColorForTheme(element), (element) => hexToRgbaCssColor(getFailColorForTheme(element), 0.3), ErrorLightUiFamily, ErrorLightUiWeight, ErrorLightUiSize, TooltipCaptionLineHeight, 'sans-serif');\n// Font Transform Tokens\nexport const groupHeaderTextTransform = DesignToken.create(styleNameFromTokenName(tokenNames.groupHeaderTextTransform)).withDefault('uppercase');\n// Animation Tokens\nexport const smallDelay = DesignToken.create(styleNameFromTokenName(tokenNames.smallDelay)).withDefault(SmallDelay);\nexport const mediumDelay = DesignToken.create(styleNameFromTokenName(tokenNames.mediumDelay)).withDefault(MediumDelay);\nexport const largeDelay = DesignToken.create(styleNameFromTokenName(tokenNames.largeDelay)).withDefault(250);\n// Private helpers functions\nfunction hexToRgbPartial(hexValue) {\n const { red, green, blue } = hexRgb(hexValue);\n return `${red}, ${green}, ${blue}`;\n}\nfunction createFontTokens(fontTokenName, colorFunction, disabledColorFunction, family, weight, size, lineHeight, fallbackFamily) {\n if (fontTokenName === ''\n || family === ''\n || weight === ''\n || size === ''\n || lineHeight === ''\n || fallbackFamily === '') {\n throw new Error('createFontTokens parameter unexpectedly set to empty string');\n }\n const fontToken = DesignToken.create(styleNameFromTokenName(fontTokenName)).withDefault(`${weight} ${size}/${lineHeight} ${family}, ${fallbackFamily}`);\n const fontNameParts = fontTokenName.split('-font');\n const tokenPrefixWithoutFont = fontNameParts[0];\n if (tokenPrefixWithoutFont === undefined || fontNameParts[1] !== '') {\n throw new Error(`fontTokenName value of ${fontTokenName} did not have the expected '-font' suffix`);\n }\n const fontColorToken = DesignToken.create(styleNameFromTokenName(`${tokenPrefixWithoutFont}-font-color`)).withDefault((element) => colorFunction(element));\n const fontDisabledColorToken = DesignToken.create(styleNameFromTokenName(`${tokenPrefixWithoutFont}-disabled-font-color`)).withDefault((element) => disabledColorFunction(element));\n const fontFamilyToken = DesignToken.create(styleNameFromTokenName(`${tokenPrefixWithoutFont}-font-family`)).withDefault(`${family}`);\n const fontWeightToken = DesignToken.create(styleNameFromTokenName(`${tokenPrefixWithoutFont}-font-weight`)).withDefault(`${weight}`);\n const fontSizeToken = DesignToken.create(styleNameFromTokenName(`${tokenPrefixWithoutFont}-font-size`)).withDefault(`${size}`);\n const fontLineHeightToken = DesignToken.create(styleNameFromTokenName(`${tokenPrefixWithoutFont}-font-line-height`)).withDefault(`${lineHeight}`);\n const fontFallbackFamilyToken = DesignToken.create(styleNameFromTokenName(`${tokenPrefixWithoutFont}-fallback-font-family`)).withDefault(`${fallbackFamily}`);\n return [\n fontToken,\n fontColorToken,\n fontDisabledColorToken,\n fontFamilyToken,\n fontWeightToken,\n fontSizeToken,\n fontLineHeightToken,\n fontFallbackFamilyToken\n ];\n}\nfunction getColorForTheme(element, lightThemeColor, darkThemeColor, colorThemeColor) {\n switch (theme.getValueFor(element)) {\n case Theme.Light:\n return lightThemeColor;\n case Theme.Dark:\n return darkThemeColor;\n case Theme.Color:\n return colorThemeColor;\n default:\n return lightThemeColor;\n }\n}\nfunction getWarningColorForTheme(element) {\n return getColorForTheme(element, Warning100LightUi, Warning100DarkUi, Warning100DarkUi);\n}\nfunction getFailColorForTheme(element) {\n return getColorForTheme(element, Fail100LightUi, Fail100DarkUi, Fail100DarkUi);\n}\nfunction getPassColorForTheme(element) {\n return getColorForTheme(element, Pass100LightUi, Pass100DarkUi, Pass100DarkUi);\n}\nfunction getDefaultLineColorForTheme(element) {\n return getColorForTheme(element, Black91, Black15, White);\n}\nfunction getDefaultFontColorForTheme(element) {\n return getColorForTheme(element, Black91, Black15, White);\n}\nfunction getFillSelectedColorForTheme(element) {\n return getColorForTheme(element, DigitalGreenLight, DigitalGreenLight, White);\n}\nfunction getFillHoverColorForTheme(element) {\n return getColorForTheme(element, Black91, Black15, White);\n}\n//# sourceMappingURL=design-tokens.js.map","/* eslint-disable max-classes-per-file */\nimport { ElementStyles } from '@microsoft/fast-element';\nimport { theme as themeToken } from '../../theme-provider';\n/**\n * Subscription for {@link ThemeStyleSheetBehavior}\n */\nclass ThemeStyleSheetBehaviorSubscription {\n constructor(themeStyles, source) {\n this.themeStyles = themeStyles;\n this.source = source;\n this.attached = null;\n }\n handleChange({ target, token }) {\n this.attach(token.getValueFor(target));\n }\n attach(theme) {\n if (this.attached !== this.themeStyles[theme]) {\n if (this.attached !== null) {\n this.source.$fastController.removeStyles(this.attached);\n }\n this.attached = this.themeStyles[theme];\n if (this.attached !== null) {\n this.source.$fastController.addStyles(this.attached);\n }\n }\n }\n}\n/**\n * Behavior to conditionally apply theme-based stylesheets.\n */\nclass ThemeStyleSheetBehavior {\n constructor(lightStyle, darkStyleOrAlias, colorStyleOrAlias) {\n this.cache = new WeakMap();\n const light = lightStyle;\n const dark = ThemeStyleSheetBehavior.resolveTheme(darkStyleOrAlias, {\n light,\n dark: null,\n color: null\n });\n const color = ThemeStyleSheetBehavior.resolveTheme(colorStyleOrAlias, {\n light,\n dark,\n color: null\n });\n this.themeStyles = {\n light,\n dark,\n color\n };\n }\n static resolveTheme(value, currentThemeStyles) {\n if (value instanceof ElementStyles || value === null) {\n return value;\n }\n const currentStyle = currentThemeStyles[value];\n if (currentStyle === null) {\n throw new Error(`Tried to alias to theme '${value}' but the theme value is not set to a style.`);\n }\n return currentStyle;\n }\n /**\n * @internal\n */\n bind(source) {\n const subscriber = this.cache.get(source)\n || new ThemeStyleSheetBehaviorSubscription(this.themeStyles, source);\n const value = themeToken.getValueFor(source);\n // Currently subscriber from cache may have gone through unbind\n // but still be in cache so always resubscribe\n // See: https://github.com/microsoft/fast/issues/3246#issuecomment-1030424876\n themeToken.subscribe(subscriber, source);\n subscriber.attach(value);\n this.cache.set(source, subscriber);\n }\n /**\n * @internal\n */\n unbind(source) {\n const subscriber = this.cache.get(source);\n if (subscriber) {\n themeToken.unsubscribe(subscriber);\n }\n // Currently does not evict subscriber from cache\n // See: https://github.com/microsoft/fast/issues/3246#issuecomment-1030424876\n }\n}\n/**\n * Behavior to conditionally apply theme-based stylesheets. To determine which to apply,\n * the behavior will use the nearest ThemeProvider's 'theme' design system value.\n * To re-use the same style for multiple themes you can specify the name of an already\n * defined theme to alias them together.\n *\n * @public\n * @example\n * ```ts\n * css`\n * // ...\n * `.withBehaviors(new ThemeStyleSheetBehavior(\n * css`:host { ... Theme.Light style... }`),\n * null, // No style needed for Theme.Dark style\n * Theme.Light // For the Theme.Color style, re-use the previously set Theme.Light style\n * )\n * ```\n */\nexport const themeBehavior = (lightStyle, darkStyleOrAlias, colorStyleOrAlias) => new ThemeStyleSheetBehavior(lightStyle, darkStyleOrAlias, colorStyleOrAlias);\n//# sourceMappingURL=theme.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { DigitalGreenDark, PowerGreen, White } from '@ni/nimble-tokens/dist/styledictionary/js/tokens';\nimport { bodyEmphasizedFont, bodyFont, bodyFontColor } from '../theme-provider/design-tokens';\nimport { hexToRgbaCssColor } from '../utilities/style/colors';\nimport { themeBehavior } from '../utilities/style/theme';\nexport const styles = css `\n ${display('inline-block')}\n\n :host {\n box-sizing: border-box;\n font: ${bodyFont};\n --ni-private-breadcrumb-link-font-color: ${bodyFontColor};\n }\n\n .list {\n display: flex;\n flex-wrap: wrap;\n }\n\n :host(.prominent-links) {\n --ni-private-breadcrumb-link-active-font-color: ${bodyFontColor};\n }\n\n ::slotted(*:first-child) {\n padding-left: 0px;\n }\n\n ::slotted(*:not([href]):last-child) {\n font: ${bodyEmphasizedFont};\n }\n`.withBehaviors(themeBehavior(css `\n ${'' /* Light theme */}\n :host {\n --ni-private-breadcrumb-link-active-font-color: ${DigitalGreenDark};\n }\n\n :host(.prominent-links) {\n --ni-private-breadcrumb-link-font-color: ${DigitalGreenDark};\n }\n `, css `\n ${'' /* Dark theme */}\n :host {\n --ni-private-breadcrumb-link-active-font-color: ${PowerGreen};\n }\n\n :host(.prominent-links) {\n --ni-private-breadcrumb-link-font-color: ${PowerGreen};\n }\n `, css `\n ${'' /* Color theme */}\n :host {\n --ni-private-breadcrumb-link-active-font-color: ${hexToRgbaCssColor(White, 0.6)};\n }\n\n :host(.prominent-links) {\n --ni-private-breadcrumb-link-font-color: ${PowerGreen};\n }\n `));\n//# sourceMappingURL=styles.js.map","import { DesignSystem, Breadcrumb as FoundationBreadcrumb, breadcrumbTemplate as template } from '@microsoft/fast-foundation';\nimport { styles } from './styles';\n/**\n * A nimble-styled breadcrumb\n */\nexport class Breadcrumb extends FoundationBreadcrumb {\n}\nconst nimbleBreadcrumb = Breadcrumb.compose({\n baseName: 'breadcrumb',\n baseClass: FoundationBreadcrumb,\n template,\n styles\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleBreadcrumb());\n//# sourceMappingURL=index.js.map","/* 🤖 this file was generated by svg-to-ts*/\nexport const add16X16 = {\n name: 'add_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M13 7H9V3H7v4H3v2h4v4h2V9h4V7z\"/></svg>`\n};\nexport const arrowDownRightAndArrowUpLeft16X16 = {\n name: 'arrow_down_right_and_arrow_up_left_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M13.171 13.933l-2.276-2.247-.447 2.284-1.732-5.246 5.217 1.753-2.284.456 2.291 2.26zM2 2.746l2.29 2.261-2.283.456 5.217 1.753L5.492 1.97l-.447 2.284-2.276-2.247z\"/></svg>`\n};\nexport const arrowExpanderDown16X16 = {\n name: 'arrow_expander_down_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M3.5 4.737l1.11-.732 3.357 5.472L11.397 4l1.103.743L7.955 12 3.5 4.737z\"/></svg>`\n};\nexport const arrowExpanderLeft16X16 = {\n name: 'arrow_expander_left_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M11.263 3.5l.732 1.11-5.472 3.357L12 11.397l-.743 1.103L4 7.955 11.263 3.5z\"/></svg>`\n};\nexport const arrowExpanderRight16X16 = {\n name: 'arrow_expander_right_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M4.737 12.5l-.732-1.11 5.472-3.357L4 4.603 4.743 3.5 12 8.045 4.737 12.5z\"/></svg>`\n};\nexport const arrowExpanderUp16X16 = {\n name: 'arrow_expander_up_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M12.5 11.263l-1.11.732-3.357-5.472L4.603 12 3.5 11.257 8.045 4l4.455 7.263z\"/></svg>`\n};\nexport const arrowLeftFromLine16X16 = {\n name: 'arrow_left_from_line_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M12 14h2V2h-2zM2 7.982L7.9 5 6.588 7.004 11 7v2H6.613L7.9 11z\"/></svg>`\n};\nexport const arrowPartialRotateLeft16X16 = {\n name: 'arrow_partial_rotate_left_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8 11.988a3.086 3.086 0 003.143-3.025 3.08 3.08 0 00-3.085-3.02v.088l.826 2.067-5.598-2.796L8.884 2.5l-.742 1.932a4.619 4.619 0 014.572 4.53A4.629 4.629 0 018 13.5z\"/></svg>`\n};\nexport const arrowRightToLine16X16 = {\n name: 'arrow_right_to_line_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M12 14h2V2h-2zm-6.9-3l1.287-2H2V7l4.412.004L5.1 5 11 7.982z\"/></svg>`\n};\nexport const arrowRotateRight16X16 = {\n name: 'arrow_rotate_right_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8.9 2.773v1.715a3.366 3.366 0 013.3 3.428 3.366 3.366 0 01-3.3 3.429 3.36 3.36 0 01-3.293-3.366h.095l2.255.901-3.05-6.107L1.85 8.88l2.108-.808A5.039 5.039 0 008.9 13.059a5.05 5.05 0 004.95-5.143A5.05 5.05 0 008.9 2.773z\"/></svg>`\n};\nexport const arrowURotateLeft16X16 = {\n name: 'arrow_u_rotate_left_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8.857 9.453l-2.571-1.68v.908a3 3 0 003 3 3 3 0 003-3V3.11H14v5.571a4.714 4.714 0 01-4.714 4.715A4.714 4.714 0 014.57 8.68v-.908L2 9.453l3.403-6.849z\"/></svg>`\n};\nexport const arrowUpLeftAndArrowDownRight16X16 = {\n name: 'arrow_up_left_and_arrow_down_right_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M4.195 4.977l-.451 2.296L2 2l5.256 1.762-2.301.458 6.849 6.803.452-2.296L14 14l-5.256-1.762 2.301-.458-6.85-6.803z\"/></svg>`\n};\nexport const arrowsMaximize16X16 = {\n name: 'arrows_maximize_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M12.26 8.735L14 14l-5.25-1.763 2.295-.457-3.03-3.022L8 8.742l-.015.016.015.014-3.023 3.023 2.296.45L2 13.985l1.762-5.243.458 2.295 3.015-3.015.007-.007L7.258 8l-.016-.015L7.227 8l-3.03-3.03-.457 2.295L2 2l5.25 1.762-2.295.458 3.03 3.022.015.016.015-.016L8 7.227l3.023-3.022-2.296-.45L14 2.015l-1.762 5.243-.458-2.295L8.742 8l.016.015L8.773 8l3.03 3.03.457-2.295z\"/></svg>`\n};\nexport const arrowsRepeat16X16 = {\n name: 'arrows_repeat_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8.75 11.75L10 14l-6-3 6-3-1.25 2.25zM8 11h1a4 4 0 004-4M7.25 5.75L6 8l6-3-6-3 1.25 2.25zM8 5H7a4 4 0 00-4 4\"/></svg>`\n};\nexport const bars16X16 = {\n name: 'bars_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M2 13v-2h12v2zm0-4V7h12v2zm0-4V3h12v2z\"/></svg>`\n};\nexport const bell16X16 = {\n name: 'bell_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8 14a2.05 2.05 0 01-2-2h4a2.05 2.05 0 01-2 2zm-5.25-3s0-.746.5-.746h.065c.935 0 1.435-4.918 1.435-4.918 0-.504.25-.504.25-.504h.067c.075-.037.183-.143.183-.463v-.484c.105-.842.953-1.331 2.25-1.43v-.262c0-.081.09-.15.219-.193h.562c.129.043.219.112.219.193v.263c1.297.098 2.145.587 2.25 1.43v.483c0 .32.108.426.183.463H11s.25 0 .25.483v.02s.5 4.92 1.5 4.92c.5 0 .5.745.5.745z\"/></svg>`\n};\nexport const bellAndComment16X16 = {\n name: 'bell_and_comment_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M13.836 4.75H9.57a.71.71 0 00-.71.71v2.032a.71.71 0 00.71.711h.356L9.57 9.625l2.488-1.422h1.778a.71.71 0 00.71-.71V5.46a.71.71 0 00-.71-.711zM8.196 11H2.75s0-.746.5-.746h.065c.935 0 1.435-4.918 1.435-4.918 0-.504.25-.504.25-.504h.067c.075-.037.183-.143.183-.463v-.484c.105-.842.953-1.331 2.25-1.43v-.262c0-.081.09-.15.219-.193h.562c.129.043.219.112.219.193v.263c1.224.092 2.04.537 2.217 1.294H9.57a1.713 1.713 0 00-1.71 1.71v2.032a1.712 1.712 0 00.844 1.475zM6 12h4a2.05 2.05 0 01-2 2 2.05 2.05 0 01-2-2zm7.25-1H9.18l2.868-1.64c.198.527.431.894.702.894.5 0 .5.746.5.746z\"/></svg>`\n};\nexport const bellCircle16X16 = {\n name: 'bell_circle_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M7.042 11h2a1 1 0 01-2 0zm4.5-1h-7s0-.497.333-.497h.043c.624 0 .957-3.28.957-3.28 0-.335.167-.335.167-.335h.044c.05-.025.122-.095.122-.309v-.322c.07-.561.636-.888 1.5-.953v-.175c0-.054.06-.1.146-.129h.375c.086.029.146.075.146.129v.175c.865.065 1.43.392 1.5.953v.322c0 .214.072.284.122.309h.045s.166 0 .166.322v.014s.334 3.279 1 3.279c.334 0 .334.497.334.497zm-3.5-7.5a5.5 5.5 0 11-5.5 5.5 5.506 5.506 0 015.5-5.5m0-1a6.5 6.5 0 106.5 6.5 6.5 6.5 0 00-6.5-6.5z\"/></svg>`\n};\nexport const bellSolidCircle16X16 = {\n name: 'bell_solid_circle_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M1.5 8A6.5 6.5 0 008 14.5 6.5 6.5 0 0014.5 8 6.5 6.5 0 008 1.5 6.5 6.5 0 001.5 8zM8 12a1.025 1.025 0 01-1-1h2a1.025 1.025 0 01-1 1zm-3.5-2s0-.497.333-.497h.043c.624 0 .957-3.28.957-3.28 0-.335.167-.335.167-.335h.045c.05-.025.122-.095.122-.309v-.322c.07-.561.635-.888 1.5-.953v-.175c0-.054.06-.1.145-.129h.376c.085.029.145.075.145.129v.175c.865.065 1.43.392 1.5.953v.322c0 .214.073.284.122.309H10s.167 0 .167.322v.014s.333 3.279 1 3.279c.333 0 .333.497.333.497z\"/></svg>`\n};\nexport const blockWithRibbon16X16 = {\n name: 'block_with_ribbon_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M2 2v10h4.762A4.496 4.496 0 0113 5.762V2zm12 7.5a3.5 3.5 0 10-6 2.442V14l2.5-1.667L13 14v-2.058A3.485 3.485 0 0014 9.5zM10.5 8A1.5 1.5 0 119 9.5 1.5 1.5 0 0110.5 8z\"/></svg>`\n};\nexport const calendar16X16 = {\n name: 'calendar_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M4 4.023V2.977A.976.976 0 014.977 2h.046A.976.976 0 016 2.977v1.046A.977.977 0 015.023 5h-.046A.977.977 0 014 4.023zM13 4v.023A1.98 1.98 0 0111.023 6h-.046A1.98 1.98 0 019 4.023V4H7v.023A1.98 1.98 0 015.023 6h-.046A1.98 1.98 0 013 4.023V4a1 1 0 00-1 1v8a1 1 0 001 1h10a1 1 0 001-1V5a1 1 0 00-1-1zm-7 8H4v-1h2zm.001-1.999H4V9h2.001zm0-2.001H4V7h2.001zM9 12H7v-1h2zm0-1.999H7V9h2zM9 8H7V7h2zm3 4h-2v-1h2zm.001-1.999H10V9h2.001zm0-2.001H10V7h2.001zM10 4.023V2.977A.976.976 0 0110.977 2h.046a.976.976 0 01.977.977v1.046a.977.977 0 01-.977.977h-.046A.977.977 0 0110 4.023z\"/></svg>`\n};\nexport const chartDiagram16X16 = {\n name: 'chart_diagram_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M11 10V7H8V5h1V2H6v3h1v2H4v3H3v3h3v-3H5V8h5v2H9v3h3v-3z\"/></svg>`\n};\nexport const chartDiagramChildFocus16X16 = {\n name: 'chart_diagram_child_focus_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M12 10V7H8V5h1V2H6v3h1v2H3v3H2v3h3v-3H4V8h3v2H6v3h3v-3H8V8h3v2h-1v3h3v-3zm-8 2H3v-1h1zm4 0H7v-1h1zm4 0h-1v-1h1z\"/></svg>`\n};\nexport const chartDiagramParentFocus16X16 = {\n name: 'chart_diagram_parent_focus_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M12 10V7H8V5h1V2H6v3h1v2H3v3H2v3h3v-3H4V8h3v2H6v3h3v-3H8V8h3v2h-1v3h3v-3zM7 4V3h1v1z\"/></svg>`\n};\nexport const chartDiagramParentFocusTwoChild16X16 = {\n name: 'chart_diagram_parent_focus_two_child_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M11 10V7H8V5h1V2H6v3h1v2H4v3H3v3h3v-3H5V8h5v2H9v3h3v-3zm-6 2H4v-1h1zm6 0h-1v-1h1z\"/></svg>`\n};\nexport const check16X16 = {\n name: 'check_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M13 5.287L6.182 12 3 8.867l1.363-1.343L6.24 9.37 11.693 4z\"/></svg>`\n};\nexport const checkDot16X16 = {\n name: 'check_dot_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><circle class=\"cls-1\" cx=\"12.5\" cy=\"11.5\" r=\"1.5\"/><path class=\"cls-2\" d=\"M14 4.693l-8.182 8.182L2 9.057 3.636 7.42l2.25 2.25 6.546-6.545z\"/></svg>`\n};\nexport const circle16X16 = {\n name: 'circle_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8 2a6 6 0 106 6 6 6 0 00-6-6zm0 9.429A3.429 3.429 0 1111.429 8 3.429 3.429 0 018 11.429z\"/></svg>`\n};\nexport const circleBroken16X16 = {\n name: 'circle_broken_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M7 14A6.1 6.1 0 017 2v2.686a3.475 3.475 0 000 6.628zM9 2v2.686a3.475 3.475 0 010 6.628V14A6.1 6.1 0 009 2z\"/></svg>`\n};\nexport const circleCheck16X16 = {\n name: 'circle_check_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8 2a6 6 0 106 6 6 6 0 00-6-6zm-1.212 9.2L4 8.388 5.225 7.2l1.553 1.61 4.06-4.01L12 6.013z\"/></svg>`\n};\nexport const circlePartialBroken16X16 = {\n name: 'circle_partial_broken_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M9 2v2.686a3.475 3.475 0 010 6.628V14A6.1 6.1 0 009 2z\"/><path class=\"cls-2\" d=\"M7 11.314a3.475 3.475 0 010-6.628V2a6.1 6.1 0 000 12z\"/></svg>`\n};\nexport const circleSlash16X16 = {\n name: 'circle_slash_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8 2a6 6 0 106 6 6 6 0 00-6-6zm.075 1.714a4.281 4.281 0 013.573 6.647L5.714 4.427a4.262 4.262 0 012.36-.713zM3.789 8a4.261 4.261 0 01.713-2.36l5.934 5.933A4.281 4.281 0 013.789 8z\"/></svg>`\n};\nexport const circleX16X16 = {\n name: 'circle_x_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8 2a6 6 0 106 6 6 6 0 00-6-6zm.075 1.714a4.263 4.263 0 012.409.743l-2.37 2.37-2.4-2.4a4.262 4.262 0 012.36-.713zM4.502 5.64l2.4 2.4-2.37 2.37a4.273 4.273 0 01-.03-4.77zm3.573 6.647a4.256 4.256 0 01-2.31-.685l2.349-2.35 2.322 2.322a4.261 4.261 0 01-2.361.713zm3.573-1.925L9.326 8.039l2.35-2.349a4.251 4.251 0 01-.028 4.67z\"/></svg>`\n};\nexport const clipboard16X16 = {\n name: 'clipboard_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M11 5H5a2 2 0 012-2V2a1 1 0 012 0v1a2 2 0 012 2zm1-2v9H4V3H3a1 1 0 00-1 1v9a1 1 0 001 1h10a1 1 0 001-1V4a1 1 0 00-1-1zm-2 4H5v1h5zM8 9H5v1h3z\"/></svg>`\n};\nexport const clock16X16 = {\n name: 'clock_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8 2a6 6 0 106 6 6 6 0 00-6-6m.576 4.87l1.555-1.557a1.635 1.635 0 01.84-.256 1.979 1.979 0 01-.23.791c-.115.163-1.356 1.41-1.571 1.626a1.278 1.278 0 010 1.085l2.376 2.38a1.597 1.597 0 01.458 1.072 1.621 1.621 0 01-1.222-.613c-.456-.456-1.94-1.963-2.207-2.235a1.275 1.275 0 110-2.293\"/></svg>`\n};\nexport const clockCog16X16 = {\n name: 'clock_cog_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8.108 7.392l.955-.957a1.004 1.004 0 01.516-.157 1.215 1.215 0 01-.14.486c-.072.1-.834.866-.966.999a.785.785 0 010 .666l1.341 1.344a.981.981 0 01.281.658.996.996 0 01-.75-.376c-.28-.28-1.073-1.088-1.237-1.255a.783.783 0 110-1.408m5.69 2.292L14 7.324l-1.327-.113a4.76 4.76 0 00-.402-1.26l1.02-.86-1.527-1.811-1.019.86a4.726 4.726 0 00-.563-.344 4.61 4.61 0 00-.612-.265l.114-1.329L7.324 2l-.113 1.329a4.77 4.77 0 00-1.26.401l-.86-1.02L3.28 4.237l.858 1.02A4.771 4.771 0 003.53 6.43l-1.329-.114L2 8.676l1.329.114a4.69 4.69 0 00.401 1.26l-1.02.86 1.526 1.811 1.02-.859a4.666 4.666 0 001.175.608l-.113 1.33 2.358.2.114-1.328a4.688 4.688 0 001.26-.4l.86 1.02 1.81-1.527-.858-1.02a4.687 4.687 0 00.608-1.175zM8 11.45A3.45 3.45 0 1111.45 8 3.45 3.45 0 018 11.45z\"/></svg>`\n};\nexport const clockTriangle16X16 = {\n name: 'clock_triangle_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8 3a4.951 4.951 0 00-2.152.505L7.096 6H3.422A4.997 4.997 0 108 3zm2.003 7.616a453.75 453.75 0 01-1.675-1.7 1.061 1.061 0 110-1.907l1.294-1.297a1.36 1.36 0 01.699-.212 1.646 1.646 0 01-.19.658c-.097.136-1.13 1.173-1.309 1.353a1.063 1.063 0 010 .903l1.817 1.82a1.33 1.33 0 01.381.891 1.35 1.35 0 01-1.017-.51z\"/><path class=\"cls-2\" d=\"M5.477 5H1.522L3.5 1.045 5.477 5z\"/></svg>`\n};\nexport const clone16X16 = {\n name: 'clone_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M5 5h5V2H2v8h3zm1 1v8h8V6z\"/></svg>`\n};\nexport const cloudUpload16X16 = {\n name: 'cloud_upload_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8.476 7.298l-1.927 3.848 1.48-.568v3.407h.948v-3.407l1.42.568zM15 9.005a2.374 2.374 0 01-2.371 2.371h-.998l-.5-1h1.498a1.371 1.371 0 10-.516-2.64A3.77 3.77 0 104.797 5.99 2.238 2.238 0 002 8.148a2.223 2.223 0 002.057 2.22l1.758.009-.448.894a10.567 10.567 0 01-2.31-.121 3.224 3.224 0 01.993-6.225 4.77 4.77 0 019.236 1.68c0 .04 0 .081-.002.121A2.375 2.375 0 0115 9.006z\"/></svg>`\n};\nexport const cloudWithArrow16X16 = {\n name: 'cloud_with_arrow_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M12.429 10.1l.001-.101A3.998 3.998 0 004.69 8.59a2.715 2.715 0 00-2.557 2.7 2.782 2.782 0 001.725 2.516 4.854 4.854 0 001.225.19h.004c.19.006 6.792 0 6.792 0a1.987 1.987 0 00.55-3.897zm-.55 3.06l-7.183-.008a1.867 1.867 0 01.156-3.728 1.891 1.891 0 01.464.06 3.16 3.16 0 116.13 1.462 1.149 1.149 0 11.433 2.213zM4.5 4.5a1 1 0 111-1 1 1 0 01-1 1zm5.138.681l.496-1.241H7v-.828h3.134l-.496-1.293L13 3.502z\"/></svg>`\n};\nexport const cog16X16 = {\n name: 'cog_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M6.823 2l-2.217.914.516 1.25a4.743 4.743 0 00-.95.944L2.925 4.59l-.922 2.212 1.247.52a4.82 4.82 0 00-.002 1.34L2 9.176l.914 2.218 1.248-.515a4.824 4.824 0 00.945.949l-.518 1.247 2.214.921.519-1.246a4.68 4.68 0 00.674.048 4.74 4.74 0 00.666-.047L9.176 14l2.218-.914-.515-1.248a4.828 4.828 0 00.95-.945l1.245.518.922-2.214-1.247-.519a4.73 4.73 0 00.002-1.34L14 6.824l-.914-2.218-1.25.515a4.739 4.739 0 00-.944-.949l.518-1.246-2.212-.922-.52 1.247a4.714 4.714 0 00-.676-.049 4.808 4.808 0 00-.663.047zm1.175 9a2.999 2.999 0 112.77-1.847 2.984 2.984 0 01-2.77 1.846M8 6.801a1.2 1.2 0 10.46.093A1.198 1.198 0 008 6.8\"/></svg>`\n};\nexport const cogDatabase16X16 = {\n name: 'cog_database_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M13.147 11.648c-.01.006-.02.014-.032.02a4.1 4.1 0 01-.46.224l-.012.005c-.033.015-.068.028-.103.042-.051.019-.11.036-.162.055-.094.034-.186.068-.285.099-.034.01-.064.024-.1.033-.019.007-.042.012-.062.019q-.279.078-.58.144l-.133.03q-.324.068-.668.12l-.135.02c-.214.03-.431.057-.653.079l-.103.012a17.446 17.446 0 01-.903.06c-.254.01-.507.018-.759.018a18.75 18.75 0 01-1.66-.078l-.105-.012a15.901 15.901 0 01-.65-.08l-.134-.018c-.23-.036-.455-.076-.67-.122l-.132-.029a9.372 9.372 0 01-.582-.145l-.059-.017c-.036-.01-.067-.023-.1-.034a7.034 7.034 0 01-.285-.1c-.054-.018-.112-.035-.165-.055l-.101-.041-.01-.005a4.076 4.076 0 01-.462-.223l-.03-.02a2.343 2.343 0 01-.334-.24c-.014-.012-.033-.022-.045-.033v1.013c0 .364.524.749 1.427 1.051a8.098 8.098 0 00.697.197 14.793 14.793 0 003.4.363 14.818 14.818 0 003.403-.362 8.38 8.38 0 00.697-.197c.904-.303 1.43-.688 1.43-1.052v-1.013c-.015.012-.034.022-.047.034a2.478 2.478 0 01-.333.238m.38-1.883c0-.762-2.27-1.61-5.529-1.61-3.256 0-5.524.848-5.524 1.61 0 .365.525.75 1.427 1.052a9.254 9.254 0 00.698.197 14.8 14.8 0 003.399.362 14.817 14.817 0 003.401-.362 8.375 8.375 0 00.7-.197c.902-.302 1.428-.687 1.428-1.052M3.931 7.697L2.802 7.6l.171-1.979 1.129.095a3.984 3.984 0 01.516-.985l-.729-.856 1.537-1.28.73.855a4.085 4.085 0 011.071-.336L7.323 2l2.004.17-.097 1.114a3.949 3.949 0 01.52.223 4.027 4.027 0 01.478.288l.866-.721 1.296 1.52-.866.72a3.961 3.961 0 01.341 1.058l1.127.095-.133 1.539a10.211 10.211 0 00-2.482-.618c.007-.048.021-.094.026-.143a2.48 2.48 0 00-1.346-2.416 2.543 2.543 0 00-2.938.45 2.408 2.408 0 00-.698 2.14 11.88 11.88 0 00-1.482.311l-.008-.033zm4.067-.468c-.331 0-.697.012-1.077.035a.972.972 0 01-.026-.314.99.99 0 01.292-.618 1.011 1.011 0 011.174-.18.992.992 0 01.539.967.923.923 0 01-.036.132 17.817 17.817 0 00-.866-.022z\"/></svg>`\n};\nexport const cogDatabaseInset16X16 = {\n name: 'cog_database_inset_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M12.751 7.338L14 6.824l-.914-2.218-1.25.515a4.74 4.74 0 00-.944-.949l.518-1.246-2.212-.922-.52 1.247a4.715 4.715 0 00-.676-.049 4.803 4.803 0 00-.663.047L6.823 2l-2.217.914.516 1.25a4.741 4.741 0 00-.95.944L2.925 4.59l-.922 2.212 1.247.52a4.816 4.816 0 00-.002 1.34L2 9.176l.914 2.218 1.248-.515a4.823 4.823 0 00.945.949l-.518 1.247 2.214.921.519-1.246a4.673 4.673 0 00.674.048 4.737 4.737 0 00.666-.047L9.176 14l2.218-.914-.515-1.248a4.826 4.826 0 00.95-.945l1.245.518.922-2.214-1.247-.519a4.729 4.729 0 00.002-1.34zm-1.06 2.418c0 .244-.35.5-.954.703a5.157 5.157 0 01-.466.131 9.896 9.896 0 01-2.273.243 9.88 9.88 0 01-2.271-.243 5.454 5.454 0 01-.466-.131c-.603-.202-.953-.46-.953-.703V9.08c.008.008.02.015.03.023a1.567 1.567 0 00.223.16l.02.013a2.725 2.725 0 00.309.15l.006.002.068.028c.035.013.074.025.11.037.062.023.125.046.19.066.023.008.043.016.067.023l.04.011c.123.036.253.069.389.098l.087.02c.144.03.295.057.448.08l.09.012c.142.021.286.038.434.054l.07.008c.162.014.327.027.491.035l.112.005a11.63 11.63 0 001.013 0l.11-.005c.165-.008.33-.02.493-.035l.069-.008c.148-.015.293-.033.436-.054l.09-.012q.23-.035.447-.08l.088-.02c.135-.03.264-.062.388-.097l.042-.012.066-.023c.066-.02.128-.043.19-.066.036-.012.075-.024.109-.037l.069-.028.007-.003a2.744 2.744 0 00.308-.149l.022-.014a1.651 1.651 0 00.222-.159l.03-.023zm0-1.76c0 .243-.35.5-.954.703a5.157 5.157 0 01-.466.13 9.897 9.897 0 01-2.273.243 9.88 9.88 0 01-2.271-.242 5.44 5.44 0 01-.466-.132c-.603-.202-.953-.459-.953-.703V7.32c.008.008.02.014.03.022a1.566 1.566 0 00.223.16l.02.013a2.716 2.716 0 00.309.15l.006.003c.022.01.046.018.068.027l.11.038c.062.022.125.045.19.066.023.007.043.016.067.023l.04.011c.123.035.253.067.389.097l.087.02c.144.03.295.057.448.08l.09.013c.142.02.286.038.434.053l.07.008a11.715 11.715 0 001.726.035c.165-.008.33-.02.493-.035l.069-.008c.148-.015.293-.033.436-.053l.09-.012q.23-.036.447-.081l.088-.02q.202-.044.388-.097c.014-.004.029-.007.042-.012.023-.006.043-.015.067-.022.065-.02.127-.044.19-.066l.108-.037.069-.028.008-.003a2.735 2.735 0 00.307-.15l.022-.013a1.657 1.657 0 00.222-.16c.009-.007.021-.014.03-.022zm-.953-1.05a5.625 5.625 0 01-.467.132 9.896 9.896 0 01-2.272.24 9.885 9.885 0 01-2.271-.24 6.179 6.179 0 01-.466-.133c-.603-.201-.954-.459-.954-.702 0-.51 1.515-1.076 3.69-1.076 2.177 0 3.694.567 3.694 1.076 0 .243-.351.5-.954.702z\"/></svg>`\n};\nexport const cogSmallCog16X16 = {\n name: 'cog_small_cog_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M6.712 5.956a.76.76 0 01-.224.477.787.787 0 01-.909.139.762.762 0 01-.19-1.224.781.781 0 01.907-.14.767.767 0 01.416.748zM14 11.61l-.441 1.088-.62-.246a2.276 2.276 0 01-.232.268 2.386 2.386 0 01-.23.2l.263.606-1.09.46-.263-.606a2.353 2.353 0 01-.662.008l-.248.612-1.1-.435.249-.612a2.273 2.273 0 01-.256-.215 2.358 2.358 0 01-.218-.243l-.614.26-.466-1.077.614-.259a2.287 2.287 0 01-.008-.654l-.62-.246.44-1.087.62.246a2.38 2.38 0 01.234-.27 2.463 2.463 0 01.229-.198l-.263-.606 1.09-.46.263.605a2.422 2.422 0 01.662-.008l.248-.612 1.1.436-.248.612a2.351 2.351 0 01.473.458l.614-.26.466 1.076-.613.26a2.339 2.339 0 01.008.654zm-1.934-1.591a1.495 1.495 0 00-2.085.011 1.454 1.454 0 00.01 2.081 1.479 1.479 0 00.486.313 1.495 1.495 0 001.6-.324 1.454 1.454 0 00-.01-2.081zM9.036 8.33l-1.189.99-.564-.661a3.104 3.104 0 01-.827.26l-.075.86-1.547-.13.074-.862a3.075 3.075 0 01-.77-.394l-.671.557-1.001-1.174.67-.557a3.015 3.015 0 01-.264-.817L2 6.328 2.132 4.8l.872.074a3.08 3.08 0 01.4-.762l-.564-.66 1.188-.99.565.66a3.159 3.159 0 01.827-.26L5.494 2l1.548.131-.074.861a3.046 3.046 0 01.402.172 3.111 3.111 0 01.369.223l.669-.557L9.41 4.004l-.67.557a3.06 3.06 0 01.264.818l.871.073-.132 1.53-.872-.074a3.026 3.026 0 01-.4.762zM7.874 6.054a1.916 1.916 0 00-1.04-1.868 1.965 1.965 0 00-2.27.348 1.907 1.907 0 00.478 3.06 1.965 1.965 0 002.27-.347 1.903 1.903 0 00.562-1.193zm3.376 4.467a.6.6 0 00-.64.13.591.591 0 00-.131.196.584.584 0 00.33.761.597.597 0 00.64-.13.59.59 0 00.13-.195.583.583 0 00-.135-.637.596.596 0 00-.194-.125z\"/></svg>`\n};\nexport const cogZoomed16X16 = {\n name: 'cog_zoomed_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M14 3.11l-1.178-.632-1.875 2.133a5.424 5.424 0 00-.716-.094L8.766 2l-2.138.627.2 2.863a5.226 5.226 0 00-.527.47l-2.77-.738-1.056 1.95L4.656 9.04a5.188 5.188 0 00-.087.704L2 11.144l.659 2.1 2.914-.197a4.961 4.961 0 00.453.525l-.13.427h7.232a.818.818 0 00.87-.759L14 13.2zm-1.335 7.876a2.877 2.877 0 01-3.741 1.477 2.768 2.768 0 01-1.51-3.66 2.876 2.876 0 013.729-1.482 2.76 2.76 0 011.535 3.637z\"/></svg>`\n};\nexport const comment16X16 = {\n name: 'comment_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M14 3.5v6a1.5 1.5 0 01-1.5 1.5H8.75L3.5 14l.75-3H3.5A1.5 1.5 0 012 9.5v-6A1.5 1.5 0 013.5 2h9A1.5 1.5 0 0114 3.5z\"/></svg>`\n};\nexport const computerAndMonitor16X16 = {\n name: 'computer_and_monitor_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M14 12V6H5v6h4v1H7v1h5v-1h-2v-1zm-8-1V7h7v4zm1-6H4V4h3zm1 0V3H3v7h1v3h2v1H3a1 1 0 01-1-1V3a1 1 0 011-1h5a1 1 0 011 1v2z\"/></svg>`\n};\nexport const copy16X16 = {\n name: 'copy_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M5 5h5V2H2v8h3zm1 1v8h8V6zm7 7H7V7h6z\"/></svg>`\n};\nexport const copyText16X16 = {\n name: 'copy_text_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M5 5h5V2H2v8h3zm1 1v8h8V6zm7 7H7V7h6zm-1-4H8V8h4zm-1 2H8v-1h3z\"/></svg>`\n};\nexport const dashboardBuilder16X16 = {\n name: 'dashboard_builder_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M4.646 6.646L7 4.293l2 2 1.646-1.646.707.707L9 7.707l-2-2-1.646 1.647zM14 2v12H2V2zM8 9H4v3h4zm4 2H9v1h3zm0-2H9v1h3zm0-5H4v4h8V4zm-5 6H5v1h2z\"/></svg>`\n};\nexport const dashboardBuilderLegend16X16 = {\n name: 'dashboard_builder_legend_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M2 2v12h12V2zm10 10H4v-1.293l2.04-2.04 3.804 2.983L12 9.74zm0-7h-2v1h2v2.405L9.805 10.35 5.96 7.333 4 9.293V6h2V5H4V4h8zM9 6H7V5h2z\"/></svg>`\n};\nexport const dashboardBuilderTemplates16X16 = {\n name: 'dashboard_builder_templates_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M2 2v12h12V2zm11 11H3V3h10z\"/><path class=\"cls-1\" d=\"M9 9h3v1H9zM12 4H4v4h8zm-1 3H5V5h6zM8 9H4v3h4zm-1 2H5v-1h2zM9 11h3v1H9z\"/></svg>`\n};\nexport const dashboardBuilderTile16X16 = {\n name: 'dashboard_builder_tile_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M4.646 10.646L7 8.293l2 2 1.646-1.646.707.707L9 11.707l-2-2-1.646 1.647zM14 2v12H2V2zM4 7h3V4H4zm8 1H4v4h8V8zm0-4H8v3h4z\"/></svg>`\n};\nexport const database16X16 = {\n name: 'database_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M13.588 11.46a2.69 2.69 0 00.36-.257c.015-.012.036-.023.051-.036v1.093c0 .395-.57.81-1.551 1.137a9.133 9.133 0 01-.757.212A16.17 16.17 0 017.997 14a16.144 16.144 0 01-3.69-.391 8.83 8.83 0 01-.757-.213C2.57 13.069 2 12.655 2 12.26v-1.093c.013.013.033.023.049.036a2.61 2.61 0 00.362.26c.012.006.021.013.033.02a4.294 4.294 0 00.502.241l.01.005.11.046c.058.02.121.039.18.06.1.036.202.073.308.106.037.012.07.026.11.037.018.006.042.011.063.017.2.06.412.11.633.159l.142.031c.234.049.478.092.727.13.048.008.098.014.146.02a17.346 17.346 0 00.82.1 24.659 24.659 0 00.98.065c.273.01.55.019.822.019.273 0 .548-.008.824-.02.06-.003.119-.006.179-.007.268-.014.536-.034.801-.057l.112-.014c.24-.023.476-.052.708-.086.048-.006.098-.012.147-.02.25-.038.491-.081.725-.13.05-.012.096-.021.144-.031.219-.049.429-.1.63-.157.022-.008.047-.013.069-.02.037-.01.07-.024.108-.036.107-.034.206-.07.309-.107.057-.02.12-.038.176-.06.037-.014.075-.028.111-.045l.013-.005a4.316 4.316 0 00.5-.241.415.415 0 00.035-.022m0-2.845l-.035.022a4.46 4.46 0 01-.5.241l-.013.005c-.036.016-.074.03-.111.045l-.176.06c-.103.037-.202.073-.31.107-.037.012-.07.025-.107.036-.022.007-.047.012-.069.02a10.638 10.638 0 01-.774.187q-.35.075-.725.13c-.049.009-.099.014-.147.021-.232.034-.468.063-.708.086L9.8 9.59c-.265.024-.533.044-.801.057l-.18.008c-.275.012-.55.02-.823.02a19 19 0 01-.823-.02l-.18-.008a20.583 20.583 0 01-.8-.057l-.113-.013c-.241-.024-.475-.052-.706-.086-.048-.006-.098-.012-.146-.02a12.62 12.62 0 01-1.502-.32c-.021-.006-.045-.01-.063-.017-.04-.012-.073-.025-.11-.037a7.688 7.688 0 01-.309-.107c-.058-.02-.121-.039-.179-.06l-.11-.045-.01-.005a4.436 4.436 0 01-.502-.241c-.012-.007-.02-.014-.033-.02a2.544 2.544 0 01-.362-.26c-.016-.013-.036-.023-.049-.036v1.093c0 .394.57.81 1.55 1.136a8.83 8.83 0 00.757.213 16.145 16.145 0 003.69.39 16.171 16.171 0 003.694-.39 9.133 9.133 0 00.757-.213c.98-.327 1.551-.742 1.551-1.136V8.322c-.015.013-.036.024-.05.036a2.69 2.69 0 01-.361.258m0-2.845l-.035.022a4.463 4.463 0 01-.5.241l-.013.005c-.036.016-.074.03-.111.045l-.176.06c-.103.037-.202.073-.31.107-.037.012-.07.026-.107.036-.022.007-.047.012-.069.02q-.302.084-.63.156l-.144.031q-.351.075-.725.132c-.049.006-.099.012-.147.02-.232.032-.468.061-.708.085l-.112.013a19.05 19.05 0 01-.98.066c-.276.01-.55.018-.824.018a20.457 20.457 0 01-1.802-.084l-.114-.013c-.241-.024-.475-.053-.706-.086l-.146-.02c-.249-.038-.493-.081-.727-.13-.05-.01-.094-.022-.142-.032-.22-.048-.432-.1-.633-.157l-.063-.018c-.04-.011-.073-.025-.11-.037a7.688 7.688 0 01-.309-.107l-.179-.06-.11-.045-.01-.005a4.438 4.438 0 01-.502-.241c-.012-.007-.02-.014-.033-.02a2.544 2.544 0 01-.362-.26C2.033 5.5 2.013 5.488 2 5.476V6.57c0 .394.57.81 1.55 1.136a8.83 8.83 0 00.757.213 16.144 16.144 0 003.69.39 16.17 16.17 0 003.694-.39 9.133 9.133 0 00.757-.213c.98-.327 1.551-.742 1.551-1.136V5.477c-.015.013-.036.024-.05.036a2.69 2.69 0 01-.361.258M14 3.738C14 2.915 11.535 2 7.998 2 4.463 2 2 2.915 2 3.738c0 .394.57.81 1.55 1.135.113.039.23.074.355.11q.192.053.402.103a16.152 16.152 0 003.69.39 16.17 16.17 0 003.692-.39 9.13 9.13 0 00.759-.213C13.429 4.548 14 4.132 14 3.738\"/></svg>`\n};\nexport const databaseCheck16X16 = {\n name: 'database_check_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M5.919 12.103a11.87 11.87 0 01-1.594-.26 7.445 7.445 0 01-.644-.182c-.835-.28-1.32-.635-1.32-.973v-.936c.011.01.029.02.042.031a2.226 2.226 0 00.308.222l.028.018a3.65 3.65 0 00.428.206l.009.005.093.038c.049.019.103.034.153.051.086.032.173.063.262.092.032.01.06.022.094.032l.054.014c.17.05.35.095.538.136l.121.027c.2.042.408.078.62.111.041.007.083.012.124.018.197.028.396.052.6.073l.038.005-.613.613zm-2.238-7.74a8.567 8.567 0 00.645.182 13.68 13.68 0 003.143.334 13.697 13.697 0 003.144-.334 7.753 7.753 0 00.646-.182c.835-.28 1.32-.635 1.32-.973 0-.704-2.098-1.488-5.11-1.488-3.01 0-5.107.784-5.107 1.488 0 .338.486.694 1.32.973zm5.047 6.495l.008.007.008-.008zm-5.047-4.07a7.471 7.471 0 00.644.182 13.675 13.675 0 003.143.335 13.697 13.697 0 003.146-.335 7.694 7.694 0 00.644-.181c.835-.28 1.321-.636 1.321-.973v-.937c-.013.012-.03.02-.043.032a2.29 2.29 0 01-.307.22.353.353 0 01-.03.02 3.788 3.788 0 01-.426.206l-.01.004c-.031.014-.064.026-.096.039-.047.017-.101.033-.15.05-.087.032-.172.064-.263.092-.032.01-.06.023-.092.032l-.058.016q-.257.073-.537.134l-.122.027q-.3.063-.618.112l-.124.017c-.198.029-.399.053-.604.074l-.095.01a16.15 16.15 0 01-.835.057c-.235.01-.468.016-.701.016a17.43 17.43 0 01-1.535-.072l-.097-.011a14.698 14.698 0 01-.6-.074l-.125-.017c-.212-.033-.42-.07-.62-.112l-.12-.027a8.673 8.673 0 01-.54-.134c-.018-.006-.037-.01-.053-.016-.034-.01-.062-.022-.094-.032a6.551 6.551 0 01-.262-.091c-.05-.018-.104-.034-.153-.052l-.093-.038-.01-.004a3.768 3.768 0 01-.427-.207l-.028-.017a2.167 2.167 0 01-.308-.223c-.013-.011-.031-.02-.042-.03v.936c0 .337.485.692 1.32.972zm0 2.436a7.471 7.471 0 00.644.182 13.147 13.147 0 002.644.328l.318-.318.323.324a14.377 14.377 0 002.473-.222l1.753-1.753-.063.028-.01.004c-.031.014-.063.027-.096.04-.047.017-.101.033-.15.05-.087.032-.171.063-.263.091-.032.01-.06.022-.092.032-.018.006-.04.01-.058.017a9.015 9.015 0 01-.66.16q-.298.064-.617.112l-.124.017c-.198.029-.399.054-.604.074l-.095.011c-.225.02-.454.037-.682.049l-.153.007a16.115 16.115 0 01-1.402 0l-.154-.007a17.43 17.43 0 01-.68-.049l-.097-.011a14.689 14.689 0 01-.6-.074c-.042-.006-.084-.01-.125-.017a10.679 10.679 0 01-1.28-.274l-.053-.015c-.034-.01-.062-.021-.094-.032a6.551 6.551 0 01-.262-.09c-.05-.018-.104-.034-.153-.053-.03-.012-.063-.024-.093-.038l-.01-.004a3.77 3.77 0 01-.427-.207l-.028-.017a2.169 2.169 0 01-.308-.223c-.014-.01-.031-.02-.042-.03v.936c0 .337.485.693 1.32.972zm9.269-1.6L8.736 11.84l-1.449-1.45-1.053 1.055 2.458 2.458 5.268-5.268z\"/></svg>`\n};\nexport const desktop16X16 = {\n name: 'desktop_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M13 3H2v8h5v1H5v1h6v-1H9v-1h5V3zm0 7H3V4h10z\"/></svg>`\n};\nexport const donutChart16X16 = {\n name: 'donut_chart_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M10.872 10.956a4.123 4.123 0 01-6.997-2.962v-.007H2v.007a5.995 5.995 0 0010.301 4.182zM8.372 2v1.884a4.13 4.13 0 012.992 6.501l1.429 1.224A6.008 6.008 0 008.37 2zM2.048 7.236h1.897a4.117 4.117 0 013.675-3.352V2A6.012 6.012 0 002.05 7.236z\"/></svg>`\n};\nexport const dotSolidDotStroke16X16 = {\n name: 'dot_solid_dot_stroke_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M7 8a3 3 0 11-3-3 3 3 0 013 3zm5-2a2 2 0 102 2 2.002 2.002 0 00-2-2m0-1a3 3 0 11-3 3 3 3 0 013-3z\"/></svg>`\n};\nexport const download16X16 = {\n name: 'download_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M14 9v5H2V9h1v4h10V9zm-5.982 2L11 5.1 8.996 6.412 9 2H7v4.387L5 5.1z\"/></svg>`\n};\nexport const electronicChipZoomed16X16 = {\n name: 'electronic_chip_zoomed_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M13 14H7.333V9.333a2 2 0 012-2H14V13a1 1 0 01-1 1zM12 2a.667.667 0 00-.667.667v2h1.334v-2A.667.667 0 0012 2zM8.444 2a.667.667 0 00-.666.667v2H9.11v-2A.667.667 0 008.444 2zM2 8.444a.667.667 0 00.667.667h2V7.778h-2A.667.667 0 002 8.444zM2 12a.667.667 0 00.667.667h2v-1.334h-2A.667.667 0 002 12zm11.556-8.222v.889a.444.444 0 01-.445.444H10.89a.444.444 0 01-.445-.444v-.89H10v.89a.444.444 0 01-.444.444H7.333a.444.444 0 01-.444-.444v-.89H4.667a.889.889 0 00-.89.89v2.222h.89a.444.444 0 01.444.444v2.223a.444.444 0 01-.444.444h-.89v.444h.89a.444.444 0 01.444.445v2.222a.444.444 0 01-.444.445h-.89V14H6.89V8.222A1.333 1.333 0 018.222 6.89H14V3.778z\"/></svg>`\n};\nexport const exclamationMark16X16 = {\n name: 'exclamation_mark_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M6.371 11.873h3.256V14H6.37zM6.316 2l.37 8.542h2.628L9.684 2z\"/></svg>`\n};\nexport const eye16X16 = {\n name: 'eye_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M7.856 3.657A7.004 7.004 0 001 8.001a7.588 7.588 0 007.146 4.342A7.002 7.002 0 0015 8a7.586 7.586 0 00-7.144-4.344m-1.199 7.289A5.108 5.108 0 012.443 8s.665-2.585 4.33-3.037a2.786 2.786 0 00-1.414 1.223l2.787 1.22H4.977a3.47 3.47 0 00-.053.576 3.348 3.348 0 001.734 2.962m2.85.02a3.4 3.4 0 00.107-5.908 5.006 5.006 0 013.942 2.944s-.603 2.44-4.05 2.963\"/></svg>`\n};\nexport const fancyA16X16 = {\n name: 'fancy_a_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M10.597 9.844H7.865A7.465 7.465 0 016.19 11.96a3.323 3.323 0 01-2.042.667 2.835 2.835 0 01-1.964-.753L2 11.706l1.153-1.152.157.251a1.347 1.347 0 001.2.716 1.976 1.976 0 001.385-.625 11.546 11.546 0 001.722-2.403l2.252-3.88a7.585 7.585 0 00-.679-.037 2.365 2.365 0 00-1.66.54 1.967 1.967 0 00-.556 1.51V6.7l-.067.106-1.564.762.045-.423a3.845 3.845 0 01.645-1.874 3.312 3.312 0 011.34-1.177 6.74 6.74 0 012.208-.443c.127 0 .277-.013.471-.029l.369-.03 1.387-.257.087 2.154.33 3.886a4.862 4.862 0 00.29 1.701.498.498 0 00.528.31c.057 0 .277 0 .641-.03L14 11.33l-.172.83-3.003.506zm-.086-.896l-.275-3.22-1.855 3.22z\"/></svg>`\n};\nexport const file16X16 = {\n name: 'file_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M4 3v10h8V7H8V3zm5 0v3h3z\"/></svg>`\n};\nexport const fileDrawer16X16 = {\n name: 'file_drawer_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M2 4v10h12V4zm8 4H6V6h4zm4-5H2V2h12z\"/></svg>`\n};\nexport const fileSearch16X16 = {\n name: 'file_search_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M14 6v6h-3.333a3.662 3.662 0 00.249-1.302A3.701 3.701 0 007.22 7 3.654 3.654 0 006 7.223V2h4v4zm-3-4v3h3zm-1.126 8.698a2.697 2.697 0 01-4.73 1.772L2.521 14l-.48-.823 2.613-1.523a2.698 2.698 0 115.22-.956zm-.952 0a1.745 1.745 0 10-1.745 1.745 1.747 1.747 0 001.745-1.745z\"/></svg>`\n};\nexport const filter16X16 = {\n name: 'filter_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M2 3.045v1.29h.787a2.069 2.069 0 102.907 2.903l1.32 2.173v4.522l1.973-1.846V9.411l3.878-5.076h1.134v-1.29zm2.033 4.059a1.154 1.154 0 010-2.308c.023 0 .045.006.068.007l1.002 1.575a1.154 1.154 0 01-1.07.726z\"/></svg>`\n};\nexport const floppyDiskCheckmark16X16 = {\n name: 'floppy_disk_checkmark_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M12.455 5h-1.041l-1.005 1H12v3H4V6h3.782L6.79 5H3.583A.585.585 0 003 5.598V12.5l1.5 1.497 7.858.003a.602.602 0 00.6-.6L13 5.545A.513.513 0 0012.455 5zM11 13H8v-2H6v2H5v-3h6zm2-10.99L9.091 5.9 7 3.79l.919-.89 1.164 1.208L12.128 1.1l.872.91\"/></svg>`\n};\nexport const floppyDiskStarArrowRight16X16 = {\n name: 'floppy_disk_star_arrow_right_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M5.5 2.5a1 1 0 10-1 1 1 1 0 001-1zm7.5.002L9.638.819l.496 1.293H7v.828h3.134L9.638 4.18zM12.455 5H3.583A.585.585 0 003 5.598V12.5l1.5 1.497 7.858.003a.602.602 0 00.6-.6L13 5.545A.513.513 0 0012.455 5zM11 13H8v-2H6v2H5v-3h6zm1-4H4V6h8z\"/></svg>`\n};\nexport const floppyDiskThreeDots16X16 = {\n name: 'floppy_disk_three_dots_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M6 3a1 1 0 10-1 1 1 1 0 001-1zm3 0a1 1 0 10-1 1 1 1 0 001-1zm3 0a1 1 0 10-1 1 1 1 0 001-1zm.455 2H3.583A.585.585 0 003 5.598V12.5l1.5 1.497 7.858.003a.602.602 0 00.6-.6L13 5.545A.513.513 0 0012.455 5zM11 13H8v-2H6v2H5v-3h6zm1-4H4V6h8z\"/></svg>`\n};\nexport const folder16X16 = {\n name: 'folder_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M7 4V3H2v10h12V4zm6 2H3V5h10z\"/></svg>`\n};\nexport const folderOpen16X16 = {\n name: 'folder_open_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M7 3v1.002h6V6h-1V5H3v1H2V3zM2 13h11l1-6H2z\"/></svg>`\n};\nexport const forwardSlash16X16 = {\n name: 'forward_slash_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M6.027 14l2.5-12h1.5l-2.5 12h-1.5z\"/></svg>`\n};\nexport const fourDotsSquare16X16 = {\n name: 'four_dots_square_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M6.5 11A1.5 1.5 0 115 9.5 1.5 1.5 0 016.5 11zM5 3.5A1.5 1.5 0 106.5 5 1.5 1.5 0 005 3.5zm7.5 7.5A1.5 1.5 0 1111 9.5a1.5 1.5 0 011.5 1.5zM11 3.5A1.5 1.5 0 1012.5 5 1.5 1.5 0 0011 3.5z\"/></svg>`\n};\nexport const function16X16 = {\n name: 'function_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M14 12.643h-1.572l-.898-1.283-.923 1.283h-1.54l1.658-2.146-1.632-2.14h1.572l.883 1.258.888-1.258h1.545l-1.635 2.111zM9.544 4.667H9.31a3.141 3.141 0 00-.394-.1 2.455 2.455 0 00-.483-.05 1.32 1.32 0 00-.832.241 1.334 1.334 0 00-.405.895l-.128.937h1.846v1.282H6.812l-.376 2.462a3.578 3.578 0 01-.462 1.357 2.583 2.583 0 01-.784.808 3.015 3.015 0 01-.938.387A4.823 4.823 0 013.184 13q-.275 0-.629-.03A3.529 3.529 0 012 12.892v-1.815h.12a.56.56 0 00.424.244 2.538 2.538 0 00.5.052 1.304 1.304 0 00.898-.29 1.584 1.584 0 00.424-.985l.33-2.226H3.256V6.59H5.05l.178-1.162a2.942 2.942 0 01.444-1.244 2.516 2.516 0 01.76-.734 2.643 2.643 0 01.94-.356A5.61 5.61 0 018.357 3q.294 0 .588.025t.599.076z\"/></svg>`\n};\nexport const gaugeSimple16X16 = {\n name: 'gauge_simple_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M10.969 5.196a1.763 1.763 0 011.142-.49 1.763 1.763 0 01-.49 1.142L9.205 8.263l.008.025.065.184.03.093a1.352 1.352 0 01.032.295 1.385 1.385 0 01-2.769 0 1.343 1.343 0 01.033-.294l.034-.11.055-.16.012-.033.014-.014a1.389 1.389 0 01.625-.625l.015-.015.033-.011.16-.055.11-.035a1.32 1.32 0 01.588 0l.11.035.16.055.033.011zM14 8.86a5.979 5.979 0 01-1.799 4.28l-1.309-1.308a4.085 4.085 0 00.83-4.78l.55-.55a2.576 2.576 0 00.64-1.082A5.968 5.968 0 0114 8.86zm-6-6a5.998 5.998 0 00-4.201 10.28l1.308-1.308a4.14 4.14 0 014.645-6.725l.564-.564a2.57 2.57 0 011.07-.635A5.97 5.97 0 008 2.86z\"/></svg>`\n};\nexport const gridThreeByThree16X16 = {\n name: 'grid_three_by_three_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M2 3v10a1 1 0 001 1h10a1 1 0 001-1V3a1 1 0 00-1-1H3a1 1 0 00-1 1zm4 9H4v-2h2zm.001-2.999H4V7h2.001zm0-3.001H4V4h2.001zM9 12H7v-2h2zm0-2.999H7V7h2zM9 6H7V4h2zm3 6h-2v-2h2zm.001-2.999H10V7h2.001zm0-3.001H10V4h2.001z\"/></svg>`\n};\nexport const gridTwoByTwo16X16 = {\n name: 'grid_two_by_two_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M4 9h3v3H4zm5 0h3v3H9zM4 4h3v3H4zm5 0h3v3H9zM2 14h12V2H2z\"/></svg>`\n};\nexport const hammer16X16 = {\n name: 'hammer_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M9 14H6V8h3zM8.875 2H6.723A1.991 1.991 0 015 3a2.486 2.486 0 01-2-1H2v4h1a1.797 1.797 0 011.5-1C5.551 5 5.997 6.99 6 7h3c.333-1.539 1-2.436 1.741-2.436C12.222 4.564 14 6.615 14 6.615S13 2 8.875 2z\"/></svg>`\n};\nexport const hashtag16X16 = {\n name: 'hashtag_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M7.76 14l.752-2.914H6.045L5.299 14H3.532l.746-2.914H2v-1.72h2.712l.701-2.807H2.947v-1.72h2.91L6.567 2h1.766l-.71 2.838h2.46L10.8 2h1.768l-.717 2.838H14v1.72h-2.599l-.706 2.807h2.374v1.72h-2.807L9.501 14zM6.447 9.392h2.506l.72-2.85H7.167z\"/></svg>`\n};\nexport const home16X16 = {\n name: 'home_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M7.988 2L2.5 9H4v5h3v-3h2v3h3V9h1.5L7.988 2z\"/></svg>`\n};\nexport const hourglass16X16 = {\n name: 'hourglass_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M10.774 13.4h-.047v-.49h-.404a2.491 2.491 0 00.355-1.258c0-1.826-2.083-2.886-2.083-3.652s2.083-1.826 2.083-3.652a2.491 2.491 0 00-.355-1.257h.404V2.6h.047a.556.556 0 00.499-.6H4.727a.556.556 0 00.499.6h.047v.49h.404a2.491 2.491 0 00-.355 1.258c0 1.826 2.083 2.87 2.083 3.652s-2.083 1.826-2.083 3.652a2.491 2.491 0 00.355 1.257h-.404v.491h-.047a.556.556 0 00-.499.6h6.546a.556.556 0 00-.499-.6zM8 12.957c-1.565 0-1.975-.585-1.975-1.305a7.183 7.183 0 011.723-.656c.268 0 .289-3.513 0-3.779l-.988-1h2.454l-.962 1c-.268.286-.275 3.779 0 3.779a7.651 7.651 0 011.738.656c0 .72-.409 1.305-1.99 1.305z\"/></svg>`\n};\nexport const indeterminantCheckbox16X16 = {\n name: 'indeterminant_checkbox_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M12 3a1.001 1.001 0 011 1v8a1.001 1.001 0 01-1 1H4a1.001 1.001 0 01-1-1V4a1.001 1.001 0 011-1h8m0-1H4a2 2 0 00-2 2v8a2 2 0 002 2h8a2 2 0 002-2V4a2 2 0 00-2-2zM4 4v8h8V4zm6 6H6V6h4z\"/></svg>`\n};\nexport const info16X16 = {\n name: 'info_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M7.415 7.75v3.69H6.376v1.576h4.24V11.44H9.6V6.175H6.376V7.75zm.276-2.698a1.19 1.19 0 002.035-.838 1.164 1.164 0 00-.346-.846 1.193 1.193 0 00-1.693 0 1.158 1.158 0 00-.35.846 1.144 1.144 0 00.354.838z\"/></svg>`\n};\nexport const infoCircle16X16 = {\n name: 'info_circle_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8 2a6 6 0 106 6 6 6 0 00-6-6zm-.697 2.28a.951.951 0 011.35 0 .928.928 0 01.276.675.952.952 0 01-1.905 0 .924.924 0 01.279-.674zM9.7 12H6.3v-1.264h.833V7.777H6.3V6.513h2.584v4.223H9.7z\"/></svg>`\n};\nexport const key16X16 = {\n name: 'key_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M12.045 7.348l-.652-.652 1.444-.14zm-3.818.698l-4.912 4.912-.395-.396 4.12-4.12zm4.734-2.918l-1.697.136-.395-.395L11 3.176l.72-.067 1.304 1.304zm-3.524-.386l-.651-.653.791-.791zm-1.955-.653v2.607l-5.074 5.075L2 12.946l.791.791 1.432.129.326-.326v-.652l.652-.652h.652l.326-.325v-.652h.651l.978-.978.014-.652.312-.326h.652l.652-.651h2.607l1.676-1.676L14 4.089l-1.955-1.955-2.887.28z\"/></svg>`\n};\nexport const laptop16X16 = {\n name: 'laptop_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M13 11V3H3v8H2v2h12v-2zm-2 1H5v-1h6zm1-1.996H4V4h8z\"/></svg>`\n};\nexport const layerGroup16X16 = {\n name: 'layer_group_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M3.555 9.546l.89-.445 5.333 2.667 1.778-.89.889.449v1.33L9.778 13.99l-6.223-3.11zm0-6.222L6.222 1.99l6.223 3.112v1.333L9.778 7.768l-6.223-3.11zm0 3.11l.89-.444 5.333 2.667 1.778-.89.889.448v1.33L9.778 10.88 3.555 7.768z\"/></svg>`\n};\nexport const lightningBolt16X16 = {\n name: 'lightning_bolt_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M4.732 7.953L6.909 2h3.636L8.364 7.013h2.909L4.727 14l2.21-6.049z\"/></svg>`\n};\nexport const link16X16 = {\n name: 'link_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M7.465 5.592A2.908 2.908 0 019.963 7.02l-1.06 1.065c-.053-.103-.095-.192-.144-.276a1.48 1.48 0 00-1.277-.769 1.43 1.43 0 00-.977.394c-.75.694-1.469 1.421-2.165 2.168a1.431 1.431 0 00.054 2.038 1.507 1.507 0 001.039.432 1.28 1.28 0 00.953-.417c.103-.11.435-.44.81-.805a3.458 3.458 0 001.908.188c-1.006 1.035-2.179 2.187-2.996 2.38a2.982 2.982 0 01-.693.082 2.91 2.91 0 01-2.182-4.842A46.793 46.793 0 015.53 6.356a2.826 2.826 0 011.935-.764M10.583 2.5a3.001 3.001 0 00-.69.081 10.376 10.376 0 00-2.996 2.377 3.474 3.474 0 01.568-.054 3.58 3.58 0 011.31.249c.38-.332.701-.646.875-.834a1.221 1.221 0 01.913-.395 1.513 1.513 0 011.074.469 1.433 1.433 0 01.022 2.005c-.7.743-1.42 1.47-2.165 2.167a1.419 1.419 0 01-.975.395 1.483 1.483 0 01-1.28-.768c-.048-.085-.089-.175-.151-.298L6.043 8.987a2.882 2.882 0 002.493 1.42 2.808 2.808 0 001.93-.76 54.2 54.2 0 002.266-2.266A2.911 2.911 0 0010.583 2.5\"/></svg>`\n};\nexport const linkCancel16X16 = {\n name: 'link_cancel_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M9.202 9.45a2.638 2.638 0 01.687 2.519l-1.364.002c.032-.1.062-.183.085-.269a1.343 1.343 0 00-.326-1.312 1.297 1.297 0 00-.88-.374 37.657 37.657 0 00-2.779.002 1.298 1.298 0 00-1.273 1.341 1.367 1.367 0 00.39.944 1.162 1.162 0 00.878.344c.137-.005.562-.002 1.036.004a3.137 3.137 0 001.104 1.344 8.133 8.133 0 01-3.45-.395 2.705 2.705 0 01-.496-.392A2.64 2.64 0 014.52 8.702a42.45 42.45 0 012.951-.003 2.564 2.564 0 011.731.751m3.984.017a2.723 2.723 0 00-.495-.39 9.414 9.414 0 00-3.447-.398 3.151 3.151 0 01.4.33 3.247 3.247 0 01.68 1c.457.031.864.035 1.096.027a1.108 1.108 0 01.839.331 1.373 1.373 0 01.389.99 1.3 1.3 0 01-1.272 1.3c-.926.028-1.854.033-2.78.002a1.287 1.287 0 01-.878-.372 1.345 1.345 0 01-.328-1.313c.023-.086.054-.17.093-.289l-1.371.031a2.614 2.614 0 00.688 2.51 2.547 2.547 0 001.726.751c.968.033 1.94.025 2.908 0a2.641 2.641 0 001.752-4.51m-2.701-3.208L8.71 4.485l1.775-1.775-.71-.71L8 3.775 6.225 2l-.71.71L7.29 4.485 5.515 6.259l.71.71L8 5.195l1.775 1.774z\"/></svg>`\n};\nexport const list16X16 = {\n name: 'list_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M4 13H2v-2h2zm10-2H6v2h8zM4 7H2v2h2zm10 0H6v2h8zM4 3H2v2h2zm10 0H6v2h8z\"/></svg>`\n};\nexport const listTree16X16 = {\n name: 'list_tree_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M10 5v2h4v2h-4v2h4v2H8V5H5V3h9v2zM2 5h2V3H2zm5 6H5v2h2zm0-4H5v2h2z\"/></svg>`\n};\nexport const listTreeDatabase16X16 = {\n name: 'list_tree_database_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M13.953 11.81c.013-.011.032-.02.046-.031v.917c0 .33-.523.678-1.42.953a8.234 8.234 0 01-.694.178 16.116 16.116 0 01-3.382.328 16.089 16.089 0 01-3.38-.328 8.77 8.77 0 01-.693-.179c-.898-.274-1.42-.622-1.42-.952v-.917c.012.01.031.02.045.03a2.34 2.34 0 00.332.218l.03.017a4.235 4.235 0 00.46.202l.01.005.1.037c.053.018.11.034.164.05.093.031.186.062.283.09.033.01.064.022.1.031l.058.015c.184.048.378.092.58.132.043.009.084.018.13.026.214.042.438.078.666.11l.134.017c.21.028.425.051.646.072l.104.01c.242.021.487.037.731.049l.166.007c.251.01.504.016.754.016s.501-.007.754-.016l.164-.007c.246-.012.491-.028.734-.048l.102-.011c.22-.02.436-.044.649-.072.044-.006.09-.01.134-.017q.343-.048.664-.11c.046-.008.088-.017.132-.026q.3-.06.577-.13c.02-.007.043-.012.063-.017.034-.009.064-.021.099-.031.098-.028.189-.059.283-.09.052-.017.11-.032.16-.05.035-.012.07-.024.103-.037l.012-.005a4.252 4.252 0 00.457-.202c.013-.006.022-.013.032-.018a2.468 2.468 0 00.33-.216zm-5.45-2.946c-3.237 0-5.492.767-5.492 1.457 0 .33.523.679 1.42.952a9.998 9.998 0 00.694.179 16.101 16.101 0 003.378.327 16.12 16.12 0 003.382-.327 8.892 8.892 0 00.694-.18C13.477 11 14 10.652 14 10.322c0-.69-2.257-1.457-5.497-1.457zM14 6V5H5V3h2V2H2v1h2v5.581a9.632 9.632 0 011-.255V6h3v2h6V7H9V6z\"/></svg>`\n};\nexport const lock16X16 = {\n name: 'lock_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M12 8V7a3.888 3.888 0 00-4-4 3.822 3.822 0 00-2.81 1.078A4.349 4.349 0 004.062 7v1H3v6h10V8zM6.062 6.986a2.407 2.407 0 01.566-1.516A1.834 1.834 0 018 5a1.883 1.883 0 012 2v1H6.062z\"/></svg>`\n};\nexport const magnifyingGlass16X16 = {\n name: 'magnifying_glass_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M13.073 12.29l-2.926-2.926a3.971 3.971 0 10-.783.783l2.927 2.926zM7.01 9.84a2.83 2.83 0 112.83-2.83 2.833 2.833 0 01-2.83 2.83z\"/></svg>`\n};\nexport const markdown16X16 = {\n name: 'markdown_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M14.25 3H1.75a.74.74 0 00-.75.73v8.54a.74.74 0 00.75.73h12.5a.74.74 0 00.75-.73V3.73a.74.74 0 00-.75-.73zm-6.285 7.059h-.991V7.773L5.982 9.35l-.99-1.577v2.286H4V5.934h.91L5.982 7.51l1.073-1.576h.91zm2.459.007L8.848 7.945h1.1V5.934h.99v2.01H12z\"/></svg>`\n};\nexport const minus16X16 = {\n name: 'minus_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M4 7h8v2H4z\"/></svg>`\n};\nexport const minusWide16X16 = {\n name: 'minus_wide_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M3 7h10v2H3z\"/></svg>`\n};\nexport const mobile16X16 = {\n name: 'mobile_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M10.462 2.077H4.538A.54.54 0 004 2.615v10.77a.54.54 0 00.538.538h5.924a.54.54 0 00.538-.538V2.615a.54.54 0 00-.538-.538zM10 12H5V3h5z\"/></svg>`\n};\nexport const notebook16X16 = {\n name: 'notebook_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M13 2h1v3h-1zm0 8h1V6h-1zm0 4h1v-3h-1zM4 7h6V6H4zm0-2h6V4H4zM2 2h10v12H2z\"/></svg>`\n};\nexport const paste16X16 = {\n name: 'paste_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M9 5V3H3v6h2v1H2V2h8v3zM6 6v8h8V6z\"/></svg>`\n};\nexport const pencil16X16 = {\n name: 'pencil_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M11.413 2.674c.326-.288 1.04-.013 1.807.857.768.869.952 1.61.626 1.898l-1.378 1.218-2.433-2.757zm-7.381 9.493l2.97-1.396-1.477.254.064-1.459-.48.25.156-1.013-1.754 2.774zm3.319-1.002L2 13.435 4.917 8.41l3.15-2.78L10.5 8.383zm4.293-3.866L9.21 4.544c-.177-.202.222-.543.394-.349l2.434 2.756c.175.2-.224.54-.394.348m-.783.7L8.428 5.244c-.178-.201.22-.542.393-.347l2.433 2.755c.176.199-.223.54-.393.347\"/></svg>`\n};\nexport const potWithLid16X16 = {\n name: 'pot_with_lid_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M11 4V2H5v2H2v1h12V4zM6 4V3h4v1zm-4 9h1v1h10v-1h1V6H2z\"/></svg>`\n};\nexport const question16X16 = {\n name: 'question_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M11.303 5.594a3.294 3.294 0 01-.195 1.176 2.63 2.63 0 01-.549.885 3.96 3.96 0 01-.852.672 7.46 7.46 0 01-1.121.54v1.501H6.27V8.15q.467-.125.845-.256a3.199 3.199 0 00.793-.429 2.098 2.098 0 00.608-.612 1.45 1.45 0 00.22-.791 1.042 1.042 0 00-.423-.939 2.163 2.163 0 00-1.195-.28 3.338 3.338 0 00-1.068.204 4.853 4.853 0 00-1.09.526h-.263V3.566a8.148 8.148 0 011.296-.372A8.205 8.205 0 017.77 3a4.196 4.196 0 012.579.718 2.241 2.241 0 01.954 1.876zM8.77 13H6.112v-1.737H8.77z\"/></svg>`\n};\nexport const runningArrow16X16 = {\n name: 'running_arrow_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M14 7.985l-8.002 4.013L8 8 5.998 3.987zM3.995 2.997L2 2l3 6-3 6 2.002-1.005L6.5 8z\"/></svg>`\n};\nexport const server16X16 = {\n name: 'server_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M13 3H3v3h10zM9 5H4V4h5zM3 7v3h10V7zm6 2H4V8h5zm3 4H3v-2h10v1a1 1 0 01-1 1z\"/></svg>`\n};\nexport const shareSquare16X16 = {\n name: 'share_square_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M13.984 2.012l-2.069 6.153-.565-2.722-3.544 3.544-.822-.822 3.544-3.544-2.723-.566zM2 4v10h10v-4h-2v2H4V6h2V4z\"/></svg>`\n};\nexport const shieldCheck16X16 = {\n name: 'shield_check_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M2 2v5.11C2 10.39 8 14 8 14s6-3.281 6-6.89V2zm4.788 8.2L4 7.388 5.225 6.2l1.553 1.61 4.06-4.01L12 5.013z\"/></svg>`\n};\nexport const shieldXmark16X16 = {\n name: 'shield_xmark_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M2 2v5.11C2 10.39 8 14 8 14s6-3.281 6-6.89V2zm9.5 7.346L10.346 10.5 8 8.154 5.654 10.5 4.5 9.346 6.846 7 4.5 4.654 5.654 3.5 8 5.846 10.346 3.5 11.5 4.654 9.154 7z\"/></svg>`\n};\nexport const signalBars16X16 = {\n name: 'signal_bars_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M4 14H2V2h2zm3-9H5v9h2zm3 3H8v6h2zm3 3h-2v3h2z\"/></svg>`\n};\nexport const sineGraph16X16 = {\n name: 'sine_graph_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M14 12H2v-1.63a4.61 4.61 0 001.766-1.967c.636-1.06 1.082-1.705 1.902-1.705s1.266.644 1.902 1.705c.615 1.026 1.312 2.189 2.766 2.189 1.453 0 2.15-1.163 2.764-2.189a6.459 6.459 0 01.9-1.267zm0-6.054a4.613 4.613 0 00-1.764 1.967c-.635 1.061-1.08 1.705-1.9 1.705-.82 0-1.266-.644-1.902-1.705-.615-1.026-1.312-2.189-2.766-2.189S3.517 6.887 2.902 7.913A6.468 6.468 0 012 9.18V4h12z\"/></svg>`\n};\nexport const skipArrow16X16 = {\n name: 'skip_arrow_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M10.002 8.29L2 12.304v-8.01zM14 2h-2v12h2z\"/></svg>`\n};\nexport const spinner = {\n name: 'spinner',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M3.967 7.143h-.762a4.885 4.885 0 013.938-3.94v.771a4.123 4.123 0 00-3.176 3.169zM8 2v1.875A4.125 4.125 0 113.875 8H2a6 6 0 106-6z\"/></svg>`\n};\nexport const squareCheck16X16 = {\n name: 'square_check_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M2 2v12h12V2zm4.788 9.2L4 8.387 5.225 7.2l1.553 1.61 4.06-4.01L12 6.013z\"/></svg>`\n};\nexport const squareT16X16 = {\n name: 'square_t_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M2 2v12h12V2zm9.033 4.199l-.016-.076a2.34 2.34 0 00-.497-1.18 2.108 2.108 0 00-1.281-.26h-.56v5.941c0 .552.11.718.176.768a1.793 1.793 0 00.88.196l.09.006V12H6.193v-.405l.09-.007c.59-.046.8-.144.87-.218.06-.06.158-.255.158-.884V4.683h-.565a2.19 2.19 0 00-1.274.262 2.015 2.015 0 00-.498 1.174l-.015.08H4.49L4.565 4h6.859l.07 2.199z\"/></svg>`\n};\nexport const t16X16 = {\n name: 't_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M5.684 13v-.729l.221-.018c.764-.058.947-.19.985-.229.026-.026.157-.202.157-.992V4.078H6.48a2.46 2.46 0 00-1.477.291 2.262 2.262 0 00-.563 1.36l-.038.196h-.797L3.704 3h8.6l.092 2.925h-.784l-.021-.095a2.817 2.817 0 00-.589-1.466c-.147-.131-.523-.286-1.48-.286H8.96V11.2c0 .679.138.819.165.84a2.092 2.092 0 001.01.213l.223.018V13z\"/></svg>`\n};\nexport const tablet16X16 = {\n name: 'tablet_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M12.5 2h-9a.501.501 0 00-.5.5v11a.501.501 0 00.5.5h9a.501.501 0 00.5-.5v-11a.501.501 0 00-.5-.5zM8 13.25a.75.75 0 11.75-.75.752.752 0 01-.75.75zM12 11H4V3h8z\"/></svg>`\n};\nexport const tag16X16 = {\n name: 'tag_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 17 16\"><path class=\"cls-1\" d=\"M8.044 3.588L5.23 3 3 5.229l.588 2.816L8.543 13 13 8.543zM6.5 6.499a1.082 1.082 0 11-.013-1.516A1.072 1.072 0 016.499 6.5z\"/></svg>`\n};\nexport const tags16X16 = {\n name: 'tags_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 17 16\"><path class=\"cls-1\" d=\"M8.044 2.338L5.23 1.75 3 3.979l.588 2.816 4.955 4.955L13 7.293zM6.5 5.249a1.082 1.082 0 11-.013-1.516 1.072 1.072 0 01.013 1.516zm6.251 4.794L8.543 14.25 4.257 9.964l-.283-1.369 4.569 4.57L12.207 9.5z\"/></svg>`\n};\nexport const targetCrosshairs16X16 = {\n name: 'target_crosshairs_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8 6.01a2 2 0 102 2 2 2 0 00-2-2zm4.9.99A5.005 5.005 0 009 3.1V1H7v2.1A5.005 5.005 0 003.1 7H1v2h2.1A5.005 5.005 0 007 12.9V15h2v-2.1A5.005 5.005 0 0012.9 9H15V7zM8 12a4 4 0 114-4 4.005 4.005 0 01-4 4z\"/></svg>`\n};\nexport const targetCrosshairsProgress16X16 = {\n name: 'target_crosshairs_progress_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M15 7v2h-2.1A5.005 5.005 0 019 12.9V15H7v-2.108a4.99 4.99 0 01-3.898-3.985l-1.52.583 2.003-4 1.998 4L4.11 8.9A3.999 3.999 0 107 4.13V1h2v2.1A5.005 5.005 0 0112.9 7zm-5 1.01a2 2 0 11-2-2 2 2 0 012 2z\"/></svg>`\n};\nexport const threeDotsLine16X16 = {\n name: 'three_dots_line_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8 6.5A1.5 1.5 0 116.5 8 1.5 1.5 0 018 6.5zM.5 8A1.5 1.5 0 102 6.5 1.5 1.5 0 00.5 8zm12 0A1.5 1.5 0 1014 6.5 1.5 1.5 0 0012.5 8z\"/></svg>`\n};\nexport const thumbtack16X16 = {\n name: 'thumbtack_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M10 7l-.625-5H10V1H5v1h.625L5 7a2 2 0 00-2 2h4v4l.5 2 .5-2V9h4a2 2 0 00-2-2z\"/></svg>`\n};\nexport const tileSize16X16 = {\n name: 'tile_size_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M2 8h6v6H2zm0-6v5h2V4h8v8H9v2h5V2z\"/></svg>`\n};\nexport const times16X16 = {\n name: 'times_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8 9.103L5.102 12 4 10.897 6.898 8 4 5.103 5.102 4 8 6.897 10.898 4 12 5.103 9.102 8 12 10.897 10.898 12 8 9.103z\"/></svg>`\n};\nexport const trash16X16 = {\n name: 'trash_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M10 4V2H6v2H3v2h1v8h8V6h1V4zm-3 9H6V6h1zm2-9H7V3h2zm1 9H9V6h1z\"/></svg>`\n};\nexport const triangle16X16 = {\n name: 'triangle_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8 2L2 14h12zm0 4.875l2.438 4.875H5.585z\"/></svg>`\n};\nexport const trueFalseRectangle16X16 = {\n name: 'true_false_rectangle_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M13.4 3.003H2.6a1.6 1.6 0 00-1.6 1.6v6.8a1.595 1.595 0 001.6 1.594h10.8a1.595 1.595 0 001.6-1.594v-6.8a1.6 1.6 0 00-1.6-1.6zM7.587 6.58H6.141v3.736H4.946V6.58H3.5v-.896h4.087zm4.913 0h-2.13v.862h1.974v.896H10.37v1.978H9.181V5.684H12.5z\"/></svg>`\n};\nexport const unlink16X16 = {\n name: 'unlink_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M6.126 8.585c-.581.123-1.117.241-1.362.303a1.547 1.547 0 00-1.182 1.51l.01.155.021.193a1.69 1.69 0 00.216.54l.02.038.105.134.127.144.054.047a1.509 1.509 0 00.992.36h.049a1.306 1.306 0 00.224-.034l.03.015.006-.001c.463-.088.925-.186 1.387-.287l.343 1.538c-.488.11-.976.221-1.467.314a3.112 3.112 0 01-.571.053 3.148 3.148 0 01-2.99-2.258l-.011-.045a3.04 3.04 0 01-.076-.35 3.127 3.127 0 01-.03-.206l-.004-.089a3.112 3.112 0 01-.016-.336A3.164 3.164 0 014.35 7.356c.272-.068.808-.203.802-.206l.623-.137zm4.31-1.544l-.353 1.575c.737.176 1.38.334 1.413.346a1.514 1.514 0 01.789.768l.029.066.053.185.038.164.002.045a1.667 1.667 0 01-.035.58l-.064.185-.056.142a1.546 1.546 0 01-1.4.893 1.661 1.661 0 01-.313-.03 54.946 54.946 0 01-1.15-.24l-.347 1.55.406.097-.013-.017c.276.057.55.118.826.173a3.02 3.02 0 00.578.056 3.188 3.188 0 002.811-1.74 3.018 3.018 0 00.129-.311l.033-.083.061-.197a3.047 3.047 0 00.082-.351l.008-.044a3.132 3.132 0 00-2.281-3.513c-.297-.077-.777-.19-1.245-.299M7.932 2.393L6.875 6.075h.75l.3 3.032 1.2-3.782h-.75z\"/></svg>`\n};\nexport const unlock16X16 = {\n name: 'unlock_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M6.062 8V5.986a2.407 2.407 0 01.566-1.516A1.834 1.834 0 018 4a1.883 1.883 0 012 2h2a3.888 3.888 0 00-4-4 3.822 3.822 0 00-2.81 1.078A4.349 4.349 0 004.062 6v2H3v6h10V8z\"/></svg>`\n};\nexport const upload16X16 = {\n name: 'upload_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M14 9v5H2V9h1v4h10V9zM7.982 2L5 7.9l2.004-1.312L7 11h2V6.613L11 7.9z\"/></svg>`\n};\nexport const user16X16 = {\n name: 'user_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8.004 2a2.18 2.18 0 012.184 2.182v1.09c.647 0 .378.932 0 1.455a4.275 4.275 0 01-.335.364 8.55 8.55 0 01-.31.742l.208 1.076h.437l2.75 1.527A2.148 2.148 0 0114 12.291V14H2v-1.673a2.163 2.163 0 011.063-1.869l2.758-1.55h.437l.21-1.068a8.52 8.52 0 01-.312-.749 4.275 4.275 0 01-.335-.364c-.378-.523-.647-1.454 0-1.454v-1.09A2.18 2.18 0 018.004 2\"/></svg>`\n};\nexport const watch16X16 = {\n name: 'watch_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M12.57 7.28l-.06.013a4.556 4.556 0 00-1.38-2.609V3.44a.481.481 0 00-.48-.48h-.48V2H5.85v.96h-.48a.481.481 0 00-.48.48v1.24a4.545 4.545 0 000 6.64v1.24a.481.481 0 00.48.48h.48V14h4.32v-.96h.48a.481.481 0 00.48-.48v-1.24a4.547 4.547 0 001.379-2.612l.061.012a.481.481 0 00.48-.48v-.48a.481.481 0 00-.48-.48zm-2.3 2.662a1.59 1.59 0 00-.182-.26L8.747 8.338a.785.785 0 000-.666c.132-.133.894-.899.965-1a1.216 1.216 0 00.14-.485 1.004 1.004 0 00-.515.157l-.955.957a.784.784 0 100 1.408c.163.167.956.974 1.236 1.254a1.477 1.477 0 00.36.276 3.055 3.055 0 11.291-.297z\"/></svg>`\n};\nexport const waveform16X16 = {\n name: 'waveform_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M9.77 11.225c-1.582 0-2.076-1.262-2.512-2.376l-.17-.426a26.242 26.242 0 01-.218-.595c-.32-.9-.41-1.046-.652-1.046-.24 0-.308.065-.612.88-.088.237-.188.504-.317.801l-.098.238c-.486 1.178-1.037 2.513-2.747 2.513H2V9.221h.444c.318 0 .48-.316.9-1.292l.133-.307c.06-.148.121-.304.181-.457.435-1.116.927-2.382 2.56-2.382 1.59 0 2.063 1.274 2.48 2.398l.168.443c.082.205.155.396.221.572.345.905.427 1.03.684 1.03.259 0 .409-.317.742-1.157.08-.201.167-.42.266-.652l.097-.228c.477-1.127 1.016-2.405 2.668-2.412l.444-.002L14 6.782h-.447c-.367 0-.506.245-.994 1.387 0 0-.179.434-.238.584-.433 1.101-.973 2.472-2.55 2.472z\"/></svg>`\n};\nexport const webviCustom16X16 = {\n name: 'webvi_custom_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8 2a6 6 0 106 6 6 6 0 00-6-6zm4.089 2.526h-1.868a5.598 5.598 0 00-.854-1.712 5.363 5.363 0 012.722 1.712zm-2.722 8.66a5.599 5.599 0 00.854-1.712h1.868a5.363 5.363 0 01-2.722 1.712zm3.181-2.344h-2.146a10.644 10.644 0 00.208-1.187L9.923 10c-.05.294-.106.58-.176.843h-1.51l-1.263.632h2.583C9.145 12.647 8.554 13.368 8 13.368c-.517 0-1.065-.633-1.47-1.672l-.56.28a5.018 5.018 0 00.663 1.21 5.363 5.363 0 01-2.722-1.712h.317a.955.955 0 01-.017-.17v-.462h-.76a5.33 5.33 0 01-.804-2.526h1.564v-.632H2.646a5.33 5.33 0 01.805-2.526h.759V4.69a.95.95 0 01.016-.164h-.316a5.363 5.363 0 012.722-1.712 5.017 5.017 0 00-.663 1.207l.56.28c.406-1.037.953-1.67 1.47-1.67.554 0 1.145.722 1.557 1.895H6.98l1.261.632h1.507c.07.263.126.548.176.842l.687.344a10.66 10.66 0 00-.208-1.186h2.146a5.33 5.33 0 01.804 2.526h-.67a.92.92 0 01-.001.632h.671a5.33 5.33 0 01-.804 2.526zM12.105 8a.326.326 0 01-.19.296l-6.598 3.3-.148.036a.327.327 0 01-.327-.328V4.69a.327.327 0 01.492-.281l6.595 3.302a.326.326 0 01.176.29z\"/></svg>`\n};\nexport const webviHost16X16 = {\n name: 'webvi_host_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8 2a6 6 0 106 6 6 6 0 00-6-6zm4.09 2.526H10.22a5.6 5.6 0 00-.854-1.712 5.364 5.364 0 012.722 1.712zm-2.723 8.66a5.6 5.6 0 00.854-1.712h1.868a5.363 5.363 0 01-2.722 1.712zm3.181-2.344h-2.146a10.657 10.657 0 00.208-1.187L9.923 10a9.85 9.85 0 01-.176.843h-1.51l-1.263.632h2.583C9.145 12.647 8.554 13.368 8 13.368c-.517 0-1.064-.633-1.47-1.672l-.56.28a5.02 5.02 0 00.663 1.21 5.363 5.363 0 01-2.722-1.712h.317a.96.96 0 01-.017-.17v-.462h-.76a5.33 5.33 0 01-.804-2.526H4.21v-.632H2.647a5.33 5.33 0 01.805-2.526h.759V4.69a.95.95 0 01.016-.164h-.316a5.364 5.364 0 012.722-1.712 5.02 5.02 0 00-.663 1.207l.56.28c.406-1.037.953-1.67 1.47-1.67.554 0 1.145.722 1.557 1.895H6.98l1.262.632h1.506c.07.263.126.548.176.842l.687.344a10.646 10.646 0 00-.208-1.186h2.146a5.33 5.33 0 01.804 2.526h-.67a.92.92 0 01-.001.632h.671a5.33 5.33 0 01-.804 2.526zm-.619-3.131L5.334 4.409a.327.327 0 00-.492.281v6.613a.327.327 0 00.327.328l.148-.035 6.598-3.3a.326.326 0 00.014-.585zm-6.087 2.505V5.78L10.274 8z\"/></svg>`\n};\nexport const windowCode16X16 = {\n name: 'window_code_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M2 2v12h12V2zm11 11H3V5h10zM4 9.135l2.698-1.118v.75l-1.588.65 1.588.646v.75l-2.694-1.12zm4.42-1.49h.792l-1.565 3.71h-.783zM12 9.135v.557l-2.694 1.12v-.75l.062-.024 1.526-.626-1.588-.648v-.747z\"/></svg>`\n};\nexport const windowText16X16 = {\n name: 'window_text_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M2 2v12h12V2zm11 11H3V5h10zM7 8H4V6h3zm5 2H4V9h8zm0 2H4v-1h8z\"/></svg>`\n};\nexport const wrenchHammer16X16 = {\n name: 'wrench_hammer_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M12.286 11.714l-5.791-5.79a2.504 2.504 0 00.17-.755 2.149 2.149 0 00-.095-.814 2.12 2.12 0 00-.55-.904 2.328 2.328 0 00-1.76-.685h-.045a2.104 2.104 0 00-.718.155l1.102 1.104.32.32.244.245a1.864 1.864 0 01-.22.854 1.043 1.043 0 01-.114.145 1.648 1.648 0 01-1.003.335L2.61 4.704l-.449-.449a2.074 2.074 0 00-.135.545l-.015.105a2.337 2.337 0 00.384 1.518 2.51 2.51 0 00.295.36 2.205 2.205 0 001.576.65 2.453 2.453 0 00.898-.175l4.793 4.796 1.203 1.2h.668l.663-.665v-.67zM5.75 8.908l1.367 1.367-2.988 2.987h-.923l-.45-.45v-.916zM14 5.906l-1.81 1.809-1.298-1.216-1.38 1.38-1.367-1.365 1.374-1.382-1.622-1.62.683-.774 2.252.45z\"/></svg>`\n};\nexport const xmark16X16 = {\n name: 'xmark_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M13 4.667L9.667 7.999 13 11.333 11.333 13 8 9.667 4.667 13 3 11.333 6.333 8 3 4.667 4.667 3 8 6.333 11.333 3z\"/></svg>`\n};\nexport const xmarkCheck16X16 = {\n name: 'xmark_check_16_x_16',\n data: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path class=\"cls-1\" d=\"M8.033 14.026L4.9 10.866 6.277 9.53l1.744 1.81 4.562-4.507 1.307 1.363zm1.155-10.68l-1.321-1.32-2.312 2.311-2.311-2.311-1.321 1.32 2.311 2.312L1.923 7.97l1.32 1.32 2.312-2.31 2.312 2.31 1.32-1.32-2.31-2.312z\"/></svg>`\n};\n//# sourceMappingURL=nimble-icons-inline.js.map","/**\n * This file is a workaround for: https://github.com/prettier/prettier/issues/11400\n */\n// eslint-disable-next-line no-restricted-imports\nimport { focusVisible as focusVisibleOriginal } from '@microsoft/fast-foundation';\n/**\n * The string representing the focus selector to be used. Value\n * will be \":focus-visible\" when https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo\n * is supported and \":focus\" when it is not.\n *\n * @public\n */\nexport const focusVisible = `:${focusVisibleOriginal}`;\n//# sourceMappingURL=focus.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { bodyFont, bodyFontColor, borderHoverColor, borderWidth, controlHeight, iconSize, placeholderFontColor } from '../theme-provider/design-tokens';\nimport { focusVisible } from '../utilities/style/focus';\nexport const styles = css `\n ${display('inline-flex')}\n\n :host {\n height: ${controlHeight};\n box-sizing: border-box;\n font: ${bodyFont};\n color: ${bodyFontColor};\n padding-left: calc(4px - ${borderWidth});\n }\n\n .listitem {\n display: flex;\n align-items: center;\n }\n\n .control {\n color: var(--ni-private-breadcrumb-link-font-color);\n cursor: default;\n display: flex;\n align-items: center;\n justify-content: center;\n border: ${borderWidth} solid transparent;\n padding-right: calc(4px - ${borderWidth});\n }\n\n .control:link {\n cursor: pointer;\n text-decoration: none;\n }\n\n .control:hover {\n text-decoration: underline;\n }\n\n .control:active {\n color: var(--ni-private-breadcrumb-link-active-font-color);\n text-decoration: underline;\n }\n\n .control:link${focusVisible} {\n border: ${borderWidth} solid ${borderHoverColor};\n outline: 2px solid ${borderHoverColor};\n outline-offset: 1px;\n }\n\n .start,\n .end {\n display: flex;\n align-items: center;\n }\n\n .start {\n margin-inline-end: 4px;\n }\n\n slot[name='separator'] {\n display: flex;\n align-items: center;\n }\n\n slot[name='separator'] svg {\n width: ${iconSize};\n height: ${iconSize};\n }\n\n slot[name='separator'] path {\n fill: ${placeholderFontColor};\n }\n`;\n//# sourceMappingURL=styles.js.map","import { DesignSystem, BreadcrumbItem as FoundationBreadcrumbItem, breadcrumbItemTemplate as template } from '@microsoft/fast-foundation';\nimport { forwardSlash16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { styles } from './styles';\n/**\n * A nimble-styled breadcrumb item\n */\nexport class BreadcrumbItem extends FoundationBreadcrumbItem {\n}\nconst nimbleBreadcrumbItem = BreadcrumbItem.compose({\n baseName: 'breadcrumb-item',\n baseClass: FoundationBreadcrumbItem,\n template,\n styles,\n separator: forwardSlash16X16.data\n});\nDesignSystem.getOrCreate()\n .withPrefix('nimble')\n .register(nimbleBreadcrumbItem());\n//# sourceMappingURL=index.js.map","import { PropertyStyleSheetBehavior } from '@microsoft/fast-foundation';\n/**\n * Behavior that will conditionally apply a stylesheet based on the element's\n * appearance property\n *\n * @param value - The value of the appearance property\n * @param styles - The styles to be applied when condition matches\n *\n * @public\n */\nexport function appearanceBehavior(value, styles) {\n return new PropertyStyleSheetBehavior('appearance', value, styles);\n}\n//# sourceMappingURL=appearance.js.map","/**\n * Types of button appearance.\n * @public\n */\nexport var ButtonAppearance;\n(function (ButtonAppearance) {\n ButtonAppearance[\"Outline\"] = \"outline\";\n ButtonAppearance[\"Ghost\"] = \"ghost\";\n ButtonAppearance[\"Block\"] = \"block\";\n})(ButtonAppearance || (ButtonAppearance = {}));\n//# sourceMappingURL=types.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { focusVisible } from '../../utilities/style/focus';\nimport { actionRgbPartialColor, borderHoverColor, borderRgbPartialColor, borderWidth, buttonLabelFont, buttonLabelFontColor, buttonLabelDisabledFontColor, controlHeight, fillSelectedColor, iconColor, smallDelay, standardPadding } from '../../theme-provider/design-tokens';\nimport { appearanceBehavior } from '../../utilities/style/appearance';\nimport { ButtonAppearance } from './types';\nexport const styles = css `\n ${display('inline-flex')}\n\n :host {\n background-color: transparent;\n height: ${controlHeight};\n color: ${buttonLabelFontColor};\n font: ${buttonLabelFont};\n cursor: pointer;\n outline: none;\n border: none;\n box-sizing: border-box;\n ${\n/*\n Not sure why but this is needed to get buttons with icons and buttons\n without icons to align on the same line when the button is inline-flex\n See: https://github.com/microsoft/fast/issues/5414\n*/ ''}\n vertical-align: middle;\n }\n\n :host([disabled]) {\n color: ${buttonLabelDisabledFontColor};\n cursor: default;\n }\n\n .control {\n background-color: transparent;\n height: 100%;\n width: 100%;\n border: ${borderWidth} solid transparent;\n box-sizing: border-box;\n color: inherit;\n border-radius: inherit;\n fill: inherit;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n cursor: inherit;\n font: inherit;\n outline: none;\n margin: 0;\n padding: 0 ${standardPadding};\n transition: box-shadow ${smallDelay};\n }\n\n :host([content-hidden]) .control {\n width: ${controlHeight};\n padding: 0px;\n }\n\n @media (prefers-reduced-motion) {\n .control {\n transition-duration: 0s;\n }\n }\n\n .control:hover {\n box-shadow: 0px 0px 0px ${borderWidth} ${borderHoverColor} inset;\n outline: none;\n }\n\n .control${focusVisible} {\n box-shadow: 0px 0px 0px ${borderWidth} ${borderHoverColor} inset;\n outline: ${borderWidth} solid ${borderHoverColor};\n outline-offset: -4px;\n }\n\n .control:active {\n box-shadow: none;\n outline: none;\n }\n\n .control[disabled] {\n box-shadow: none;\n outline: none;\n }\n\n .content {\n display: contents;\n }\n\n :host([content-hidden]) .content {\n ${\n/**\n * Hide content visually while keeping it screen reader-accessible.\n * Source: https://webaim.org/techniques/css/invisiblecontent/#techniques\n * See discussion here: https://github.com/microsoft/fast/issues/5740#issuecomment-1068195035\n */\n''}\n display: inline-block;\n height: 1px;\n width: 1px;\n position: absolute;\n margin: -1px;\n clip: rect(1px, 1px, 1px, 1px);\n clip-path: inset(50%);\n overflow: hidden;\n padding: 0;\n }\n\n [part='start'] {\n display: contents;\n ${iconColor.cssCustomProperty}: ${buttonLabelFontColor};\n }\n\n :host([disabled]) slot[name='start']::slotted(*) {\n opacity: 0.6;\n }\n\n [part='end'] {\n display: contents;\n ${iconColor.cssCustomProperty}: ${buttonLabelFontColor};\n }\n\n :host([content-hidden]) [part='end'] {\n display: none;\n }\n`\n // prettier-ignore\n .withBehaviors(appearanceBehavior(ButtonAppearance.Outline, css `\n .control {\n background-color: transparent;\n border-color: rgba(${actionRgbPartialColor}, 0.3);\n }\n\n .control:hover {\n background-color: transparent;\n border-color: ${borderHoverColor};\n }\n\n .control${focusVisible} {\n background-color: transparent;\n border-color: ${borderHoverColor};\n }\n\n .control:active {\n background-color: ${fillSelectedColor};\n border-color: ${fillSelectedColor};\n }\n\n .control[disabled] {\n background-color: transparent;\n border-color: rgba(${borderRgbPartialColor}, 0.2);\n }\n `), appearanceBehavior(ButtonAppearance.Ghost, css `\n .control {\n background-color: transparent;\n border-color: transparent;\n }\n\n .control:hover {\n background-color: transparent;\n border-color: ${borderHoverColor};\n }\n\n .control${focusVisible} {\n background-color: transparent;\n border-color: ${borderHoverColor};\n }\n\n .control:active {\n background-color: ${fillSelectedColor};\n border-color: ${fillSelectedColor};\n }\n\n .control[disabled] {\n background-color: transparent;\n border-color: transparent;\n }\n `), appearanceBehavior(ButtonAppearance.Block, css `\n .control {\n background-color: rgba(${borderRgbPartialColor}, 0.1);\n border-color: transparent;\n }\n\n .control:hover {\n background-color: transparent;\n border-color: ${borderHoverColor};\n }\n\n .control${focusVisible} {\n background-color: rgba(${borderRgbPartialColor}, 0.1);\n border-color: ${borderHoverColor};\n }\n\n .control${focusVisible}:hover {\n background-color: transparent;\n }\n\n .control:active {\n background-color: ${fillSelectedColor};\n border-color: ${fillSelectedColor};\n }\n\n .control[disabled] {\n background-color: rgba(${borderRgbPartialColor}, 0.1);\n border-color: transparent;\n }\n `));\n//# sourceMappingURL=styles.js.map","import { css } from '@microsoft/fast-element';\nimport { focusVisible } from '../utilities/style/focus';\nimport { actionRgbPartialColor, borderHoverColor, borderWidth, fillSelectedColor, standardPadding } from '../theme-provider/design-tokens';\nimport { styles as buttonStyles } from '../patterns/button/styles';\nimport { appearanceBehavior } from '../utilities/style/appearance';\nimport { ButtonAppearance } from './types';\n// prettier-ignore\nexport const styles = buttonStyles\n .withBehaviors(appearanceBehavior(ButtonAppearance.Outline, css `\n :host(.primary) .control {\n box-shadow: 0px 0px 0px ${borderWidth} rgba(${actionRgbPartialColor}, 0.3) inset;\n }\n\n :host(.primary) .control:hover {\n box-shadow: 0px 0px 0px ${borderWidth} ${borderHoverColor} inset;\n }\n\n :host(.primary) .control${focusVisible} {\n box-shadow: 0px 0px 0px ${borderWidth} ${borderHoverColor} inset;\n }\n\n :host(.primary) .control:active {\n box-shadow: none;\n }\n\n :host(.primary) .control[disabled] {\n box-shadow: none;\n }\n `), appearanceBehavior(ButtonAppearance.Block, css `\n :host(.primary) .control {\n background-clip: padding-box;\n border-color: rgba(${actionRgbPartialColor}, 0.3);\n border-width: calc(2 * ${borderWidth});\n padding: 0 calc(${standardPadding} - ${borderWidth});\n }\n\n :host(.primary[content-hidden]) .control {\n padding: 0px;\n }\n\n :host(.primary) .control:hover {\n border-color: ${borderHoverColor};\n box-shadow: none;\n }\n\n :host(.primary) .control${focusVisible} {\n background-clip: border-box;\n border-color: ${borderHoverColor};\n border-width: ${borderWidth};\n box-shadow: 0px 0px 0px ${borderWidth} ${borderHoverColor} inset;\n padding: 0 ${standardPadding};\n }\n\n :host(.primary[content-hidden]) .control${focusVisible} {\n padding: 0px;\n }\n\n :host(.primary) .control:active {\n background-clip: border-box;\n border-color: ${fillSelectedColor};\n border-width: ${borderWidth};\n box-shadow: none;\n padding: 0 ${standardPadding};\n }\n\n :host(.primary[content-hidden]) .control:active {\n padding: 0px;\n }\n\n :host(.primary) .control[disabled] {\n background-clip: border-box;\n border-color: transparent;\n border-width: ${borderWidth};\n box-shadow: none;\n padding: 0 ${standardPadding};\n }\n\n :host(.primary[content-hidden]) .control[disabled] {\n padding: 0px;\n }\n `));\n//# sourceMappingURL=styles.js.map","import { __decorate } from \"tslib\";\nimport { attr } from '@microsoft/fast-element';\nimport { Button as FoundationButton, buttonTemplate as template, DesignSystem } from '@microsoft/fast-foundation';\nimport { styles } from './styles';\nimport { ButtonAppearance } from './types';\n/**\n * A nimble-styled HTML button\n */\nexport class Button extends FoundationButton {\n constructor() {\n super(...arguments);\n /**\n * The appearance the button should have.\n *\n * @public\n * @remarks\n * HTML Attribute: appearance\n */\n this.appearance = ButtonAppearance.Outline;\n /**\n * Specify as 'true' to hide the text content of the button. The button will\n * become square, and the text content will be used as the label of the button\n * for accessibility purposes.\n *\n * @public\n * @remarks\n * HTML Attribute: content-hidden\n */\n this.contentHidden = false;\n }\n}\n__decorate([\n attr\n], Button.prototype, \"appearance\", void 0);\n__decorate([\n attr({ attribute: 'content-hidden', mode: 'boolean' })\n], Button.prototype, \"contentHidden\", void 0);\n/**\n * A function that returns a nimble-button registration for configuring the component with a DesignSystem.\n * Implements {@link @microsoft/fast-foundation#buttonTemplate}\n *\n * @public\n * @remarks\n * Generates HTML Element: \\<nimble-button\\>\n *\n */\nconst nimbleButton = Button.compose({\n baseName: 'button',\n baseClass: FoundationButton,\n template,\n styles,\n shadowOptions: {\n delegatesFocus: true\n }\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleButton());\n//# sourceMappingURL=index.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { focusVisible } from '../utilities/style/focus';\nimport { borderColor, borderHoverColor, borderRgbPartialColor, bodyFontColor, bodyDisabledFontColor, controlHeight, iconSize, borderWidth, smallDelay, buttonLabelFont } from '../theme-provider/design-tokens';\nexport const styles = css `\n ${display('inline-flex')}\n\n :host {\n font: ${buttonLabelFont};\n align-items: center;\n cursor: pointer;\n outline: none;\n user-select: none;\n }\n\n :host([disabled]) {\n cursor: default;\n }\n\n .control {\n width: calc(${controlHeight} / 2);\n height: calc(${controlHeight} / 2);\n box-sizing: border-box;\n flex-shrink: 0;\n border: ${borderWidth} solid ${borderColor};\n padding: 2px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n transition: box-shadow ${smallDelay};\n ${\n/*\n * Firefox includes the line height in the outline height calculation (not sure if intended or accidental).\n * Set it to 0 to ensure the outline is just as high as the control.\n */ ''}\n line-height: 0;\n }\n\n @media (prefers-reduced-motion) {\n .control {\n transition-duration: 0s;\n }\n }\n\n :host([disabled]) .control {\n background-color: rgba(${borderRgbPartialColor}, 0.1);\n border-color: rgba(${borderRgbPartialColor}, 0.2);\n }\n\n :host(:not([disabled]):not(:active):hover) .control {\n border-color: ${borderHoverColor};\n box-shadow: 0px 0px 0px ${borderWidth} ${borderHoverColor} inset;\n }\n\n :host(${focusVisible}) .control {\n border-color: ${borderHoverColor};\n outline: 2px solid ${borderHoverColor};\n outline-offset: 2px;\n }\n\n .label {\n font: inherit;\n color: ${bodyFontColor};\n padding-left: 1ch;\n cursor: inherit;\n }\n\n :host([disabled]) .label {\n color: ${bodyDisabledFontColor};\n }\n\n slot[name='checked-indicator'] svg {\n height: ${iconSize};\n width: ${iconSize};\n overflow: visible;\n }\n\n slot[name='checked-indicator'] path {\n fill: ${borderColor};\n opacity: 0;\n }\n\n :host([aria-checked='true']) slot[name='checked-indicator'] path {\n opacity: 1;\n }\n\n :host([disabled]) slot[name='checked-indicator'] path {\n fill: rgba(${borderRgbPartialColor}, 0.3);\n }\n`;\n//# sourceMappingURL=styles.js.map","import { DesignSystem, Checkbox as FoundationCheckbox, checkboxTemplate as template } from '@microsoft/fast-foundation';\nimport { check16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { styles } from './styles';\n/**\n * A nimble-styled checkbox control.\n */\nexport class Checkbox extends FoundationCheckbox {\n}\nconst nimbleCheckbox = Checkbox.compose({\n baseName: 'checkbox',\n baseClass: FoundationCheckbox,\n template,\n styles,\n checkedIndicator: check16X16.data\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCheckbox());\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AnimationMode = void 0;\n/**\n * Animation mode describes if an animation should animate toward an elements natural position or away from it\n *\n * @internal\n */\nvar AnimationMode;\n(function (AnimationMode) {\n AnimationMode[AnimationMode[\"animateTo\"] = 0] = \"animateTo\";\n AnimationMode[AnimationMode[\"animateFrom\"] = 1] = \"animateFrom\";\n})(AnimationMode = exports.AnimationMode || (exports.AnimationMode = {}));\n/**\n * Base animate type. This is extended by {@link @microsoft/fast-animation#AnimateTo} and {@link @microsoft/fast-animation#AnimateFrom}.\n *\n * @public\n */\nvar Animate = /** @class */ (function () {\n function Animate(element, options, effectTiming) {\n var _this = this;\n /**\n * Stores animation timing functions\n */\n this.effectTiming = {\n fill: \"forwards\",\n iterations: 1,\n duration: 500,\n };\n /**\n * Stores animation keyframe sets and is accessed by a getter\n */\n this._keyframes = [];\n /**\n * plays the animation\n */\n this.play = function () {\n _this.ensureAnimationObjectExists();\n _this.animation.play();\n };\n /**\n * pauses the animation\n */\n this.pause = function () {\n _this.ensureAnimationObjectExists();\n _this.animation.pause();\n };\n /**\n * finishes the animation\n */\n this.finish = function () {\n _this.ensureAnimationObjectExists();\n _this.animation.finish();\n };\n /**\n * cancels the animation\n */\n this.cancel = function () {\n _this.ensureAnimationObjectExists();\n _this.animation.cancel();\n };\n /**\n * reverses an animation\n */\n this.reverse = function () {\n _this.ensureAnimationObjectExists();\n _this.animation.reverse();\n };\n /**\n * adds a set of keyframes to set of animation keyframes the animation should execute\n */\n this.addKeyframes = function (keyframes) {\n _this._keyframes.push(keyframes);\n };\n this.animationTarget = element;\n if (effectTiming) {\n this.effectTiming = Object.assign({}, this.effectTiming, effectTiming);\n }\n if (options) {\n if (options.transformOrigin) {\n element.style.transformOrigin = options.transformOrigin;\n }\n if (options.transformStyle) {\n element.style.transformStyle = options.transformStyle;\n }\n }\n this.options = options || {};\n }\n Object.defineProperty(Animate.prototype, \"onFinish\", {\n get: function () {\n return this._onFinish;\n },\n set: function (callback) {\n this._onFinish = callback;\n if (this.animation) {\n this.animation.onfinish = callback;\n }\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Ensure animation object\n */\n Animate.prototype.ensureAnimationObjectExists = function () {\n if (typeof this.animation === \"undefined\") {\n this.createAnimationObject();\n }\n };\n /**\n * Creates the animation object\n */\n Animate.prototype.createAnimationObject = function () {\n this.animation = new Animation(this.keyframeEffect, document.timeline);\n if (typeof this.onFinish !== \"undefined\") {\n this.animation.onfinish = this.onFinish;\n }\n if (typeof this.onCancel !== \"undefined\") {\n this.animation.oncancel = this.onCancel;\n }\n };\n /**\n * Returns a list of properties that will be animated based options\n */\n Animate.prototype.getPropertiesToAnimate = function () {\n var _this = this;\n return Object.keys(Animate.propertyMap).filter(function (property) {\n // Filter out all properties that don't need to be set based on our options\n return Animate.propertyMap[property].reduce(function (hasProperty, animationProp) {\n return (typeof _this.options[animationProp] !== \"undefined\" || hasProperty);\n }, false);\n });\n };\n /**\n * Current implmentations of web animations seem to have trouble animating both scale and opacity\n * from a starting value of 0. This method detects when those values are 0 and alters them slightly\n * to known-working starting values\n */\n Animate.prototype.normalizeInitialValue = function (property, value) {\n if (value === undefined) {\n return;\n }\n var coercedReturn = \"0.01\";\n switch (property) {\n case \"transform\":\n /* eslint-disable */\n var matrixValuesRegex = /matrix\\((.+)\\)/;\n var matrixValues = value.match(matrixValuesRegex);\n /* eslint-enable */\n if (Array.isArray(matrixValues)) {\n var normalizedValues = matrixValues[1]\n .split(\",\")\n .map(function (matchedValue, index) {\n var parsedValueIsZero = parseFloat(value) === 0;\n if (!parsedValueIsZero) {\n return matchedValue;\n }\n // If this is the scaleX index or the scaleY index, return the coerced value\n return index === 0 || index === 3\n ? coercedReturn\n : matchedValue;\n });\n return \"matrix(\" + normalizedValues.join(\",\") + \")\";\n }\n break;\n case \"opacity\":\n return parseFloat(value) === 0 ? coercedReturn : value;\n }\n return value;\n };\n /**\n * Returns the initial values for all properties being animated\n */\n Animate.prototype.getInitialKeyframeValues = function () {\n var _this = this;\n if (!(this.animationTarget instanceof HTMLElement) ||\n typeof window === \"undefined\") {\n return {};\n }\n var animatedProperties = this.getPropertiesToAnimate();\n var computedStyle = window.getComputedStyle(this.animationTarget);\n var initialKeyframeValues = {};\n animatedProperties.forEach(function (property) {\n initialKeyframeValues[property] = _this.normalizeInitialValue(property, computedStyle[property]);\n });\n return initialKeyframeValues;\n };\n /**\n * Formats a config option into a transform function\n */\n Animate.prototype.formatTransformFunction = function (functionType, value) {\n // If `functionType` can't be converted into a transform function, just return empty string\n if (Animate.propertyMap.transform.indexOf(functionType) === -1) {\n return \"\";\n }\n switch (functionType) {\n case \"x\":\n case \"y\":\n functionType = \"translate\" + functionType.toUpperCase();\n value =\n typeof value === \"number\" ? (value = this.pixelify(value)) : value;\n break;\n case \"rotate\":\n value = value.toString() + \"deg\";\n break;\n case \"scale\":\n if (value === 0) {\n // There is a strange bug where you can't animate from a scale 0\n value = 0.01;\n }\n }\n if (typeof value !== \"string\") {\n value = value.toString();\n }\n return functionType + \"(\" + value + \")\";\n };\n /**\n * Converts a number to a pixel string\n */\n Animate.prototype.pixelify = function (num) {\n return num + \"px\";\n };\n /**\n * Returns keyframe values based on option configuration\n */\n Animate.prototype.getOptionKeyframeValues = function () {\n var _this = this;\n var animateProperties = this.getPropertiesToAnimate();\n var keyframeValues = {};\n animateProperties.forEach(function (property) {\n keyframeValues[property] = Animate.propertyMap[property]\n .map(function (option) {\n var value = _this.options[option];\n if (typeof value === \"undefined\") {\n return null;\n }\n switch (option) {\n case \"opacity\":\n return value.toString();\n case \"top\":\n case \"right\":\n case \"bottom\":\n case \"left\":\n return typeof value === \"number\"\n ? _this.pixelify(value)\n : value;\n default:\n return _this.formatTransformFunction(option, value);\n }\n })\n .filter(function (option) { return Boolean(option); })\n .join(\" \");\n });\n return keyframeValues;\n };\n /**\n * Gets all keyframes configured by options\n */\n Animate.prototype.getOptionKeyframes = function () {\n var keyframes = [\n this.getInitialKeyframeValues(),\n this.getOptionKeyframeValues(),\n ];\n return this.mode === AnimationMode.animateFrom ? keyframes.reverse() : keyframes;\n };\n /**\n * Sorts an array of offset keys in ascending order\n */\n Animate.prototype.sortOffsets = function (offsets) {\n return offsets.sort(function (a, b) {\n var A = parseFloat(a);\n var B = parseFloat(b);\n if (A < B) {\n return -1;\n }\n else if (A > B) {\n return 1;\n }\n else {\n return 0;\n }\n });\n };\n /**\n * Consolidates all keyframe arrays into a single keyframe array\n */\n Animate.prototype.consolidateKeyframes = function (keyframeSets) {\n var frames = [];\n // Merge all keyframes into a single frames object where each key is a keyframe offset\n keyframeSets.forEach(function (keyframeSet) {\n keyframeSet.forEach(function (keyframe, index) {\n var offset = keyframe.offset;\n if (typeof offset === \"undefined\") {\n offset = index === 0 ? 0 : 1;\n keyframe.offset = offset;\n }\n var offsetKey = offset.toString();\n frames[offsetKey] =\n typeof frames[offsetKey] === \"undefined\"\n ? keyframe\n : Object.assign(frames[offsetKey], keyframe);\n });\n });\n return this.sortOffsets(Object.keys(frames)).map(function (offset) {\n return frames[offset];\n });\n };\n Object.defineProperty(Animate.prototype, \"keyframes\", {\n /**\n * Returns the animation's keyframes\n */\n get: function () {\n return this.consolidateKeyframes(this._keyframes.concat([this.getOptionKeyframes()]));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Animate.prototype, \"keyframeEffect\", {\n /**\n * Returns the key frame effect object\n */\n get: function () {\n return new KeyframeEffect(this.animationTarget, this.keyframes, this.effectTiming);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * A mapping between animation options and the css property names they apply to\n */\n Animate.propertyMap = {\n opacity: [\"opacity\"],\n transform: [\"x\", \"y\", \"rotate\", \"scale\"],\n top: [\"top\"],\n left: [\"left\"],\n bottom: [\"bottom\"],\n right: [\"right\"],\n };\n return Animate;\n}());\nexports.default = Animate;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar animate_1 = require(\"../animate\");\n/**\n * An animation to provided property values from the element's current values.\n * Extends {@link @microsoft/fast-animation#Animate}.\n * @public\n */\nvar AnimateTo = /** @class */ (function (_super) {\n __extends(AnimateTo, _super);\n function AnimateTo() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.mode = animate_1.AnimationMode.animateTo;\n return _this;\n }\n return AnimateTo;\n}(animate_1.default));\nexports.default = AnimateTo;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar animate_1 = require(\"../animate\");\n/**\n * An animation from provided property values to the element's current values.\n * Extends {@link @microsoft/fast-animation#Animate}.\n *\n * @public\n */\nvar AnimateFrom = /** @class */ (function (_super) {\n __extends(AnimateFrom, _super);\n function AnimateFrom() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.mode = animate_1.AnimationMode.animateFrom;\n return _this;\n }\n return AnimateFrom;\n}(animate_1.default));\nexports.default = AnimateFrom;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.invokeFunctionForEach = void 0;\n/**\n * For each item in an array, invoke a function\n */\nfunction invokeFunctionForEach(arr, name) {\n arr.forEach(function (arrItem) { return arrItem[name](); });\n}\nexports.invokeFunctionForEach = invokeFunctionForEach;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar invokeFunctionForEach_1 = require(\"../utilities/invokeFunctionForEach\");\n/**\n * Groups {@link @microsoft/fast-animation#AnimateTo} and {@link @microsoft/fast-animation#AnimateFrom} instances, providing a single API to operate on all of them.\n * @public\n */\nvar AnimateGroup = /** @class */ (function () {\n function AnimateGroup(animations) {\n var _this = this;\n /**\n * Pauses all animations in the group\n */\n this.pause = function () {\n invokeFunctionForEach_1.invokeFunctionForEach(_this.animations, \"pause\");\n };\n /**\n * Finishes all animations in the group\n */\n this.finish = function () {\n invokeFunctionForEach_1.invokeFunctionForEach(_this.animations, \"finish\");\n };\n /**\n * Cancels all animations in the group\n */\n this.cancel = function () {\n invokeFunctionForEach_1.invokeFunctionForEach(_this.animations, \"cancel\");\n };\n this.animations = animations;\n }\n Object.defineProperty(AnimateGroup.prototype, \"onFinish\", {\n /**\n * The onFinish callback.\n */\n get: function () {\n return this._onFinish;\n },\n set: function (callback) {\n var _this = this;\n this._onFinish = callback;\n var longestRunning = this.getLongestAnimation();\n if (typeof longestRunning.onFinish === \"function\") {\n var fn_1 = longestRunning.onFinish;\n longestRunning.onFinish = function () {\n fn_1();\n _this._onFinish();\n };\n }\n else {\n longestRunning.onFinish = this._onFinish;\n }\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Play the group of animations\n */\n AnimateGroup.prototype.play = function () {\n invokeFunctionForEach_1.invokeFunctionForEach(this.animations, \"play\");\n };\n /**\n * Reverses all animations in the group\n */\n AnimateGroup.prototype.reverse = function () {\n invokeFunctionForEach_1.invokeFunctionForEach(this.animations, \"reverse\");\n };\n /**\n * Returns the longest running animation in the group\n */\n AnimateGroup.prototype.getLongestAnimation = function () {\n var _this = this;\n return this.animations.reduce(function (previousValue, currentValue) {\n var previousDuration = _this.getAnimationDuration(previousValue.effectTiming);\n var currentDuration = _this.getAnimationDuration(currentValue.effectTiming);\n // If two durations in the group are equal, consider the higher index the\n // longest animation - this helps ensure the group onFinish callback\n // is fired after all individual animation onFinish callbacks have fired.\n return currentDuration >= previousDuration ? currentValue : previousValue;\n });\n };\n /**\n * Returns the cumulative time it will take to complete an animation\n */\n AnimateGroup.prototype.getAnimationDuration = function (effectTiming) {\n var duration = effectTiming.duration;\n var sanitizedDuration = typeof duration === \"string\" ? parseFloat(duration) : duration;\n return (effectTiming.delay || 0) + (sanitizedDuration || 0);\n };\n return AnimateGroup;\n}());\nexports.default = AnimateGroup;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar invokeFunctionForEach_1 = require(\"../utilities/invokeFunctionForEach\");\n/**\n * Animate a collection of {@link @microsoft/fast-animation#AnimateTo} and {@link @microsoft/fast-animation#AnimateFrom} in sequence.\n * @public\n */\nvar AnimateSequence = /** @class */ (function () {\n function AnimateSequence(animations) {\n var _this = this;\n /**\n * Play the sequence of animations\n */\n this.play = function () {\n _this.applySequencedCallback(_this.animations, \"play\");\n };\n /**\n * Play the sequence in reverse\n */\n this.reverse = function () {\n _this.applySequencedCallback(_this.animations.reverse(), \"reverse\");\n };\n /**\n * Pauses all animations in the sequence\n */\n this.pause = function () {\n invokeFunctionForEach_1.invokeFunctionForEach(_this.animations, \"pause\");\n };\n /**\n * Finishes all animations in the sequence\n */\n this.finish = function () {\n invokeFunctionForEach_1.invokeFunctionForEach(_this.animations, \"finish\");\n };\n /**\n * Cancels all animations in the sequence\n */\n this.cancel = function () {\n invokeFunctionForEach_1.invokeFunctionForEach(_this.animations, \"cancel\");\n };\n this.animations = animations;\n }\n /**\n * Sequences a set of animations and calls the specified method\n */\n AnimateSequence.prototype.applySequencedCallback = function (animations, method) {\n var _this = this;\n var animationCount = animations.length;\n if (animationCount <= 0) {\n return;\n }\n animations.forEach(function (animation, index) {\n // If this is not the last animation, format animation sequence chain\n if (index < animationCount - 1) {\n animation.onFinish = _this.animations[index + 1][method];\n }\n else {\n // Else attach onFinish or nullify any existing onFinish on the animation\n animation.onFinish = _this.onFinish || void 0;\n }\n });\n animations[0][method]();\n };\n return AnimateSequence;\n}());\nexports.default = AnimateSequence;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fadeOut = exports.fadeIn = exports.applyFade = exports.fadeEffectTiming = exports.fadeOutKeyframes = exports.fadeInKeyframes = void 0;\nvar animateTo_1 = require(\"../animateTo\");\n/**\n * Key frame object for fade-in animations\n */\nexports.fadeInKeyframes = [\n { opacity: \"0.01\" },\n { opacity: \"1\" },\n];\n/**\n * Key frame object for fade-out animations\n */\nexports.fadeOutKeyframes = [\n { opacity: \"1\" },\n { opacity: \"0\" },\n];\n/**\n * EffectTiming defaults for fade animations\n */\nexports.fadeEffectTiming = {\n easing: \"linear\",\n duration: 500,\n};\nfunction applyFade(element, keyframes, timing) {\n if (timing === void 0) { timing = {}; }\n var fadeAnimationTiming = Object.assign({}, exports.fadeEffectTiming, timing);\n var fadeAnimation = new animateTo_1.default(element, null, fadeAnimationTiming);\n fadeAnimation.addKeyframes(keyframes);\n return fadeAnimation;\n}\nexports.applyFade = applyFade;\n/**\n * Creates an animation to fade an element into view\n *\n * @public\n */\nfunction fadeIn(element, effectTiming) {\n if (effectTiming === void 0) { effectTiming = {}; }\n return applyFade(element, exports.fadeInKeyframes, effectTiming);\n}\nexports.fadeIn = fadeIn;\n/**\n * Creates an animation to fade an element out of view\n *\n * @public\n */\nfunction fadeOut(element, effectTiming) {\n if (effectTiming === void 0) { effectTiming = {}; }\n return applyFade(element, exports.fadeOutKeyframes, effectTiming);\n}\nexports.fadeOut = fadeOut;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.navPane = exports.exponentialReversed = exports.fastInFortySevenPercent = exports.exponential = exports.fastInOut = exports.fastOut = exports.fastIn = exports.appToApp = exports.backToApp = exports.drillIn = exports.easeIn = exports.easeOutSmooth = exports.easeOut = exports.linear = void 0;\nexports.linear = [\n [0, 0],\n [1, 1],\n];\nexports.easeOut = [\n [0, 0],\n [0.58, 1],\n];\nexports.easeOutSmooth = [\n [0, 0.35],\n [0.15, 1],\n];\nexports.easeIn = [\n [0.25, 0.1],\n [0.25, 1],\n];\nexports.drillIn = [\n [0.17, 0.17],\n [0, 1],\n];\nexports.backToApp = [\n [0.5, 0],\n [0.6, 1],\n];\nexports.appToApp = [\n [0.5, 0],\n [1, 0.9],\n];\nexports.fastIn = [\n [0.1, 0.9],\n [0.2, 1],\n];\nexports.fastOut = [\n [0.9, 0.1],\n [1, 0.2],\n];\nexports.fastInOut = [\n [0.8, 0],\n [0.2, 1],\n];\nexports.exponential = [\n [0.1, 0.25],\n [0.75, 0.9],\n];\nexports.fastInFortySevenPercent = [\n [0.11, 0.5],\n [0.24, 0.96],\n];\nexports.exponentialReversed = [\n [0.25, 0.1],\n [0.9, 0.75],\n];\nexports.navPane = [\n [0.1, 0.7],\n [0.1, 1],\n];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cubicBezier = exports.formatCubicBezier = void 0;\nvar bezierCurves = require(\"./config\");\n/**\n * Formats a cubic bezier config into a cubic bezier string\n *\n * @public\n */\nfunction formatCubicBezier(points) {\n if (!Array.isArray(points) ||\n !Array.isArray(points[0]) ||\n !Array.isArray(points[1])) {\n return \"\";\n }\n var p0 = points[0];\n var p1 = points[1];\n return \"cubic-bezier(\" + p0[0] + \", \" + p0[1] + \", \" + p1[0] + \", \" + p1[1] + \")\";\n}\nexports.formatCubicBezier = formatCubicBezier;\n/**\n * Get a cubic bezier curve, formatted as a string, by name.\n * @param name - the name of the bezier curve to use.\n *\n * @public\n */\nfunction cubicBezier(name) {\n return name in bezierCurves ? formatCubicBezier(bezierCurves[name]) : \"\";\n}\nexports.cubicBezier = cubicBezier;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Checks to see if any part of an element is within the viewport\n */\nfunction isElementInView(el) {\n var rect = el.getBoundingClientRect();\n return (rect.bottom >= 0 &&\n rect.right >= 0 &&\n rect.top <= window.innerHeight &&\n rect.left <= window.innerWidth);\n}\nexports.default = isElementInView;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Gets the document's scrollY\n */\nfunction scrollY() {\n if (typeof window === \"undefined\") {\n return NaN;\n }\n return typeof window.scrollY !== \"undefined\" ? window.scrollY : window.pageYOffset;\n}\nexports.default = scrollY;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isElementInView_1 = require(\"../utilities/isElementInView\");\nvar scrollY_1 = require(\"../utilities/scrollY\");\n/**\n * Scroll trigger base-class that handles event binding and element/callback registration.\n */\nvar ScrollTrigger = /** @class */ (function () {\n function ScrollTrigger() {\n var _this = this;\n this.subscriptions = [];\n this.scrollDistance = 0;\n /**\n * Request's an animation frame if there are currently no open animation frame requests\n */\n this.requestFrame = function () {\n if (_this.requestedFrame) {\n cancelAnimationFrame(_this.requestedFrame);\n }\n _this.requestedFrame = requestAnimationFrame(_this.update);\n };\n this.lastScrollY = scrollY_1.default();\n // We need to use .bind instead of lambda (fat-arrow) syntax here because\n // protected methods declared as lambda functions cannot be invoked by\n // extending classes via the `super` object\n this.update = this.update.bind(this);\n }\n /**\n * Subscribe an element and callback for scroll triggers\n */\n ScrollTrigger.prototype.subscribe = function (element, callback) {\n if (!(element instanceof HTMLElement) ||\n typeof callback !== \"function\" ||\n this.isSubscribed(element, callback)) {\n return;\n }\n if (this.subscriptions.length === 0) {\n window.addEventListener(\"scroll\", this.requestFrame);\n }\n this.subscriptions.push({\n element: element,\n callback: callback,\n inView: isElementInView_1.default(element),\n });\n };\n /**\n * Unsubscribe an element and callback for scroll triggers\n */\n ScrollTrigger.prototype.unsubscribe = function (element, callback) {\n this.subscriptions = this.subscriptions.filter(function (subscription) {\n return !(element === subscription.element && callback === subscription.callback);\n });\n if (this.subscriptions.length === 0) {\n window.removeEventListener(\"scroll\", this.requestFrame);\n }\n };\n /**\n * Make any arbitrary updates to UI\n */\n ScrollTrigger.prototype.update = function () {\n var yOffset = scrollY_1.default();\n this.scrollDistance = yOffset - this.lastScrollY;\n this.lastScrollY = yOffset;\n };\n /**\n * Checks to see if element/callback pairs have been registered so we don't duplicate registration.\n */\n ScrollTrigger.prototype.isSubscribed = function (element, callback) {\n return !!this.subscriptions.filter(function (subscription) {\n return (element === subscription.element && callback === subscription.callback);\n }).length;\n };\n return ScrollTrigger;\n}());\nexports.default = ScrollTrigger;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isElementInView_1 = require(\"../utilities/isElementInView\");\nvar ScrollBase_1 = require(\"./ScrollBase\");\n/**\n * Utility for registering element/callback pairs where the callback will be called on scroll while the element is in view.\n *\n * @public\n */\nvar ScrollTrigger = /** @class */ (function (_super) {\n __extends(ScrollTrigger, _super);\n function ScrollTrigger() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Check if elements are in view-port and apply scroll method if they are\n */\n ScrollTrigger.prototype.update = function () {\n var _this = this;\n _super.prototype.update.call(this);\n this.subscriptions.forEach(function (subscription) {\n var inView = isElementInView_1.default(subscription.element);\n if (inView) {\n subscription.callback(_this.scrollDistance);\n }\n if (inView !== subscription.inView) {\n subscription.inView = inView;\n }\n });\n };\n return ScrollTrigger;\n}(ScrollBase_1.default));\nexports.default = ScrollTrigger;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isElementInView_1 = require(\"../utilities/isElementInView\");\nvar ScrollBase_1 = require(\"./ScrollBase\");\n/**\n * Utility for registering element/callback pairs where the callback will be called when the element enters the view-port\n *\n * @public\n */\nvar ViewEnterTrigger = /** @class */ (function (_super) {\n __extends(ViewEnterTrigger, _super);\n function ViewEnterTrigger() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Check if elements are in view-port and apply scroll method if they are\n */\n ViewEnterTrigger.prototype.update = function () {\n var _this = this;\n _super.prototype.update.call(this);\n this.subscriptions.forEach(\n /* eslint-disable-next-line */\n function (subscription, index) {\n var inView = isElementInView_1.default(subscription.element);\n // If the element is in view but previously wasn't\n if (inView && !subscription.inView) {\n subscription.callback(_this.scrollDistance);\n }\n if (inView !== subscription.inView) {\n subscription.inView = inView;\n }\n });\n };\n return ViewEnterTrigger;\n}(ScrollBase_1.default));\nexports.default = ViewEnterTrigger;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isElementInView_1 = require(\"../utilities/isElementInView\");\nvar ScrollBase_1 = require(\"./ScrollBase\");\n/**\n * Utility for registering element/callback pairs where the callback will be invoked when the element exits the view-port\n *\n * @public\n */\nvar ViewExitTrigger = /** @class */ (function (_super) {\n __extends(ViewExitTrigger, _super);\n function ViewExitTrigger() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Check if elements are in view-port and apply scroll method if they are\n */\n ViewExitTrigger.prototype.update = function () {\n var _this = this;\n _super.prototype.update.call(this);\n this.subscriptions.forEach(\n /* eslint-disable-next-line */\n function (subscription, index) {\n var inView = isElementInView_1.default(subscription.element);\n // If the element is out of view but previously was in view\n if (!inView && subscription.inView) {\n subscription.callback(_this.scrollDistance);\n }\n if (inView !== subscription.inView) {\n subscription.inView = inView;\n }\n });\n };\n return ViewExitTrigger;\n}(ScrollBase_1.default));\nexports.default = ViewExitTrigger;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ViewExitTrigger = exports.ViewEnterTrigger = exports.ScrollTrigger = exports.fadeOut = exports.fadeIn = exports.cubicBezier = exports.AnimateTo = exports.AnimateSequence = exports.AnimateGroup = exports.AnimateFrom = exports.Animate = void 0;\nvar animateTo_1 = require(\"./animateTo\");\nexports.AnimateTo = animateTo_1.default;\nvar animateFrom_1 = require(\"./animateFrom\");\nexports.AnimateFrom = animateFrom_1.default;\nvar animateGroup_1 = require(\"./animateGroup\");\nexports.AnimateGroup = animateGroup_1.default;\nvar animateSequence_1 = require(\"./animateSequence\");\nexports.AnimateSequence = animateSequence_1.default;\nvar animate_1 = require(\"./animate\");\nexports.Animate = animate_1.default;\nvar fade_1 = require(\"./fade\");\nObject.defineProperty(exports, \"fadeIn\", { enumerable: true, get: function () { return fade_1.fadeIn; } });\nObject.defineProperty(exports, \"fadeOut\", { enumerable: true, get: function () { return fade_1.fadeOut; } });\nvar curves_1 = require(\"./curves\");\nObject.defineProperty(exports, \"cubicBezier\", { enumerable: true, get: function () { return curves_1.cubicBezier; } });\nvar ScrollTrigger_1 = require(\"./triggers/ScrollTrigger\");\nexports.ScrollTrigger = ScrollTrigger_1.default;\nvar ViewEnterTrigger_1 = require(\"./triggers/ViewEnterTrigger\");\nexports.ViewEnterTrigger = ViewEnterTrigger_1.default;\nvar ViewExitTrigger_1 = require(\"./triggers/ViewExitTrigger\");\nexports.ViewExitTrigger = ViewExitTrigger_1.default;\n","/**\n * Singleton utility to watch the prefers-reduced-motion media value\n */\nexport const prefersReducedMotionMediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)');\n//# sourceMappingURL=prefers-reduced-motion.js.map","const slideLeftKeyframes = [\n {\n transform: 'translateX(-100%)',\n visibility: 'hidden',\n offset: 0\n },\n {\n transform: 'translateX(-100%)',\n visibility: 'visible',\n offset: 0.01\n },\n {\n transform: 'translateX(0%)',\n visibility: 'visible',\n offset: 1\n }\n];\nconst slideRightKeyframes = [\n {\n transform: 'translateX(100%)',\n visibility: 'hidden',\n offset: 0\n },\n {\n transform: 'translateX(100%)',\n visibility: 'visible',\n offset: 0.01\n },\n {\n transform: 'translateX(0%)',\n visibility: 'visible',\n offset: 1\n }\n];\nconst fadeOverlayKeyframes = [{ opacity: 0 }, { opacity: 1 }];\nconst slideInOptions = {\n duration: 1,\n easing: 'ease-out'\n};\nconst slideOutOptions = {\n duration: 1,\n easing: 'ease-in',\n direction: 'reverse'\n};\nexport const animationConfig = {\n slideLeftKeyframes,\n slideRightKeyframes,\n fadeOverlayKeyframes,\n slideInOptions,\n slideOutOptions\n};\n//# sourceMappingURL=animations.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { applicationBackgroundColor, bodyFont, bodyFontColor, borderWidth, popupBorderColor, popupBoxShadowColor, standardPadding, titlePlus1Font, drawerWidth } from '../theme-provider/design-tokens';\nexport const styles = css `\n ${display('block')}\n\n :host {\n position: relative;\n top: 0;\n bottom: 0;\n width: fit-content;\n height: 100%;\n outline: none;\n font: ${bodyFont};\n color: ${bodyFontColor};\n }\n\n :host([modal]) {\n position: absolute;\n }\n\n :host([location='left']) {\n left: 0px;\n }\n\n :host([location='right']) {\n right: 0px;\n }\n\n .positioning-region {\n display: block;\n position: relative;\n justify-content: center;\n width: fit-content;\n height: 100%;\n inset: 0px;\n overflow: hidden;\n z-index: 999;\n }\n\n :host([modal]) .positioning-region {\n width: 100%;\n position: fixed;\n display: flex;\n }\n\n ${ /* Note: overlay is only present in the DOM when modal=true */''}\n .overlay {\n position: fixed;\n inset: 0px;\n background: ${popupBorderColor};\n touch-action: none;\n }\n\n .control {\n position: relative;\n top: 0px;\n bottom: 0px;\n display: grid;\n grid-template-rows: max-content auto max-content;\n flex-direction: column;\n box-sizing: border-box;\n border-radius: 0px;\n border-width: 0px;\n width: ${drawerWidth};\n height: 100%;\n background-color: ${applicationBackgroundColor};\n }\n\n :host([modal]) .control {\n position: absolute;\n height: 100%;\n }\n\n :host(.hidden) .control {\n visibility: hidden;\n }\n\n :host([location='left']) .control {\n left: 0px;\n border-right: ${borderWidth} solid ${popupBoxShadowColor};\n }\n\n :host([location='right']) .control {\n right: 0px;\n border-left: ${borderWidth} solid ${popupBoxShadowColor};\n }\n\n ${\n/*\n Styling for a 3-panel drawer with header, footer, and a content\n region filling the remaining space/height\n*/ ''}\n\n ::slotted(header) {\n padding: ${standardPadding};\n font: ${titlePlus1Font};\n }\n\n ::slotted(section) {\n padding: ${standardPadding};\n grid-row: 2;\n overflow-y: auto;\n }\n\n ::slotted(footer) {\n padding: ${standardPadding};\n display: flex;\n justify-content: flex-end;\n grid-row: 3;\n border-top: ${borderWidth} solid ${popupBorderColor};\n }\n`;\n//# sourceMappingURL=styles.js.map","export var DrawerLocation;\n(function (DrawerLocation) {\n DrawerLocation[\"Left\"] = \"left\";\n DrawerLocation[\"Right\"] = \"right\";\n})(DrawerLocation || (DrawerLocation = {}));\nexport var DrawerState;\n(function (DrawerState) {\n DrawerState[\"Opening\"] = \"opening\";\n DrawerState[\"Opened\"] = \"opened\";\n DrawerState[\"Closing\"] = \"closing\";\n DrawerState[\"Closed\"] = \"closed\";\n})(DrawerState || (DrawerState = {}));\n//# sourceMappingURL=types.js.map","import { __decorate } from \"tslib\";\nimport { AnimateGroup, AnimateTo } from '@microsoft/fast-animation';\nimport { attr, Observable } from '@microsoft/fast-element';\nimport { DesignSystem, Dialog as FoundationDialog, dialogTemplate as template } from '@microsoft/fast-foundation';\nimport { largeDelay } from '../theme-provider/design-tokens';\nimport { prefersReducedMotionMediaQuery } from '../utilities/style/prefers-reduced-motion';\nimport { animationConfig } from './animations';\nimport { styles } from './styles';\nimport { DrawerLocation, DrawerState } from './types';\nconst animationDurationWhenDisabledMilliseconds = 0.001;\n/**\n * Drawer/Sidenav control. Shows content in a panel on the left / right side of the screen,\n * which animates to be visible with a slide-in / slide-out animation.\n * Configured via 'location', 'state', 'modal', 'preventDismiss' properties.\n */\nexport class Drawer extends FoundationDialog {\n constructor() {\n super(...arguments);\n this.location = DrawerLocation.Left;\n this.state = DrawerState.Closed;\n /**\n * True to prevent dismissing the drawer when the overlay outside the drawer is clicked.\n * Only applicable when 'modal' is set to true (i.e. when the overlay is used).\n * HTML Attribute: prevent-dismiss\n */\n this.preventDismiss = false;\n this.propertiesToWatch = ['hidden', 'location', 'state'];\n this.animationDurationMilliseconds = animationDurationWhenDisabledMilliseconds;\n }\n connectedCallback() {\n // disable trapFocus before super.connectedCallback as FAST Dialog will immediately queue work to\n // change focus if it's true before connectedCallback\n this.trapFocus = false;\n super.connectedCallback();\n this.updateAnimationDuration();\n this.animationsEnabledChangedHandler = () => this.updateAnimationDuration();\n prefersReducedMotionMediaQuery.addEventListener('change', this.animationsEnabledChangedHandler);\n this.onStateChanged();\n const notifier = Observable.getNotifier(this);\n const subscriber = {\n handleChange: (_source, propertyName) => this.onPropertyChange(propertyName)\n };\n this.propertiesToWatch.forEach(propertyName => notifier.subscribe(subscriber, propertyName));\n this.propertyChangeSubscriber = subscriber;\n this.propertyChangeNotifier = notifier;\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.cancelCurrentAnimation();\n if (this.propertyChangeNotifier && this.propertyChangeSubscriber) {\n this.propertiesToWatch.forEach(propertyName => this.propertyChangeNotifier.unsubscribe(this.propertyChangeSubscriber, propertyName));\n this.propertyChangeNotifier = undefined;\n this.propertyChangeSubscriber = undefined;\n }\n if (this.animationsEnabledChangedHandler) {\n prefersReducedMotionMediaQuery.removeEventListener('change', this.animationsEnabledChangedHandler);\n this.animationsEnabledChangedHandler = undefined;\n }\n }\n show() {\n // Not calling super.show() as that will immediately show the drawer, whereas 'Opening' state will animate\n this.state = DrawerState.Opening;\n }\n hide() {\n // Not calling super.hide() as that will immediately hide the drawer, whereas 'Closing' state will animate\n this.state = DrawerState.Closing;\n }\n dismiss() {\n if (!this.preventDismiss) {\n super.dismiss();\n this.hide();\n }\n }\n onPropertyChange(propertyName) {\n switch (propertyName) {\n case 'hidden':\n this.onHiddenChanged();\n break;\n case 'location':\n this.onLocationChanged();\n break;\n case 'state':\n this.onStateChanged();\n break;\n default:\n break;\n }\n }\n onHiddenChanged() {\n if (this.hidden && this.state !== DrawerState.Closed) {\n this.state = DrawerState.Closed;\n }\n else if (!this.hidden && this.state === DrawerState.Closed) {\n this.state = DrawerState.Opened;\n }\n }\n onLocationChanged() {\n this.cancelCurrentAnimation();\n }\n onStateChanged() {\n if (this.isConnected) {\n this.cancelCurrentAnimation();\n switch (this.state) {\n case DrawerState.Opening:\n this.animateOpening();\n this.hidden = false;\n break;\n case DrawerState.Opened:\n this.hidden = false;\n break;\n case DrawerState.Closing:\n this.hidden = false;\n this.animateClosing();\n break;\n case DrawerState.Closed:\n this.hidden = true;\n break;\n default:\n throw new Error('Unsupported state value. Expected: opening/opened/closing/closed');\n }\n this.$emit('state-change');\n }\n }\n updateAnimationDuration() {\n const disableAnimations = prefersReducedMotionMediaQuery.matches;\n this.animationDurationMilliseconds = disableAnimations\n ? animationDurationWhenDisabledMilliseconds\n : largeDelay.getValueFor(this);\n }\n animateOpening() {\n this.animateOpenClose(true);\n }\n animateClosing() {\n if (!this.hidden) {\n this.animateOpenClose(false);\n }\n else {\n this.state = DrawerState.Closed;\n }\n }\n animateOpenClose(drawerOpening) {\n const options = {\n ...(drawerOpening\n ? animationConfig.slideInOptions\n : animationConfig.slideOutOptions),\n duration: this.animationDurationMilliseconds\n };\n const drawerKeyframes = this.location === DrawerLocation.Right\n ? animationConfig.slideRightKeyframes\n : animationConfig.slideLeftKeyframes;\n const dialogAnimation = new AnimateTo(this.dialog, undefined, options);\n dialogAnimation.addKeyframes(drawerKeyframes);\n const animations = [dialogAnimation];\n const overlay = this.shadowRoot?.querySelector('.overlay');\n if (overlay) {\n const overlayAnimation = new AnimateTo(overlay, undefined, options);\n overlayAnimation.addKeyframes(animationConfig.fadeOverlayKeyframes);\n animations.push(overlayAnimation);\n }\n const animationGroup = new AnimateGroup(animations);\n animationGroup.onFinish = () => {\n this.state = drawerOpening\n ? DrawerState.Opened\n : DrawerState.Closed;\n };\n this.animationGroup = animationGroup;\n animationGroup.play();\n }\n cancelCurrentAnimation() {\n this.animationGroup?.cancel();\n }\n}\n__decorate([\n attr\n], Drawer.prototype, \"location\", void 0);\n__decorate([\n attr\n], Drawer.prototype, \"state\", void 0);\n__decorate([\n attr({ attribute: 'prevent-dismiss', mode: 'boolean' })\n], Drawer.prototype, \"preventDismiss\", void 0);\nconst nimbleDrawer = Drawer.compose({\n baseName: 'drawer',\n template,\n styles\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleDrawer());\n//# sourceMappingURL=index.js.map","import { html } from '@microsoft/fast-element';\nexport const template = html `\n <template>\n <div class=\"icon\" :innerHTML=${x => x.icon.data}></div>\n </template\n`;\n//# sourceMappingURL=template.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { iconSize, warningColor, failColor, passColor, iconColor } from '../theme-provider/design-tokens';\nexport const styles = css `\n ${display('inline-flex')}\n\n :host {\n align-items: center;\n user-select: none;\n width: ${iconSize};\n height: ${iconSize};\n }\n\n .icon {\n width: 100%;\n height: 100%;\n }\n\n :host(.fail) {\n ${iconColor.cssCustomProperty}: ${failColor};\n }\n\n :host(.warning) {\n ${iconColor.cssCustomProperty}: ${warningColor};\n }\n\n :host(.pass) {\n ${iconColor.cssCustomProperty}: ${passColor};\n }\n\n .icon svg {\n fill: ${iconColor};\n width: 100%;\n height: 100%;\n }\n`;\n//# sourceMappingURL=styles.js.map","import { DesignSystem, FoundationElement } from '@microsoft/fast-foundation';\nimport { template } from './template';\nimport { styles } from './styles';\n/**\n * The base class for icon components\n */\nexport class Icon extends FoundationElement {\n constructor(icon) {\n super();\n this.icon = icon;\n }\n}\nexport const registerIcon = (baseName, iconClass) => {\n const composedIcon = iconClass.compose({\n baseName,\n template,\n styles,\n baseClass: iconClass\n });\n DesignSystem.getOrCreate().withPrefix('nimble').register(composedIcon());\n};\n//# sourceMappingURL=index.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { add16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'add' icon\n */\nexport class AddIcon extends Icon {\n constructor() {\n super(add16X16);\n }\n}\nregisterIcon('add-icon', AddIcon);\n//# sourceMappingURL=add.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { arrowDownRightAndArrowUpLeft16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'arrowDownRightAndArrowUpLeft' icon\n */\nexport class ArrowDownRightAndArrowUpLeftIcon extends Icon {\n constructor() {\n super(arrowDownRightAndArrowUpLeft16X16);\n }\n}\nregisterIcon('arrow-down-right-and-arrow-up-left-icon', ArrowDownRightAndArrowUpLeftIcon);\n//# sourceMappingURL=arrow-down-right-and-arrow-up-left.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { arrowExpanderDown16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'arrowExpanderDown' icon\n */\nexport class ArrowExpanderDownIcon extends Icon {\n constructor() {\n super(arrowExpanderDown16X16);\n }\n}\nregisterIcon('arrow-expander-down-icon', ArrowExpanderDownIcon);\n//# sourceMappingURL=arrow-expander-down.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { arrowExpanderLeft16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'arrowExpanderLeft' icon\n */\nexport class ArrowExpanderLeftIcon extends Icon {\n constructor() {\n super(arrowExpanderLeft16X16);\n }\n}\nregisterIcon('arrow-expander-left-icon', ArrowExpanderLeftIcon);\n//# sourceMappingURL=arrow-expander-left.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { arrowExpanderRight16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'arrowExpanderRight' icon\n */\nexport class ArrowExpanderRightIcon extends Icon {\n constructor() {\n super(arrowExpanderRight16X16);\n }\n}\nregisterIcon('arrow-expander-right-icon', ArrowExpanderRightIcon);\n//# sourceMappingURL=arrow-expander-right.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { arrowExpanderUp16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'arrowExpanderUp' icon\n */\nexport class ArrowExpanderUpIcon extends Icon {\n constructor() {\n super(arrowExpanderUp16X16);\n }\n}\nregisterIcon('arrow-expander-up-icon', ArrowExpanderUpIcon);\n//# sourceMappingURL=arrow-expander-up.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { arrowLeftFromLine16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'arrowLeftFromLine' icon\n */\nexport class ArrowLeftFromLineIcon extends Icon {\n constructor() {\n super(arrowLeftFromLine16X16);\n }\n}\nregisterIcon('arrow-left-from-line-icon', ArrowLeftFromLineIcon);\n//# sourceMappingURL=arrow-left-from-line.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { arrowPartialRotateLeft16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'arrowPartialRotateLeft' icon\n */\nexport class ArrowPartialRotateLeftIcon extends Icon {\n constructor() {\n super(arrowPartialRotateLeft16X16);\n }\n}\nregisterIcon('arrow-partial-rotate-left-icon', ArrowPartialRotateLeftIcon);\n//# sourceMappingURL=arrow-partial-rotate-left.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { arrowRightToLine16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'arrowRightToLine' icon\n */\nexport class ArrowRightToLineIcon extends Icon {\n constructor() {\n super(arrowRightToLine16X16);\n }\n}\nregisterIcon('arrow-right-to-line-icon', ArrowRightToLineIcon);\n//# sourceMappingURL=arrow-right-to-line.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { arrowRotateRight16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'arrowRotateRight' icon\n */\nexport class ArrowRotateRightIcon extends Icon {\n constructor() {\n super(arrowRotateRight16X16);\n }\n}\nregisterIcon('arrow-rotate-right-icon', ArrowRotateRightIcon);\n//# sourceMappingURL=arrow-rotate-right.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { arrowURotateLeft16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'arrowURotateLeft' icon\n */\nexport class ArrowURotateLeftIcon extends Icon {\n constructor() {\n super(arrowURotateLeft16X16);\n }\n}\nregisterIcon('arrow-u-rotate-left-icon', ArrowURotateLeftIcon);\n//# sourceMappingURL=arrow-u-rotate-left.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { arrowUpLeftAndArrowDownRight16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'arrowUpLeftAndArrowDownRight' icon\n */\nexport class ArrowUpLeftAndArrowDownRightIcon extends Icon {\n constructor() {\n super(arrowUpLeftAndArrowDownRight16X16);\n }\n}\nregisterIcon('arrow-up-left-and-arrow-down-right-icon', ArrowUpLeftAndArrowDownRightIcon);\n//# sourceMappingURL=arrow-up-left-and-arrow-down-right.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { arrowsMaximize16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'arrowsMaximize' icon\n */\nexport class ArrowsMaximizeIcon extends Icon {\n constructor() {\n super(arrowsMaximize16X16);\n }\n}\nregisterIcon('arrows-maximize-icon', ArrowsMaximizeIcon);\n//# sourceMappingURL=arrows-maximize.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { arrowsRepeat16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'arrowsRepeat' icon\n */\nexport class ArrowsRepeatIcon extends Icon {\n constructor() {\n super(arrowsRepeat16X16);\n }\n}\nregisterIcon('arrows-repeat-icon', ArrowsRepeatIcon);\n//# sourceMappingURL=arrows-repeat.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { bars16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'bars' icon\n */\nexport class BarsIcon extends Icon {\n constructor() {\n super(bars16X16);\n }\n}\nregisterIcon('bars-icon', BarsIcon);\n//# sourceMappingURL=bars.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { bell16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'bell' icon\n */\nexport class BellIcon extends Icon {\n constructor() {\n super(bell16X16);\n }\n}\nregisterIcon('bell-icon', BellIcon);\n//# sourceMappingURL=bell.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { bellAndComment16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'bellAndComment' icon\n */\nexport class BellAndCommentIcon extends Icon {\n constructor() {\n super(bellAndComment16X16);\n }\n}\nregisterIcon('bell-and-comment-icon', BellAndCommentIcon);\n//# sourceMappingURL=bell-and-comment.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { bellCircle16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'bellCircle' icon\n */\nexport class BellCircleIcon extends Icon {\n constructor() {\n super(bellCircle16X16);\n }\n}\nregisterIcon('bell-circle-icon', BellCircleIcon);\n//# sourceMappingURL=bell-circle.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { bellSolidCircle16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'bellSolidCircle' icon\n */\nexport class BellSolidCircleIcon extends Icon {\n constructor() {\n super(bellSolidCircle16X16);\n }\n}\nregisterIcon('bell-solid-circle-icon', BellSolidCircleIcon);\n//# sourceMappingURL=bell-solid-circle.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { blockWithRibbon16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'blockWithRibbon' icon\n */\nexport class BlockWithRibbonIcon extends Icon {\n constructor() {\n super(blockWithRibbon16X16);\n }\n}\nregisterIcon('block-with-ribbon-icon', BlockWithRibbonIcon);\n//# sourceMappingURL=block-with-ribbon.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { calendar16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'calendar' icon\n */\nexport class CalendarIcon extends Icon {\n constructor() {\n super(calendar16X16);\n }\n}\nregisterIcon('calendar-icon', CalendarIcon);\n//# sourceMappingURL=calendar.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { chartDiagram16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'chartDiagram' icon\n */\nexport class ChartDiagramIcon extends Icon {\n constructor() {\n super(chartDiagram16X16);\n }\n}\nregisterIcon('chart-diagram-icon', ChartDiagramIcon);\n//# sourceMappingURL=chart-diagram.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { chartDiagramChildFocus16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'chartDiagramChildFocus' icon\n */\nexport class ChartDiagramChildFocusIcon extends Icon {\n constructor() {\n super(chartDiagramChildFocus16X16);\n }\n}\nregisterIcon('chart-diagram-child-focus-icon', ChartDiagramChildFocusIcon);\n//# sourceMappingURL=chart-diagram-child-focus.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { chartDiagramParentFocus16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'chartDiagramParentFocus' icon\n */\nexport class ChartDiagramParentFocusIcon extends Icon {\n constructor() {\n super(chartDiagramParentFocus16X16);\n }\n}\nregisterIcon('chart-diagram-parent-focus-icon', ChartDiagramParentFocusIcon);\n//# sourceMappingURL=chart-diagram-parent-focus.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { chartDiagramParentFocusTwoChild16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'chartDiagramParentFocusTwoChild' icon\n */\nexport class ChartDiagramParentFocusTwoChildIcon extends Icon {\n constructor() {\n super(chartDiagramParentFocusTwoChild16X16);\n }\n}\nregisterIcon('chart-diagram-parent-focus-two-child-icon', ChartDiagramParentFocusTwoChildIcon);\n//# sourceMappingURL=chart-diagram-parent-focus-two-child.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { check16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'check' icon\n */\nexport class CheckIcon extends Icon {\n constructor() {\n super(check16X16);\n }\n}\nregisterIcon('check-icon', CheckIcon);\n//# sourceMappingURL=check.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { checkDot16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'checkDot' icon\n */\nexport class CheckDotIcon extends Icon {\n constructor() {\n super(checkDot16X16);\n }\n}\nregisterIcon('check-dot-icon', CheckDotIcon);\n//# sourceMappingURL=check-dot.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { circle16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'circle' icon\n */\nexport class CircleIcon extends Icon {\n constructor() {\n super(circle16X16);\n }\n}\nregisterIcon('circle-icon', CircleIcon);\n//# sourceMappingURL=circle.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { circleBroken16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'circleBroken' icon\n */\nexport class CircleBrokenIcon extends Icon {\n constructor() {\n super(circleBroken16X16);\n }\n}\nregisterIcon('circle-broken-icon', CircleBrokenIcon);\n//# sourceMappingURL=circle-broken.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { circleCheck16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'circleCheck' icon\n */\nexport class CircleCheckIcon extends Icon {\n constructor() {\n super(circleCheck16X16);\n }\n}\nregisterIcon('circle-check-icon', CircleCheckIcon);\n//# sourceMappingURL=circle-check.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { circlePartialBroken16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'circlePartialBroken' icon\n */\nexport class CirclePartialBrokenIcon extends Icon {\n constructor() {\n super(circlePartialBroken16X16);\n }\n}\nregisterIcon('circle-partial-broken-icon', CirclePartialBrokenIcon);\n//# sourceMappingURL=circle-partial-broken.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { circleSlash16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'circleSlash' icon\n */\nexport class CircleSlashIcon extends Icon {\n constructor() {\n super(circleSlash16X16);\n }\n}\nregisterIcon('circle-slash-icon', CircleSlashIcon);\n//# sourceMappingURL=circle-slash.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { circleX16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'circleX' icon\n */\nexport class CircleXIcon extends Icon {\n constructor() {\n super(circleX16X16);\n }\n}\nregisterIcon('circle-x-icon', CircleXIcon);\n//# sourceMappingURL=circle-x.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { clipboard16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'clipboard' icon\n */\nexport class ClipboardIcon extends Icon {\n constructor() {\n super(clipboard16X16);\n }\n}\nregisterIcon('clipboard-icon', ClipboardIcon);\n//# sourceMappingURL=clipboard.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { clock16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'clock' icon\n */\nexport class ClockIcon extends Icon {\n constructor() {\n super(clock16X16);\n }\n}\nregisterIcon('clock-icon', ClockIcon);\n//# sourceMappingURL=clock.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { clockCog16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'clockCog' icon\n */\nexport class ClockCogIcon extends Icon {\n constructor() {\n super(clockCog16X16);\n }\n}\nregisterIcon('clock-cog-icon', ClockCogIcon);\n//# sourceMappingURL=clock-cog.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { clockTriangle16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'clockTriangle' icon\n */\nexport class ClockTriangleIcon extends Icon {\n constructor() {\n super(clockTriangle16X16);\n }\n}\nregisterIcon('clock-triangle-icon', ClockTriangleIcon);\n//# sourceMappingURL=clock-triangle.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { clone16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'clone' icon\n */\nexport class CloneIcon extends Icon {\n constructor() {\n super(clone16X16);\n }\n}\nregisterIcon('clone-icon', CloneIcon);\n//# sourceMappingURL=clone.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { cloudUpload16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'cloudUpload' icon\n */\nexport class CloudUploadIcon extends Icon {\n constructor() {\n super(cloudUpload16X16);\n }\n}\nregisterIcon('cloud-upload-icon', CloudUploadIcon);\n//# sourceMappingURL=cloud-upload.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { cloudWithArrow16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'cloudWithArrow' icon\n */\nexport class CloudWithArrowIcon extends Icon {\n constructor() {\n super(cloudWithArrow16X16);\n }\n}\nregisterIcon('cloud-with-arrow-icon', CloudWithArrowIcon);\n//# sourceMappingURL=cloud-with-arrow.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { cog16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'cog' icon\n */\nexport class CogIcon extends Icon {\n constructor() {\n super(cog16X16);\n }\n}\nregisterIcon('cog-icon', CogIcon);\n//# sourceMappingURL=cog.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { cogDatabase16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'cogDatabase' icon\n */\nexport class CogDatabaseIcon extends Icon {\n constructor() {\n super(cogDatabase16X16);\n }\n}\nregisterIcon('cog-database-icon', CogDatabaseIcon);\n//# sourceMappingURL=cog-database.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { cogDatabaseInset16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'cogDatabaseInset' icon\n */\nexport class CogDatabaseInsetIcon extends Icon {\n constructor() {\n super(cogDatabaseInset16X16);\n }\n}\nregisterIcon('cog-database-inset-icon', CogDatabaseInsetIcon);\n//# sourceMappingURL=cog-database-inset.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { cogSmallCog16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'cogSmallCog' icon\n */\nexport class CogSmallCogIcon extends Icon {\n constructor() {\n super(cogSmallCog16X16);\n }\n}\nregisterIcon('cog-small-cog-icon', CogSmallCogIcon);\n//# sourceMappingURL=cog-small-cog.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { cogZoomed16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'cogZoomed' icon\n */\nexport class CogZoomedIcon extends Icon {\n constructor() {\n super(cogZoomed16X16);\n }\n}\nregisterIcon('cog-zoomed-icon', CogZoomedIcon);\n//# sourceMappingURL=cog-zoomed.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { comment16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'comment' icon\n */\nexport class CommentIcon extends Icon {\n constructor() {\n super(comment16X16);\n }\n}\nregisterIcon('comment-icon', CommentIcon);\n//# sourceMappingURL=comment.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { computerAndMonitor16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'computerAndMonitor' icon\n */\nexport class ComputerAndMonitorIcon extends Icon {\n constructor() {\n super(computerAndMonitor16X16);\n }\n}\nregisterIcon('computer-and-monitor-icon', ComputerAndMonitorIcon);\n//# sourceMappingURL=computer-and-monitor.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { copy16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'copy' icon\n */\nexport class CopyIcon extends Icon {\n constructor() {\n super(copy16X16);\n }\n}\nregisterIcon('copy-icon', CopyIcon);\n//# sourceMappingURL=copy.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { copyText16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'copyText' icon\n */\nexport class CopyTextIcon extends Icon {\n constructor() {\n super(copyText16X16);\n }\n}\nregisterIcon('copy-text-icon', CopyTextIcon);\n//# sourceMappingURL=copy-text.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { dashboardBuilder16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'dashboardBuilder' icon\n */\nexport class DashboardBuilderIcon extends Icon {\n constructor() {\n super(dashboardBuilder16X16);\n }\n}\nregisterIcon('dashboard-builder-icon', DashboardBuilderIcon);\n//# sourceMappingURL=dashboard-builder.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { dashboardBuilderLegend16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'dashboardBuilderLegend' icon\n */\nexport class DashboardBuilderLegendIcon extends Icon {\n constructor() {\n super(dashboardBuilderLegend16X16);\n }\n}\nregisterIcon('dashboard-builder-legend-icon', DashboardBuilderLegendIcon);\n//# sourceMappingURL=dashboard-builder-legend.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { dashboardBuilderTemplates16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'dashboardBuilderTemplates' icon\n */\nexport class DashboardBuilderTemplatesIcon extends Icon {\n constructor() {\n super(dashboardBuilderTemplates16X16);\n }\n}\nregisterIcon('dashboard-builder-templates-icon', DashboardBuilderTemplatesIcon);\n//# sourceMappingURL=dashboard-builder-templates.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { dashboardBuilderTile16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'dashboardBuilderTile' icon\n */\nexport class DashboardBuilderTileIcon extends Icon {\n constructor() {\n super(dashboardBuilderTile16X16);\n }\n}\nregisterIcon('dashboard-builder-tile-icon', DashboardBuilderTileIcon);\n//# sourceMappingURL=dashboard-builder-tile.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { database16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'database' icon\n */\nexport class DatabaseIcon extends Icon {\n constructor() {\n super(database16X16);\n }\n}\nregisterIcon('database-icon', DatabaseIcon);\n//# sourceMappingURL=database.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { databaseCheck16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'databaseCheck' icon\n */\nexport class DatabaseCheckIcon extends Icon {\n constructor() {\n super(databaseCheck16X16);\n }\n}\nregisterIcon('database-check-icon', DatabaseCheckIcon);\n//# sourceMappingURL=database-check.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { desktop16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'desktop' icon\n */\nexport class DesktopIcon extends Icon {\n constructor() {\n super(desktop16X16);\n }\n}\nregisterIcon('desktop-icon', DesktopIcon);\n//# sourceMappingURL=desktop.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { donutChart16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'donutChart' icon\n */\nexport class DonutChartIcon extends Icon {\n constructor() {\n super(donutChart16X16);\n }\n}\nregisterIcon('donut-chart-icon', DonutChartIcon);\n//# sourceMappingURL=donut-chart.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { dotSolidDotStroke16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'dotSolidDotStroke' icon\n */\nexport class DotSolidDotStrokeIcon extends Icon {\n constructor() {\n super(dotSolidDotStroke16X16);\n }\n}\nregisterIcon('dot-solid-dot-stroke-icon', DotSolidDotStrokeIcon);\n//# sourceMappingURL=dot-solid-dot-stroke.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { download16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'download' icon\n */\nexport class DownloadIcon extends Icon {\n constructor() {\n super(download16X16);\n }\n}\nregisterIcon('download-icon', DownloadIcon);\n//# sourceMappingURL=download.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { electronicChipZoomed16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'electronicChipZoomed' icon\n */\nexport class ElectronicChipZoomedIcon extends Icon {\n constructor() {\n super(electronicChipZoomed16X16);\n }\n}\nregisterIcon('electronic-chip-zoomed-icon', ElectronicChipZoomedIcon);\n//# sourceMappingURL=electronic-chip-zoomed.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { exclamationMark16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'exclamationMark' icon\n */\nexport class ExclamationMarkIcon extends Icon {\n constructor() {\n super(exclamationMark16X16);\n }\n}\nregisterIcon('exclamation-mark-icon', ExclamationMarkIcon);\n//# sourceMappingURL=exclamation-mark.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { eye16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'eye' icon\n */\nexport class EyeIcon extends Icon {\n constructor() {\n super(eye16X16);\n }\n}\nregisterIcon('eye-icon', EyeIcon);\n//# sourceMappingURL=eye.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { fancyA16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'fancyA' icon\n */\nexport class FancyAIcon extends Icon {\n constructor() {\n super(fancyA16X16);\n }\n}\nregisterIcon('fancy-a-icon', FancyAIcon);\n//# sourceMappingURL=fancy-a.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { file16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'file' icon\n */\nexport class FileIcon extends Icon {\n constructor() {\n super(file16X16);\n }\n}\nregisterIcon('file-icon', FileIcon);\n//# sourceMappingURL=file.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { fileDrawer16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'fileDrawer' icon\n */\nexport class FileDrawerIcon extends Icon {\n constructor() {\n super(fileDrawer16X16);\n }\n}\nregisterIcon('file-drawer-icon', FileDrawerIcon);\n//# sourceMappingURL=file-drawer.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { fileSearch16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'fileSearch' icon\n */\nexport class FileSearchIcon extends Icon {\n constructor() {\n super(fileSearch16X16);\n }\n}\nregisterIcon('file-search-icon', FileSearchIcon);\n//# sourceMappingURL=file-search.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { filter16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'filter' icon\n */\nexport class FilterIcon extends Icon {\n constructor() {\n super(filter16X16);\n }\n}\nregisterIcon('filter-icon', FilterIcon);\n//# sourceMappingURL=filter.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { floppyDiskCheckmark16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'floppyDiskCheckmark' icon\n */\nexport class FloppyDiskCheckmarkIcon extends Icon {\n constructor() {\n super(floppyDiskCheckmark16X16);\n }\n}\nregisterIcon('floppy-disk-checkmark-icon', FloppyDiskCheckmarkIcon);\n//# sourceMappingURL=floppy-disk-checkmark.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { floppyDiskStarArrowRight16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'floppyDiskStarArrowRight' icon\n */\nexport class FloppyDiskStarArrowRightIcon extends Icon {\n constructor() {\n super(floppyDiskStarArrowRight16X16);\n }\n}\nregisterIcon('floppy-disk-star-arrow-right-icon', FloppyDiskStarArrowRightIcon);\n//# sourceMappingURL=floppy-disk-star-arrow-right.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { floppyDiskThreeDots16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'floppyDiskThreeDots' icon\n */\nexport class FloppyDiskThreeDotsIcon extends Icon {\n constructor() {\n super(floppyDiskThreeDots16X16);\n }\n}\nregisterIcon('floppy-disk-three-dots-icon', FloppyDiskThreeDotsIcon);\n//# sourceMappingURL=floppy-disk-three-dots.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { folder16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'folder' icon\n */\nexport class FolderIcon extends Icon {\n constructor() {\n super(folder16X16);\n }\n}\nregisterIcon('folder-icon', FolderIcon);\n//# sourceMappingURL=folder.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { folderOpen16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'folderOpen' icon\n */\nexport class FolderOpenIcon extends Icon {\n constructor() {\n super(folderOpen16X16);\n }\n}\nregisterIcon('folder-open-icon', FolderOpenIcon);\n//# sourceMappingURL=folder-open.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { forwardSlash16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'forwardSlash' icon\n */\nexport class ForwardSlashIcon extends Icon {\n constructor() {\n super(forwardSlash16X16);\n }\n}\nregisterIcon('forward-slash-icon', ForwardSlashIcon);\n//# sourceMappingURL=forward-slash.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { fourDotsSquare16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'fourDotsSquare' icon\n */\nexport class FourDotsSquareIcon extends Icon {\n constructor() {\n super(fourDotsSquare16X16);\n }\n}\nregisterIcon('four-dots-square-icon', FourDotsSquareIcon);\n//# sourceMappingURL=four-dots-square.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { function16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'function' icon\n */\nexport class FunctionIcon extends Icon {\n constructor() {\n super(function16X16);\n }\n}\nregisterIcon('function-icon', FunctionIcon);\n//# sourceMappingURL=function.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { gaugeSimple16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'gaugeSimple' icon\n */\nexport class GaugeSimpleIcon extends Icon {\n constructor() {\n super(gaugeSimple16X16);\n }\n}\nregisterIcon('gauge-simple-icon', GaugeSimpleIcon);\n//# sourceMappingURL=gauge-simple.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { gridThreeByThree16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'gridThreeByThree' icon\n */\nexport class GridThreeByThreeIcon extends Icon {\n constructor() {\n super(gridThreeByThree16X16);\n }\n}\nregisterIcon('grid-three-by-three-icon', GridThreeByThreeIcon);\n//# sourceMappingURL=grid-three-by-three.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { gridTwoByTwo16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'gridTwoByTwo' icon\n */\nexport class GridTwoByTwoIcon extends Icon {\n constructor() {\n super(gridTwoByTwo16X16);\n }\n}\nregisterIcon('grid-two-by-two-icon', GridTwoByTwoIcon);\n//# sourceMappingURL=grid-two-by-two.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { hammer16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'hammer' icon\n */\nexport class HammerIcon extends Icon {\n constructor() {\n super(hammer16X16);\n }\n}\nregisterIcon('hammer-icon', HammerIcon);\n//# sourceMappingURL=hammer.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { hashtag16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'hashtag' icon\n */\nexport class HashtagIcon extends Icon {\n constructor() {\n super(hashtag16X16);\n }\n}\nregisterIcon('hashtag-icon', HashtagIcon);\n//# sourceMappingURL=hashtag.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { home16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'home' icon\n */\nexport class HomeIcon extends Icon {\n constructor() {\n super(home16X16);\n }\n}\nregisterIcon('home-icon', HomeIcon);\n//# sourceMappingURL=home.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { hourglass16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'hourglass' icon\n */\nexport class HourglassIcon extends Icon {\n constructor() {\n super(hourglass16X16);\n }\n}\nregisterIcon('hourglass-icon', HourglassIcon);\n//# sourceMappingURL=hourglass.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { indeterminantCheckbox16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'indeterminantCheckbox' icon\n */\nexport class IndeterminantCheckboxIcon extends Icon {\n constructor() {\n super(indeterminantCheckbox16X16);\n }\n}\nregisterIcon('indeterminant-checkbox-icon', IndeterminantCheckboxIcon);\n//# sourceMappingURL=indeterminant-checkbox.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { info16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'info' icon\n */\nexport class InfoIcon extends Icon {\n constructor() {\n super(info16X16);\n }\n}\nregisterIcon('info-icon', InfoIcon);\n//# sourceMappingURL=info.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { infoCircle16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'infoCircle' icon\n */\nexport class InfoCircleIcon extends Icon {\n constructor() {\n super(infoCircle16X16);\n }\n}\nregisterIcon('info-circle-icon', InfoCircleIcon);\n//# sourceMappingURL=info-circle.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { key16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'key' icon\n */\nexport class KeyIcon extends Icon {\n constructor() {\n super(key16X16);\n }\n}\nregisterIcon('key-icon', KeyIcon);\n//# sourceMappingURL=key.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { laptop16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'laptop' icon\n */\nexport class LaptopIcon extends Icon {\n constructor() {\n super(laptop16X16);\n }\n}\nregisterIcon('laptop-icon', LaptopIcon);\n//# sourceMappingURL=laptop.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { layerGroup16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'layerGroup' icon\n */\nexport class LayerGroupIcon extends Icon {\n constructor() {\n super(layerGroup16X16);\n }\n}\nregisterIcon('layer-group-icon', LayerGroupIcon);\n//# sourceMappingURL=layer-group.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { lightningBolt16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'lightningBolt' icon\n */\nexport class LightningBoltIcon extends Icon {\n constructor() {\n super(lightningBolt16X16);\n }\n}\nregisterIcon('lightning-bolt-icon', LightningBoltIcon);\n//# sourceMappingURL=lightning-bolt.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { link16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'link' icon\n */\nexport class LinkIcon extends Icon {\n constructor() {\n super(link16X16);\n }\n}\nregisterIcon('link-icon', LinkIcon);\n//# sourceMappingURL=link.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { linkCancel16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'linkCancel' icon\n */\nexport class LinkCancelIcon extends Icon {\n constructor() {\n super(linkCancel16X16);\n }\n}\nregisterIcon('link-cancel-icon', LinkCancelIcon);\n//# sourceMappingURL=link-cancel.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { list16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'list' icon\n */\nexport class ListIcon extends Icon {\n constructor() {\n super(list16X16);\n }\n}\nregisterIcon('list-icon', ListIcon);\n//# sourceMappingURL=list.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { listTree16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'listTree' icon\n */\nexport class ListTreeIcon extends Icon {\n constructor() {\n super(listTree16X16);\n }\n}\nregisterIcon('list-tree-icon', ListTreeIcon);\n//# sourceMappingURL=list-tree.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { listTreeDatabase16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'listTreeDatabase' icon\n */\nexport class ListTreeDatabaseIcon extends Icon {\n constructor() {\n super(listTreeDatabase16X16);\n }\n}\nregisterIcon('list-tree-database-icon', ListTreeDatabaseIcon);\n//# sourceMappingURL=list-tree-database.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { lock16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'lock' icon\n */\nexport class LockIcon extends Icon {\n constructor() {\n super(lock16X16);\n }\n}\nregisterIcon('lock-icon', LockIcon);\n//# sourceMappingURL=lock.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { magnifyingGlass16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'magnifyingGlass' icon\n */\nexport class MagnifyingGlassIcon extends Icon {\n constructor() {\n super(magnifyingGlass16X16);\n }\n}\nregisterIcon('magnifying-glass-icon', MagnifyingGlassIcon);\n//# sourceMappingURL=magnifying-glass.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { markdown16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'markdown' icon\n */\nexport class MarkdownIcon extends Icon {\n constructor() {\n super(markdown16X16);\n }\n}\nregisterIcon('markdown-icon', MarkdownIcon);\n//# sourceMappingURL=markdown.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { minus16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'minus' icon\n */\nexport class MinusIcon extends Icon {\n constructor() {\n super(minus16X16);\n }\n}\nregisterIcon('minus-icon', MinusIcon);\n//# sourceMappingURL=minus.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { minusWide16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'minusWide' icon\n */\nexport class MinusWideIcon extends Icon {\n constructor() {\n super(minusWide16X16);\n }\n}\nregisterIcon('minus-wide-icon', MinusWideIcon);\n//# sourceMappingURL=minus-wide.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { mobile16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'mobile' icon\n */\nexport class MobileIcon extends Icon {\n constructor() {\n super(mobile16X16);\n }\n}\nregisterIcon('mobile-icon', MobileIcon);\n//# sourceMappingURL=mobile.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { notebook16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'notebook' icon\n */\nexport class NotebookIcon extends Icon {\n constructor() {\n super(notebook16X16);\n }\n}\nregisterIcon('notebook-icon', NotebookIcon);\n//# sourceMappingURL=notebook.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { paste16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'paste' icon\n */\nexport class PasteIcon extends Icon {\n constructor() {\n super(paste16X16);\n }\n}\nregisterIcon('paste-icon', PasteIcon);\n//# sourceMappingURL=paste.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { pencil16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'pencil' icon\n */\nexport class PencilIcon extends Icon {\n constructor() {\n super(pencil16X16);\n }\n}\nregisterIcon('pencil-icon', PencilIcon);\n//# sourceMappingURL=pencil.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { potWithLid16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'potWithLid' icon\n */\nexport class PotWithLidIcon extends Icon {\n constructor() {\n super(potWithLid16X16);\n }\n}\nregisterIcon('pot-with-lid-icon', PotWithLidIcon);\n//# sourceMappingURL=pot-with-lid.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { question16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'question' icon\n */\nexport class QuestionIcon extends Icon {\n constructor() {\n super(question16X16);\n }\n}\nregisterIcon('question-icon', QuestionIcon);\n//# sourceMappingURL=question.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { runningArrow16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'runningArrow' icon\n */\nexport class RunningArrowIcon extends Icon {\n constructor() {\n super(runningArrow16X16);\n }\n}\nregisterIcon('running-arrow-icon', RunningArrowIcon);\n//# sourceMappingURL=running-arrow.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { server16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'server' icon\n */\nexport class ServerIcon extends Icon {\n constructor() {\n super(server16X16);\n }\n}\nregisterIcon('server-icon', ServerIcon);\n//# sourceMappingURL=server.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { shareSquare16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'shareSquare' icon\n */\nexport class ShareSquareIcon extends Icon {\n constructor() {\n super(shareSquare16X16);\n }\n}\nregisterIcon('share-square-icon', ShareSquareIcon);\n//# sourceMappingURL=share-square.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { shieldCheck16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'shieldCheck' icon\n */\nexport class ShieldCheckIcon extends Icon {\n constructor() {\n super(shieldCheck16X16);\n }\n}\nregisterIcon('shield-check-icon', ShieldCheckIcon);\n//# sourceMappingURL=shield-check.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { shieldXmark16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'shieldXmark' icon\n */\nexport class ShieldXmarkIcon extends Icon {\n constructor() {\n super(shieldXmark16X16);\n }\n}\nregisterIcon('shield-xmark-icon', ShieldXmarkIcon);\n//# sourceMappingURL=shield-xmark.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { signalBars16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'signalBars' icon\n */\nexport class SignalBarsIcon extends Icon {\n constructor() {\n super(signalBars16X16);\n }\n}\nregisterIcon('signal-bars-icon', SignalBarsIcon);\n//# sourceMappingURL=signal-bars.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { sineGraph16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'sineGraph' icon\n */\nexport class SineGraphIcon extends Icon {\n constructor() {\n super(sineGraph16X16);\n }\n}\nregisterIcon('sine-graph-icon', SineGraphIcon);\n//# sourceMappingURL=sine-graph.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { skipArrow16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'skipArrow' icon\n */\nexport class SkipArrowIcon extends Icon {\n constructor() {\n super(skipArrow16X16);\n }\n}\nregisterIcon('skip-arrow-icon', SkipArrowIcon);\n//# sourceMappingURL=skip-arrow.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { spinner } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'spinner' icon\n */\nexport class SpinnerIcon extends Icon {\n constructor() {\n super(spinner);\n }\n}\nregisterIcon('spinner-icon', SpinnerIcon);\n//# sourceMappingURL=spinner.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { squareCheck16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'squareCheck' icon\n */\nexport class SquareCheckIcon extends Icon {\n constructor() {\n super(squareCheck16X16);\n }\n}\nregisterIcon('square-check-icon', SquareCheckIcon);\n//# sourceMappingURL=square-check.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { squareT16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'squareT' icon\n */\nexport class SquareTIcon extends Icon {\n constructor() {\n super(squareT16X16);\n }\n}\nregisterIcon('square-t-icon', SquareTIcon);\n//# sourceMappingURL=square-t.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { t16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 't' icon\n */\nexport class TIcon extends Icon {\n constructor() {\n super(t16X16);\n }\n}\nregisterIcon('t-icon', TIcon);\n//# sourceMappingURL=t.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { tablet16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'tablet' icon\n */\nexport class TabletIcon extends Icon {\n constructor() {\n super(tablet16X16);\n }\n}\nregisterIcon('tablet-icon', TabletIcon);\n//# sourceMappingURL=tablet.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { tag16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'tag' icon\n */\nexport class TagIcon extends Icon {\n constructor() {\n super(tag16X16);\n }\n}\nregisterIcon('tag-icon', TagIcon);\n//# sourceMappingURL=tag.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { tags16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'tags' icon\n */\nexport class TagsIcon extends Icon {\n constructor() {\n super(tags16X16);\n }\n}\nregisterIcon('tags-icon', TagsIcon);\n//# sourceMappingURL=tags.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { targetCrosshairs16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'targetCrosshairs' icon\n */\nexport class TargetCrosshairsIcon extends Icon {\n constructor() {\n super(targetCrosshairs16X16);\n }\n}\nregisterIcon('target-crosshairs-icon', TargetCrosshairsIcon);\n//# sourceMappingURL=target-crosshairs.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { targetCrosshairsProgress16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'targetCrosshairsProgress' icon\n */\nexport class TargetCrosshairsProgressIcon extends Icon {\n constructor() {\n super(targetCrosshairsProgress16X16);\n }\n}\nregisterIcon('target-crosshairs-progress-icon', TargetCrosshairsProgressIcon);\n//# sourceMappingURL=target-crosshairs-progress.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { threeDotsLine16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'threeDotsLine' icon\n */\nexport class ThreeDotsLineIcon extends Icon {\n constructor() {\n super(threeDotsLine16X16);\n }\n}\nregisterIcon('three-dots-line-icon', ThreeDotsLineIcon);\n//# sourceMappingURL=three-dots-line.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { thumbtack16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'thumbtack' icon\n */\nexport class ThumbtackIcon extends Icon {\n constructor() {\n super(thumbtack16X16);\n }\n}\nregisterIcon('thumbtack-icon', ThumbtackIcon);\n//# sourceMappingURL=thumbtack.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { tileSize16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'tileSize' icon\n */\nexport class TileSizeIcon extends Icon {\n constructor() {\n super(tileSize16X16);\n }\n}\nregisterIcon('tile-size-icon', TileSizeIcon);\n//# sourceMappingURL=tile-size.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { times16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'times' icon\n */\nexport class TimesIcon extends Icon {\n constructor() {\n super(times16X16);\n }\n}\nregisterIcon('times-icon', TimesIcon);\n//# sourceMappingURL=times.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { trash16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'trash' icon\n */\nexport class TrashIcon extends Icon {\n constructor() {\n super(trash16X16);\n }\n}\nregisterIcon('trash-icon', TrashIcon);\n//# sourceMappingURL=trash.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { triangle16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'triangle' icon\n */\nexport class TriangleIcon extends Icon {\n constructor() {\n super(triangle16X16);\n }\n}\nregisterIcon('triangle-icon', TriangleIcon);\n//# sourceMappingURL=triangle.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { trueFalseRectangle16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'trueFalseRectangle' icon\n */\nexport class TrueFalseRectangleIcon extends Icon {\n constructor() {\n super(trueFalseRectangle16X16);\n }\n}\nregisterIcon('true-false-rectangle-icon', TrueFalseRectangleIcon);\n//# sourceMappingURL=true-false-rectangle.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { unlink16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'unlink' icon\n */\nexport class UnlinkIcon extends Icon {\n constructor() {\n super(unlink16X16);\n }\n}\nregisterIcon('unlink-icon', UnlinkIcon);\n//# sourceMappingURL=unlink.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { unlock16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'unlock' icon\n */\nexport class UnlockIcon extends Icon {\n constructor() {\n super(unlock16X16);\n }\n}\nregisterIcon('unlock-icon', UnlockIcon);\n//# sourceMappingURL=unlock.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { upload16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'upload' icon\n */\nexport class UploadIcon extends Icon {\n constructor() {\n super(upload16X16);\n }\n}\nregisterIcon('upload-icon', UploadIcon);\n//# sourceMappingURL=upload.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { user16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'user' icon\n */\nexport class UserIcon extends Icon {\n constructor() {\n super(user16X16);\n }\n}\nregisterIcon('user-icon', UserIcon);\n//# sourceMappingURL=user.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { watch16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'watch' icon\n */\nexport class WatchIcon extends Icon {\n constructor() {\n super(watch16X16);\n }\n}\nregisterIcon('watch-icon', WatchIcon);\n//# sourceMappingURL=watch.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { waveform16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'waveform' icon\n */\nexport class WaveformIcon extends Icon {\n constructor() {\n super(waveform16X16);\n }\n}\nregisterIcon('waveform-icon', WaveformIcon);\n//# sourceMappingURL=waveform.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { webviCustom16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'webviCustom' icon\n */\nexport class WebviCustomIcon extends Icon {\n constructor() {\n super(webviCustom16X16);\n }\n}\nregisterIcon('webvi-custom-icon', WebviCustomIcon);\n//# sourceMappingURL=webvi-custom.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { webviHost16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'webviHost' icon\n */\nexport class WebviHostIcon extends Icon {\n constructor() {\n super(webviHost16X16);\n }\n}\nregisterIcon('webvi-host-icon', WebviHostIcon);\n//# sourceMappingURL=webvi-host.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { windowCode16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'windowCode' icon\n */\nexport class WindowCodeIcon extends Icon {\n constructor() {\n super(windowCode16X16);\n }\n}\nregisterIcon('window-code-icon', WindowCodeIcon);\n//# sourceMappingURL=window-code.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { windowText16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'windowText' icon\n */\nexport class WindowTextIcon extends Icon {\n constructor() {\n super(windowText16X16);\n }\n}\nregisterIcon('window-text-icon', WindowTextIcon);\n//# sourceMappingURL=window-text.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { wrenchHammer16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'wrenchHammer' icon\n */\nexport class WrenchHammerIcon extends Icon {\n constructor() {\n super(wrenchHammer16X16);\n }\n}\nregisterIcon('wrench-hammer-icon', WrenchHammerIcon);\n//# sourceMappingURL=wrench-hammer.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { xmark16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'xmark' icon\n */\nexport class XmarkIcon extends Icon {\n constructor() {\n super(xmark16X16);\n }\n}\nregisterIcon('xmark-icon', XmarkIcon);\n//# sourceMappingURL=xmark.js.map","// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY\n// See generation source in nimble-components/build/generate-icons\nimport { xmarkCheck16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { Icon, registerIcon } from '../icon-base';\n/**\n * The icon component for the 'xmarkCheck' icon\n */\nexport class XmarkCheckIcon extends Icon {\n constructor() {\n super(xmarkCheck16X16);\n }\n}\nregisterIcon('xmark-check-icon', XmarkCheckIcon);\n//# sourceMappingURL=xmark-check.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { focusVisible } from '../utilities/style/focus';\nimport { borderHoverColor, fillSelectedColor, fillHoverSelectedColor, fillHoverColor, bodyFont, bodyDisabledFontColor } from '../theme-provider/design-tokens';\nexport const styles = css `\n ${display('flex')}\n\n :host {\n font: ${bodyFont};\n cursor: pointer;\n justify-content: left;\n }\n\n .content {\n padding: 8px 4px;\n }\n\n :host(.selected) {\n box-shadow: none;\n outline: none;\n background-color: ${fillSelectedColor};\n }\n\n :host(:hover.selected) {\n background-color: ${fillHoverSelectedColor};\n }\n\n :host(:hover) {\n background-color: ${fillHoverColor};\n }\n\n :host(:hover):host([disabled]) {\n box-shadow: none;\n background-color: transparent;\n }\n\n :host(:${focusVisible}) {\n box-shadow: 0px 0px 0px 1px ${borderHoverColor} inset;\n outline: 1px solid ${borderHoverColor};\n outline-offset: -4px;\n }\n\n :host(:active) {\n box-shadow: none;\n outline: none;\n background-color: ${fillSelectedColor};\n }\n\n :host([disabled]) {\n color: ${bodyDisabledFontColor};\n cursor: default;\n }\n\n .content[disabled] {\n box-shadow: none;\n outline: none;\n }\n`;\n//# sourceMappingURL=styles.js.map","import { DesignSystem, ListboxOption as FoundationListboxOption, listboxOptionTemplate as template } from '@microsoft/fast-foundation';\nimport { styles } from './styles';\n/**\n * A nimble-styled HTML listbox option\n */\nexport class ListboxOption extends FoundationListboxOption {\n // Workaround for https://github.com/microsoft/fast/issues/5219\n get value() {\n return super.value;\n }\n set value(value) {\n // Coerce value to string\n super.value = `${value}`;\n if (this.$fastController.isConnected) {\n this.setAttribute('value', this.value);\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute('value', this.value);\n }\n}\nconst nimbleListboxOption = ListboxOption.compose({\n baseName: 'listbox-option',\n baseClass: FoundationListboxOption,\n template,\n styles\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleListboxOption());\n//# sourceMappingURL=index.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { applicationBackgroundColor, borderWidth, borderColor, popupBorderColor, popupBoxShadowColor, groupHeaderFont, groupHeaderTextTransform, groupHeaderFontColor } from '../theme-provider/design-tokens';\nexport const styles = css `\n ${display('grid')}\n\n :host {\n background: ${applicationBackgroundColor};\n border: ${borderWidth} solid ${popupBorderColor};\n margin: 0;\n padding: 4px;\n min-width: 168px;\n width: max-content;\n box-shadow: 0px 2px 3px ${popupBoxShadowColor};\n }\n ::slotted(*) {\n padding-left: 8px;\n padding-right: 8px;\n }\n ::slotted(hr) {\n box-sizing: content-box;\n height: 2px;\n margin: 4px;\n border: none;\n background: ${borderColor};\n opacity: 0.1;\n }\n ::slotted(header) {\n display: flex;\n font: ${groupHeaderFont};\n color: ${groupHeaderFontColor};\n text-transform: ${groupHeaderTextTransform};\n padding-top: 4px;\n padding-bottom: 4px;\n }\n`;\n//# sourceMappingURL=styles.js.map","import { DesignSystem, Menu as FoundationMenu, menuTemplate as template } from '@microsoft/fast-foundation';\nimport { styles } from './styles';\n/**\n * A nimble-styled menu\n */\nexport class Menu extends FoundationMenu {\n}\n/**\n * A function that returns a nimble-menu registration for configuring the component with a DesignSystem.\n * Implements {@link @microsoft/fast-foundation#menuTemplate}\n *\n * @public\n * @remarks\n * Generates HTML Element: \\<nimble-menu\\>\n *\n */\nconst nimbleMenu = Menu.compose({\n baseName: 'menu',\n baseClass: FoundationMenu,\n template,\n styles\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleMenu());\n//# sourceMappingURL=index.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { focusVisible } from '../utilities/style/focus';\nimport { controlHeight, fillSelectedColor, fillHoverColor, bodyFontColor, borderHoverColor, iconSize, bodyFont, bodyDisabledFontColor } from '../theme-provider/design-tokens';\nexport const styles = css `\n ${display('grid')}\n\n :host {\n contain: layout;\n overflow: visible;\n box-sizing: border-box;\n height: ${controlHeight};\n grid-template-columns: 0px 1fr;\n grid-template-rows: 1fr;\n justify-items: start;\n align-items: center;\n padding-left: 8px;\n padding-right: 8px;\n margin: 0 0;\n white-space: nowrap;\n color: ${bodyFontColor};\n fill: currentcolor;\n cursor: pointer;\n font: ${bodyFont};\n }\n :host(${focusVisible}) {\n outline: 2px solid ${borderHoverColor};\n outline-offset: -2px;\n }\n :host(:hover) {\n background: ${fillHoverColor};\n }\n :host(:active) {\n background: ${fillSelectedColor};\n }\n :host([disabled]) {\n color: ${bodyDisabledFontColor};\n fill: currentcolor;\n cursor: default;\n }\n :host([disabled]:hover) {\n background: transparent;\n }\n :host(.indent-1) {\n grid-template-columns: ${iconSize} 1fr;\n column-gap: 8px;\n }\n [part='start'] {\n display: contents;\n }\n slot[name='start']::slotted(*) {\n fill: currentcolor;\n width: ${iconSize};\n height: ${iconSize};\n }\n :host(.indent-1) .start {\n grid-column: 1;\n }\n :host(.indent-1) .content {\n grid-column: 2;\n }\n`;\n//# sourceMappingURL=styles.js.map","import { DesignSystem, MenuItem as FoundationMenuItem, menuItemTemplate as template } from '@microsoft/fast-foundation';\nimport { styles } from './styles';\n/**\n * A nimble-styled menu-item\n */\nexport class MenuItem extends FoundationMenuItem {\n}\n/**\n * A function that returns a nimble-menu-item registration for configuring the component with a DesignSystem.\n * Implements {@link @microsoft/fast-foundation#menuItemTemplate}\n *\n * @public\n * @remarks\n * Generates HTML Element: \\<nimble-menu-item\\>\n *\n */\nconst nimbleMenuItem = MenuItem.compose({\n baseName: 'menu-item',\n baseClass: FoundationMenuItem,\n template,\n styles\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleMenuItem());\n//# sourceMappingURL=index.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { borderColor, borderRgbPartialColor, borderHoverColor, borderWidth, bodyFontColor, bodyDisabledFontColor, controlHeight, fillSelectedRgbPartialColor, iconSize, controlLabelFont, controlLabelFontColor, labelHeight, smallDelay, bodyFont } from '../theme-provider/design-tokens';\nexport const styles = css `\n ${display('inline-block')}\n\n :host {\n font: ${bodyFont};\n outline: none;\n user-select: none;\n color: ${bodyFontColor};\n height: calc(${labelHeight} + ${controlHeight});\n }\n\n :host([disabled]) {\n color: ${bodyDisabledFontColor};\n cursor: default;\n }\n\n .root {\n box-sizing: border-box;\n position: relative;\n display: flex;\n flex-direction: row;\n border-radius: 0px;\n border-bottom: ${borderWidth} solid rgba(${borderRgbPartialColor}, 0.3);\n padding-bottom: 1px;\n transition: border-bottom ${smallDelay}, padding-bottom ${smallDelay};\n }\n\n @media (prefers-reduced-motion) {\n .root {\n transition-duration: 0s;\n }\n }\n\n .root:hover {\n border-bottom: 2px solid ${borderHoverColor};\n padding-bottom: 0px;\n }\n\n :host([disabled]) .root,\n :host([disabled]) .root:hover {\n border-bottom: ${borderWidth} solid ${bodyDisabledFontColor};\n padding-bottom: 1px;\n }\n\n .control {\n -webkit-appearance: none;\n font: inherit;\n background: transparent;\n color: inherit;\n height: 28px;\n width: 100%;\n margin-top: auto;\n margin-bottom: auto;\n border: none;\n }\n\n .control:hover,\n .control:focus,\n .control:disabled,\n .control:active {\n outline: none;\n }\n\n .control::selection {\n color: ${controlLabelFontColor};\n background: rgba(${fillSelectedRgbPartialColor}, 0.3);\n }\n\n .control::placeholder {\n color: ${controlLabelFontColor};\n }\n\n .control:focus-within::placeholder {\n opacity: 1;\n }\n\n .control[disabled]::placeholder {\n color: ${bodyDisabledFontColor};\n }\n\n .label {\n display: flex;\n color: ${controlLabelFontColor};\n font: ${controlLabelFont};\n }\n\n .controls {\n display: flex;\n flex-direction: column;\n }\n\n .step-up,\n .step-down {\n display: inline-flex;\n height: 15px;\n width: 15px;\n cursor: pointer;\n justify-content: center;\n align-items: center;\n }\n\n .step-up svg,\n .step-down svg {\n height: ${iconSize};\n width: ${iconSize};\n fill: ${borderColor};\n }\n`;\n//# sourceMappingURL=styles.js.map","import { DesignSystem, NumberField as FoundationNumberField, numberFieldTemplate as template } from '@microsoft/fast-foundation';\nimport { arrowExpanderDown16X16, arrowExpanderUp16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { styles } from './styles';\n/**\n * A nimble-styled HTML number input\n */\nexport class NumberField extends FoundationNumberField {\n}\n/**\n * A function that returns a number-field registration for configuring the component with a DesignSystem.\n *\n * @public\n * @remarks\n * Generates HTML Element: \\<nimble-number-field\\>\n *\n */\nconst nimbleNumberField = NumberField.compose({\n baseName: 'number-field',\n baseClass: FoundationNumberField,\n template,\n styles,\n shadowOptions: {\n delegatesFocus: true\n },\n stepDownGlyph: arrowExpanderDown16X16.data,\n stepUpGlyph: arrowExpanderUp16X16.data\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleNumberField());\n//# sourceMappingURL=index.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { applicationBackgroundColor, bodyFont, bodyFontColor, bodyDisabledFontColor, borderHoverColor, borderWidth, controlHeight, iconSize, popupBorderColor, popupBoxShadowColor, smallDelay, smallPadding } from '../theme-provider/design-tokens';\nexport const styles = css `\n ${display('inline-flex')}\n\n :host {\n box-sizing: border-box;\n color: ${bodyFontColor};\n font: ${bodyFont};\n height: ${controlHeight};\n position: relative;\n user-select: none;\n min-width: 250px;\n outline: none;\n vertical-align: top;\n }\n\n .listbox {\n box-sizing: border-box;\n display: inline-flex;\n flex-direction: column;\n left: 0;\n overflow-y: auto;\n position: absolute;\n width: 100%;\n ${\n/*\n * The --max-height custom property is defined by fast-foundation.\n * See: https://github.com/microsoft/fast/blob/af1f8736ae9ff54a7449324bad952865981d1ece/packages/web-components/fast-foundation/src/select/select.ts#L199\n */ ''}\n max-height: calc(var(--max-height) - ${controlHeight});\n z-index: 1;\n padding: 4px;\n box-shadow: 0px 3px 3px ${popupBoxShadowColor};\n border: 1px solid ${popupBorderColor};\n background-color: ${applicationBackgroundColor};\n background-clip: padding-box;\n }\n\n .listbox[hidden] {\n display: none;\n }\n\n .control {\n align-items: center;\n box-sizing: border-box;\n cursor: pointer;\n display: flex;\n min-height: 100%;\n width: 100%;\n border-bottom: ${borderWidth} solid ${bodyDisabledFontColor};\n background-color: transparent;\n padding-left: 8px;\n padding-bottom: 1px;\n }\n\n :host([disabled]) .control {\n cursor: default;\n }\n\n :host(.open:not(:hover)) .control {\n border-bottom: ${borderWidth} solid ${borderHoverColor};\n transition: border-bottom ${smallDelay}, padding-bottom ${smallDelay};\n }\n\n :host(:hover) .control {\n border-bottom: 2px solid ${borderHoverColor};\n padding-bottom: 0px;\n transition: border-bottom ${smallDelay}, padding-bottom ${smallDelay};\n }\n\n :host([disabled]) .control,\n :host([disabled]) .control:hover {\n border-bottom: ${borderWidth} solid ${bodyDisabledFontColor};\n padding-bottom: 1px;\n color: ${bodyDisabledFontColor};\n }\n\n :host([open][position='above']) .listbox {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n :host([open][position='below']) .listbox {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n\n :host([open][position='above']) .listbox {\n bottom: ${controlHeight};\n }\n\n :host([open][position='below']) .listbox {\n top: calc(${controlHeight} + ${smallPadding});\n }\n\n .selected-value {\n flex: 1 1 auto;\n font-family: inherit;\n text-align: start;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .indicator {\n flex: 0 0 auto;\n margin-inline-start: 1em;\n padding-right: 8px;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .indicator slot[name='indicator'] svg {\n width: ${iconSize};\n height: ${iconSize};\n fill: ${bodyFontColor};\n }\n\n :host([disabled]) .indicator slot[name='indicator'] svg {\n fill: ${bodyDisabledFontColor};\n }\n\n slot[name='listbox'] {\n display: none;\n width: 100%;\n }\n\n :host([open]) slot[name='listbox'] {\n display: flex;\n position: absolute;\n }\n\n .end {\n margin-inline-start: auto;\n }\n\n ::slotted([role='option']),\n ::slotted(option) {\n flex: 0 0 auto;\n }\n`;\n//# sourceMappingURL=styles.js.map","import { DesignSystem, Select as FoundationSelect, selectTemplate as template } from '@microsoft/fast-foundation';\nimport { arrowExpanderDown16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { styles } from './styles';\n/**\n * A nimble-styed HTML select\n */\nexport class Select extends FoundationSelect {\n get value() {\n return super.value;\n }\n set value(value) {\n super.value = value;\n // Workaround for https://github.com/microsoft/fast/issues/5139\n // When the value property is set very early in the element's lifecycle (e.g. Angular value binding),\n // the options property will not be set yet. As a workaround, we mark the listbox-option element with\n // the selected attribute, which will set the initial value correctly.\n if (value !== null && this.options.length === 0) {\n const options = this.querySelectorAll('option,[role=\"option\"]');\n options.forEach(option => {\n if (option.getAttribute('value') === value) {\n option.setAttribute('selected', '');\n }\n });\n }\n }\n // Workaround for https://github.com/microsoft/fast/issues/5123\n setPositioning() {\n if (!this.$fastController.isConnected) {\n // Don't call setPositioning() until we're connected,\n // since this.forcedPosition isn't initialized yet.\n return;\n }\n super.setPositioning();\n }\n connectedCallback() {\n super.connectedCallback();\n // Call setPositioning() after this.forcedPosition is initialized.\n this.setPositioning();\n }\n}\nconst nimbleSelect = Select.compose({\n baseName: 'select',\n baseClass: FoundationSelect,\n template,\n styles,\n indicator: arrowExpanderDown16X16.data\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSelect());\n//# sourceMappingURL=index.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { Black15, Black7, Black91, White } from '@ni/nimble-tokens/dist/styledictionary/js/tokens';\nimport { borderHoverColor, borderWidth, buttonLabelDisabledFontColor, buttonLabelFont, buttonLabelFontColor, controlHeight, controlLabelDisabledFontColor, controlLabelFont, controlLabelFontColor, fillHoverColor, smallDelay } from '../theme-provider/design-tokens';\nimport { hexToRgbaCssColor } from '../utilities/style/colors';\nimport { focusVisible } from '../utilities/style/focus';\nimport { themeBehavior } from '../utilities/style/theme';\nexport const styles = css `\n ${display('inline-flex')}\n\n :host {\n outline: none;\n font: ${buttonLabelFont};\n color: ${buttonLabelFontColor};\n flex-direction: column;\n cursor: pointer;\n --ni-private-switch-height: 24px;\n --ni-private-switch-indicator-size: 16px;\n padding-bottom: calc(\n ${controlHeight} - var(--ni-private-switch-height)\n );\n }\n\n :host([disabled]) {\n cursor: default;\n color: ${buttonLabelDisabledFontColor};\n }\n\n .label {\n color: ${controlLabelFontColor};\n font: ${controlLabelFont};\n }\n\n :host([disabled]) .label {\n color: ${controlLabelDisabledFontColor};\n }\n\n .label__hidden {\n display: none;\n visibility: hidden;\n }\n\n .switch-container {\n display: flex;\n align-items: center;\n }\n\n slot[name='unchecked-message']::slotted(*) {\n margin-inline-end: 8px;\n }\n\n .switch {\n display: flex;\n height: var(--ni-private-switch-height);\n width: calc(var(--ni-private-switch-height) * 2);\n box-sizing: border-box;\n background-color: ${fillHoverColor};\n border-radius: calc(var(--ni-private-switch-height) / 2);\n align-items: center;\n border: calc(${borderWidth} * 2) solid transparent;\n }\n\n :host([disabled]) .switch {\n background-color: var(--ni-private-switch-background-disabled-color);\n }\n\n :host(${focusVisible}) .switch {\n border-color: ${borderHoverColor};\n }\n\n .checked-indicator-spacer {\n flex-grow: 0;\n transition: flex-grow ${smallDelay} ease-in-out;\n }\n\n :host([aria-checked='true']) .checked-indicator-spacer {\n flex-grow: 1;\n transition: flex-grow ${smallDelay} ease-in-out;\n }\n\n .checked-indicator {\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: var(--ni-private-switch-indicator-background-color);\n box-sizing: border-box;\n width: var(--ni-private-switch-indicator-size);\n height: var(--ni-private-switch-indicator-size);\n border-radius: calc(var(--ni-private-switch-indicator-size) / 2);\n margin: calc(\n calc(\n var(--ni-private-switch-height) -\n var(--ni-private-switch-indicator-size)\n ) / 2\n );\n border: ${borderWidth} solid\n var(--ni-private-switch-indicator-border-color);\n }\n\n :host(:hover) .checked-indicator {\n border: calc(${borderWidth} * 2) solid ${borderHoverColor};\n }\n\n :host([disabled]) .checked-indicator {\n background-color: var(\n --ni-private-switch-indicator-background-disabled-color\n );\n border: ${borderWidth} solid\n var(--ni-private-switch-indicator-border-disabled-color);\n }\n\n :host(${focusVisible}) .checked-indicator {\n border: ${borderWidth} solid ${borderHoverColor};\n }\n\n .checked-indicator-inner {\n width: calc(var(--ni-private-switch-indicator-size) / 2);\n height: calc(var(--ni-private-switch-indicator-size) / 2);\n border-radius: calc(var(--ni-private-switch-indicator-size) / 4);\n background-color: var(--ni-private-switch-indicator-border-color);\n opacity: 0;\n transition: opacity ${smallDelay} ease-in-out;\n }\n\n :host([disabled]) .checked-indicator-inner {\n background-color: var(\n --ni-private-switch-indicator-border-disabled-color\n );\n }\n\n :host([aria-checked='true']) .checked-indicator-inner {\n opacity: 1;\n transition: opacity ${smallDelay} ease-in-out;\n }\n\n slot[name='checked-message']::slotted(*) {\n margin-inline-start: 8px;\n }\n\n @media (prefers-reduced-motion) {\n .checked-indicator-inner,\n .checked-indicator-spacer {\n transition-duration: 0s;\n }\n }\n`.withBehaviors(themeBehavior(css `\n ${'' /* Light theme */}\n :host {\n --ni-private-switch-background-disabled-color: ${hexToRgbaCssColor(Black91, 0.07)};\n --ni-private-switch-indicator-background-color: ${White};\n --ni-private-switch-indicator-background-disabled-color: ${hexToRgbaCssColor(White, 0.1)};\n --ni-private-switch-indicator-border-color: ${Black91};\n --ni-private-switch-indicator-border-disabled-color: ${hexToRgbaCssColor(Black91, 0.3)};\n }\n `, css `\n ${'' /* Dark theme */}\n :host {\n --ni-private-switch-background-disabled-color: ${hexToRgbaCssColor(Black15, 0.07)};\n --ni-private-switch-indicator-background-color: ${hexToRgbaCssColor(Black91, 0.3)};\n --ni-private-switch-indicator-background-disabled-color: ${hexToRgbaCssColor(Black91, 0.1)};\n --ni-private-switch-indicator-border-color: ${Black7};\n --ni-private-switch-indicator-border-disabled-color: ${hexToRgbaCssColor(Black7, 0.3)};\n }\n `, css `\n ${'' /* Color theme */}\n :host {\n --ni-private-switch-background-disabled-color: ${hexToRgbaCssColor(White, 0.07)};\n --ni-private-switch-indicator-background-color: ${hexToRgbaCssColor(White, 0.1)};\n --ni-private-switch-indicator-background-disabled-color: ${hexToRgbaCssColor(White, 0.1)};\n --ni-private-switch-indicator-border-color: ${White};\n --ni-private-switch-indicator-border-disabled-color: ${hexToRgbaCssColor(White, 0.3)};\n }\n `));\n//# sourceMappingURL=styles.js.map","import { html, slotted } from '@microsoft/fast-element';\n// prettier-ignore\nexport const template = html `\n <template\n role=\"switch\"\n aria-checked=\"${x => x.checked}\"\n aria-disabled=\"${x => x.disabled}\"\n aria-readonly=\"${x => x.readOnly}\"\n tabindex=\"${x => (x.disabled ? null : 0)}\"\n @keypress=\"${(x, c) => x.keypressHandler(c.event)}\"\n @click=\"${(x, c) => x.clickHandler(c.event)}\"\n class=\"${x => (x.checked ? 'checked' : '')}\"\n >\n <label\n part=\"label\"\n class=\"${x => (x.defaultSlottedNodes?.length ? 'label' : 'label label__hidden')}\"\n >\n <slot ${slotted('defaultSlottedNodes')}></slot>\n </label>\n <div class=\"switch-container\">\n <span class=\"status-message unchecked-message\" part=\"unchecked-message\">\n <slot name=\"unchecked-message\"></slot>\n </span>\n <div part=\"switch\" class=\"switch\">\n <slot name=\"switch\">\n <span class=\"checked-indicator-spacer\"></span>\n <span class=\"checked-indicator\" part=\"checked-indicator\">\n <span class=\"checked-indicator-inner\">\n </span>\n </slot>\n </div>\n <span class=\"status-message checked-message\" part=\"checked-message\">\n <slot name=\"checked-message\"></slot>\n </span>\n </div>\n </template>\n`;\n//# sourceMappingURL=template.js.map","import { DesignSystem, Switch as FoundationSwitch } from '@microsoft/fast-foundation';\nimport { styles } from './styles';\nimport { template } from './template';\n/**\n * A nimble-styled switch control.\n */\nexport class Switch extends FoundationSwitch {\n}\nconst nimbleSwitch = Switch.compose({\n baseClass: FoundationSwitch,\n baseName: 'switch',\n template,\n styles\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSwitch());\n//# sourceMappingURL=index.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { bodyFont, borderHoverColor, borderWidth, bodyFontColor, bodyDisabledFontColor, controlHeight, fillHoverColor, mediumDelay, standardPadding } from '../theme-provider/design-tokens';\nimport { focusVisible } from '../utilities/style/focus';\nexport const styles = css `\n ${display('inline-flex')}\n\n :host {\n box-sizing: border-box;\n font: ${bodyFont};\n height: ${controlHeight};\n padding: calc(${standardPadding} / 2) ${standardPadding}\n calc(${standardPadding} / 2 - ${borderWidth});\n color: ${bodyFontColor};\n align-items: center;\n justify-content: center;\n cursor: pointer;\n ${ /* Separate focus indicator from active indicator */''}\n border-bottom: transparent ${borderWidth} solid;\n }\n\n :host(:hover) {\n background-color: ${fillHoverColor};\n }\n\n :host(:focus) {\n outline: none;\n }\n\n :host(${focusVisible}) {\n outline: none;\n box-shadow: 0 calc(${borderWidth} * -1) ${borderHoverColor} inset;\n transition: box-shadow ${mediumDelay} ease-in-out;\n }\n\n @media (prefers-reduced-motion) {\n :host(${focusVisible}) {\n transition-duration: 0.01s;\n }\n }\n\n :host(:active) {\n background: none;\n }\n\n :host([disabled]) {\n cursor: default;\n color: ${bodyDisabledFontColor};\n background: none;\n }\n`;\n//# sourceMappingURL=styles.js.map","import { DesignSystem, Tab as FoundationTab, tabTemplate as template } from '@microsoft/fast-foundation';\nimport { styles } from './styles';\n/**\n * A nimble-styled HTML tab\n */\nexport class Tab extends FoundationTab {\n}\nconst nimbleTab = Tab.compose({\n baseName: 'tab',\n baseClass: FoundationTab,\n template,\n styles\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTab());\n//# sourceMappingURL=index.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { bodyFont, bodyFontColor, standardPadding } from '../theme-provider/design-tokens';\nexport const styles = css `\n ${display('block')}\n\n :host {\n box-sizing: border-box;\n font: ${bodyFont};\n color: ${bodyFontColor};\n padding-top: ${standardPadding};\n }\n`;\n//# sourceMappingURL=styles.js.map","import { DesignSystem, TabPanel as FoundationTabPanel, tabPanelTemplate as template } from '@microsoft/fast-foundation';\nimport { styles } from './styles';\n/**\n * A nimble-styled tab panel\n */\nexport class TabPanel extends FoundationTabPanel {\n}\nconst nimbleTabPanel = TabPanel.compose({\n baseName: 'tab-panel',\n baseClass: FoundationTabPanel,\n template,\n styles\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTabPanel());\n//# sourceMappingURL=index.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { borderHoverColor, borderWidth, smallDelay } from '../theme-provider/design-tokens';\nexport const styles = css `\n ${display('grid')}\n\n :host {\n box-sizing: border-box;\n grid-template-columns: auto auto 1fr;\n grid-template-rows: auto 1fr;\n }\n\n .tablist {\n display: grid;\n grid-template-rows: auto auto;\n grid-template-columns: auto;\n width: max-content;\n align-self: end;\n }\n\n .activeIndicator {\n grid-row: 2;\n height: calc(${borderWidth} * 2);\n background-color: ${borderHoverColor};\n }\n\n .activeIndicatorTransition {\n transition: transform ${smallDelay} ease-in-out;\n }\n\n @media (prefers-reduced-motion) {\n .activeIndicatorTransition {\n transition: transform 0.01s;\n }\n }\n\n .tabpanel {\n grid-row: 2;\n grid-column-start: 1;\n grid-column-end: 4;\n }\n`;\n//# sourceMappingURL=styles.js.map","import { DesignSystem, Tabs as FoundationTabs, tabsTemplate as template } from '@microsoft/fast-foundation';\nimport { styles } from './styles';\n/**\n * A nimble-styled tabs control\n */\nexport class Tabs extends FoundationTabs {\n}\nconst nimbleTabs = Tabs.compose({\n baseName: 'tabs',\n baseClass: FoundationTabs,\n template,\n styles\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTabs());\n//# sourceMappingURL=index.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { bodyFont, bodyFontColor, borderRgbPartialColor, borderWidth, controlHeight, standardPadding } from '../theme-provider/design-tokens';\nexport const styles = css `\n ${display('flex')}\n\n :host {\n align-items: center;\n height: ${controlHeight};\n box-sizing: border-box;\n font: ${bodyFont};\n color: ${bodyFontColor};\n }\n\n .separator {\n display: inline-block;\n height: 24px;\n border-left: calc(${borderWidth} * 2) solid\n rgba(${borderRgbPartialColor}, 0.3);\n margin: calc(${standardPadding} / 4) calc(${standardPadding} / 2);\n }\n`;\n//# sourceMappingURL=styles.js.map","import { html } from '@microsoft/fast-element';\nexport const template = html `\n <template slot=\"end\">\n <div class=\"separator\"></div>\n <slot></slot>\n </template>\n`;\n//# sourceMappingURL=template.js.map","import { DesignSystem, FoundationElement } from '@microsoft/fast-foundation';\nimport { styles } from './styles';\nimport { template } from './template';\n/**\n * A nimble-styled container for toolbar content next to tabs.\n */\nexport class TabsToolbar extends FoundationElement {\n}\nconst nimbleTabsToolbar = TabsToolbar.compose({\n baseName: 'tabs-toolbar',\n template,\n styles\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTabsToolbar());\n//# sourceMappingURL=index.js.map","import { TextAreaResize } from '@microsoft/fast-foundation';\nexport { TextAreaResize };\nexport var TextAreaAppearance;\n(function (TextAreaAppearance) {\n TextAreaAppearance[\"Outline\"] = \"outline\";\n TextAreaAppearance[\"Block\"] = \"block\";\n})(TextAreaAppearance || (TextAreaAppearance = {}));\n//# sourceMappingURL=types.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { borderRgbPartialColor, borderHoverColor, borderWidth, fillSelectedRgbPartialColor, smallDelay, bodyFontColor, bodyDisabledFontColor, controlLabelFont, controlLabelFontColor, bodyFont, controlLabelDisabledFontColor } from '../theme-provider/design-tokens';\nimport { appearanceBehavior } from '../utilities/style/appearance';\nimport { TextAreaAppearance } from './types';\nexport const styles = css `\n ${display('inline-block')}\n\n :host {\n font: ${bodyFont};\n outline: none;\n user-select: none;\n color: ${bodyFontColor};\n }\n\n :host([disabled]) {\n color: ${bodyDisabledFontColor};\n }\n\n .label {\n display: flex;\n color: ${controlLabelFontColor};\n font: ${controlLabelFont};\n }\n\n :host([disabled]) .label {\n color: ${controlLabelDisabledFontColor};\n }\n\n .control {\n -webkit-appearance: none;\n font: inherit;\n outline: none;\n box-sizing: border-box;\n position: relative;\n color: inherit;\n border-radius: 0px;\n align-items: flex-end;\n border: ${borderWidth} solid transparent;\n padding: 8px;\n transition: box-shadow ${smallDelay}, border ${smallDelay};\n resize: none;\n }\n\n @media (prefers-reduced-motion) {\n .control {\n transition-duration: 0s;\n }\n }\n\n .control:hover {\n border-color: ${borderHoverColor};\n box-shadow: 0px 0px 0px 1px ${borderHoverColor};\n }\n\n .control:focus-within {\n border-color: ${borderHoverColor};\n }\n\n .control[readonly],\n .control[readonly]:hover,\n .control[readonly]:hover:focus-within,\n .control[disabled],\n .control[disabled]:hover {\n border-color: rgba(${borderRgbPartialColor}, 0.1);\n box-shadow: none;\n }\n\n .control::selection {\n color: ${controlLabelFontColor};\n background: rgba(${fillSelectedRgbPartialColor}, 0.3);\n }\n\n .control::placeholder {\n color: ${controlLabelFontColor};\n }\n\n .control[disabled]::placeholder {\n color: ${controlLabelDisabledFontColor};\n }\n\n :host([resize='both']) .control {\n resize: both;\n }\n :host([resize='horizontal']) .control {\n resize: horizontal;\n }\n :host([resize='vertical']) .control {\n resize: vertical;\n }\n`\n // prettier-ignore\n .withBehaviors(appearanceBehavior(TextAreaAppearance.Outline, css `\n .control {\n border-color: rgba(${borderRgbPartialColor}, 0.3);\n background-color: transparent;\n }\n `), appearanceBehavior(TextAreaAppearance.Block, css `\n .control {\n background-color: rgba(${borderRgbPartialColor}, 0.1);\n }\n\n :host([readonly]) .control {\n background-color: transparent;\n }\n\n :host([disabled]) .control {\n border-color: transparent;\n background-color: rgba(${borderRgbPartialColor}, 0.1);\n }\n `));\n//# sourceMappingURL=styles.js.map","import { __decorate } from \"tslib\";\nimport { attr } from '@microsoft/fast-element';\nimport { DesignSystem, TextArea as FoundationTextArea, textAreaTemplate as template } from '@microsoft/fast-foundation';\nimport { styles } from './styles';\nimport { TextAreaAppearance } from './types';\n/**\n * A nimble-styed HTML text area\n */\nexport class TextArea extends FoundationTextArea {\n constructor() {\n super(...arguments);\n /**\n * The appearance the text area should have.\n *\n * @public\n * @remarks\n * HTML Attribute: appearance\n */\n this.appearance = TextAreaAppearance.Outline;\n }\n}\n__decorate([\n attr\n], TextArea.prototype, \"appearance\", void 0);\nconst nimbleTextArea = TextArea.compose({\n baseName: 'text-area',\n baseClass: FoundationTextArea,\n template,\n styles,\n shadowOptions: {\n delegatesFocus: true\n }\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTextArea());\n//# sourceMappingURL=index.js.map","import { TextFieldType } from '@microsoft/fast-foundation';\n/**\n * Values for the 'type' property of the text field.\n */\nexport { TextFieldType };\n/**\n * Values for the 'appearance' property of the text field\n */\nexport var TextFieldAppearance;\n(function (TextFieldAppearance) {\n TextFieldAppearance[\"Underline\"] = \"underline\";\n TextFieldAppearance[\"Outline\"] = \"outline\";\n TextFieldAppearance[\"Block\"] = \"block\";\n})(TextFieldAppearance || (TextFieldAppearance = {}));\n//# sourceMappingURL=types.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { borderRgbPartialColor, borderHoverColor, borderWidth, bodyFontColor, bodyDisabledFontColor, controlHeight, errorTextFont, failColor, fillSelectedRgbPartialColor, iconSize, labelHeight, smallDelay, controlLabelFont, bodyFont, controlLabelFontColor, controlLabelDisabledFontColor, standardPadding } from '../theme-provider/design-tokens';\nimport { appearanceBehavior } from '../utilities/style/appearance';\nimport { TextFieldAppearance } from './types';\nimport { Theme } from '../theme-provider/types';\nimport { themeBehavior } from '../utilities/style/theme';\nexport const styles = css `\n ${display('inline-block')}\n\n :host {\n font: ${bodyFont};\n outline: none;\n user-select: none;\n --webkit-user-select: none;\n color: ${bodyFontColor};\n height: calc(${labelHeight} + ${controlHeight});\n }\n\n :host([disabled]) {\n color: ${bodyDisabledFontColor};\n }\n\n .label {\n display: flex;\n color: ${controlLabelFontColor};\n font: ${controlLabelFont};\n }\n\n :host([disabled]) .label {\n color: ${controlLabelDisabledFontColor};\n }\n\n .root {\n box-sizing: border-box;\n position: relative;\n display: flex;\n flex-direction: row;\n border-radius: 0px;\n font: inherit;\n transition: border-bottom ${smallDelay}, padding-bottom ${smallDelay};\n align-items: center;\n --ni-private-hover-bottom-border-width: 2px;\n border: 0px solid rgba(${borderRgbPartialColor}, 0.3);\n border-bottom-width: var(--ni-private-bottom-border-width);\n padding-bottom: calc(\n var(--ni-private-hover-bottom-border-width) -\n var(--ni-private-bottom-border-width)\n );\n }\n\n @media (prefers-reduced-motion) {\n .root {\n transition-duration: 0s;\n }\n }\n\n :host(.invalid) .root {\n border-bottom-color: ${failColor};\n }\n\n :host([readonly]:not([disabled])) .root {\n border: ${borderWidth} solid rgba(${borderRgbPartialColor}, 0.1);\n padding: 0px;\n padding-bottom: 1px;\n background-color: transparent;\n }\n\n :host([disabled]) .root {\n border-color: rgba(${borderRgbPartialColor}, 0.1);\n }\n\n .root:hover {\n --ni-private-bottom-border-width: var(\n --ni-private-hover-bottom-border-width\n );\n border-bottom-color: ${borderHoverColor};\n }\n\n :host([disabled]) .root:hover {\n --ni-private-bottom-border-width: 1px;\n }\n\n .root:focus-within {\n border-bottom-color: ${borderHoverColor};\n }\n\n [part='start'] {\n display: none;\n }\n\n .control {\n -webkit-appearance: none;\n font: inherit;\n background: transparent;\n color: inherit;\n padding-top: 0px;\n padding-bottom: 0px;\n height: calc(\n ${controlHeight} - ${borderWidth} -\n var(--ni-private-hover-bottom-border-width)\n );\n width: 100%;\n margin-top: auto;\n margin-bottom: auto;\n padding-left: calc(${standardPadding} / 2);\n padding-right: calc(${standardPadding} / 2);\n border: none;\n text-overflow: ellipsis;\n }\n\n .control:hover,\n .control:focus,\n .control:disabled,\n .control:active {\n outline: none;\n }\n\n .control::selection {\n color: ${controlLabelFontColor};\n background: rgba(${fillSelectedRgbPartialColor}, 0.3);\n }\n\n .control::placeholder {\n color: ${controlLabelFontColor};\n }\n\n .control:not([readonly]):focus-within::placeholder {\n opacity: 1;\n }\n\n .control[disabled]::placeholder {\n color: ${bodyDisabledFontColor};\n }\n\n [part='end'] {\n display: none;\n }\n\n :host(.invalid) [part='end'] {\n display: contents;\n }\n\n :host(.invalid) [part='end'] svg {\n height: ${iconSize};\n width: ${iconSize};\n padding-right: 8px;\n flex: none;\n }\n\n :host(.invalid) [part='end'] path {\n fill: ${failColor};\n }\n\n :host([disabled]) [part='end'] path {\n fill: ${bodyDisabledFontColor};\n }\n\n .errortext {\n display: none;\n }\n\n :host(.invalid) .errortext {\n display: block;\n font: ${errorTextFont};\n color: ${failColor};\n width: 100%;\n position: absolute;\n top: ${controlHeight};\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n :host(.invalid[readonly]:not([disabled])) .errortext {\n top: calc(${controlHeight} - ${borderWidth});\n }\n\n :host(.invalid) .error-text:empty {\n display: none;\n }\n\n :host([disabled]) .errortext {\n color: ${bodyDisabledFontColor};\n }\n`.withBehaviors(appearanceBehavior(TextFieldAppearance.Underline, css `\n .root {\n --ni-private-bottom-border-width: 1px;\n padding-top: ${borderWidth};\n padding-left: ${borderWidth};\n padding-right: ${borderWidth};\n }\n `), appearanceBehavior(TextFieldAppearance.Block, css `\n .root {\n background-color: rgba(${borderRgbPartialColor}, 0.1);\n --ni-private-bottom-border-width: 0px;\n padding-top: ${borderWidth};\n padding-left: ${borderWidth};\n padding-right: ${borderWidth};\n }\n\n .root:focus-within {\n --ni-private-bottom-border-width: 1px;\n }\n\n .root:focus-within:hover {\n --ni-private-bottom-border-width: var(\n --ni-private-hover-bottom-border-width\n );\n }\n\n :host(.invalid) .root {\n --ni-private-bottom-border-width: 1px;\n }\n\n :host(.invalid) .root:hover {\n --ni-private-bottom-border-width: var(\n --ni-private-hover-bottom-border-width\n );\n }\n\n :host([disabled]) .root {\n background-color: rgba(${borderRgbPartialColor}, 0.07);\n }\n\n :host([disabled]) .root:hover {\n --ni-private-bottom-border-width: 0px;\n }\n\n :host(.invalid[disabled]) .root {\n --ni-private-bottom-border-width: 1px;\n }\n `), appearanceBehavior(TextFieldAppearance.Outline, css `\n .root {\n --ni-private-bottom-border-width: 1px;\n border-width: ${borderWidth};\n border-bottom-width: var(--ni-private-bottom-border-width);\n }\n\n :host(.invalid) .errortext {\n top: calc(${controlHeight} - ${borderWidth});\n }\n `), themeBehavior(css `\n ${'' /* Light theme */}\n .control::-ms-reveal {\n filter: invert(0%);\n }\n `, css `\n ${'' /* Dark theme */}\n .control::-ms-reveal {\n filter: invert(100%);\n }\n `, \n// Color theme\nTheme.Dark));\n//# sourceMappingURL=styles.js.map","import { __decorate } from \"tslib\";\nimport { attr, html } from '@microsoft/fast-element';\nimport { DesignSystem, TextField as FoundationTextField, textFieldTemplate as template } from '@microsoft/fast-foundation';\nimport { exclamationMark16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { styles } from './styles';\nimport { TextFieldAppearance } from './types';\n/**\n * A nimble-styed HTML text input\n */\nexport class TextField extends FoundationTextField {\n constructor() {\n super(...arguments);\n /**\n * The appearance the text field should have.\n *\n * @public\n * @remarks\n * HTML Attribute: appearance\n */\n this.appearance = TextFieldAppearance.Underline;\n }\n connectedCallback() {\n super.connectedCallback();\n this.control.setAttribute('aria-errormessage', 'errortext');\n }\n}\n__decorate([\n attr\n], TextField.prototype, \"appearance\", void 0);\n__decorate([\n attr({ attribute: 'error-text' })\n], TextField.prototype, \"errorText\", void 0);\nconst nimbleTextField = TextField.compose({\n baseName: 'text-field',\n baseClass: FoundationTextField,\n template,\n styles,\n shadowOptions: {\n delegatesFocus: true\n },\n end: html `\n ${exclamationMark16X16.data}\n <div\n id=\"errortext\"\n class=\"errortext\"\n title=\"${x => x.errorText}\"\n aria-live=\"polite\"\n >\n ${x => x.errorText}\n </div>\n `\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTextField());\n//# sourceMappingURL=index.js.map","import { css } from '@microsoft/fast-element';\nimport { focusVisible } from '../utilities/style/focus';\nimport { fillSelectedColor } from '../theme-provider/design-tokens';\nimport { styles as buttonStyles } from '../patterns/button/styles';\nexport const styles = css `\n ${buttonStyles}\n\n .control[aria-pressed='true'] {\n background-color: ${fillSelectedColor};\n border-color: ${fillSelectedColor};\n }\n\n .control[aria-pressed='true']:hover {\n background-color: ${fillSelectedColor};\n }\n\n .control[aria-pressed='true']${focusVisible} {\n background-color: ${fillSelectedColor};\n }\n\n .control[aria-pressed='true'][disabled] {\n background-color: ${fillSelectedColor};\n border-color: ${fillSelectedColor};\n }\n\n .control[aria-pressed='true'][disabled]:hover {\n background-color: ${fillSelectedColor};\n border-color: ${fillSelectedColor};\n }\n`;\n//# sourceMappingURL=styles.js.map","import { html, ref } from '@microsoft/fast-element';\nimport { endSlotTemplate, startSlotTemplate } from '@microsoft/fast-foundation';\nexport const template = (context, definition) => html `\n <div\n role=\"button\"\n part=\"control\"\n aria-pressed=\"${(x) => x.checked}\"\n aria-disabled=\"${(x) => x.disabled}\"\n aria-readonly=\"${(x) => x.readOnly}\"\n tabindex=\"${(x) => (x.disabled ? null : 0)}\"\n @keypress=\"${(x, c) => x.keypressHandler(c.event)}\"\n @click=\"${(x, c) => x.clickHandler(c.event)}\"\n class=\"control ${(x) => (x.checked ? 'checked' : '')}\"\n ?disabled=\"${x => x.disabled}\"\n ${ref('control')}\n >\n ${startSlotTemplate(context, definition)}\n <span class=\"content\" part=\"content\">\n <slot></slot>\n </span>\n ${endSlotTemplate(context, definition)}\n </div>\n`;\n//# sourceMappingURL=template.js.map","import { __decorate } from \"tslib\";\nimport { attr } from '@microsoft/fast-element';\nimport { applyMixins, DesignSystem, StartEnd, Switch as FoundationSwitch } from '@microsoft/fast-foundation';\nimport { styles } from './styles';\nimport { template } from './template';\nimport { ButtonAppearance } from '../patterns/button/types';\n/**\n * A nimble-styled toggle button control.\n */\nexport class ToggleButton extends FoundationSwitch {\n constructor() {\n super(...arguments);\n /**\n * The appearance the button should have.\n *\n * @public\n * @remarks\n * HTML Attribute: appearance\n */\n this.appearance = ButtonAppearance.Outline;\n /**\n * Specify as 'true' to hide the text content of the button. The button will\n * become square, and the text content will be used as the label of the button\n * for accessibility purposes.\n *\n * @public\n * @remarks\n * HTML Attribute: content-hidden\n */\n this.contentHidden = false;\n }\n}\n__decorate([\n attr\n], ToggleButton.prototype, \"appearance\", void 0);\n__decorate([\n attr({ attribute: 'content-hidden', mode: 'boolean' })\n], ToggleButton.prototype, \"contentHidden\", void 0);\napplyMixins(ToggleButton, StartEnd);\nconst nimbleToggleButton = ToggleButton.compose({\n baseName: 'toggle-button',\n template,\n styles,\n shadowOptions: {\n delegatesFocus: true\n }\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleToggleButton());\n//# sourceMappingURL=index.js.map","export const pinnedSelectedAttribute = 'pinned-selected';\nexport const groupSelectedAttribute = 'group-selected';\nexport var TreeViewSelectionMode;\n(function (TreeViewSelectionMode) {\n TreeViewSelectionMode[\"All\"] = \"all\";\n TreeViewSelectionMode[\"LeavesOnly\"] = \"leaves-only\";\n})(TreeViewSelectionMode || (TreeViewSelectionMode = {}));\n//# sourceMappingURL=types.js.map","/* eslint-disable */\n// Sourced from: https://github.com/microsoft/fast/blob/a150068ee196e73fe7a4f7b538a38752e0e506ba/packages/web-components/fast-components/src/styles/direction.ts\n// Changes: Updated imports to reference nimble design tokens\nimport { direction as directionDesignToken } from '../../theme-provider';\n/**\n * Behavior to conditionally apply LTR and RTL stylesheets. To determine which to apply,\n * the behavior will use the nearest DesignSystemProvider's 'direction' design system value.\n *\n * @public\n * @example\n * ```ts\n * import { css } from \"@microsoft/fast-element\";\n * import { DirectionalStyleSheetBehavior } from \"@microsoft/fast-foundation\";\n *\n * css`\n * // ...\n * `.withBehaviors(new DirectionalStyleSheetBehavior(\n * css`:host { content: \"ltr\"}`),\n * css`:host { content: \"rtl\"}`),\n * )\n * ```\n */\nexport class DirectionalStyleSheetBehavior {\n constructor(ltr, rtl) {\n this.cache = new WeakMap();\n this.ltr = ltr;\n this.rtl = rtl;\n }\n /**\n * @internal\n */\n bind(source) {\n this.attach(source);\n }\n /**\n * @internal\n */\n unbind(source) {\n const cache = this.cache.get(source);\n if (cache) {\n directionDesignToken.unsubscribe(cache);\n }\n }\n attach(source) {\n const subscriber = this.cache.get(source) ||\n new DirectionalStyleSheetBehaviorSubscription(this.ltr, this.rtl, source);\n const value = directionDesignToken.getValueFor(source);\n directionDesignToken.subscribe(subscriber);\n subscriber.attach(value);\n this.cache.set(source, subscriber);\n }\n}\n/**\n * Subscription for {@link DirectionalStyleSheetBehavior}\n */\nclass DirectionalStyleSheetBehaviorSubscription {\n constructor(ltr, rtl, source) {\n this.ltr = ltr;\n this.rtl = rtl;\n this.source = source;\n this.attached = null;\n }\n handleChange({ target, token, }) {\n this.attach(token.getValueFor(target));\n }\n attach(direction) {\n if (this.attached !== this[direction]) {\n if (this.attached !== null) {\n this.source.$fastController.removeStyles(this.attached);\n }\n this.attached = this[direction];\n if (this.attached !== null) {\n this.source.$fastController.addStyles(this.attached);\n }\n }\n }\n}\n//# sourceMappingURL=direction.js.map","import { css } from '@microsoft/fast-element';\nimport { display, TreeItem } from '@microsoft/fast-foundation';\nimport { focusVisible } from '../utilities/style/focus';\nimport { bodyFontColor, bodyFontFamily, bodyFontSize, bodyFontWeight, borderHoverColor, fillSelectedColor, fillHoverColor, fillHoverSelectedColor, borderWidth, iconSize } from '../theme-provider/design-tokens';\nimport { groupSelectedAttribute } from '../tree-view/types';\nimport { DirectionalStyleSheetBehavior } from '../utilities/style/direction';\nexport const styles = (context, _definition) => css `\n ${display('block')}\n\n :host {\n ${\n/* don't set font-size here or else it overrides what we set on .items */ ''}\n font-family: ${bodyFontFamily};\n font-weight: ${bodyFontWeight};\n contain: content;\n position: relative;\n outline: none;\n color: ${bodyFontColor};\n cursor: pointer;\n --ni-private-tree-item-nested-width: 0;\n }\n\n ${ /* this controls the side border */''}\n :host([${groupSelectedAttribute}])::after {\n background: ${borderHoverColor};\n border-radius: 0px;\n content: '';\n display: block;\n position: absolute;\n top: 0px;\n width: calc(${borderWidth} * 2);\n height: calc(${iconSize} * 2);\n }\n\n .positioning-region {\n display: flex;\n position: relative;\n box-sizing: border-box;\n height: calc(${iconSize} * 2);\n }\n\n .positioning-region:hover {\n background: ${fillHoverColor};\n }\n\n :host(${focusVisible}) .positioning-region {\n box-shadow: 0px 0px 0px ${borderWidth} ${borderHoverColor} inset;\n outline: ${borderWidth} solid ${borderHoverColor};\n outline-offset: -2px;\n }\n\n :host([selected]) .positioning-region {\n background: ${fillSelectedColor};\n }\n\n :host([selected]) .positioning-region:hover {\n background: ${fillHoverSelectedColor};\n }\n\n .positioning-region::before {\n content: '';\n display: block;\n width: var(--ni-private-tree-item-nested-width);\n flex-shrink: 0;\n }\n\n .content-region {\n display: inline-flex;\n align-items: center;\n white-space: nowrap;\n width: 100%;\n padding-left: 10px;\n font: inherit;\n font-size: ${bodyFontSize};\n user-select: none;\n }\n\n :host(${focusVisible}) .content-region {\n outline: none;\n }\n\n :host(.nested) .content-region {\n position: relative;\n margin-inline-start: ${iconSize};\n }\n\n :host([disabled]) .content-region {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .expand-collapse-button {\n background: none;\n border: none;\n outline: none;\n width: ${iconSize};\n height: ${iconSize};\n padding: 0px;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n margin-left: 10px;\n }\n\n :host(.nested) .expand-collapse-button {\n position: absolute;\n }\n\n .expand-collapse-button svg {\n width: ${iconSize};\n height: ${iconSize};\n transition: transform 0.2s ease-in;\n pointer-events: none;\n fill: currentcolor;\n }\n\n ${\n/* this rule keeps children without an icon text aligned with parents */ ''}\n span[part=\"start\"] {\n width: ${iconSize};\n }\n\n ${\n/* the start class is applied when the corresponding slots is filled */ ''}\n .start {\n display: flex;\n fill: currentcolor;\n margin-inline-start: ${iconSize};\n margin-inline-end: ${iconSize};\n }\n\n slot[name='start']::slotted(*) {\n width: ${iconSize};\n height: ${iconSize};\n }\n\n ::slotted(${context.tagFor(TreeItem)}) {\n --ni-private-tree-item-nested-width: 1em;\n --ni-private-expand-collapse-button-nested-width: calc(\n ${iconSize} * -1\n );\n }\n\n ${\n/* the end class is applied when the corresponding slots is filled */ ''}\n .end {\n display: flex;\n fill: currentcolor;\n margin-inline-start: ${iconSize};\n }\n\n .items {\n display: none;\n ${\n/*\n * this controls the nested indentation (by affecting .positioning-region::before)\n * it must minimally contain arithmetic with an em and a px value\n * make it larger or shorter by changing the px value\n */ ''}\n font-size: calc(1em + (${iconSize} * 2));\n }\n\n :host([expanded]) .items {\n display: block;\n }\n `\n // prettier-ignore\n .withBehaviors(new DirectionalStyleSheetBehavior(css `\n ${ /* ltr styles */''}\n :host(.nested) .expand-collapse-button {\n left: var(\n --ni-private-expand-collapse-button-nested-width,\n calc(${iconSize} * -1)\n );\n }\n\n .expand-collapse-button svg {\n transform: rotate(90deg);\n }\n\n :host([expanded]) .expand-collapse-button svg {\n transform: rotate(180deg);\n }\n `, css `\n ${ /* rtl styles */''}\n :host(.nested) .expand-collapse-button {\n right: var(\n --ni-private-expand-collapse-button-nested-width,\n calc(${iconSize} * -1)\n );\n }\n\n .expand-collapse-button svg {\n transform: rotate(180deg);\n }\n\n :host([expanded]) .expand-collapse-button svg {\n transform: rotate(135deg);\n }\n `));\n//# sourceMappingURL=styles.js.map","import { treeItemTemplate as template, TreeItem as FoundationTreeItem, DesignSystem } from '@microsoft/fast-foundation';\nimport { arrowExpanderUp16X16 } from '@ni/nimble-tokens/dist-icons-esm/nimble-icons-inline';\nimport { groupSelectedAttribute, TreeViewSelectionMode } from '../tree-view/types';\nimport { styles } from './styles';\n/**\n * A function that returns a nimble-tree-item registration for configuring the component with a DesignSystem.\n * Implements {@link @microsoft/fast-foundation#treeItemTemplate}\n *\n *\n * @public\n * @remarks\n * Generates HTML Element: \\<nimble-tree-item\\>\n *\n */\nexport class TreeItem extends FoundationTreeItem {\n constructor() {\n super();\n this.treeView = null;\n this.handleClickOverride = (event) => {\n if (event.composedPath().includes(this.expandCollapseButton)) {\n // just have base class handle click event for glyph\n return;\n }\n const treeItem = this.getImmediateTreeItem(event.target);\n if (treeItem?.disabled || treeItem !== this) {\n // don't allow base TreeItem to emit a 'selected-change' event when a disabled item is clicked\n event.stopImmediatePropagation();\n return;\n }\n const leavesOnly = this.treeView?.selectionMode === TreeViewSelectionMode.LeavesOnly;\n const hasChildren = this.hasChildTreeItems();\n if ((leavesOnly && !hasChildren) || !leavesOnly) {\n const selectedTreeItem = this.getImmediateTreeItem(this.treeView?.currentSelected);\n // deselect currently selected item if different than this instance\n if (selectedTreeItem && this !== this.treeView?.currentSelected) {\n selectedTreeItem.selected = false;\n }\n this.selected = true;\n }\n else {\n // implicit hasChildren && leavesOnly, so only allow expand/collapse, not select\n this.expanded = !this.expanded;\n }\n // don't allow base class to process click event\n event.stopImmediatePropagation();\n };\n // This prevents the toggling of selected state when a TreeItem is clicked multiple times,\n // which is what the FAST TreeItem allows\n this.handleSelectedChange = (event) => {\n // only process selection\n if (event.target === this && this.selected) {\n this.setGroupSelectionOnRootParentTreeItem(this);\n }\n };\n this.addEventListener('click', this.handleClickOverride);\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('selected-change', this.handleSelectedChange);\n this.treeView = this.getParentTreeView();\n if (this.treeView && this.selected) {\n this.setGroupSelectionOnRootParentTreeItem(this);\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('click', this.handleClickOverride);\n this.removeEventListener('selected-change', this.handleSelectedChange);\n this.treeView = null;\n }\n hasChildTreeItems() {\n const treeItemChild = this.querySelector('[role=\"treeitem\"]');\n return treeItemChild !== null;\n }\n clearTreeGroupSelection() {\n const currentGroupSelection = this.treeView?.querySelectorAll(`[${groupSelectedAttribute}]`);\n currentGroupSelection?.forEach(treeItem => treeItem.removeAttribute(groupSelectedAttribute));\n }\n setGroupSelectionOnRootParentTreeItem(treeItem) {\n this.clearTreeGroupSelection();\n let currentItem = treeItem;\n while (currentItem?.parentElement !== this.treeView) {\n currentItem = currentItem?.parentElement;\n }\n if (currentItem) {\n currentItem.setAttribute(groupSelectedAttribute, 'true');\n }\n }\n getImmediateTreeItem(element) {\n let foundElement = element;\n while (foundElement\n && !(foundElement?.getAttribute('role') === 'treeitem')) {\n foundElement = foundElement?.parentElement;\n }\n return foundElement;\n }\n /**\n * This was copied directly from the FAST TreeItem implementation\n * @returns the root tree view\n */\n getParentTreeView() {\n const parentNode = this.parentElement.closest(\"[role='tree']\");\n return parentNode;\n }\n}\nconst nimbleTreeItem = TreeItem.compose({\n baseName: 'tree-item',\n baseClass: FoundationTreeItem,\n template,\n styles,\n expandCollapseGlyph: arrowExpanderUp16X16.data\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTreeItem());\n//# sourceMappingURL=index.js.map","import { css } from '@microsoft/fast-element';\nimport { display } from '@microsoft/fast-foundation';\nimport { focusVisible } from '../utilities/style/focus';\nexport const styles = css `\n ${display('flex')}\n\n :host {\n flex-direction: column;\n align-items: stretch;\n min-width: fit-content;\n font-size: 0;\n }\n :host(${focusVisible}) {\n outline: none;\n }\n`;\n//# sourceMappingURL=styles.js.map","import { __decorate } from \"tslib\";\nimport { attr } from '@microsoft/fast-element';\nimport { treeViewTemplate as template, TreeView as FoundationTreeView, DesignSystem } from '@microsoft/fast-foundation';\nimport { styles } from './styles';\nimport { TreeViewSelectionMode } from './types';\n/**\n * A function that returns a nimble-tree-view registration for configuring the component with a DesignSystem.\n * Implements {@link @microsoft/fast-foundation#treeViewTemplate}\n *\n *\n * @public\n * @remarks\n * Generates HTML Element: \\<nimble-tree-view\\>\n *\n */\nexport class TreeView extends FoundationTreeView {\n constructor() {\n super(...arguments);\n this.selectionMode = TreeViewSelectionMode.All;\n }\n}\n__decorate([\n attr({ attribute: 'selection-mode' })\n], TreeView.prototype, \"selectionMode\", void 0);\nconst nimbleTreeView = TreeView.compose({\n baseName: 'tree-view',\n baseClass: FoundationTreeView,\n template,\n styles\n});\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTreeView());\n//# sourceMappingURL=index.js.map"],"names":["__decorate","BreadcrumbItem","Breadcrumb","Button","Checkbox","ListboxOption","focusVisible","MenuItem","Menu","TextField","NumberField","Select","Switch","TabPanel","Tab","Tabs","TextArea","TreeItem","TreeView","template","styles","themeToken","FoundationBreadcrumb","focusVisibleOriginal","FoundationBreadcrumbItem","buttonStyles","FoundationButton","FoundationCheckbox","__extends","this","animate_1","require$$0","invokeFunctionForEach_1","isElementInView_1","scrollY_1","require$$1","ScrollTrigger","ScrollTrigger_1","ScrollBase_1","ViewEnterTrigger_1","ViewExitTrigger_1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","FoundationDialog","AnimateTo","AnimateGroup","FoundationListboxOption","FoundationMenu","FoundationMenuItem","FoundationNumberField","FoundationSelect","FoundationSwitch","FoundationTab","FoundationTabPanel","FoundationTabs","FoundationTextArea","FoundationTextField","directionDesignToken","FoundationTreeItem","FoundationTreeView"],"mappings":"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"}