@hashicorp/design-system-components 4.13.1 → 4.14.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 (166) hide show
  1. package/declarations/components/hds/app-side-nav/index.d.ts +45 -0
  2. package/declarations/components/hds/app-side-nav/index.d.ts.map +1 -0
  3. package/declarations/components/hds/app-side-nav/list/back-link.d.ts +15 -0
  4. package/declarations/components/hds/app-side-nav/list/back-link.d.ts.map +1 -0
  5. package/declarations/components/hds/app-side-nav/list/index.d.ts +32 -0
  6. package/declarations/components/hds/app-side-nav/list/index.d.ts.map +1 -0
  7. package/declarations/components/hds/app-side-nav/list/item.d.ts +14 -0
  8. package/declarations/components/hds/app-side-nav/list/item.d.ts.map +1 -0
  9. package/declarations/components/hds/app-side-nav/list/link.d.ts +24 -0
  10. package/declarations/components/hds/app-side-nav/list/link.d.ts.map +1 -0
  11. package/declarations/components/hds/app-side-nav/list/title.d.ts +19 -0
  12. package/declarations/components/hds/app-side-nav/list/title.d.ts.map +1 -0
  13. package/declarations/components/hds/app-side-nav/portal/index.d.ts +27 -0
  14. package/declarations/components/hds/app-side-nav/portal/index.d.ts.map +1 -0
  15. package/declarations/components/hds/app-side-nav/portal/target.d.ts +37 -0
  16. package/declarations/components/hds/app-side-nav/portal/target.d.ts.map +1 -0
  17. package/declarations/components/hds/app-side-nav/toggle-button.d.ts +15 -0
  18. package/declarations/components/hds/app-side-nav/toggle-button.d.ts.map +1 -0
  19. package/declarations/components/hds/dropdown/index.d.ts +3 -0
  20. package/declarations/components/hds/dropdown/index.d.ts.map +1 -1
  21. package/declarations/components/hds/form/masked-input/base.d.ts +1 -23
  22. package/declarations/components/hds/form/masked-input/base.d.ts.map +1 -1
  23. package/declarations/components/hds/form/text-input/field.d.ts +2 -16
  24. package/declarations/components/hds/form/text-input/field.d.ts.map +1 -1
  25. package/declarations/components/hds/pagination/compact/index.d.ts.map +1 -1
  26. package/declarations/components/hds/pagination/numbered/index.d.ts +1 -1
  27. package/declarations/components/hds/pagination/numbered/index.d.ts.map +1 -1
  28. package/declarations/components/hds/popover-primitive/index.d.ts +1 -0
  29. package/declarations/components/hds/popover-primitive/index.d.ts.map +1 -1
  30. package/declarations/components/hds/side-nav/index.d.ts +9 -8
  31. package/declarations/components/hds/side-nav/index.d.ts.map +1 -1
  32. package/declarations/components/hds/side-nav/list/index.d.ts +6 -3
  33. package/declarations/components/hds/side-nav/list/index.d.ts.map +1 -1
  34. package/declarations/components/hds/side-nav/list/title.d.ts +8 -3
  35. package/declarations/components/hds/side-nav/list/title.d.ts.map +1 -1
  36. package/declarations/components/hds/table/index.d.ts +1 -0
  37. package/declarations/components/hds/table/index.d.ts.map +1 -1
  38. package/declarations/components/hds/table/th-selectable.d.ts +1 -0
  39. package/declarations/components/hds/table/th-selectable.d.ts.map +1 -1
  40. package/declarations/components/hds/tabs/index.d.ts.map +1 -1
  41. package/declarations/modifiers/hds-anchored-position.d.ts +1 -0
  42. package/declarations/modifiers/hds-anchored-position.d.ts.map +1 -1
  43. package/declarations/modifiers/hds-clipboard.d.ts.map +1 -1
  44. package/declarations/template-registry.d.ts +36 -0
  45. package/declarations/template-registry.d.ts.map +1 -1
  46. package/dist/components/hds/alert/description.js +2 -2
  47. package/dist/components/hds/app-footer/item.js +2 -2
  48. package/dist/components/hds/app-footer/link.js +2 -2
  49. package/dist/components/hds/app-frame/parts/footer.js +2 -2
  50. package/dist/components/hds/app-frame/parts/header.js +2 -2
  51. package/dist/components/hds/app-frame/parts/main.js +2 -2
  52. package/dist/components/hds/app-frame/parts/modals.js +2 -2
  53. package/dist/components/hds/app-frame/parts/sidebar.js +2 -2
  54. package/dist/components/hds/app-side-nav/index.js +187 -0
  55. package/dist/components/hds/app-side-nav/index.js.map +1 -0
  56. package/dist/components/hds/app-side-nav/list/back-link.js +16 -0
  57. package/dist/components/hds/app-side-nav/list/back-link.js.map +1 -0
  58. package/dist/components/hds/app-side-nav/list/index.js +33 -0
  59. package/dist/components/hds/app-side-nav/list/index.js.map +1 -0
  60. package/dist/components/hds/app-side-nav/list/item.js +16 -0
  61. package/dist/components/hds/app-side-nav/list/item.js.map +1 -0
  62. package/dist/components/hds/app-side-nav/list/link.js +16 -0
  63. package/dist/components/hds/app-side-nav/list/link.js.map +1 -0
  64. package/dist/components/hds/app-side-nav/list/title.js +29 -0
  65. package/dist/components/hds/app-side-nav/list/title.js.map +1 -0
  66. package/dist/components/hds/app-side-nav/portal/index.js +16 -0
  67. package/dist/components/hds/app-side-nav/portal/index.js.map +1 -0
  68. package/dist/components/hds/app-side-nav/portal/target.js +173 -0
  69. package/dist/components/hds/app-side-nav/portal/target.js.map +1 -0
  70. package/dist/components/hds/app-side-nav/toggle-button.js +16 -0
  71. package/dist/components/hds/app-side-nav/toggle-button.js.map +1 -0
  72. package/dist/components/hds/application-state/body.js +2 -2
  73. package/dist/components/hds/application-state/footer.js +2 -2
  74. package/dist/components/hds/application-state/media.js +2 -2
  75. package/dist/components/hds/button-set/index.js +2 -2
  76. package/dist/components/hds/code-block/copy-button.js +2 -2
  77. package/dist/components/hds/code-block/description.js +2 -2
  78. package/dist/components/hds/dialog-primitive/body.js +2 -2
  79. package/dist/components/hds/dialog-primitive/description.js +2 -2
  80. package/dist/components/hds/dialog-primitive/overlay.js +2 -2
  81. package/dist/components/hds/dialog-primitive/wrapper.js +2 -2
  82. package/dist/components/hds/dropdown/footer.js +2 -2
  83. package/dist/components/hds/dropdown/header.js +2 -2
  84. package/dist/components/hds/dropdown/index.js +7 -3
  85. package/dist/components/hds/dropdown/index.js.map +1 -1
  86. package/dist/components/hds/dropdown/list-item/generic.js +2 -2
  87. package/dist/components/hds/dropdown/list-item/separator.js +2 -2
  88. package/dist/components/hds/dropdown/toggle/chevron.js +2 -2
  89. package/dist/components/hds/form/checkbox/base.js +2 -2
  90. package/dist/components/hds/form/checkbox/field.js +2 -2
  91. package/dist/components/hds/form/checkbox/group.js +2 -2
  92. package/dist/components/hds/form/error/message.js +2 -2
  93. package/dist/components/hds/form/file-input/base.js +2 -2
  94. package/dist/components/hds/form/file-input/field.js +2 -2
  95. package/dist/components/hds/form/masked-input/base.js +5 -34
  96. package/dist/components/hds/form/masked-input/base.js.map +1 -1
  97. package/dist/components/hds/form/masked-input/field.js +2 -2
  98. package/dist/components/hds/form/radio/base.js +2 -2
  99. package/dist/components/hds/form/radio/field.js +2 -2
  100. package/dist/components/hds/form/radio/group.js +2 -2
  101. package/dist/components/hds/form/radio-card/description.js +2 -2
  102. package/dist/components/hds/form/radio-card/group.js +2 -2
  103. package/dist/components/hds/form/radio-card/label.js +2 -2
  104. package/dist/components/hds/form/select/field.js +2 -2
  105. package/dist/components/hds/form/super-select/after-options.js +2 -2
  106. package/dist/components/hds/form/super-select/placeholder.js +2 -2
  107. package/dist/components/hds/form/text-input/field.js +10 -33
  108. package/dist/components/hds/form/text-input/field.js.map +1 -1
  109. package/dist/components/hds/form/textarea/field.js +2 -2
  110. package/dist/components/hds/form/toggle/base.js +2 -2
  111. package/dist/components/hds/form/toggle/field.js +2 -2
  112. package/dist/components/hds/form/toggle/group.js +2 -2
  113. package/dist/components/hds/form/visibility-toggle/index.js +2 -2
  114. package/dist/components/hds/page-header/actions.js +2 -2
  115. package/dist/components/hds/page-header/badges.js +2 -2
  116. package/dist/components/hds/page-header/description.js +2 -2
  117. package/dist/components/hds/page-header/index.js +2 -2
  118. package/dist/components/hds/page-header/subtitle.js +2 -2
  119. package/dist/components/hds/page-header/title.js +2 -2
  120. package/dist/components/hds/pagination/compact/index.js +4 -3
  121. package/dist/components/hds/pagination/compact/index.js.map +1 -1
  122. package/dist/components/hds/pagination/nav/ellipsis.js +2 -2
  123. package/dist/components/hds/pagination/numbered/index.js +5 -7
  124. package/dist/components/hds/pagination/numbered/index.js.map +1 -1
  125. package/dist/components/hds/popover-primitive/index.js +4 -5
  126. package/dist/components/hds/popover-primitive/index.js.map +1 -1
  127. package/dist/components/hds/segmented-group/index.js +2 -2
  128. package/dist/components/hds/side-nav/base.js +3 -3
  129. package/dist/components/hds/side-nav/base.js.map +1 -1
  130. package/dist/components/hds/side-nav/header/index.js +2 -2
  131. package/dist/components/hds/side-nav/index.js +37 -36
  132. package/dist/components/hds/side-nav/index.js.map +1 -1
  133. package/dist/components/hds/side-nav/list/back-link.js +2 -2
  134. package/dist/components/hds/side-nav/list/index.js +27 -10
  135. package/dist/components/hds/side-nav/list/index.js.map +1 -1
  136. package/dist/components/hds/side-nav/list/item.js +2 -2
  137. package/dist/components/hds/side-nav/list/link.js +2 -2
  138. package/dist/components/hds/side-nav/list/title.js +23 -10
  139. package/dist/components/hds/side-nav/list/title.js.map +1 -1
  140. package/dist/components/hds/side-nav/portal/index.js +2 -2
  141. package/dist/components/hds/side-nav/toggle-button.js +2 -2
  142. package/dist/components/hds/table/index.js +6 -8
  143. package/dist/components/hds/table/index.js.map +1 -1
  144. package/dist/components/hds/table/th-selectable.js +4 -5
  145. package/dist/components/hds/table/th-selectable.js.map +1 -1
  146. package/dist/components/hds/tabs/index.js +2 -3
  147. package/dist/components/hds/tabs/index.js.map +1 -1
  148. package/dist/components/hds/toast/index.js +2 -2
  149. package/dist/components/hds/yield/index.js +2 -2
  150. package/dist/modifiers/hds-anchored-position.js +15 -16
  151. package/dist/modifiers/hds-anchored-position.js.map +1 -1
  152. package/dist/modifiers/hds-clipboard.js +15 -6
  153. package/dist/modifiers/hds-clipboard.js.map +1 -1
  154. package/dist/styles/@hashicorp/design-system-components.css +41 -293
  155. package/dist/styles/@hashicorp/design-system-components.scss +2 -1
  156. package/dist/styles/components/app-side-nav/content.scss +182 -0
  157. package/dist/styles/components/app-side-nav/index.scss +9 -0
  158. package/dist/styles/components/app-side-nav/main.scss +147 -0
  159. package/dist/styles/components/app-side-nav/toggle-button.scss +101 -0
  160. package/dist/styles/components/app-side-nav/vars.scss +36 -0
  161. package/dist/styles/components/dropdown.scss +6 -0
  162. package/dist/styles/components/side-nav/content.scss +5 -0
  163. package/package.json +2 -4
  164. package/dist/_app_/components/hds/app-header/home-link.js +0 -1
  165. package/dist/_app_/components/hds/app-header/index.js +0 -1
  166. package/dist/_app_/components/hds/app-header/menu-button.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/app-side-nav/list/index.hbs","../../../../../src/components/hds/app-side-nav/list/index.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<nav class=\\\"hds-app-side-nav__list-wrapper\\\" aria-labelledby=\\\"hds-app-side-nav-header\\\" ...attributes>\\n {{yield (hash ExtraBefore=(component \\\"hds/yield\\\"))}}\\n <ul class=\\\"hds-app-side-nav__list\\\" role=\\\"list\\\" aria-labelledby={{this.titleIds}}>\\n {{yield\\n (hash\\n Item=(component \\\"hds/app-side-nav/list/item\\\")\\n BackLink=(component \\\"hds/app-side-nav/list/back-link\\\")\\n Title=(component \\\"hds/app-side-nav/list/title\\\" didInsertTitle=this.didInsertTitle)\\n Link=(component \\\"hds/app-side-nav/list/link\\\")\\n )\\n }}\\n </ul>\\n {{yield (hash ExtraAfter=(component \\\"hds/yield\\\"))}}\\n</nav>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\nimport type { ComponentLike } from '@glint/template';\nimport type { HdsYieldSignature } from '../../yield';\nimport type { HdsAppSideNavListItemSignature } from './item';\nimport type { HdsAppSideNavListBackLinkSignature } from './back-link';\nimport type { HdsAppSideNavListTitleSignature } from './title';\nimport type { HdsAppSideNavListLinkSignature } from './link';\n\nexport interface HdsAppSideNavListSignature {\n Blocks: {\n default: [\n {\n ExtraBefore?: ComponentLike<HdsYieldSignature>;\n Item?: ComponentLike<HdsAppSideNavListItemSignature>;\n BackLink?: ComponentLike<HdsAppSideNavListBackLinkSignature>;\n Title?: ComponentLike<HdsAppSideNavListTitleSignature>;\n Link?: ComponentLike<HdsAppSideNavListLinkSignature>;\n ExtraAfter?: ComponentLike<HdsYieldSignature>;\n },\n ];\n };\n Element: HTMLElement;\n}\n\nexport default class HdsAppSideNavList extends Component<HdsAppSideNavListSignature> {\n @tracked _titleIds: string[] = [];\n\n get titleIds(): string {\n return this._titleIds.join(' ');\n }\n\n @action\n didInsertTitle(titleId: string): void {\n this._titleIds = [...this._titleIds, titleId];\n }\n}\n"],"names":["HdsAppSideNavList","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","titleIds","_titleIds","join","didInsertTitle","titleId","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;AACA,eAAe,kBAAkB,CAAC,otBAAotB;;;AC8BjuBA,IAAAA,iBAAiB,IAAAC,MAAA,GAAvB,MAAMD,iBAAiB,SAASE,SAAS,CAA6B;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA,CAAA;AAAAC,IAAAA,0BAAA,oBAAAC,WAAA,EAAA,IAAA,CAAA,CAAA;AAAA,GAAA;EAGnF,IAAIC,QAAQA,GAAW;AACrB,IAAA,OAAO,IAAI,CAACC,SAAS,CAACC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjC,GAAA;EAGAC,cAAcA,CAACC,OAAe,EAAQ;IACpC,IAAI,CAACH,SAAS,GAAG,CAAC,GAAG,IAAI,CAACA,SAAS,EAAEG,OAAO,CAAC,CAAA;AAC/C,GAAA;AACF,CAAC,GAAAL,WAAA,GAAAM,yBAAA,CAAAX,MAAA,CAAAY,SAAA,EAAA,WAAA,EAAA,CAVEC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;AAAAC,EAAAA,WAAA,cAAA;AAAA,IAAA,OAAuB,EAAE,CAAA;AAAA,GAAA;AAAA,CAAAN,CAAAA,EAAAA,yBAAA,CAAAX,MAAA,CAAAY,SAAA,EAMhCM,gBAAAA,EAAAA,CAAAA,MAAM,GAAAC,MAAA,CAAAC,wBAAA,CAAApB,MAAA,CAAAY,SAAA,EAAA,gBAAA,CAAA,EAAAZ,MAAA,CAAAY,SAAA,IAAAZ,MAAA,EAAA;AAP6BqB,oBAAA,CAAAC,QAAA,EAAjBvB,iBAAiB,CAAA;;;;"}
