@hashicorp/design-system-components 4.13.0 → 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 (306) hide show
  1. package/declarations/components/hds/accordion/index.d.ts +1 -2
  2. package/declarations/components/hds/accordion/index.d.ts.map +1 -1
  3. package/declarations/components/hds/accordion/item/button.d.ts +1 -2
  4. package/declarations/components/hds/accordion/item/button.d.ts.map +1 -1
  5. package/declarations/components/hds/alert/index.d.ts +1 -28
  6. package/declarations/components/hds/alert/index.d.ts.map +1 -1
  7. package/declarations/components/hds/app-side-nav/index.d.ts +45 -0
  8. package/declarations/components/hds/app-side-nav/index.d.ts.map +1 -0
  9. package/declarations/components/hds/app-side-nav/list/back-link.d.ts +15 -0
  10. package/declarations/components/hds/app-side-nav/list/back-link.d.ts.map +1 -0
  11. package/declarations/components/hds/app-side-nav/list/index.d.ts +32 -0
  12. package/declarations/components/hds/app-side-nav/list/index.d.ts.map +1 -0
  13. package/declarations/components/hds/app-side-nav/list/item.d.ts +14 -0
  14. package/declarations/components/hds/app-side-nav/list/item.d.ts.map +1 -0
  15. package/declarations/components/hds/app-side-nav/list/link.d.ts +24 -0
  16. package/declarations/components/hds/app-side-nav/list/link.d.ts.map +1 -0
  17. package/declarations/components/hds/app-side-nav/list/title.d.ts +19 -0
  18. package/declarations/components/hds/app-side-nav/list/title.d.ts.map +1 -0
  19. package/declarations/components/hds/app-side-nav/portal/index.d.ts +27 -0
  20. package/declarations/components/hds/app-side-nav/portal/index.d.ts.map +1 -0
  21. package/declarations/components/hds/app-side-nav/portal/target.d.ts +37 -0
  22. package/declarations/components/hds/app-side-nav/portal/target.d.ts.map +1 -0
  23. package/declarations/components/hds/app-side-nav/toggle-button.d.ts +15 -0
  24. package/declarations/components/hds/app-side-nav/toggle-button.d.ts.map +1 -0
  25. package/declarations/components/hds/button-set/index.d.ts +1 -1
  26. package/declarations/components/hds/button-set/index.d.ts.map +1 -1
  27. package/declarations/components/hds/dropdown/index.d.ts +3 -0
  28. package/declarations/components/hds/dropdown/index.d.ts.map +1 -1
  29. package/declarations/components/hds/dropdown/toggle/chevron.d.ts +1 -1
  30. package/declarations/components/hds/dropdown/toggle/chevron.d.ts.map +1 -1
  31. package/declarations/components/hds/flyout/body.d.ts +2 -1
  32. package/declarations/components/hds/flyout/body.d.ts.map +1 -1
  33. package/declarations/components/hds/flyout/description.d.ts +3 -3
  34. package/declarations/components/hds/flyout/description.d.ts.map +1 -1
  35. package/declarations/components/hds/flyout/footer.d.ts +1 -2
  36. package/declarations/components/hds/flyout/footer.d.ts.map +1 -1
  37. package/declarations/components/hds/form/character-count/index.d.ts +1 -2
  38. package/declarations/components/hds/form/character-count/index.d.ts.map +1 -1
  39. package/declarations/components/hds/form/checkbox/group.d.ts +1 -1
  40. package/declarations/components/hds/form/checkbox/group.d.ts.map +1 -1
  41. package/declarations/components/hds/form/file-input/base.d.ts +1 -1
  42. package/declarations/components/hds/form/file-input/base.d.ts.map +1 -1
  43. package/declarations/components/hds/form/file-input/field.d.ts +1 -1
  44. package/declarations/components/hds/form/file-input/field.d.ts.map +1 -1
  45. package/declarations/components/hds/form/masked-input/base.d.ts +1 -23
  46. package/declarations/components/hds/form/masked-input/base.d.ts.map +1 -1
  47. package/declarations/components/hds/form/masked-input/field.d.ts +1 -1
  48. package/declarations/components/hds/form/masked-input/field.d.ts.map +1 -1
  49. package/declarations/components/hds/form/radio/group.d.ts +1 -1
  50. package/declarations/components/hds/form/radio/group.d.ts.map +1 -1
  51. package/declarations/components/hds/form/radio-card/group.d.ts +1 -1
  52. package/declarations/components/hds/form/radio-card/group.d.ts.map +1 -1
  53. package/declarations/components/hds/form/select/field.d.ts +1 -1
  54. package/declarations/components/hds/form/select/field.d.ts.map +1 -1
  55. package/declarations/components/hds/form/super-select/after-options.d.ts +1 -1
  56. package/declarations/components/hds/form/super-select/after-options.d.ts.map +1 -1
  57. package/declarations/components/hds/form/super-select/multiple/field.d.ts +1 -2
  58. package/declarations/components/hds/form/super-select/multiple/field.d.ts.map +1 -1
  59. package/declarations/components/hds/form/super-select/option-group.d.ts +1 -2
  60. package/declarations/components/hds/form/super-select/option-group.d.ts.map +1 -1
  61. package/declarations/components/hds/form/super-select/placeholder.d.ts +1 -1
  62. package/declarations/components/hds/form/super-select/placeholder.d.ts.map +1 -1
  63. package/declarations/components/hds/form/super-select/single/field.d.ts +1 -2
  64. package/declarations/components/hds/form/super-select/single/field.d.ts.map +1 -1
  65. package/declarations/components/hds/form/text-input/field.d.ts +3 -18
  66. package/declarations/components/hds/form/text-input/field.d.ts.map +1 -1
  67. package/declarations/components/hds/form/textarea/field.d.ts +1 -1
  68. package/declarations/components/hds/form/textarea/field.d.ts.map +1 -1
  69. package/declarations/components/hds/form/toggle/base.d.ts +1 -1
  70. package/declarations/components/hds/form/toggle/base.d.ts.map +1 -1
  71. package/declarations/components/hds/form/toggle/group.d.ts +1 -1
  72. package/declarations/components/hds/form/toggle/group.d.ts.map +1 -1
  73. package/declarations/components/hds/modal/body.d.ts +2 -1
  74. package/declarations/components/hds/modal/body.d.ts.map +1 -1
  75. package/declarations/components/hds/page-header/index.d.ts +1 -1
  76. package/declarations/components/hds/page-header/index.d.ts.map +1 -1
  77. package/declarations/components/hds/pagination/compact/index.d.ts +1 -1
  78. package/declarations/components/hds/pagination/compact/index.d.ts.map +1 -1
  79. package/declarations/components/hds/pagination/info/index.d.ts +1 -2
  80. package/declarations/components/hds/pagination/info/index.d.ts.map +1 -1
  81. package/declarations/components/hds/pagination/nav/arrow.d.ts +1 -1
  82. package/declarations/components/hds/pagination/nav/arrow.d.ts.map +1 -1
  83. package/declarations/components/hds/pagination/nav/number.d.ts +1 -1
  84. package/declarations/components/hds/pagination/nav/number.d.ts.map +1 -1
  85. package/declarations/components/hds/pagination/numbered/index.d.ts +1 -1
  86. package/declarations/components/hds/pagination/numbered/index.d.ts.map +1 -1
  87. package/declarations/components/hds/pagination/size-selector/index.d.ts +1 -2
  88. package/declarations/components/hds/pagination/size-selector/index.d.ts.map +1 -1
  89. package/declarations/components/hds/popover-primitive/index.d.ts +1 -0
  90. package/declarations/components/hds/popover-primitive/index.d.ts.map +1 -1
  91. package/declarations/components/hds/reveal/index.d.ts +1 -2
  92. package/declarations/components/hds/reveal/index.d.ts.map +1 -1
  93. package/declarations/components/hds/rich-tooltip/index.d.ts +1 -2
  94. package/declarations/components/hds/rich-tooltip/index.d.ts.map +1 -1
  95. package/declarations/components/hds/segmented-group/index.d.ts +1 -1
  96. package/declarations/components/hds/segmented-group/index.d.ts.map +1 -1
  97. package/declarations/components/hds/separator/index.d.ts +1 -2
  98. package/declarations/components/hds/separator/index.d.ts.map +1 -1
  99. package/declarations/components/hds/side-nav/header/home-link.d.ts +1 -2
  100. package/declarations/components/hds/side-nav/header/home-link.d.ts.map +1 -1
  101. package/declarations/components/hds/side-nav/header/icon-button.d.ts +1 -2
  102. package/declarations/components/hds/side-nav/header/icon-button.d.ts.map +1 -1
  103. package/declarations/components/hds/side-nav/header/index.d.ts +1 -1
  104. package/declarations/components/hds/side-nav/header/index.d.ts.map +1 -1
  105. package/declarations/components/hds/side-nav/index.d.ts +10 -10
  106. package/declarations/components/hds/side-nav/index.d.ts.map +1 -1
  107. package/declarations/components/hds/side-nav/list/index.d.ts +6 -3
  108. package/declarations/components/hds/side-nav/list/index.d.ts.map +1 -1
  109. package/declarations/components/hds/side-nav/list/title.d.ts +8 -3
  110. package/declarations/components/hds/side-nav/list/title.d.ts.map +1 -1
  111. package/declarations/components/hds/side-nav/portal/index.d.ts +1 -1
  112. package/declarations/components/hds/side-nav/portal/index.d.ts.map +1 -1
  113. package/declarations/components/hds/side-nav/portal/target.d.ts +2 -3
  114. package/declarations/components/hds/side-nav/portal/target.d.ts.map +1 -1
  115. package/declarations/components/hds/side-nav/toggle-button.d.ts +1 -1
  116. package/declarations/components/hds/side-nav/toggle-button.d.ts.map +1 -1
  117. package/declarations/components/hds/stepper/step/indicator.d.ts +1 -2
  118. package/declarations/components/hds/stepper/step/indicator.d.ts.map +1 -1
  119. package/declarations/components/hds/stepper/task/indicator.d.ts +1 -2
  120. package/declarations/components/hds/stepper/task/indicator.d.ts.map +1 -1
  121. package/declarations/components/hds/table/index.d.ts +1 -0
  122. package/declarations/components/hds/table/index.d.ts.map +1 -1
  123. package/declarations/components/hds/table/th-selectable.d.ts +1 -0
  124. package/declarations/components/hds/table/th-selectable.d.ts.map +1 -1
  125. package/declarations/components/hds/tabs/index.d.ts +1 -2
  126. package/declarations/components/hds/tabs/index.d.ts.map +1 -1
  127. package/declarations/components/hds/tag/index.d.ts +1 -2
  128. package/declarations/components/hds/tag/index.d.ts.map +1 -1
  129. package/declarations/modifiers/hds-anchored-position.d.ts +10 -0
  130. package/declarations/modifiers/hds-anchored-position.d.ts.map +1 -1
  131. package/declarations/modifiers/hds-clipboard.d.ts.map +1 -1
  132. package/declarations/modifiers/hds-register-event.d.ts +9 -0
  133. package/declarations/modifiers/hds-register-event.d.ts.map +1 -1
  134. package/declarations/template-registry.d.ts +36 -0
  135. package/declarations/template-registry.d.ts.map +1 -1
  136. package/dist/components/hds/accordion/index.js.map +1 -1
  137. package/dist/components/hds/accordion/item/button.js.map +1 -1
  138. package/dist/components/hds/alert/description.js +2 -2
  139. package/dist/components/hds/alert/index.js +11 -33
  140. package/dist/components/hds/alert/index.js.map +1 -1
  141. package/dist/components/hds/app-footer/item.js +2 -2
  142. package/dist/components/hds/app-footer/link.js +2 -2
  143. package/dist/components/hds/app-frame/parts/footer.js +2 -2
  144. package/dist/components/hds/app-frame/parts/header.js +2 -2
  145. package/dist/components/hds/app-frame/parts/main.js +2 -2
  146. package/dist/components/hds/app-frame/parts/modals.js +2 -2
  147. package/dist/components/hds/app-frame/parts/sidebar.js +2 -2
  148. package/dist/components/hds/app-side-nav/index.js +187 -0
  149. package/dist/components/hds/app-side-nav/index.js.map +1 -0
  150. package/dist/components/hds/app-side-nav/list/back-link.js +16 -0
  151. package/dist/components/hds/app-side-nav/list/back-link.js.map +1 -0
  152. package/dist/components/hds/app-side-nav/list/index.js +33 -0
  153. package/dist/components/hds/app-side-nav/list/index.js.map +1 -0
  154. package/dist/components/hds/app-side-nav/list/item.js +16 -0
  155. package/dist/components/hds/app-side-nav/list/item.js.map +1 -0
  156. package/dist/components/hds/app-side-nav/list/link.js +16 -0
  157. package/dist/components/hds/app-side-nav/list/link.js.map +1 -0
  158. package/dist/components/hds/app-side-nav/list/title.js +29 -0
  159. package/dist/components/hds/app-side-nav/list/title.js.map +1 -0
  160. package/dist/components/hds/app-side-nav/portal/index.js +16 -0
  161. package/dist/components/hds/app-side-nav/portal/index.js.map +1 -0
  162. package/dist/components/hds/app-side-nav/portal/target.js +173 -0
  163. package/dist/components/hds/app-side-nav/portal/target.js.map +1 -0
  164. package/dist/components/hds/app-side-nav/toggle-button.js +16 -0
  165. package/dist/components/hds/app-side-nav/toggle-button.js.map +1 -0
  166. package/dist/components/hds/application-state/body.js +2 -2
  167. package/dist/components/hds/application-state/footer.js +2 -2
  168. package/dist/components/hds/application-state/media.js +2 -2
  169. package/dist/components/hds/button-set/index.js +2 -2
  170. package/dist/components/hds/button-set/index.js.map +1 -1
  171. package/dist/components/hds/code-block/copy-button.js +2 -2
  172. package/dist/components/hds/code-block/description.js +2 -2
  173. package/dist/components/hds/dialog-primitive/body.js +2 -2
  174. package/dist/components/hds/dialog-primitive/description.js +2 -2
  175. package/dist/components/hds/dialog-primitive/overlay.js +2 -2
  176. package/dist/components/hds/dialog-primitive/wrapper.js +2 -2
  177. package/dist/components/hds/dropdown/footer.js +2 -2
  178. package/dist/components/hds/dropdown/header.js +2 -2
  179. package/dist/components/hds/dropdown/index.js +7 -3
  180. package/dist/components/hds/dropdown/index.js.map +1 -1
  181. package/dist/components/hds/dropdown/list-item/generic.js +2 -2
  182. package/dist/components/hds/dropdown/list-item/separator.js +2 -2
  183. package/dist/components/hds/dropdown/toggle/chevron.js +2 -2
  184. package/dist/components/hds/dropdown/toggle/chevron.js.map +1 -1
  185. package/dist/components/hds/flyout/body.js +2 -2
  186. package/dist/components/hds/flyout/body.js.map +1 -1
  187. package/dist/components/hds/flyout/description.js +2 -2
  188. package/dist/components/hds/flyout/description.js.map +1 -1
  189. package/dist/components/hds/flyout/footer.js.map +1 -1
  190. package/dist/components/hds/form/character-count/index.js.map +1 -1
  191. package/dist/components/hds/form/checkbox/base.js +2 -2
  192. package/dist/components/hds/form/checkbox/field.js +2 -2
  193. package/dist/components/hds/form/checkbox/group.js +2 -2
  194. package/dist/components/hds/form/checkbox/group.js.map +1 -1
  195. package/dist/components/hds/form/error/message.js +2 -2
  196. package/dist/components/hds/form/file-input/base.js +2 -2
  197. package/dist/components/hds/form/file-input/base.js.map +1 -1
  198. package/dist/components/hds/form/file-input/field.js +2 -2
  199. package/dist/components/hds/form/file-input/field.js.map +1 -1
  200. package/dist/components/hds/form/masked-input/base.js +5 -34
  201. package/dist/components/hds/form/masked-input/base.js.map +1 -1
  202. package/dist/components/hds/form/masked-input/field.js +2 -2
  203. package/dist/components/hds/form/masked-input/field.js.map +1 -1
  204. package/dist/components/hds/form/radio/base.js +2 -2
  205. package/dist/components/hds/form/radio/field.js +2 -2
  206. package/dist/components/hds/form/radio/group.js +2 -2
  207. package/dist/components/hds/form/radio/group.js.map +1 -1
  208. package/dist/components/hds/form/radio-card/description.js +2 -2
  209. package/dist/components/hds/form/radio-card/group.js +2 -2
  210. package/dist/components/hds/form/radio-card/group.js.map +1 -1
  211. package/dist/components/hds/form/radio-card/label.js +2 -2
  212. package/dist/components/hds/form/select/field.js +2 -2
  213. package/dist/components/hds/form/select/field.js.map +1 -1
  214. package/dist/components/hds/form/super-select/after-options.js +2 -2
  215. package/dist/components/hds/form/super-select/after-options.js.map +1 -1
  216. package/dist/components/hds/form/super-select/multiple/field.js.map +1 -1
  217. package/dist/components/hds/form/super-select/option-group.js.map +1 -1
  218. package/dist/components/hds/form/super-select/placeholder.js +2 -2
  219. package/dist/components/hds/form/super-select/placeholder.js.map +1 -1
  220. package/dist/components/hds/form/super-select/single/field.js.map +1 -1
  221. package/dist/components/hds/form/text-input/field.js +10 -33
  222. package/dist/components/hds/form/text-input/field.js.map +1 -1
  223. package/dist/components/hds/form/textarea/field.js +2 -2
  224. package/dist/components/hds/form/textarea/field.js.map +1 -1
  225. package/dist/components/hds/form/toggle/base.js +2 -2
  226. package/dist/components/hds/form/toggle/base.js.map +1 -1
  227. package/dist/components/hds/form/toggle/field.js +2 -2
  228. package/dist/components/hds/form/toggle/group.js +2 -2
  229. package/dist/components/hds/form/toggle/group.js.map +1 -1
  230. package/dist/components/hds/form/visibility-toggle/index.js +2 -2
  231. package/dist/components/hds/modal/body.js +2 -2
  232. package/dist/components/hds/modal/body.js.map +1 -1
  233. package/dist/components/hds/page-header/actions.js +2 -2
  234. package/dist/components/hds/page-header/badges.js +2 -2
  235. package/dist/components/hds/page-header/description.js +2 -2
  236. package/dist/components/hds/page-header/index.js +2 -2
  237. package/dist/components/hds/page-header/index.js.map +1 -1
  238. package/dist/components/hds/page-header/subtitle.js +2 -2
  239. package/dist/components/hds/page-header/title.js +2 -2
  240. package/dist/components/hds/pagination/compact/index.js +4 -3
  241. package/dist/components/hds/pagination/compact/index.js.map +1 -1
  242. package/dist/components/hds/pagination/info/index.js.map +1 -1
  243. package/dist/components/hds/pagination/nav/arrow.js.map +1 -1
  244. package/dist/components/hds/pagination/nav/ellipsis.js +2 -2
  245. package/dist/components/hds/pagination/nav/number.js.map +1 -1
  246. package/dist/components/hds/pagination/numbered/index.js +5 -7
  247. package/dist/components/hds/pagination/numbered/index.js.map +1 -1
  248. package/dist/components/hds/pagination/size-selector/index.js.map +1 -1
  249. package/dist/components/hds/popover-primitive/index.js +4 -5
  250. package/dist/components/hds/popover-primitive/index.js.map +1 -1
  251. package/dist/components/hds/reveal/index.js.map +1 -1
  252. package/dist/components/hds/rich-tooltip/index.js.map +1 -1
  253. package/dist/components/hds/segmented-group/index.js +2 -2
  254. package/dist/components/hds/segmented-group/index.js.map +1 -1
  255. package/dist/components/hds/separator/index.js.map +1 -1
  256. package/dist/components/hds/side-nav/base.js +3 -3
  257. package/dist/components/hds/side-nav/base.js.map +1 -1
  258. package/dist/components/hds/side-nav/header/home-link.js.map +1 -1
  259. package/dist/components/hds/side-nav/header/icon-button.js.map +1 -1
  260. package/dist/components/hds/side-nav/header/index.js +2 -2
  261. package/dist/components/hds/side-nav/header/index.js.map +1 -1
  262. package/dist/components/hds/side-nav/index.js +37 -36
  263. package/dist/components/hds/side-nav/index.js.map +1 -1
  264. package/dist/components/hds/side-nav/list/back-link.js +2 -2
  265. package/dist/components/hds/side-nav/list/index.js +27 -10
  266. package/dist/components/hds/side-nav/list/index.js.map +1 -1
  267. package/dist/components/hds/side-nav/list/item.js +2 -2
  268. package/dist/components/hds/side-nav/list/link.js +2 -2
  269. package/dist/components/hds/side-nav/list/title.js +23 -10
  270. package/dist/components/hds/side-nav/list/title.js.map +1 -1
  271. package/dist/components/hds/side-nav/portal/index.js +2 -2
  272. package/dist/components/hds/side-nav/portal/index.js.map +1 -1
  273. package/dist/components/hds/side-nav/portal/target.js.map +1 -1
  274. package/dist/components/hds/side-nav/toggle-button.js +2 -2
  275. package/dist/components/hds/side-nav/toggle-button.js.map +1 -1
  276. package/dist/components/hds/stepper/step/indicator.js.map +1 -1
  277. package/dist/components/hds/stepper/task/indicator.js.map +1 -1
  278. package/dist/components/hds/table/index.js +6 -8
  279. package/dist/components/hds/table/index.js.map +1 -1
  280. package/dist/components/hds/table/th-selectable.js +4 -5
  281. package/dist/components/hds/table/th-selectable.js.map +1 -1
  282. package/dist/components/hds/tabs/index.js +2 -3
  283. package/dist/components/hds/tabs/index.js.map +1 -1
  284. package/dist/components/hds/tag/index.js.map +1 -1
  285. package/dist/components/hds/toast/index.js +3 -3
  286. package/dist/components/hds/toast/index.js.map +1 -1
  287. package/dist/components/hds/tooltip-button/index.js.map +1 -1
  288. package/dist/components/hds/yield/index.js +2 -2
  289. package/dist/modifiers/hds-anchored-position.js +15 -16
  290. package/dist/modifiers/hds-anchored-position.js.map +1 -1
  291. package/dist/modifiers/hds-clipboard.js +15 -6
  292. package/dist/modifiers/hds-clipboard.js.map +1 -1
  293. package/dist/modifiers/hds-register-event.js.map +1 -1
  294. package/dist/styles/@hashicorp/design-system-components.css +41 -293
  295. package/dist/styles/@hashicorp/design-system-components.scss +2 -1
  296. package/dist/styles/components/app-side-nav/content.scss +182 -0
  297. package/dist/styles/components/app-side-nav/index.scss +9 -0
  298. package/dist/styles/components/app-side-nav/main.scss +147 -0
  299. package/dist/styles/components/app-side-nav/toggle-button.scss +101 -0
  300. package/dist/styles/components/app-side-nav/vars.scss +36 -0
  301. package/dist/styles/components/dropdown.scss +6 -0
  302. package/dist/styles/components/side-nav/content.scss +5 -0
  303. package/package.json +5 -5
  304. package/dist/_app_/components/hds/app-header/home-link.js +0 -1
  305. package/dist/_app_/components/hds/app-header/index.js +0 -1
  306. package/dist/_app_/components/hds/app-header/menu-button.js +0 -1
