@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.
- package/declarations/components/hds/accordion/index.d.ts +1 -2
- package/declarations/components/hds/accordion/index.d.ts.map +1 -1
- package/declarations/components/hds/accordion/item/button.d.ts +1 -2
- package/declarations/components/hds/accordion/item/button.d.ts.map +1 -1
- package/declarations/components/hds/alert/index.d.ts +1 -28
- package/declarations/components/hds/alert/index.d.ts.map +1 -1
- package/declarations/components/hds/app-side-nav/index.d.ts +45 -0
- package/declarations/components/hds/app-side-nav/index.d.ts.map +1 -0
- package/declarations/components/hds/app-side-nav/list/back-link.d.ts +15 -0
- package/declarations/components/hds/app-side-nav/list/back-link.d.ts.map +1 -0
- package/declarations/components/hds/app-side-nav/list/index.d.ts +32 -0
- package/declarations/components/hds/app-side-nav/list/index.d.ts.map +1 -0
- package/declarations/components/hds/app-side-nav/list/item.d.ts +14 -0
- package/declarations/components/hds/app-side-nav/list/item.d.ts.map +1 -0
- package/declarations/components/hds/app-side-nav/list/link.d.ts +24 -0
- package/declarations/components/hds/app-side-nav/list/link.d.ts.map +1 -0
- package/declarations/components/hds/app-side-nav/list/title.d.ts +19 -0
- package/declarations/components/hds/app-side-nav/list/title.d.ts.map +1 -0
- package/declarations/components/hds/app-side-nav/portal/index.d.ts +27 -0
- package/declarations/components/hds/app-side-nav/portal/index.d.ts.map +1 -0
- package/declarations/components/hds/app-side-nav/portal/target.d.ts +37 -0
- package/declarations/components/hds/app-side-nav/portal/target.d.ts.map +1 -0
- package/declarations/components/hds/app-side-nav/toggle-button.d.ts +15 -0
- package/declarations/components/hds/app-side-nav/toggle-button.d.ts.map +1 -0
- package/declarations/components/hds/button-set/index.d.ts +1 -1
- package/declarations/components/hds/button-set/index.d.ts.map +1 -1
- package/declarations/components/hds/dropdown/index.d.ts +3 -0
- package/declarations/components/hds/dropdown/index.d.ts.map +1 -1
- package/declarations/components/hds/dropdown/toggle/chevron.d.ts +1 -1
- package/declarations/components/hds/dropdown/toggle/chevron.d.ts.map +1 -1
- package/declarations/components/hds/flyout/body.d.ts +2 -1
- package/declarations/components/hds/flyout/body.d.ts.map +1 -1
- package/declarations/components/hds/flyout/description.d.ts +3 -3
- package/declarations/components/hds/flyout/description.d.ts.map +1 -1
- package/declarations/components/hds/flyout/footer.d.ts +1 -2
- package/declarations/components/hds/flyout/footer.d.ts.map +1 -1
- package/declarations/components/hds/form/character-count/index.d.ts +1 -2
- package/declarations/components/hds/form/character-count/index.d.ts.map +1 -1
- package/declarations/components/hds/form/checkbox/group.d.ts +1 -1
- package/declarations/components/hds/form/checkbox/group.d.ts.map +1 -1
- package/declarations/components/hds/form/file-input/base.d.ts +1 -1
- package/declarations/components/hds/form/file-input/base.d.ts.map +1 -1
- package/declarations/components/hds/form/file-input/field.d.ts +1 -1
- package/declarations/components/hds/form/file-input/field.d.ts.map +1 -1
- package/declarations/components/hds/form/masked-input/base.d.ts +1 -23
- package/declarations/components/hds/form/masked-input/base.d.ts.map +1 -1
- package/declarations/components/hds/form/masked-input/field.d.ts +1 -1
- package/declarations/components/hds/form/masked-input/field.d.ts.map +1 -1
- package/declarations/components/hds/form/radio/group.d.ts +1 -1
- package/declarations/components/hds/form/radio/group.d.ts.map +1 -1
- package/declarations/components/hds/form/radio-card/group.d.ts +1 -1
- package/declarations/components/hds/form/radio-card/group.d.ts.map +1 -1
- package/declarations/components/hds/form/select/field.d.ts +1 -1
- package/declarations/components/hds/form/select/field.d.ts.map +1 -1
- package/declarations/components/hds/form/super-select/after-options.d.ts +1 -1
- package/declarations/components/hds/form/super-select/after-options.d.ts.map +1 -1
- package/declarations/components/hds/form/super-select/multiple/field.d.ts +1 -2
- package/declarations/components/hds/form/super-select/multiple/field.d.ts.map +1 -1
- package/declarations/components/hds/form/super-select/option-group.d.ts +1 -2
- package/declarations/components/hds/form/super-select/option-group.d.ts.map +1 -1
- package/declarations/components/hds/form/super-select/placeholder.d.ts +1 -1
- package/declarations/components/hds/form/super-select/placeholder.d.ts.map +1 -1
- package/declarations/components/hds/form/super-select/single/field.d.ts +1 -2
- package/declarations/components/hds/form/super-select/single/field.d.ts.map +1 -1
- package/declarations/components/hds/form/text-input/field.d.ts +3 -18
- package/declarations/components/hds/form/text-input/field.d.ts.map +1 -1
- package/declarations/components/hds/form/textarea/field.d.ts +1 -1
- package/declarations/components/hds/form/textarea/field.d.ts.map +1 -1
- package/declarations/components/hds/form/toggle/base.d.ts +1 -1
- package/declarations/components/hds/form/toggle/base.d.ts.map +1 -1
- package/declarations/components/hds/form/toggle/group.d.ts +1 -1
- package/declarations/components/hds/form/toggle/group.d.ts.map +1 -1
- package/declarations/components/hds/modal/body.d.ts +2 -1
- package/declarations/components/hds/modal/body.d.ts.map +1 -1
- package/declarations/components/hds/page-header/index.d.ts +1 -1
- package/declarations/components/hds/page-header/index.d.ts.map +1 -1
- package/declarations/components/hds/pagination/compact/index.d.ts +1 -1
- package/declarations/components/hds/pagination/compact/index.d.ts.map +1 -1
- package/declarations/components/hds/pagination/info/index.d.ts +1 -2
- package/declarations/components/hds/pagination/info/index.d.ts.map +1 -1
- package/declarations/components/hds/pagination/nav/arrow.d.ts +1 -1
- package/declarations/components/hds/pagination/nav/arrow.d.ts.map +1 -1
- package/declarations/components/hds/pagination/nav/number.d.ts +1 -1
- package/declarations/components/hds/pagination/nav/number.d.ts.map +1 -1
- package/declarations/components/hds/pagination/numbered/index.d.ts +1 -1
- package/declarations/components/hds/pagination/numbered/index.d.ts.map +1 -1
- package/declarations/components/hds/pagination/size-selector/index.d.ts +1 -2
- package/declarations/components/hds/pagination/size-selector/index.d.ts.map +1 -1
- package/declarations/components/hds/popover-primitive/index.d.ts +1 -0
- package/declarations/components/hds/popover-primitive/index.d.ts.map +1 -1
- package/declarations/components/hds/reveal/index.d.ts +1 -2
- package/declarations/components/hds/reveal/index.d.ts.map +1 -1
- package/declarations/components/hds/rich-tooltip/index.d.ts +1 -2
- package/declarations/components/hds/rich-tooltip/index.d.ts.map +1 -1
- package/declarations/components/hds/segmented-group/index.d.ts +1 -1
- package/declarations/components/hds/segmented-group/index.d.ts.map +1 -1
- package/declarations/components/hds/separator/index.d.ts +1 -2
- package/declarations/components/hds/separator/index.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/header/home-link.d.ts +1 -2
- package/declarations/components/hds/side-nav/header/home-link.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/header/icon-button.d.ts +1 -2
- package/declarations/components/hds/side-nav/header/icon-button.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/header/index.d.ts +1 -1
- package/declarations/components/hds/side-nav/header/index.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/index.d.ts +10 -10
- package/declarations/components/hds/side-nav/index.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/list/index.d.ts +6 -3
- package/declarations/components/hds/side-nav/list/index.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/list/title.d.ts +8 -3
- package/declarations/components/hds/side-nav/list/title.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/portal/index.d.ts +1 -1
- package/declarations/components/hds/side-nav/portal/index.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/portal/target.d.ts +2 -3
- package/declarations/components/hds/side-nav/portal/target.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/toggle-button.d.ts +1 -1
- package/declarations/components/hds/side-nav/toggle-button.d.ts.map +1 -1
- package/declarations/components/hds/stepper/step/indicator.d.ts +1 -2
- package/declarations/components/hds/stepper/step/indicator.d.ts.map +1 -1
- package/declarations/components/hds/stepper/task/indicator.d.ts +1 -2
- package/declarations/components/hds/stepper/task/indicator.d.ts.map +1 -1
- package/declarations/components/hds/table/index.d.ts +1 -0
- package/declarations/components/hds/table/index.d.ts.map +1 -1
- package/declarations/components/hds/table/th-selectable.d.ts +1 -0
- package/declarations/components/hds/table/th-selectable.d.ts.map +1 -1
- package/declarations/components/hds/tabs/index.d.ts +1 -2
- package/declarations/components/hds/tabs/index.d.ts.map +1 -1
- package/declarations/components/hds/tag/index.d.ts +1 -2
- package/declarations/components/hds/tag/index.d.ts.map +1 -1
- package/declarations/modifiers/hds-anchored-position.d.ts +10 -0
- package/declarations/modifiers/hds-anchored-position.d.ts.map +1 -1
- package/declarations/modifiers/hds-clipboard.d.ts.map +1 -1
- package/declarations/modifiers/hds-register-event.d.ts +9 -0
- package/declarations/modifiers/hds-register-event.d.ts.map +1 -1
- package/declarations/template-registry.d.ts +36 -0
- package/declarations/template-registry.d.ts.map +1 -1
- package/dist/components/hds/accordion/index.js.map +1 -1
- package/dist/components/hds/accordion/item/button.js.map +1 -1
- package/dist/components/hds/alert/description.js +2 -2
- package/dist/components/hds/alert/index.js +11 -33
- package/dist/components/hds/alert/index.js.map +1 -1
- package/dist/components/hds/app-footer/item.js +2 -2
- package/dist/components/hds/app-footer/link.js +2 -2
- package/dist/components/hds/app-frame/parts/footer.js +2 -2
- package/dist/components/hds/app-frame/parts/header.js +2 -2
- package/dist/components/hds/app-frame/parts/main.js +2 -2
- package/dist/components/hds/app-frame/parts/modals.js +2 -2
- package/dist/components/hds/app-frame/parts/sidebar.js +2 -2
- package/dist/components/hds/app-side-nav/index.js +187 -0
- package/dist/components/hds/app-side-nav/index.js.map +1 -0
- package/dist/components/hds/app-side-nav/list/back-link.js +16 -0
- package/dist/components/hds/app-side-nav/list/back-link.js.map +1 -0
- package/dist/components/hds/app-side-nav/list/index.js +33 -0
- package/dist/components/hds/app-side-nav/list/index.js.map +1 -0
- package/dist/components/hds/app-side-nav/list/item.js +16 -0
- package/dist/components/hds/app-side-nav/list/item.js.map +1 -0
- package/dist/components/hds/app-side-nav/list/link.js +16 -0
- package/dist/components/hds/app-side-nav/list/link.js.map +1 -0
- package/dist/components/hds/app-side-nav/list/title.js +29 -0
- package/dist/components/hds/app-side-nav/list/title.js.map +1 -0
- package/dist/components/hds/app-side-nav/portal/index.js +16 -0
- package/dist/components/hds/app-side-nav/portal/index.js.map +1 -0
- package/dist/components/hds/app-side-nav/portal/target.js +173 -0
- package/dist/components/hds/app-side-nav/portal/target.js.map +1 -0
- package/dist/components/hds/app-side-nav/toggle-button.js +16 -0
- package/dist/components/hds/app-side-nav/toggle-button.js.map +1 -0
- package/dist/components/hds/application-state/body.js +2 -2
- package/dist/components/hds/application-state/footer.js +2 -2
- package/dist/components/hds/application-state/media.js +2 -2
- package/dist/components/hds/button-set/index.js +2 -2
- package/dist/components/hds/button-set/index.js.map +1 -1
- package/dist/components/hds/code-block/copy-button.js +2 -2
- package/dist/components/hds/code-block/description.js +2 -2
- package/dist/components/hds/dialog-primitive/body.js +2 -2
- package/dist/components/hds/dialog-primitive/description.js +2 -2
- package/dist/components/hds/dialog-primitive/overlay.js +2 -2
- package/dist/components/hds/dialog-primitive/wrapper.js +2 -2
- package/dist/components/hds/dropdown/footer.js +2 -2
- package/dist/components/hds/dropdown/header.js +2 -2
- package/dist/components/hds/dropdown/index.js +7 -3
- package/dist/components/hds/dropdown/index.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/generic.js +2 -2
- package/dist/components/hds/dropdown/list-item/separator.js +2 -2
- package/dist/components/hds/dropdown/toggle/chevron.js +2 -2
- package/dist/components/hds/dropdown/toggle/chevron.js.map +1 -1
- package/dist/components/hds/flyout/body.js +2 -2
- package/dist/components/hds/flyout/body.js.map +1 -1
- package/dist/components/hds/flyout/description.js +2 -2
- package/dist/components/hds/flyout/description.js.map +1 -1
- package/dist/components/hds/flyout/footer.js.map +1 -1
- package/dist/components/hds/form/character-count/index.js.map +1 -1
- package/dist/components/hds/form/checkbox/base.js +2 -2
- package/dist/components/hds/form/checkbox/field.js +2 -2
- package/dist/components/hds/form/checkbox/group.js +2 -2
- package/dist/components/hds/form/checkbox/group.js.map +1 -1
- package/dist/components/hds/form/error/message.js +2 -2
- package/dist/components/hds/form/file-input/base.js +2 -2
- package/dist/components/hds/form/file-input/base.js.map +1 -1
- package/dist/components/hds/form/file-input/field.js +2 -2
- package/dist/components/hds/form/file-input/field.js.map +1 -1
- package/dist/components/hds/form/masked-input/base.js +5 -34
- package/dist/components/hds/form/masked-input/base.js.map +1 -1
- package/dist/components/hds/form/masked-input/field.js +2 -2
- package/dist/components/hds/form/masked-input/field.js.map +1 -1
- package/dist/components/hds/form/radio/base.js +2 -2
- package/dist/components/hds/form/radio/field.js +2 -2
- package/dist/components/hds/form/radio/group.js +2 -2
- package/dist/components/hds/form/radio/group.js.map +1 -1
- package/dist/components/hds/form/radio-card/description.js +2 -2
- package/dist/components/hds/form/radio-card/group.js +2 -2
- package/dist/components/hds/form/radio-card/group.js.map +1 -1
- package/dist/components/hds/form/radio-card/label.js +2 -2
- package/dist/components/hds/form/select/field.js +2 -2
- package/dist/components/hds/form/select/field.js.map +1 -1
- package/dist/components/hds/form/super-select/after-options.js +2 -2
- package/dist/components/hds/form/super-select/after-options.js.map +1 -1
- package/dist/components/hds/form/super-select/multiple/field.js.map +1 -1
- package/dist/components/hds/form/super-select/option-group.js.map +1 -1
- package/dist/components/hds/form/super-select/placeholder.js +2 -2
- package/dist/components/hds/form/super-select/placeholder.js.map +1 -1
- package/dist/components/hds/form/super-select/single/field.js.map +1 -1
- package/dist/components/hds/form/text-input/field.js +10 -33
- package/dist/components/hds/form/text-input/field.js.map +1 -1
- package/dist/components/hds/form/textarea/field.js +2 -2
- package/dist/components/hds/form/textarea/field.js.map +1 -1
- package/dist/components/hds/form/toggle/base.js +2 -2
- package/dist/components/hds/form/toggle/base.js.map +1 -1
- package/dist/components/hds/form/toggle/field.js +2 -2
- package/dist/components/hds/form/toggle/group.js +2 -2
- package/dist/components/hds/form/toggle/group.js.map +1 -1
- package/dist/components/hds/form/visibility-toggle/index.js +2 -2
- package/dist/components/hds/modal/body.js +2 -2
- package/dist/components/hds/modal/body.js.map +1 -1
- package/dist/components/hds/page-header/actions.js +2 -2
- package/dist/components/hds/page-header/badges.js +2 -2
- package/dist/components/hds/page-header/description.js +2 -2
- package/dist/components/hds/page-header/index.js +2 -2
- package/dist/components/hds/page-header/index.js.map +1 -1
- package/dist/components/hds/page-header/subtitle.js +2 -2
- package/dist/components/hds/page-header/title.js +2 -2
- package/dist/components/hds/pagination/compact/index.js +4 -3
- package/dist/components/hds/pagination/compact/index.js.map +1 -1
- package/dist/components/hds/pagination/info/index.js.map +1 -1
- package/dist/components/hds/pagination/nav/arrow.js.map +1 -1
- package/dist/components/hds/pagination/nav/ellipsis.js +2 -2
- package/dist/components/hds/pagination/nav/number.js.map +1 -1
- package/dist/components/hds/pagination/numbered/index.js +5 -7
- package/dist/components/hds/pagination/numbered/index.js.map +1 -1
- package/dist/components/hds/pagination/size-selector/index.js.map +1 -1
- package/dist/components/hds/popover-primitive/index.js +4 -5
- package/dist/components/hds/popover-primitive/index.js.map +1 -1
- package/dist/components/hds/reveal/index.js.map +1 -1
- package/dist/components/hds/rich-tooltip/index.js.map +1 -1
- package/dist/components/hds/segmented-group/index.js +2 -2
- package/dist/components/hds/segmented-group/index.js.map +1 -1
- package/dist/components/hds/separator/index.js.map +1 -1
- package/dist/components/hds/side-nav/base.js +3 -3
- package/dist/components/hds/side-nav/base.js.map +1 -1
- package/dist/components/hds/side-nav/header/home-link.js.map +1 -1
- package/dist/components/hds/side-nav/header/icon-button.js.map +1 -1
- package/dist/components/hds/side-nav/header/index.js +2 -2
- package/dist/components/hds/side-nav/header/index.js.map +1 -1
- package/dist/components/hds/side-nav/index.js +37 -36
- package/dist/components/hds/side-nav/index.js.map +1 -1
- package/dist/components/hds/side-nav/list/back-link.js +2 -2
- package/dist/components/hds/side-nav/list/index.js +27 -10
- package/dist/components/hds/side-nav/list/index.js.map +1 -1
- package/dist/components/hds/side-nav/list/item.js +2 -2
- package/dist/components/hds/side-nav/list/link.js +2 -2
- package/dist/components/hds/side-nav/list/title.js +23 -10
- package/dist/components/hds/side-nav/list/title.js.map +1 -1
- package/dist/components/hds/side-nav/portal/index.js +2 -2
- package/dist/components/hds/side-nav/portal/index.js.map +1 -1
- package/dist/components/hds/side-nav/portal/target.js.map +1 -1
- package/dist/components/hds/side-nav/toggle-button.js +2 -2
- package/dist/components/hds/side-nav/toggle-button.js.map +1 -1
- package/dist/components/hds/stepper/step/indicator.js.map +1 -1
- package/dist/components/hds/stepper/task/indicator.js.map +1 -1
- package/dist/components/hds/table/index.js +6 -8
- package/dist/components/hds/table/index.js.map +1 -1
- package/dist/components/hds/table/th-selectable.js +4 -5
- package/dist/components/hds/table/th-selectable.js.map +1 -1
- package/dist/components/hds/tabs/index.js +2 -3
- package/dist/components/hds/tabs/index.js.map +1 -1
- package/dist/components/hds/tag/index.js.map +1 -1
- package/dist/components/hds/toast/index.js +3 -3
- package/dist/components/hds/toast/index.js.map +1 -1
- package/dist/components/hds/tooltip-button/index.js.map +1 -1
- package/dist/components/hds/yield/index.js +2 -2
- package/dist/modifiers/hds-anchored-position.js +15 -16
- package/dist/modifiers/hds-anchored-position.js.map +1 -1
- package/dist/modifiers/hds-clipboard.js +15 -6
- package/dist/modifiers/hds-clipboard.js.map +1 -1
- package/dist/modifiers/hds-register-event.js.map +1 -1
- package/dist/styles/@hashicorp/design-system-components.css +41 -293
- package/dist/styles/@hashicorp/design-system-components.scss +2 -1
- package/dist/styles/components/app-side-nav/content.scss +182 -0
- package/dist/styles/components/app-side-nav/index.scss +9 -0
- package/dist/styles/components/app-side-nav/main.scss +147 -0
- package/dist/styles/components/app-side-nav/toggle-button.scss +101 -0
- package/dist/styles/components/app-side-nav/vars.scss +36 -0
- package/dist/styles/components/dropdown.scss +6 -0
- package/dist/styles/components/side-nav/content.scss +5 -0
- package/package.json +5 -5
- package/dist/_app_/components/hds/app-header/home-link.js +0 -1
- package/dist/_app_/components/hds/app-header/index.js +0 -1
- 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.
|
|
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.
|
|
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";
|