@@ -0,0 +1,16 @@
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
+ import { precompileTemplate } from '@ember/template-compilation';
3
+ import { setComponentTemplate } from '@ember/component';
4
+
5
+ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n\n<li class=\"hds-app-side-nav__list-item\" ...attributes>\n {{yield}}\n</li>");
6
+
7
+ /**
8
+ * Copyright (c) HashiCorp, Inc.
9
+ * SPDX-License-Identifier: MPL-2.0
10
+ */
11
+
12
+ const HdsAppSideNavListItem = TemplateOnlyComponent();
13
+ var item = setComponentTemplate(TEMPLATE, HdsAppSideNavListItem);
14
+
15
+ export { item as default };
16
+ //# sourceMappingURL=item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item.js","sources":["../../../../../src/components/hds/app-side-nav/list/item.hbs","../../../../../src/components/hds/app-side-nav/list/item.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<li class=\\\"hds-app-side-nav__list-item\\\" ...attributes>\\n {{yield}}\\n</li>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport TemplateOnlyComponent from '@ember/component/template-only';\n\nexport interface HdsAppSideNavListItemSignature {\n Blocks: {\n default: [];\n };\n Element: HTMLLIElement;\n}\n\nconst HdsAppSideNavListItem =\n TemplateOnlyComponent<HdsAppSideNavListItemSignature>();\n\nexport default HdsAppSideNavListItem;\n"],"names":["HdsAppSideNavListItem","TemplateOnlyComponent","setComponentTemplate","TEMPLATE"],"mappings":";;;;AACA,eAAe,kBAAkB,CAAC,8JAA8J;;ACDhM;AACA;AACA;AACA;;AAWA,MAAMA,qBAAqB,GACzBC,qBAAqB,EAAkC,CAAA;AAEzD,WAAAC,oBAAA,CAAAC,QAAA,EAAeH,qBAAqB,CAAA;;;;"}
@@ -0,0 +1,16 @@
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
+ import { precompileTemplate } from '@ember/template-compilation';
3
+ import { setComponentTemplate } from '@ember/component';
4
+
5
+ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n\n<Hds::AppSideNav::List::Item>\n <Hds::Interactive\n class=\"hds-app-side-nav__list-item-link {{if @isActive \'active\'}}\"\n @current-when={{@current-when}}\n @models={{hds-link-to-models @model @models}}\n @query={{hds-link-to-query @query}}\n @replace={{@replace}}\n @route={{@route}}\n @isRouteExternal={{@isRouteExternal}}\n @href={{@href}}\n @isHrefExternal={{@isHrefExternal}}\n aria-current={{if @isActive \"page\"}}\n ...attributes\n >\n {{#if @icon}}\n <Hds::Icon class=\"hds-app-side-nav__list-item-icon-leading\" @name={{@icon}} />\n {{/if}}\n\n {{#if @text}}\n <span class=\"hds-app-side-nav__list-item-text hds-typography-body-200 hds-font-weight-medium\">\n {{@text}}\n </span>\n {{/if}}\n\n {{#if @count}}\n <Hds::BadgeCount @text={{@count}} @type=\"outlined\" @size=\"small\" />\n {{/if}}\n\n {{#if @badge}}\n <Hds::Badge @text={{@badge}} @type=\"outlined\" @size=\"small\" />\n {{/if}}\n\n {{yield}}\n\n {{#if @hasSubItems}}\n <span class=\"hds-app-side-nav__list-item-icon-trailing\">\n <Hds::Icon @name=\"chevron-right\" />\n </span>\n {{/if}}\n {{#if @isHrefExternal}}\n <span class=\"hds-app-side-nav__list-item-icon-trailing\">\n <Hds::Icon @name=\"external-link\" />\n </span>\n {{/if}}\n </Hds::Interactive>\n</Hds::AppSideNav::List::Item>");
6
+
7
+ /**
8
+ * Copyright (c) HashiCorp, Inc.
9
+ * SPDX-License-Identifier: MPL-2.0
10
+ */
11
+
12
+ const HdsAppSideNavListLink = TemplateOnlyComponent();
13
+ var link = setComponentTemplate(TEMPLATE, HdsAppSideNavListLink);
14
+
15
+ export { link as default };
16
+ //# sourceMappingURL=link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.js","sources":["../../../../../src/components/hds/app-side-nav/list/link.hbs","../../../../../src/components/hds/app-side-nav/list/link.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<Hds::AppSideNav::List::Item>\\n <Hds::Interactive\\n class=\\\"hds-app-side-nav__list-item-link {{if @isActive \\'active\\'}}\\\"\\n @current-when={{@current-when}}\\n @models={{hds-link-to-models @model @models}}\\n @query={{hds-link-to-query @query}}\\n @replace={{@replace}}\\n @route={{@route}}\\n @isRouteExternal={{@isRouteExternal}}\\n @href={{@href}}\\n @isHrefExternal={{@isHrefExternal}}\\n aria-current={{if @isActive \\\"page\\\"}}\\n ...attributes\\n >\\n {{#if @icon}}\\n <Hds::Icon class=\\\"hds-app-side-nav__list-item-icon-leading\\\" @name={{@icon}} />\\n {{/if}}\\n\\n {{#if @text}}\\n <span class=\\\"hds-app-side-nav__list-item-text hds-typography-body-200 hds-font-weight-medium\\\">\\n {{@text}}\\n </span>\\n {{/if}}\\n\\n {{#if @count}}\\n <Hds::BadgeCount @text={{@count}} @type=\\\"outlined\\\" @size=\\\"small\\\" />\\n {{/if}}\\n\\n {{#if @badge}}\\n <Hds::Badge @text={{@badge}} @type=\\\"outlined\\\" @size=\\\"small\\\" />\\n {{/if}}\\n\\n {{yield}}\\n\\n {{#if @hasSubItems}}\\n <span class=\\\"hds-app-side-nav__list-item-icon-trailing\\\">\\n <Hds::Icon @name=\\\"chevron-right\\\" />\\n </span>\\n {{/if}}\\n {{#if @isHrefExternal}}\\n <span class=\\\"hds-app-side-nav__list-item-icon-trailing\\\">\\n <Hds::Icon @name=\\\"external-link\\\" />\\n </span>\\n {{/if}}\\n </Hds::Interactive>\\n</Hds::AppSideNav::List::Item>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport TemplateOnlyComponent from '@ember/component/template-only';\n\nimport type { HdsIconSignature } from '../../icon';\nimport type { HdsInteractiveSignature } from '../../interactive';\n\nexport interface HdsAppSideNavListLinkSignature {\n Args: HdsInteractiveSignature['Args'] & {\n icon?: HdsIconSignature['Args']['name'];\n text?: string;\n badge?: string;\n count?: string;\n hasSubItems?: boolean;\n isActive?: boolean;\n };\n Blocks: {\n default: [];\n };\n Element: HdsInteractiveSignature['Element'];\n}\n\nconst HdsAppSideNavListLink =\n TemplateOnlyComponent<HdsAppSideNavListLinkSignature>();\n\nexport default HdsAppSideNavListLink;\n"],"names":["HdsAppSideNavListLink","TemplateOnlyComponent","setComponentTemplate","TEMPLATE"],"mappings":";;;;AACA,eAAe,kBAAkB,CAAC,88CAA88C;;ACDh/C;AACA;AACA;AACA;;AAsBA,MAAMA,qBAAqB,GACzBC,qBAAqB,EAAkC,CAAA;AAEzD,WAAAC,oBAAA,CAAAC,QAAA,EAAeH,qBAAqB,CAAA;;;;"}
@@ -0,0 +1,29 @@
1
+ import { _ as _applyDecoratedDescriptor, a as _defineProperty } from '../../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
2
+ import { guidFor } from '@ember/object/internals';
3
+ import { action } from '@ember/object';
4
+ import Component from '@glimmer/component';
5
+ import { precompileTemplate } from '@ember/template-compilation';
6
+ import { setComponentTemplate } from '@ember/component';
7
+
8
+ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n\n<Hds::AppSideNav::List::Item>\n <div\n class=\"hds-app-side-nav__list-title hds-typography-body-100 hds-font-weight-semibold\"\n id={{this.titleId}}\n {{did-insert this.didInsertTitle}}\n ...attributes\n >{{~yield~}}</div>\n</Hds::AppSideNav::List::Item>");
9
+
10
+ var _class;
11
+ let HdsAppSideNavListTitle = (_class = class HdsAppSideNavListTitle extends Component {
12
+ constructor(...args) {
13
+ super(...args);
14
+ /* Generate a unique ID for each Title */
15
+ _defineProperty(this, "titleId", 'title-' + guidFor(this));
16
+ }
17
+ didInsertTitle(element) {
18
+ const {
19
+ didInsertTitle
20
+ } = this.args;
21
+ if (typeof didInsertTitle === 'function') {
22
+ didInsertTitle(element.id);
23
+ }
24
+ }
25
+ }, (_applyDecoratedDescriptor(_class.prototype, "didInsertTitle", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertTitle"), _class.prototype)), _class);
26
+ setComponentTemplate(TEMPLATE, HdsAppSideNavListTitle);
27
+
28
+ export { HdsAppSideNavListTitle as default };
29
+ //# sourceMappingURL=title.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"title.js","sources":["../../../../../src/components/hds/app-side-nav/list/title.hbs","../../../../../src/components/hds/app-side-nav/list/title.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<Hds::AppSideNav::List::Item>\\n <div\\n class=\\\"hds-app-side-nav__list-title hds-typography-body-100 hds-font-weight-semibold\\\"\\n id={{this.titleId}}\\n {{did-insert this.didInsertTitle}}\\n ...attributes\\n >{{~yield~}}</div>\\n</Hds::AppSideNav::List::Item>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { guidFor } from '@ember/object/internals';\nimport { action } from '@ember/object';\nimport Component from '@glimmer/component';\n\nexport interface HdsAppSideNavListTitleSignature {\n Args: {\n didInsertTitle?: (titleId: string) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAppSideNavListTitle extends Component<HdsAppSideNavListTitleSignature> {\n /* Generate a unique ID for each Title */\n titleId = 'title-' + guidFor(this);\n\n @action\n didInsertTitle(element: HTMLElement): void {\n const { didInsertTitle } = this.args;\n\n if (typeof didInsertTitle === 'function') {\n didInsertTitle(element.id);\n }\n }\n}\n"],"names":["HdsAppSideNavListTitle","_class","Component","constructor","args","_defineProperty","guidFor","didInsertTitle","element","id","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;AACA,eAAe,kBAAkB,CAAC,8VAA8V;;;ACkB3WA,IAAAA,sBAAsB,IAAAC,MAAA,GAA5B,MAAMD,sBAAsB,SAASE,SAAS,CAAkC;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA,CAAA;AAC7F;AAAAC,IAAAA,eAAA,kBACU,QAAQ,GAAGC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAA;AAAA,GAAA;EAGlCC,cAAcA,CAACC,OAAoB,EAAQ;IACzC,MAAM;AAAED,MAAAA,cAAAA;KAAgB,GAAG,IAAI,CAACH,IAAI,CAAA;AAEpC,IAAA,IAAI,OAAOG,cAAc,KAAK,UAAU,EAAE;AACxCA,MAAAA,cAAc,CAACC,OAAO,CAACC,EAAE,CAAC,CAAA;AAC5B,KAAA;AACF,GAAA;AACF,CAAC,GAAAC,yBAAA,CAAAT,MAAA,CAAAU,SAAA,EAAA,gBAAA,EAAA,CAREC,MAAM,CAAAC,EAAAA,MAAA,CAAAC,wBAAA,CAAAb,MAAA,CAAAU,SAAA,qBAAAV,MAAA,CAAAU,SAAA,CAAA,GAAAV,MAAA,EAAA;AAJkCc,oBAAA,CAAAC,QAAA,EAAtBhB,sBAAsB,CAAA;;;;"}
@@ -0,0 +1,16 @@
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
+ import { precompileTemplate } from '@ember/template-compilation';
3
+ import { setComponentTemplate } from '@ember/component';
4
+
5
+ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n\n<Portal @target={{if @targetName @targetName \"hds-app-side-nav-portal-target\"}}>\n <div class=\"hds-app-side-nav__content-panel\" ...attributes>\n <Hds::AppSideNav::List aria-label={{@ariaLabel}} as |ListElements|>\n {{yield ListElements}}\n </Hds::AppSideNav::List>\n </div>\n</Portal>");
6
+
7
+ /**
8
+ * Copyright (c) HashiCorp, Inc.
9
+ * SPDX-License-Identifier: MPL-2.0
10
+ */
11
+
12
+ const HdsAppSideNavPortal = TemplateOnlyComponent();
13
+ var index = setComponentTemplate(TEMPLATE, HdsAppSideNavPortal);
14
+
15
+ export { index as default };
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/app-side-nav/portal/index.hbs","../../../../../src/components/hds/app-side-nav/portal/index.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<Portal @target={{if @targetName @targetName \\\"hds-app-side-nav-portal-target\\\"}}>\\n <div class=\\\"hds-app-side-nav__content-panel\\\" ...attributes>\\n <Hds::AppSideNav::List aria-label={{@ariaLabel}} as |ListElements|>\\n {{yield ListElements}}\\n </Hds::AppSideNav::List>\\n </div>\\n</Portal>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport TemplateOnlyComponent from '@ember/component/template-only';\n\nimport type { HdsAppSideNavListSignature } from '../list/index';\n\n// TODO! understand how this should be done \"correctly\"\n// import type { PortalSignature } from 'ember-stargate/components/portal';\ninterface PortalSignature {\n Args: {\n target: string;\n renderInPlace?: boolean;\n fallback?: 'inplace';\n };\n Blocks: {\n default: [];\n };\n}\n\nexport interface HdsAppSideNavPortalSignature {\n Args: PortalSignature['Args'] & {\n ariaLabel?: string;\n targetName?: string;\n };\n Blocks: HdsAppSideNavListSignature['Blocks'];\n Element: HTMLDivElement;\n}\n\nconst HdsAppSideNavPortal =\n TemplateOnlyComponent<HdsAppSideNavPortalSignature>();\n\nexport default HdsAppSideNavPortal;\n"],"names":["HdsAppSideNavPortal","TemplateOnlyComponent","setComponentTemplate","TEMPLATE"],"mappings":";;;;AACA,eAAe,kBAAkB,CAAC,+XAA+X;;ACDja;AACA;AACA;AACA;;AA4BA,MAAMA,mBAAmB,GACvBC,qBAAqB,EAAgC,CAAA;AAEvD,YAAAC,oBAAA,CAAAC,QAAA,EAAeH,mBAAmB,CAAA;;;;"}
@@ -0,0 +1,173 @@
1
+ import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty, a as _defineProperty } from '../../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
2
+ import Component from '@glimmer/component';
3
+ import { inject } from '@ember/service';
4
+ import { tracked } from '@glimmer/tracking';
5
+ import { action } from '@ember/object';
6
+ import { DEBUG } from '@glimmer/env';
7
+ import { macroCondition, isTesting } from '@embroider/macros';
8
+ import { precompileTemplate } from '@ember/template-compilation';
9
+ import { setComponentTemplate } from '@ember/component';
10
+
11
+ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n\n<div class=\"hds-app-side-nav__content\" ...attributes>\n <PortalTarget\n @multiple={{true}}\n @onChange={{this.panelsChanged}}\n @name={{if @targetName @targetName \"hds-app-side-nav-portal-target\"}}\n class=\"hds-app-side-nav__content-panels hds-app-side-nav-hide-when-minimized\"\n {{did-update this.didUpdateSubnav this.numSubnavs}}\n />\n</div>");
12
+
13
+ var _class, _descriptor, _descriptor2, _descriptor3;
14
+ let HdsAppSideNavPortalTarget = (_class = class HdsAppSideNavPortalTarget extends Component {
15
+ constructor(...args) {
16
+ super(...args);
17
+ _initializerDefineProperty(this, "router", _descriptor, this);
18
+ _initializerDefineProperty(this, "numSubnavs", _descriptor2, this);
19
+ _initializerDefineProperty(this, "lastPanelEl", _descriptor3, this);
20
+ _defineProperty(this, "prefersReducedMotionMQ", window.matchMedia('(prefers-reduced-motion: reduce)'));
21
+ }
22
+ static get prefersReducedMotionOverride() {
23
+ return macroCondition(isTesting()) ? true : false;
24
+ }
25
+ get prefersReducedMotion() {
26
+ return HdsAppSideNavPortalTarget.prefersReducedMotionOverride || this.prefersReducedMotionMQ && this.prefersReducedMotionMQ.matches;
27
+ }
28
+ panelsChanged(portalCount) {
29
+ this.numSubnavs = portalCount;
30
+ }
31
+ didUpdateSubnav(element, [count]) {
32
+ this.animateSubnav(element, [count]);
33
+ }
34
+ animateSubnav(element, [count]) {
35
+ /*
36
+ * Here is ascii art of what the layout looks like for this setup
37
+ *
38
+ AppSideNav
39
+ +----------------------+
40
+ | +------------------+ |
41
+ | | ("header") | |
42
+ | +------------------+ |
43
+ | |
44
+ | +------------------+ |
45
+ | | ("body") | |
46
+ (PortalTarget) | | | |
47
+ +----------------------------------------------+ | |
48
+ | +----------+ +----------+ | +----------+ | | |
49
+ | | (Portal) | | (Portal) | | (Portal) | | | |
50
+ | | | | | | | | | | |
51
+ | | hidden | | hidden | | *active* | | | |
52
+ | | panel | | panel | | | panel | | | |
53
+ | | | | | | | | | |
54
+ | | | | | | | | | | |
55
+ | | | | | | | | | |
56
+ | | | | | | | | | | |
57
+ | | | | | | | | | |
58
+ | | | | | | | | | | |
59
+ | | | | | | | | | |
60
+ | +----------+ +----------+ | +----------+ | | |
61
+ +----------------------------------------------+ | |
62
+ | | | |
63
+ | +------------------+ |
64
+ | |
65
+ | +------------------+ |
66
+ | | ("footer") | |
67
+ | +------------------+ |
68
+ +----------------------+
69
+ *
70
+ * every time `HcAppFrame::SideNav::Portal` renders, it contains a portaled "panel"
71
+ * that is rendered into the `hds-app-side-nav__content-panels` (inside the PortalTarget).
72
+ *
73
+ * Rendering or unrendering other `HcAppFrame::SideNav::Portal`s triggers the number of
74
+ * subnavs to change (via `numSubnavs`), so this function runs and slides
75
+ * `hds-app-side-nav__content-panels` left or right using the `element.animate` api.
76
+ *
77
+ * */
78
+
79
+ const activeIndex = count - 1;
80
+ const targetElement = element;
81
+ const {
82
+ prefersReducedMotion
83
+ } = this;
84
+ const styles = getComputedStyle(targetElement);
85
+ const columnWidth = styles.getPropertyValue('--hds-app-sidenav-width-expanded');
86
+ const slideDuration = prefersReducedMotion ? 0 : 150;
87
+ let fadeDuration = prefersReducedMotion ? 0 : 175;
88
+ let fadeDelay = prefersReducedMotion ? 0 : 50;
89
+
90
+ // slide entire parent panel
91
+ const start = styles.transform;
92
+ const end = `translateX(-${activeIndex * parseInt(columnWidth, 10)}px)`;
93
+ const anim = targetElement.animate([{
94
+ transform: start
95
+ }, {
96
+ transform: end
97
+ }], {
98
+ duration: slideDuration,
99
+ easing: 'cubic-bezier(0.65, 0, 0.35, 1)',
100
+ fill: 'forwards'
101
+ });
102
+ anim.finished.then(() => {
103
+ // uncomment this if we need/want to scroll the element to the top
104
+ // targetElement.scrollIntoView(true);
105
+ if (activeIndex > 0) {
106
+ const allPrev = Array.from(targetElement.children).slice(0, activeIndex);
107
+ for (const ele of allPrev) {
108
+ ele.ariaHidden = 'true';
109
+ ele.style.setProperty('visibility', 'hidden');
110
+ ele.style.setProperty('opacity', '0');
111
+ }
112
+ }
113
+ // Notice: we don't add the styles by default because it writes a `style` attribute to the element and it causes an additional re-render
114
+ if (DEBUG) {
115
+ // Check the visibility of the element before attempting to commitStyles.
116
+ if (targetElement.offsetParent !== null) {
117
+ anim.commitStyles();
118
+ }
119
+ }
120
+ });
121
+
122
+ // fade in next panel
123
+ const nextPanelEl = targetElement.children[activeIndex];
124
+
125
+ // get reference to last child panel
126
+ const lastPanelEl = targetElement.children[targetElement.children.length - 1];
127
+ if (nextPanelEl) {
128
+ nextPanelEl.ariaHidden = 'false';
129
+ nextPanelEl.style.setProperty('visibility', 'visible');
130
+ // this eliminates a flicker if there's only one subnav rendering or if we
131
+ // already just rendered this panel.
132
+ if (this.lastPanelEl) {
133
+ if (activeIndex === 0 || nextPanelEl.isSameNode(this.lastPanelEl)) {
134
+ fadeDelay = 0;
135
+ fadeDuration = 0;
136
+ }
137
+ }
138
+
139
+ // remember the last panel
140
+ this.lastPanelEl = lastPanelEl;
141
+ nextPanelEl.animate([{
142
+ opacity: '0'
143
+ }, {
144
+ opacity: '1'
145
+ }], {
146
+ delay: fadeDelay,
147
+ duration: fadeDuration,
148
+ fill: 'forwards'
149
+ });
150
+ }
151
+ }
152
+ }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [inject], {
153
+ configurable: true,
154
+ enumerable: true,
155
+ writable: true,
156
+ initializer: null
157
+ }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "numSubnavs", [tracked], {
158
+ configurable: true,
159
+ enumerable: true,
160
+ writable: true,
161
+ initializer: function () {
162
+ return 0;
163
+ }
164
+ }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "lastPanelEl", [tracked], {
165
+ configurable: true,
166
+ enumerable: true,
167
+ writable: true,
168
+ initializer: null
169
+ }), _applyDecoratedDescriptor(_class.prototype, "panelsChanged", [action], Object.getOwnPropertyDescriptor(_class.prototype, "panelsChanged"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateSubnav", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateSubnav"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "animateSubnav", [action], Object.getOwnPropertyDescriptor(_class.prototype, "animateSubnav"), _class.prototype)), _class);
170
+ setComponentTemplate(TEMPLATE, HdsAppSideNavPortalTarget);
171
+
172
+ export { HdsAppSideNavPortalTarget as default };
173
+ //# sourceMappingURL=target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target.js","sources":["../../../../../src/components/hds/app-side-nav/portal/target.hbs","../../../../../src/components/hds/app-side-nav/portal/target.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<div class=\\\"hds-app-side-nav__content\\\" ...attributes>\\n <PortalTarget\\n @multiple={{true}}\\n @onChange={{this.panelsChanged}}\\n @name={{if @targetName @targetName \\\"hds-app-side-nav-portal-target\\\"}}\\n class=\\\"hds-app-side-nav__content-panels hds-app-side-nav-hide-when-minimized\\\"\\n {{did-update this.didUpdateSubnav this.numSubnavs}}\\n />\\n</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { inject as service } from '@ember/service';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { DEBUG } from '@glimmer/env';\nimport { macroCondition, isTesting } from '@embroider/macros';\n\nimport type { HdsAppSideNavPortalSignature } from './index';\n\n// import { PortalTargetSignature } from 'ember-stargate/components/portal-target';\ninterface PortalTargetSignature {\n Element: HTMLDivElement;\n Args: {\n name: string;\n multiple?: boolean;\n onChange?: (count: number) => void;\n };\n Blocks: {\n default: [number];\n };\n}\n\nimport type { Registry as Services } from '@ember/service';\n\ninterface HdsAppSideNavPortalTargetSignature {\n Args: PortalTargetSignature['Args'] & {\n targetName?: HdsAppSideNavPortalSignature['Args']['targetName'];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAppSideNavPortalTarget extends Component<HdsAppSideNavPortalTargetSignature> {\n @service router!: Services['router'];\n\n @tracked numSubnavs = 0;\n @tracked lastPanelEl: Element | undefined;\n\n static get prefersReducedMotionOverride(): boolean {\n return macroCondition(isTesting()) ? true : false;\n }\n\n prefersReducedMotionMQ = window.matchMedia(\n '(prefers-reduced-motion: reduce)'\n );\n\n get prefersReducedMotion(): boolean {\n return (\n HdsAppSideNavPortalTarget.prefersReducedMotionOverride ||\n (this.prefersReducedMotionMQ && this.prefersReducedMotionMQ.matches)\n );\n }\n\n @action\n panelsChanged(portalCount: number): void {\n this.numSubnavs = portalCount;\n }\n\n @action\n didUpdateSubnav(element: HTMLElement, [count]: [number]): void {\n this.animateSubnav(element, [count]);\n }\n\n @action\n animateSubnav(element: HTMLElement, [count]: [number]): void {\n /*\n * Here is ascii art of what the layout looks like for this setup\n *\n\n AppSideNav\n +----------------------+\n | +------------------+ |\n | | (\"header\") | |\n | +------------------+ |\n | |\n | +------------------+ |\n | | (\"body\") | |\n (PortalTarget) | | | |\n +----------------------------------------------+ | |\n | +----------+ +----------+ | +----------+ | | |\n | | (Portal) | | (Portal) | | (Portal) | | | |\n | | | | | | | | | | |\n | | hidden | | hidden | | *active* | | | |\n | | panel | | panel | | | panel | | | |\n | | | | | | | | | |\n | | | | | | | | | | |\n | | | | | | | | | |\n | | | | | | | | | | |\n | | | | | | | | | |\n | | | | | | | | | | |\n | | | | | | | | | |\n | +----------+ +----------+ | +----------+ | | |\n +----------------------------------------------+ | |\n | | | |\n | +------------------+ |\n | |\n | +------------------+ |\n | | (\"footer\") | |\n | +------------------+ |\n +----------------------+\n\n *\n * every time `HcAppFrame::SideNav::Portal` renders, it contains a portaled \"panel\"\n * that is rendered into the `hds-app-side-nav__content-panels` (inside the PortalTarget).\n *\n * Rendering or unrendering other `HcAppFrame::SideNav::Portal`s triggers the number of\n * subnavs to change (via `numSubnavs`), so this function runs and slides\n * `hds-app-side-nav__content-panels` left or right using the `element.animate` api.\n *\n * */\n\n const activeIndex = count - 1;\n const targetElement = element;\n const { prefersReducedMotion } = this;\n\n const styles = getComputedStyle(targetElement);\n const columnWidth = styles.getPropertyValue(\n '--hds-app-sidenav-width-expanded'\n );\n const slideDuration = prefersReducedMotion ? 0 : 150;\n let fadeDuration = prefersReducedMotion ? 0 : 175;\n let fadeDelay = prefersReducedMotion ? 0 : 50;\n\n // slide entire parent panel\n const start = styles.transform;\n const end = `translateX(-${activeIndex * parseInt(columnWidth, 10)}px)`;\n const anim = targetElement.animate(\n [{ transform: start }, { transform: end }],\n {\n duration: slideDuration,\n easing: 'cubic-bezier(0.65, 0, 0.35, 1)',\n fill: 'forwards',\n }\n );\n\n anim.finished.then((): void => {\n // uncomment this if we need/want to scroll the element to the top\n // targetElement.scrollIntoView(true);\n if (activeIndex > 0) {\n const allPrev = Array.from(targetElement.children).slice(\n 0,\n activeIndex\n ) as HTMLElement[];\n for (const ele of allPrev) {\n ele.ariaHidden = 'true';\n ele.style.setProperty('visibility', 'hidden');\n ele.style.setProperty('opacity', '0');\n }\n }\n // Notice: we don't add the styles by default because it writes a `style` attribute to the element and it causes an additional re-render\n if (DEBUG) {\n // Check the visibility of the element before attempting to commitStyles.\n if (targetElement.offsetParent !== null) {\n anim.commitStyles();\n }\n }\n });\n\n // fade in next panel\n const nextPanelEl = targetElement.children[activeIndex] as HTMLElement;\n\n // get reference to last child panel\n const lastPanelEl = targetElement.children[\n targetElement.children.length - 1\n ] as HTMLElement;\n\n if (nextPanelEl) {\n nextPanelEl.ariaHidden = 'false';\n nextPanelEl.style.setProperty('visibility', 'visible');\n // this eliminates a flicker if there's only one subnav rendering or if we\n // already just rendered this panel.\n if (this.lastPanelEl) {\n if (activeIndex === 0 || nextPanelEl.isSameNode(this.lastPanelEl)) {\n fadeDelay = 0;\n fadeDuration = 0;\n }\n }\n\n // remember the last panel\n this.lastPanelEl = lastPanelEl;\n\n nextPanelEl.animate([{ opacity: '0' }, { opacity: '1' }], {\n delay: fadeDelay,\n duration: fadeDuration,\n fill: 'forwards',\n });\n }\n }\n}\n"],"names":["HdsAppSideNavPortalTarget","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_defineProperty","window","matchMedia","prefersReducedMotionOverride","macroCondition","isTesting","prefersReducedMotion","prefersReducedMotionMQ","matches","panelsChanged","portalCount","numSubnavs","didUpdateSubnav","element","count","animateSubnav","activeIndex","targetElement","styles","getComputedStyle","columnWidth","getPropertyValue","slideDuration","fadeDuration","fadeDelay","start","transform","end","parseInt","anim","animate","duration","easing","fill","finished","then","allPrev","Array","from","children","slice","ele","ariaHidden","style","setProperty","DEBUG","offsetParent","commitStyles","nextPanelEl","lastPanelEl","length","isSameNode","opacity","delay","_applyDecoratedDescriptor","prototype","service","configurable","enumerable","writable","initializer","tracked","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
+ import { precompileTemplate } from '@ember/template-compilation';
3
+ import { setComponentTemplate } from '@ember/component';
4
+
5
+ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<button class=\"hds-app-side-nav__toggle-button\" type=\"button\" ...attributes>\n <Hds::Icon @name={{@icon}} />\n</button>");
6
+
7
+ /**
8
+ * Copyright (c) HashiCorp, Inc.
9
+ * SPDX-License-Identifier: MPL-2.0
10
+ */
11
+
12
+ const HdsAppSideNavToggleButton = TemplateOnlyComponent();
13
+ var toggleButton = setComponentTemplate(TEMPLATE, HdsAppSideNavToggleButton);
14
+
15
+ export { toggleButton as default };
16
+ //# sourceMappingURL=toggle-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-button.js","sources":["../../../../src/components/hds/app-side-nav/toggle-button.hbs","../../../../src/components/hds/app-side-nav/toggle-button.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<button class=\\\"hds-app-side-nav__toggle-button\\\" type=\\\"button\\\" ...attributes>\\n <Hds::Icon @name={{@icon}} />\\n</button>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport TemplateOnlyComponent from '@ember/component/template-only';\n\nimport type { HdsIconSignature } from '../icon';\n\ninterface HdsAppSideNavToggleButtonSignature {\n Args: {\n icon: HdsIconSignature['Args']['name'];\n };\n Element: HTMLButtonElement;\n}\n\nconst HdsAppSideNavToggleButton =\n TemplateOnlyComponent<HdsAppSideNavToggleButtonSignature>();\n\nexport default HdsAppSideNavToggleButton;\n"],"names":["HdsAppSideNavToggleButton","TemplateOnlyComponent","setComponentTemplate","TEMPLATE"],"mappings":";;;;AACA,eAAe,kBAAkB,CAAC,4MAA4M;;ACD9O;AACA;AACA;AACA;;AAaA,MAAMA,yBAAyB,GAC7BC,qBAAqB,EAAsC,CAAA;AAE7D,mBAAAC,oBAAA,CAAAC,QAAA,EAAeH,yBAAyB,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsApplicationStateBody = templateOnlyComponent();
12
+ const HdsApplicationStateBody = TemplateOnlyComponent();
13
13
  var body = setComponentTemplate(TEMPLATE, HdsApplicationStateBody);