@@ -0,0 +1,147 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+
6
+ //
7
+ // APP-SIDE-NAV
8
+ //
9
+
10
+ .hds-app-side-nav {
11
+ position: relative;
12
+ width: var(--hds-app-side-nav-width-fixed); // "default" width used by the `AppSideNav::Base` subcomponent (that is not responsive)
13
+ height: 100%;
14
+ min-height: 100%;
15
+ isolation: isolate; // used to create a new stacking context (so we can set the overlay's z-index to -1)
16
+
17
+ // RESPONSIVENESS - This controls the width of the top-level container ("sidebar") in the grid, and impacts the available space for the "main" grid area
18
+
19
+ &.hds-app-side-nav--is-responsive {
20
+ transition:
21
+ width var(--hds-app-side-nav-animation-duration)
22
+ var(--hds-app-side-nav-animation-easing);
23
+ }
24
+
25
+ // mobile
26
+ &.hds-app-side-nav--is-mobile {
27
+ width: var(--hds-app-side-nav-width-minimized);
28
+ }
29
+
30
+ // desktop
31
+ &.hds-app-side-nav--is-desktop {
32
+ &.hds-app-side-nav--is-not-minimized {
33
+ width: var(--hds-app-side-nav-width-expanded);
34
+ }
35
+
36
+ &.hds-app-side-nav--is-minimized {
37
+ width: var(--hds-app-side-nav-width-minimized);
38
+ }
39
+ }
40
+ }
41
+
42
+ // OVERLAY
43
+
44
+ .hds-app-side-nav__overlay {
45
+ position: fixed;
46
+ z-index: -1;
47
+ inset: 0;
48
+ background-color: var(--token-color-palette-neutral-700);
49
+ opacity: 0.2;
50
+ transition:
51
+ opacity var(--hds-app-side-nav-animation-duration)
52
+ var(--hds-app-side-nav-animation-easing)
53
+ var(--hds-app-side-nav-animation-delay);
54
+
55
+ // when we're minimized (mobile) we don't want the overlay to be visible/interactive
56
+ .hds-app-side-nav--is-minimized & {
57
+ opacity: 0;
58
+ pointer-events: none;
59
+ }
60
+
61
+ // when it's desktop we _never_ want the overlay to be visible
62
+ .hds-app-side-nav--is-desktop & {
63
+ display: none;
64
+ }
65
+ }
66
+
67
+ // RESPONSIVE WRAPPER
68
+ // this container element is used to control the width of the sidebar at different viewports (desktop/mobile) and states (minimized/expanded)
69
+
70
+ .hds-app-side-nav__wrapper {
71
+ display: flex;
72
+ flex-direction: column;
73
+ height: 100%;
74
+ color: var(--token-app-side-nav-color-foreground-primary); // we set a default color (in case generic content is added to the body of the appsidenav)
75
+ background: var(--token-app-side-nav-color-surface-primary);
76
+ border-right: var(--token-app-side-nav-wrapper-border-width) solid var(--token-app-side-nav-wrapper-border-color);
77
+
78
+ // RESPONSIVENESS - This controls the width of the "sidenav" container, and is independent (bur related) from the parent "sidebar" grid area
79
+
80
+ .hds-app-side-nav--is-responsive & {
81
+ transition:
82
+ width var(--hds-app-side-nav-animation-duration)
83
+ var(--hds-app-side-nav-animation-easing);
84
+ }
85
+
86
+ .hds-app-side-nav--is-minimized & {
87
+ width: var(--hds-app-side-nav-width-minimized);
88
+ }
89
+
90
+ .hds-app-side-nav--is-not-minimized & {
91
+ width: var(--hds-app-side-nav-width-expanded);
92
+ }
93
+ }
94
+
95
+ // wrapper's child "containers"
96
+
97
+ .hds-app-side-nav__wrapper-body {
98
+ flex: 1;
99
+ padding:
100
+ var(--token-app-side-nav-wrapper-padding-vertical)
101
+ var(--token-app-side-nav-wrapper-padding-horizontal);
102
+ // this is necessary, otherwise when the sidenav is minimized an horizontal scrollbar may appear
103
+ // (if there are words longer than the width of the available space for the list "item" content)
104
+ overflow-x: hidden;
105
+ // we want the content to vertically scroll if needed
106
+ overflow-y: auto;
107
+ }
108
+
109
+ // "HIDE-WHEN-MINIMIZED" SPECIAL CLASS
110
+ // this is a special class that is used to control which elements of the sidenav need to be:
111
+ // - hidden (immediately) when the sidenav is "minimized"
112
+ // - shown (transitioning their opacity) when the sidenav is "expanded"
113
+
114
+ .hds-app-side-nav-hide-when-minimized {
115
+ .hds-app-side-nav--is-minimized & {
116
+ visibility: hidden !important; // we need `!important` here to override the inline style applied to the single panels
117
+ opacity: 0;
118
+ // this is needed because, despite the element having `visibility: hidden`,
119
+ // the child elements ("panels") have their visibility dynamically managed via JS
120
+ // and when they have "visibility: visible" applied, they are not visually visible
121
+ // (because of the `opacity: 0` of the parent) but the user can still interact with them
122
+ // and click on the links inside the sidenav even if they're not visible at all,
123
+ // so we have to block the interactivity of the whole container
124
+ // for reference see these PRs:
125
+ // - https://github.com/hashicorp/design-system/pull/1338
126
+ // - https://github.com/hashicorp/design-system/pull/1388
127
+ // - https://github.com/hashicorp/design-system/pull/1516
128
+ // and this codepen with a redux of the problem:
129
+ // - https://codepen.io/didoo/pen/mdQKMJW?editors=1100
130
+ pointer-events: none;
131
+ }
132
+
133
+ .hds-app-side-nav--is-not-minimized & {
134
+ visibility: visible;
135
+ opacity: 1;
136
+ transition:
137
+ opacity var(--hds-app-side-nav-animation-duration)
138
+ var(--hds-app-side-nav-animation-easing)
139
+ var(--hds-app-side-nav-animation-delay);
140
+ }
141
+
142
+ // we want to avoid accidental interactions with the navigation elements while the sidenav is animating its width
143
+ // (elements with `visibility: visible` can already be interacted with, while their opacity is transitioning)
144
+ .hds-app-side-nav--is-animating & {
145
+ pointer-events: none;
146
+ }
147
+ }
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+
6
+ //
7
+ // APP-SIDE-NAV > TOGGLE BUTTON
8
+ //
9
+
10
+
11
+ .hds-app-side-nav__toggle-button {
12
+ position: absolute;
13
+ top: var(--token-app-side-nav-wrapper-padding-vertical); // visually align with :header content
14
+ left: calc(var(--token-app-side-nav-wrapper-border-width) * -1);
15
+ z-index: 1;
16
+ display: flex;
17
+ flex-direction: row-reverse;
18
+ align-items: center;
19
+ width: var(--hds-app-side-nav-toggle-button-width);
20
+ height: 36px;
21
+ padding: 0 4px;
22
+ color: var(--token-color-foreground-primary);
23
+ background: none;
24
+ background-color: var(--token-app-side-nav-color-surface-primary);
25
+ border: var(--token-app-side-nav-wrapper-border-width) solid var(--token-app-side-nav-wrapper-border-color);
26
+ border-left-color: transparent;
27
+ border-top-right-radius: var(--token-app-side-nav-toggle-button-border-radius);
28
+ border-bottom-right-radius: var(--token-app-side-nav-toggle-button-border-radius);
29
+ transform: translateX(var(--hds-app-side-nav-width-expanded));
30
+ cursor: pointer;
31
+ transition:
32
+ transform var(--hds-app-side-nav-animation-duration)
33
+ var(--hds-app-side-nav-animation-easing),
34
+ width var(--hds-app-side-nav-animation-duration)
35
+ var(--hds-app-side-nav-animation-easing);
36
+
37
+ &::before {
38
+ position: absolute;
39
+ top: calc(var(--token-app-side-nav-toggle-button-border-radius) * -2);
40
+ left: calc(var(--token-app-side-nav-wrapper-border-width) * -1);
41
+ box-sizing: border-box;
42
+ width: calc(var(--token-app-side-nav-toggle-button-border-radius) * 2);
43
+ height: calc(var(--token-app-side-nav-toggle-button-border-radius) * 2);
44
+ border-bottom: var(--token-app-side-nav-wrapper-border-width) solid var(--token-app-side-nav-wrapper-border-color);
45
+ border-left: var(--token-app-side-nav-wrapper-border-width) solid var(--token-app-side-nav-wrapper-border-color);
46
+ border-bottom-left-radius: var(--token-app-side-nav-toggle-button-border-radius);
47
+ box-shadow: 0 var(--token-app-side-nav-toggle-button-border-radius) 0 var(--token-app-side-nav-color-surface-primary);
48
+ content: "";
49
+ }
50
+
51
+ &::after {
52
+ position: absolute;
53
+ bottom: calc(var(--token-app-side-nav-toggle-button-border-radius) * -2);
54
+ left: calc(var(--token-app-side-nav-wrapper-border-width) * -1);
55
+ box-sizing: border-box;
56
+ width: calc(var(--token-app-side-nav-toggle-button-border-radius) * 2);
57
+ height: calc(var(--token-app-side-nav-toggle-button-border-radius) * 2);
58
+ border-bottom: var(--token-app-side-nav-wrapper-border-width) solid var(--token-app-side-nav-wrapper-border-color);
59
+ border-left: var(--token-app-side-nav-wrapper-border-width) solid var(--token-app-side-nav-wrapper-border-color);
60
+ border-bottom-left-radius: var(--token-app-side-nav-toggle-button-border-radius);
61
+ box-shadow: 0 var(--token-app-side-nav-toggle-button-border-radius) 0 var(--token-app-side-nav-color-surface-primary);
62
+ transform: scaleY(-1); // rotate so same clip path can be used
63
+ content: "";
64
+ }
65
+
66
+ &:hover,
67
+ &.mock-hover {
68
+ width: 30px;
69
+ background-color: var(--token-app-side-nav-color-surface-interactive-hover);
70
+
71
+ &::before,
72
+ &::after {
73
+ box-shadow: 0 var(--token-app-side-nav-toggle-button-border-radius) 0 var(--token-app-side-nav-color-surface-interactive-hover);
74
+ }
75
+ }
76
+
77
+ &:active,
78
+ &.mock-active {
79
+ background-color: var(--token-app-side-nav-color-surface-interactive-active);
80
+
81
+ &::before,
82
+ &::after {
83
+ box-shadow: 0 var(--token-app-side-nav-toggle-button-border-radius) 0 var(--token-app-side-nav-color-surface-interactive-active);
84
+ }
85
+ }
86
+
87
+ &:focus-visible,
88
+ &.mock-focus {
89
+ border-color: var(--token-color-focus-action-internal);
90
+ outline: 3px solid var(--token-color-focus-action-external);
91
+
92
+ &::before,
93
+ &::after {
94
+ display: none;
95
+ }
96
+ }
97
+
98
+ .hds-app-side-nav--is-minimized & {
99
+ transform: translateX(var(--hds-app-side-nav-width-minimized));
100
+ }
101
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+
6
+ //
7
+ // APP-SIDE-NAV - VARS
8
+ //
9
+
10
+
11
+ // LOCAL VARIABLES
12
+ // we use `hds-app` as prefix to distinguish them from the normal tokens
13
+ // notice: they may be overwritten at consumer-level side if needed by re-defining the variables in a container element
14
+
15
+ :root {
16
+ // breakpoint
17
+ --hds-app-desktop-breakpoint: 1088px; // this is used only to read its value via JS and set the `hds-app-side-nav--is-desktop` class
18
+ // widths
19
+ --hds-app-side-nav-width-minimized: 16px;
20
+ --hds-app-side-nav-width-expanded: 280px;
21
+ --hds-app-side-nav-width-fixed: var(--hds-app-sidenav-width-expanded);
22
+ // animation
23
+ --hds-app-side-nav-animation-duration: 200ms;
24
+ --hds-app-side-nav-animation-delay: var(--hds-app-sidenav-animation-duration);
25
+ --hds-app-side-nav-animation-easing: cubic-bezier(0.65, 0, 0.35, 1);
26
+ // toggle-button
27
+ --hds-app-side-nav-toggle-button-width: 24px;
28
+ }
29
+
30
+ // reduced motion
31
+
32
+ @media (prefers-reduced-motion) {
33
+ :root {
34
+ --hds-app-side-nav-animation-duration: 0;
35
+ }
36
+ }
@@ -136,6 +136,12 @@ $hds-dropdown-toggle-border-radius: $hds-button-border-radius;
136
136
 
137
137
  .hds-dropdown-toggle-button--size-small {
138
138
  padding-right: 0.375rem;
139
+
140
+ // For small variant with chevron, force the icon size to custom (even if the SGV size is `16px`)
141
+ .hds-dropdown-toggle-chevron .hds-icon {
142
+ width: 12px;
143
+ height: 12px;
144
+ }
139
145
  }
140
146
 
141
147
  .hds-dropdown-toggle-button--size-medium {
@@ -35,6 +35,11 @@
35
35
 
36
36
  .hds-side-nav__content-panel {
37
37
  padding: 0 var(--token-side-nav-wrapper-padding-horizontal);
38
+ overflow: hidden; // the panel itself does not need to be scrollable
39
+
40
+ &[aria-hidden="true"] {
41
+ max-height: 0; // prevents hidden panels from causing scrolling
42
+ }
38
43
  }
39
44
 
40
45
  // (LIST) TITLE
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hashicorp/design-system-components",
3
- "version": "4.13.0",
3
+ "version": "4.14.0",
4
4
  "description": "Helios Design System Components",
5
5
  "keywords": [
6
6
  "hashicorp",
@@ -42,6 +42,7 @@
42
42
  "@floating-ui/dom": "^1.6.3",
43
43
  "@hashicorp/design-system-tokens": "^2.2.1",
44
44
  "@hashicorp/flight-icons": "^3.7.0",
45
+ "clipboard-polyfill": "^4.1.0",
45
46
  "decorator-transforms": "^1.1.0",
46
47
  "ember-a11y-refocus": "^4.1.3",
47
48
  "ember-cli-sass": "^11.0.1",
@@ -86,6 +87,7 @@
86
87
  "concurrently": "^8.2.2",
87
88
  "ember-basic-dropdown": "^8.1.0",
88
89
  "ember-concurrency": "^4.0.2",
90
+ "ember-source": "~5.9.0",
89
91
  "ember-template-lint": "^6.0.0",
90
92
  "ember-template-lint-plugin-prettier": "^5.0.0",
91
93
  "eslint": "^8.57.0",
@@ -95,8 +97,9 @@
95
97
  "eslint-plugin-n": "^17.7.0",
96
98
  "eslint-plugin-prettier": "^5.1.3",
97
99
  "eslint-plugin-qunit": "^8.1.1",
100
+ "postcss": "^8.4.47",
98
101
  "prettier": "^3.3.2",
99
- "rollup": "^4.17.2",
102
+ "rollup": "^4.22.4",
100
103
  "rollup-plugin-copy": "^3.5.0",
101
104
  "rollup-plugin-scss": "^4.0.0",
102
105
  "rollup-plugin-ts": "^3.4.5",
@@ -134,9 +137,6 @@
134
137
  "./components/hds/app-frame/parts/main.js": "./dist/_app_/components/hds/app-frame/parts/main.js",
135
138
  "./components/hds/app-frame/parts/modals.js": "./dist/_app_/components/hds/app-frame/parts/modals.js",
136
139
  "./components/hds/app-frame/parts/sidebar.js": "./dist/_app_/components/hds/app-frame/parts/sidebar.js",
137
- "./components/hds/app-header/home-link.js": "./dist/_app_/components/hds/app-header/home-link.js",
138
- "./components/hds/app-header/index.js": "./dist/_app_/components/hds/app-header/index.js",
139
- "./components/hds/app-header/menu-button.js": "./dist/_app_/components/hds/app-header/menu-button.js",
140
140
  "./components/hds/application-state/body.js": "./dist/_app_/components/hds/application-state/body.js",
141
141
  "./components/hds/application-state/footer.js": "./dist/_app_/components/hds/application-state/footer.js",
142
142
  "./components/hds/application-state/header.js": "./dist/_app_/components/hds/application-state/header.js",
@@ -1 +0,0 @@
1
- export { default } from "@hashicorp/design-system-components/components/hds/app-header/home-link";
@@ -1 +0,0 @@
1
- export { default } from "@hashicorp/design-system-components/components/hds/app-header/index";
@@ -1 +0,0 @@
1
- export { default } from "@hashicorp/design-system-components/components/hds/app-header/menu-button";