14
14
 
15
15
  export { body as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsApplicationStateFooter = templateOnlyComponent();
12
+ const HdsApplicationStateFooter = TemplateOnlyComponent();
13
13
  var footer = setComponentTemplate(TEMPLATE, HdsApplicationStateFooter);
14
14
 
15
15
  export { footer as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsApplicationStateMedia = templateOnlyComponent();
12
+ const HdsApplicationStateMedia = TemplateOnlyComponent();
13
13
  var media = setComponentTemplate(TEMPLATE, HdsApplicationStateMedia);
14
14
 
15
15
  export { media as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsButtonSet = templateOnlyComponent();
12
+ const HdsButtonSet = TemplateOnlyComponent();
13
13
  var index = setComponentTemplate(TEMPLATE, HdsButtonSet);
14
14
 
15
15
  export { index as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsCodeBlockCopyButton = templateOnlyComponent();
12
+ const HdsCodeBlockCopyButton = TemplateOnlyComponent();
13
13
  var copyButton = setComponentTemplate(TEMPLATE, HdsCodeBlockCopyButton);
14
14
 
15
15
  export { copyButton as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsCodeBlockDescription = templateOnlyComponent();
12
+ const HdsCodeBlockDescription = TemplateOnlyComponent();
13
13
  var description = setComponentTemplate(TEMPLATE, HdsCodeBlockDescription);
14
14
 
15
15
  export { description as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsDialogPrimitiveBody = templateOnlyComponent();
12
+ const HdsDialogPrimitiveBody = TemplateOnlyComponent();
13
13
  var body = setComponentTemplate(TEMPLATE, HdsDialogPrimitiveBody);
14
14
 
15
15
  export { body as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsDialogPrimitiveDescription = templateOnlyComponent();
12
+ const HdsDialogPrimitiveDescription = TemplateOnlyComponent();
13
13
  var description = setComponentTemplate(TEMPLATE, HdsDialogPrimitiveDescription);
14
14
 
15
15
  export { description as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsDialogPrimitiveOverlay = templateOnlyComponent();
12
+ const HdsDialogPrimitiveOverlay = TemplateOnlyComponent();
13
13
  var overlay = setComponentTemplate(TEMPLATE, HdsDialogPrimitiveOverlay);
14
14
 
15
15
  export { overlay as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsDialogPrimitiveWrapper = templateOnlyComponent();
12
+ const HdsDialogPrimitiveWrapper = TemplateOnlyComponent();
13
13
  var wrapper = setComponentTemplate(TEMPLATE, HdsDialogPrimitiveWrapper);
14
14
 
15
15
  export { wrapper as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsDropdownFooter = templateOnlyComponent();
12
+ const HdsDropdownFooter = TemplateOnlyComponent();
13
13
  var footer = setComponentTemplate(TEMPLATE, HdsDropdownFooter);
14
14
 
15
15
  export { footer as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsDropdownHeader = templateOnlyComponent();
12
+ const HdsDropdownHeader = TemplateOnlyComponent();
13
13
  var header = setComponentTemplate(TEMPLATE, HdsDropdownHeader);
14
14
 
15
15
  export { header as default };
@@ -28,13 +28,17 @@ let HdsDropdown = (_class = class HdsDropdown extends Component {
28
28
  get enableCollisionDetection() {
29
29
  return this.args.enableCollisionDetection ?? false;
30
30
  }
31
+ get matchToggleWidth() {
32
+ return this.args.matchToggleWidth ?? false;
33
+ }
31
34
  get anchoredPositionOptions() {
32
35
  // custom options specific for the `RichTooltip` component
33
36
  // for details see the `hds-anchored-position` modifier
34
37
  return {
35
38
  placement: HdsDropdownPositionToPlacementValues[this.listPosition],
36
39
  offsetOptions: 4,
37
- enableCollisionDetection: this.enableCollisionDetection ? 'flip' : false
40
+ enableCollisionDetection: this.enableCollisionDetection ? 'flip' : false,
41
+ matchToggleWidth: this.matchToggleWidth
38
42
  };
39
43
  }
40
44
 
@@ -66,8 +70,8 @@ let HdsDropdown = (_class = class HdsDropdown extends Component {
66
70
  // context: https://github.com/hashicorp/design-system/pull/2309#discussion_r1706941892
67
71
  classes.push(`hds-dropdown__content--position-${this.listPosition}`);
68
72
 
69
- // add a class based on the @width argument
70
- if (this.args.width) {
73
+ // add a class based on the @width or @matchToggleWidth arguments
74
+ if (this.args.width || this.args.matchToggleWidth) {
71
75
  classes.push('hds-dropdown__content--fixed-width');
72
76
  }
73
77
  return classes.join(' ');