@hashicorp/design-system-components 4.20.1 → 4.20.2-rc-20250620102721
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/modal/index.d.ts +0 -3
- package/declarations/components.d.ts +3 -0
- package/dist/components/hds/modal/index.js +22 -41
- package/dist/components/hds/modal/index.js.map +1 -1
- package/dist/components.js +3 -0
- package/dist/components.js.map +1 -1
- package/package.json +10 -10
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import Component from '@glimmer/component';
|
|
6
6
|
import type { WithBoundArgs } from '@glint/template';
|
|
7
|
-
import type Owner from '@ember/owner';
|
|
8
7
|
import type { HdsModalSizes, HdsModalColors } from './types.ts';
|
|
9
8
|
import HdsDialogPrimitiveHeaderComponent from '../dialog-primitive/header.ts';
|
|
10
9
|
import HdsDialogPrimitiveBodyComponent from '../dialog-primitive/body.ts';
|
|
@@ -39,8 +38,6 @@ export default class HdsModal extends Component<HdsModalSignature> {
|
|
|
39
38
|
private _element;
|
|
40
39
|
private _body;
|
|
41
40
|
private _bodyInitialOverflowValue;
|
|
42
|
-
private _clickHandler;
|
|
43
|
-
constructor(owner: Owner, args: HdsModalSignature['Args']);
|
|
44
41
|
get isDismissDisabled(): boolean;
|
|
45
42
|
get size(): HdsModalSizes;
|
|
46
43
|
get color(): HdsModalColors;
|
|
@@ -53,6 +53,7 @@ export { default as HdsBreadcrumb } from './components/hds/breadcrumb/index.ts';
|
|
|
53
53
|
export { default as HdsBreadcrumbItem } from './components/hds/breadcrumb/item.ts';
|
|
54
54
|
export { default as HdsBreadcrumbTruncation } from './components/hds/breadcrumb/truncation.ts';
|
|
55
55
|
export { default as HdsButton } from './components/hds/button/index.ts';
|
|
56
|
+
export * from './components/hds/button/types.ts';
|
|
56
57
|
export { default as HdsButtonSet } from './components/hds/button-set/index.ts';
|
|
57
58
|
export { default as HdsCardContainer } from './components/hds/card/container.ts';
|
|
58
59
|
export * from './components/hds/card/types.ts';
|
|
@@ -221,8 +222,10 @@ export { default as HdsAppFrameModals } from './components/hds/app-frame/parts/m
|
|
|
221
222
|
export { default as HdsAppFrameSidebar } from './components/hds/app-frame/parts/sidebar.ts';
|
|
222
223
|
export { default as HdsLayoutFlex } from './components/hds/layout/flex/index.ts';
|
|
223
224
|
export { default as HdsLayoutFlexItem } from './components/hds/layout/flex/item.ts';
|
|
225
|
+
export * from './components/hds/layout/flex/types.ts';
|
|
224
226
|
export { default as HdsLayoutGrid } from './components/hds/layout/grid/index.ts';
|
|
225
227
|
export { default as HdsLayoutGridItem } from './components/hds/layout/grid/item.ts';
|
|
228
|
+
export { HdsLayoutGridAlignValues, HdsLayoutGridGapValues, type HdsLayoutGridAligns, type HdsLayoutGridGaps, } from './components/hds/layout/grid/types.ts';
|
|
226
229
|
export { default as HdsDialogPrimitiveBody } from './components/hds/dialog-primitive/body.ts';
|
|
227
230
|
export { default as HdsDialogPrimitiveDescription } from './components/hds/dialog-primitive/description.ts';
|
|
228
231
|
export { default as HdsDialogPrimitiveFooter } from './components/hds/dialog-primitive/footer.ts';
|
|
@@ -4,7 +4,6 @@ import { action } from '@ember/object';
|
|
|
4
4
|
import { assert } from '@ember/debug';
|
|
5
5
|
import { getElementId } from '../../../utils/hds-get-element-id.js';
|
|
6
6
|
import { buildWaiter } from '@ember/test-waiters';
|
|
7
|
-
import { registerDestructor } from '@ember/destroyable';
|
|
8
7
|
import '../dialog-primitive/header.js';
|
|
9
8
|
import '../dialog-primitive/body.js';
|
|
10
9
|
import '../dialog-primitive/footer.js';
|
|
@@ -13,7 +12,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
13
12
|
import { g, i, n } from 'decorator-transforms/runtime';
|
|
14
13
|
import { setComponentTemplate } from '@ember/component';
|
|
15
14
|
|
|
16
|
-
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<Hds::DialogPrimitive::Wrapper\n class={{this.classNames}}\n ...attributes\n aria-labelledby={{this.id}}\n {{did-insert this.didInsert}}\n {{will-destroy this.willDestroyNode}}\n {{! @glint-expect-error - https://github.com/josemarluedke/ember-focus-trap/issues/86 }}\n {{focus-trap isActive=this._isOpen focusTrapOptions=(hash onDeactivate=this.onDismiss)}}\n>\n <:header>\n {{yield\n (hash\n Header=(component\n \"hds/dialog-primitive/header\"\n id=this.id\n onDismiss=this.onDismiss\n contextualClassPrefix=\"hds-modal\"\n titleTag=\"h1\"\n )\n )\n }}\n </:header>\n <:body>\n {{yield (hash Body=(component \"hds/dialog-primitive/body\" contextualClass=\"hds-modal__body\"))}}\n </:body>\n <:footer>\n {{yield\n (hash\n Footer=(component \"hds/dialog-primitive/footer\" onDismiss=this.onDismiss contextualClass=\"hds-modal__footer\")\n )\n }}\n </:footer>\n</Hds::DialogPrimitive::Wrapper>\n\n{{#if this._isOpen}}\n <Hds::DialogPrimitive::Overlay @contextualClass=\"hds-modal__overlay\" />\n{{/if}}");
|
|
15
|
+
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<Hds::DialogPrimitive::Wrapper\n class={{this.classNames}}\n ...attributes\n aria-labelledby={{this.id}}\n {{did-insert this.didInsert}}\n {{will-destroy this.willDestroyNode}}\n {{! @glint-expect-error - https://github.com/josemarluedke/ember-focus-trap/issues/86 }}\n {{focus-trap isActive=this._isOpen focusTrapOptions=(hash onDeactivate=this.onDismiss clickOutsideDeactivates=true)}}\n>\n <:header>\n {{yield\n (hash\n Header=(component\n \"hds/dialog-primitive/header\"\n id=this.id\n onDismiss=this.onDismiss\n contextualClassPrefix=\"hds-modal\"\n titleTag=\"h1\"\n )\n )\n }}\n </:header>\n <:body>\n {{yield (hash Body=(component \"hds/dialog-primitive/body\" contextualClass=\"hds-modal__body\"))}}\n </:body>\n <:footer>\n {{yield\n (hash\n Footer=(component \"hds/dialog-primitive/footer\" onDismiss=this.onDismiss contextualClass=\"hds-modal__footer\")\n )\n }}\n </:footer>\n</Hds::DialogPrimitive::Wrapper>\n\n{{#if this._isOpen}}\n <Hds::DialogPrimitive::Overlay @contextualClass=\"hds-modal__overlay\" />\n{{/if}}");
|
|
17
16
|
|
|
18
17
|
/**
|
|
19
18
|
* Copyright (c) HashiCorp, Inc.
|
|
@@ -35,13 +34,6 @@ class HdsModal extends Component {
|
|
|
35
34
|
_element;
|
|
36
35
|
_body;
|
|
37
36
|
_bodyInitialOverflowValue = '';
|
|
38
|
-
_clickHandler;
|
|
39
|
-
constructor(owner, args) {
|
|
40
|
-
super(owner, args);
|
|
41
|
-
registerDestructor(this, () => {
|
|
42
|
-
document.removeEventListener('click', this._clickHandler, true);
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
37
|
get isDismissDisabled() {
|
|
46
38
|
return this.args.isDismissDisabled ?? false;
|
|
47
39
|
}
|
|
@@ -88,26 +80,6 @@ class HdsModal extends Component {
|
|
|
88
80
|
}
|
|
89
81
|
} else {
|
|
90
82
|
this._isOpen = false;
|
|
91
|
-
|
|
92
|
-
// Reset page `overflow` property
|
|
93
|
-
if (this._body) {
|
|
94
|
-
this._body.style.removeProperty('overflow');
|
|
95
|
-
if (this._bodyInitialOverflowValue === '') {
|
|
96
|
-
if (this._body.style.length === 0) {
|
|
97
|
-
this._body.removeAttribute('style');
|
|
98
|
-
}
|
|
99
|
-
} else {
|
|
100
|
-
this._body.style.setProperty('overflow', this._bodyInitialOverflowValue);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// Return focus to a specific element (if provided)
|
|
105
|
-
if (this.args.returnFocusTo) {
|
|
106
|
-
const initiator = document.getElementById(this.args.returnFocusTo);
|
|
107
|
-
if (initiator) {
|
|
108
|
-
initiator.focus();
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
83
|
}
|
|
112
84
|
}
|
|
113
85
|
static {
|
|
@@ -130,18 +102,6 @@ class HdsModal extends Component {
|
|
|
130
102
|
if (!this._element.open) {
|
|
131
103
|
this.open();
|
|
132
104
|
}
|
|
133
|
-
this._clickHandler = event => {
|
|
134
|
-
// check if the click is outside the modal and the modal is open
|
|
135
|
-
if (!this._element.contains(event.target) && this._isOpen) {
|
|
136
|
-
if (!this.isDismissDisabled) {
|
|
137
|
-
void this.onDismiss();
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
};
|
|
141
|
-
document.addEventListener('click', this._clickHandler, {
|
|
142
|
-
capture: true,
|
|
143
|
-
passive: false
|
|
144
|
-
});
|
|
145
105
|
}
|
|
146
106
|
static {
|
|
147
107
|
n(this.prototype, "didInsert", [action]);
|
|
@@ -175,6 +135,7 @@ class HdsModal extends Component {
|
|
|
175
135
|
async onDismiss() {
|
|
176
136
|
// allow ember test helpers to be aware of when the `close` event fires
|
|
177
137
|
// when using `click` or other helpers from '@ember/test-helpers'
|
|
138
|
+
// Notice: this code will get stripped out in production builds (DEBUG evaluates to `true` in dev/test builds, but `false` in prod builds)
|
|
178
139
|
if (this._element.open) {
|
|
179
140
|
const token = waiter.beginAsync();
|
|
180
141
|
const listener = () => {
|
|
@@ -186,6 +147,26 @@ class HdsModal extends Component {
|
|
|
186
147
|
|
|
187
148
|
// Make modal dialog invisible using the native `close` method
|
|
188
149
|
this._element.close();
|
|
150
|
+
|
|
151
|
+
// Reset page `overflow` property
|
|
152
|
+
if (this._body) {
|
|
153
|
+
this._body.style.removeProperty('overflow');
|
|
154
|
+
if (this._bodyInitialOverflowValue === '') {
|
|
155
|
+
if (this._body.style.length === 0) {
|
|
156
|
+
this._body.removeAttribute('style');
|
|
157
|
+
}
|
|
158
|
+
} else {
|
|
159
|
+
this._body.style.setProperty('overflow', this._bodyInitialOverflowValue);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// Return focus to a specific element (if provided)
|
|
164
|
+
if (this.args.returnFocusTo) {
|
|
165
|
+
const initiator = document.getElementById(this.args.returnFocusTo);
|
|
166
|
+
if (initiator) {
|
|
167
|
+
initiator.focus();
|
|
168
|
+
}
|
|
169
|
+
}
|
|
189
170
|
}
|
|
190
171
|
static {
|
|
191
172
|
n(this.prototype, "onDismiss", [action]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/modal/index.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { getElementId } from '../../../utils/hds-get-element-id.ts';\nimport { buildWaiter } from '@ember/test-waiters';\nimport { registerDestructor } from '@ember/destroyable';\n\nimport type { WithBoundArgs } from '@glint/template';\nimport type Owner from '@ember/owner';\nimport type { HdsModalSizes, HdsModalColors } from './types.ts';\n\nimport HdsDialogPrimitiveHeaderComponent from '../dialog-primitive/header.ts';\nimport HdsDialogPrimitiveBodyComponent from '../dialog-primitive/body.ts';\nimport HdsDialogPrimitiveFooterComponent from '../dialog-primitive/footer.ts';\nimport { HdsModalSizeValues, HdsModalColorValues } from './types.ts';\n\nconst waiter = buildWaiter('@hashicorp/design-system-components:modal');\n\nexport const DEFAULT_SIZE = HdsModalSizeValues.Medium;\nexport const DEFAULT_COLOR = HdsModalColorValues.Neutral;\n\nexport const SIZES: string[] = Object.values(HdsModalSizeValues);\nexport const COLORS: string[] = Object.values(HdsModalColorValues);\n\nexport interface HdsModalSignature {\n Args: {\n isDismissDisabled?: boolean;\n size?: HdsModalSizes;\n color?: HdsModalColors;\n returnFocusTo?: string;\n onOpen?: () => void;\n onClose?: (event: Event) => void;\n };\n Blocks: {\n default: [\n {\n Header?: WithBoundArgs<\n typeof HdsDialogPrimitiveHeaderComponent,\n 'id' | 'onDismiss' | 'contextualClassPrefix'\n >;\n Body?: WithBoundArgs<\n typeof HdsDialogPrimitiveBodyComponent,\n 'contextualClass'\n >;\n Footer?: WithBoundArgs<\n typeof HdsDialogPrimitiveFooterComponent,\n 'onDismiss' | 'contextualClass'\n >;\n },\n ];\n };\n Element: HTMLDialogElement;\n}\n\nexport default class HdsModal extends Component<HdsModalSignature> {\n @tracked private _isOpen = false;\n private _element!: HTMLDialogElement;\n private _body!: HTMLElement;\n private _bodyInitialOverflowValue = '';\n private _clickHandler!: (event: MouseEvent) => void;\n\n constructor(owner: Owner, args: HdsModalSignature['Args']) {\n super(owner, args);\n\n registerDestructor(this, (): void => {\n document.removeEventListener('click', this._clickHandler, true);\n });\n }\n\n get isDismissDisabled(): boolean {\n return this.args.isDismissDisabled ?? false;\n }\n\n get size(): HdsModalSizes {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Modal\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n get color(): HdsModalColors {\n const { color = DEFAULT_COLOR } = this.args;\n\n assert(\n `@color for \"Hds::Modal\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n\n return color;\n }\n\n get id(): string {\n return getElementId(this);\n }\n\n get classNames(): string {\n const classes = ['hds-modal'];\n\n // add a class based on the @size argument\n classes.push(`hds-modal--size-${this.size}`);\n\n // add a class based on the @color argument\n classes.push(`hds-modal--color-${this.color}`);\n\n return classes.join(' ');\n }\n\n @action registerOnCloseCallback(event: Event): void {\n if (\n !this.isDismissDisabled &&\n this.args.onClose &&\n typeof this.args.onClose === 'function'\n ) {\n this.args.onClose(event);\n }\n\n // If the dismissal of the modal is disabled, we keep the modal open/visible otherwise we mark it as closed\n if (this.isDismissDisabled) {\n // If, in a chain of events, the element is not attached to the DOM, the `showModal` would fail\n // so we add this safeguard condition that checks for the `<dialog>` to have a parent\n if (this._element.parentElement) {\n // As there is no way to `preventDefault` on `close` events, we call the `showModal` function\n // preserving the state of the modal dialog\n this._element.showModal();\n }\n } else {\n this._isOpen = false;\n\n // Reset page `overflow` property\n if (this._body) {\n this._body.style.removeProperty('overflow');\n if (this._bodyInitialOverflowValue === '') {\n if (this._body.style.length === 0) {\n this._body.removeAttribute('style');\n }\n } else {\n this._body.style.setProperty(\n 'overflow',\n this._bodyInitialOverflowValue\n );\n }\n }\n\n // Return focus to a specific element (if provided)\n if (this.args.returnFocusTo) {\n const initiator = document.getElementById(this.args.returnFocusTo);\n if (initiator) {\n initiator.focus();\n }\n }\n }\n }\n\n @action\n didInsert(element: HTMLDialogElement): void {\n // Store references of `<dialog>` and `<body>` elements\n this._element = element;\n this._body = document.body;\n\n if (this._body) {\n // Store the initial `overflow` value of `<body>` so we can reset to it\n this._bodyInitialOverflowValue =\n this._body.style.getPropertyValue('overflow');\n }\n\n // Register \"onClose\" callback function to be called when a native 'close' event is dispatched\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this._element.addEventListener('close', this.registerOnCloseCallback, true);\n\n // If the modal dialog is not already open\n if (!this._element.open) {\n this.open();\n }\n\n this._clickHandler = (event: MouseEvent) => {\n // check if the click is outside the modal and the modal is open\n if (!this._element.contains(event.target as Node) && this._isOpen) {\n if (!this.isDismissDisabled) {\n void this.onDismiss();\n }\n }\n };\n\n document.addEventListener('click', this._clickHandler, {\n capture: true,\n passive: false,\n });\n }\n\n @action\n willDestroyNode(): void {\n if (this._element) {\n this._element.removeEventListener(\n 'close',\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.registerOnCloseCallback,\n true\n );\n }\n }\n\n @action\n open(): void {\n // Make modal dialog visible using the native `showModal` method\n this._element.showModal();\n this._isOpen = true;\n\n // Prevent page from scrolling when the dialog is open\n if (this._body) this._body.style.setProperty('overflow', 'hidden');\n\n // Call \"onOpen\" callback function\n if (this.args.onOpen && typeof this.args.onOpen === 'function') {\n this.args.onOpen();\n }\n }\n\n @action\n // eslint-disable-next-line @typescript-eslint/require-await\n async onDismiss(): Promise<void> {\n // allow ember test helpers to be aware of when the `close` event fires\n // when using `click` or other helpers from '@ember/test-helpers'\n if (this._element.open) {\n const token = waiter.beginAsync();\n const listener = () => {\n waiter.endAsync(token);\n this._element.removeEventListener('close', listener);\n };\n this._element.addEventListener('close', listener);\n }\n\n // Make modal dialog invisible using the native `close` method\n this._element.close();\n }\n}\n"],"names":["waiter","buildWaiter","DEFAULT_SIZE","HdsModalSizeValues","Medium","DEFAULT_COLOR","HdsModalColorValues","Neutral","SIZES","Object","values","COLORS","HdsModal","Component","g","prototype","tracked","i","void 0","_element","_body","_bodyInitialOverflowValue","_clickHandler","constructor","owner","args","registerDestructor","document","removeEventListener","isDismissDisabled","size","assert","join","includes","color","id","getElementId","classNames","classes","push","registerOnCloseCallback","event","onClose","parentElement","showModal","_isOpen","style","removeProperty","length","removeAttribute","setProperty","returnFocusTo","initiator","getElementById","focus","n","action","didInsert","element","body","getPropertyValue","addEventListener","open","contains","target","onDismiss","capture","passive","willDestroyNode","onOpen","token","beginAsync","listener","endAsync","close","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/modal/index.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { getElementId } from '../../../utils/hds-get-element-id.ts';\nimport { buildWaiter } from '@ember/test-waiters';\n\nimport type { WithBoundArgs } from '@glint/template';\nimport type { HdsModalSizes, HdsModalColors } from './types.ts';\n\nimport HdsDialogPrimitiveHeaderComponent from '../dialog-primitive/header.ts';\nimport HdsDialogPrimitiveBodyComponent from '../dialog-primitive/body.ts';\nimport HdsDialogPrimitiveFooterComponent from '../dialog-primitive/footer.ts';\nimport { HdsModalSizeValues, HdsModalColorValues } from './types.ts';\n\nconst waiter = buildWaiter('@hashicorp/design-system-components:modal');\n\nexport const DEFAULT_SIZE = HdsModalSizeValues.Medium;\nexport const DEFAULT_COLOR = HdsModalColorValues.Neutral;\n\nexport const SIZES: string[] = Object.values(HdsModalSizeValues);\nexport const COLORS: string[] = Object.values(HdsModalColorValues);\n\nexport interface HdsModalSignature {\n Args: {\n isDismissDisabled?: boolean;\n size?: HdsModalSizes;\n color?: HdsModalColors;\n returnFocusTo?: string;\n onOpen?: () => void;\n onClose?: (event: Event) => void;\n };\n Blocks: {\n default: [\n {\n Header?: WithBoundArgs<\n typeof HdsDialogPrimitiveHeaderComponent,\n 'id' | 'onDismiss' | 'contextualClassPrefix'\n >;\n Body?: WithBoundArgs<\n typeof HdsDialogPrimitiveBodyComponent,\n 'contextualClass'\n >;\n Footer?: WithBoundArgs<\n typeof HdsDialogPrimitiveFooterComponent,\n 'onDismiss' | 'contextualClass'\n >;\n },\n ];\n };\n Element: HTMLDialogElement;\n}\n\nexport default class HdsModal extends Component<HdsModalSignature> {\n @tracked private _isOpen = false;\n private _element!: HTMLDialogElement;\n private _body!: HTMLElement;\n private _bodyInitialOverflowValue = '';\n\n get isDismissDisabled(): boolean {\n return this.args.isDismissDisabled ?? false;\n }\n\n get size(): HdsModalSizes {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Modal\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n get color(): HdsModalColors {\n const { color = DEFAULT_COLOR } = this.args;\n\n assert(\n `@color for \"Hds::Modal\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n\n return color;\n }\n\n get id(): string {\n return getElementId(this);\n }\n\n get classNames(): string {\n const classes = ['hds-modal'];\n\n // add a class based on the @size argument\n classes.push(`hds-modal--size-${this.size}`);\n\n // add a class based on the @color argument\n classes.push(`hds-modal--color-${this.color}`);\n\n return classes.join(' ');\n }\n\n @action registerOnCloseCallback(event: Event): void {\n if (\n !this.isDismissDisabled &&\n this.args.onClose &&\n typeof this.args.onClose === 'function'\n ) {\n this.args.onClose(event);\n }\n\n // If the dismissal of the modal is disabled, we keep the modal open/visible otherwise we mark it as closed\n if (this.isDismissDisabled) {\n // If, in a chain of events, the element is not attached to the DOM, the `showModal` would fail\n // so we add this safeguard condition that checks for the `<dialog>` to have a parent\n if (this._element.parentElement) {\n // As there is no way to `preventDefault` on `close` events, we call the `showModal` function\n // preserving the state of the modal dialog\n this._element.showModal();\n }\n } else {\n this._isOpen = false;\n }\n }\n\n @action\n didInsert(element: HTMLDialogElement): void {\n // Store references of `<dialog>` and `<body>` elements\n this._element = element;\n this._body = document.body;\n\n if (this._body) {\n // Store the initial `overflow` value of `<body>` so we can reset to it\n this._bodyInitialOverflowValue =\n this._body.style.getPropertyValue('overflow');\n }\n\n // Register \"onClose\" callback function to be called when a native 'close' event is dispatched\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this._element.addEventListener('close', this.registerOnCloseCallback, true);\n\n // If the modal dialog is not already open\n if (!this._element.open) {\n this.open();\n }\n }\n\n @action\n willDestroyNode(): void {\n if (this._element) {\n this._element.removeEventListener(\n 'close',\n // eslint-disable-next-line @typescript-eslint/unbound-method\n this.registerOnCloseCallback,\n true\n );\n }\n }\n\n @action\n open(): void {\n // Make modal dialog visible using the native `showModal` method\n this._element.showModal();\n this._isOpen = true;\n\n // Prevent page from scrolling when the dialog is open\n if (this._body) this._body.style.setProperty('overflow', 'hidden');\n\n // Call \"onOpen\" callback function\n if (this.args.onOpen && typeof this.args.onOpen === 'function') {\n this.args.onOpen();\n }\n }\n\n @action\n // eslint-disable-next-line @typescript-eslint/require-await\n async onDismiss(): Promise<void> {\n // allow ember test helpers to be aware of when the `close` event fires\n // when using `click` or other helpers from '@ember/test-helpers'\n // Notice: this code will get stripped out in production builds (DEBUG evaluates to `true` in dev/test builds, but `false` in prod builds)\n if (this._element.open) {\n const token = waiter.beginAsync();\n const listener = () => {\n waiter.endAsync(token);\n this._element.removeEventListener('close', listener);\n };\n this._element.addEventListener('close', listener);\n }\n\n // Make modal dialog invisible using the native `close` method\n this._element.close();\n\n // Reset page `overflow` property\n if (this._body) {\n this._body.style.removeProperty('overflow');\n if (this._bodyInitialOverflowValue === '') {\n if (this._body.style.length === 0) {\n this._body.removeAttribute('style');\n }\n } else {\n this._body.style.setProperty(\n 'overflow',\n this._bodyInitialOverflowValue\n );\n }\n }\n\n // Return focus to a specific element (if provided)\n if (this.args.returnFocusTo) {\n const initiator = document.getElementById(this.args.returnFocusTo);\n if (initiator) {\n initiator.focus();\n }\n }\n }\n}\n"],"names":["waiter","buildWaiter","DEFAULT_SIZE","HdsModalSizeValues","Medium","DEFAULT_COLOR","HdsModalColorValues","Neutral","SIZES","Object","values","COLORS","HdsModal","Component","g","prototype","tracked","i","void 0","_element","_body","_bodyInitialOverflowValue","isDismissDisabled","args","size","assert","join","includes","color","id","getElementId","classNames","classes","push","registerOnCloseCallback","event","onClose","parentElement","showModal","_isOpen","n","action","didInsert","element","document","body","style","getPropertyValue","addEventListener","open","willDestroyNode","removeEventListener","setProperty","onOpen","onDismiss","token","beginAsync","listener","endAsync","close","removeProperty","length","removeAttribute","returnFocusTo","initiator","getElementById","focus","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
package/dist/components.js
CHANGED
|
@@ -49,6 +49,7 @@ export { default as HdsBreadcrumb } from './components/hds/breadcrumb/index.js';
|
|
|
49
49
|
export { default as HdsBreadcrumbItem } from './components/hds/breadcrumb/item.js';
|
|
50
50
|
export { default as HdsBreadcrumbTruncation } from './components/hds/breadcrumb/truncation.js';
|
|
51
51
|
export { default as HdsButton } from './components/hds/button/index.js';
|
|
52
|
+
export { HdsButtonColorValues, HdsButtonIconPositionValues, HdsButtonSizeValues } from './components/hds/button/types.js';
|
|
52
53
|
export { default as HdsButtonSet } from './components/hds/button-set/index.js';
|
|
53
54
|
export { default as HdsCardContainer } from './components/hds/card/container.js';
|
|
54
55
|
export { HdsCardBackgroundValues, HdsCardLevelValues, HdsCardOverflowValues, HdsCardTagValues } from './components/hds/card/types.js';
|
|
@@ -216,8 +217,10 @@ export { default as HdsAppFrameModals } from './components/hds/app-frame/parts/m
|
|
|
216
217
|
export { default as HdsAppFrameSidebar } from './components/hds/app-frame/parts/sidebar.js';
|
|
217
218
|
export { default as HdsLayoutFlex } from './components/hds/layout/flex/index.js';
|
|
218
219
|
export { default as HdsLayoutFlexItem } from './components/hds/layout/flex/item.js';
|
|
220
|
+
export { HdsLayoutFlexAlignValues, HdsLayoutFlexDirectionValues, HdsLayoutFlexGapValues, HdsLayoutFlexJustifyValues } from './components/hds/layout/flex/types.js';
|
|
219
221
|
export { default as HdsLayoutGrid } from './components/hds/layout/grid/index.js';
|
|
220
222
|
export { default as HdsLayoutGridItem } from './components/hds/layout/grid/item.js';
|
|
223
|
+
export { HdsLayoutGridAlignValues, HdsLayoutGridGapValues } from './components/hds/layout/grid/types.js';
|
|
221
224
|
export { default as HdsDialogPrimitiveBody } from './components/hds/dialog-primitive/body.js';
|
|
222
225
|
export { default as HdsDialogPrimitiveDescription } from './components/hds/dialog-primitive/description.js';
|
|
223
226
|
export { default as HdsDialogPrimitiveFooter } from './components/hds/dialog-primitive/footer.js';
|
package/dist/components.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"components.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hashicorp/design-system-components",
|
|
3
|
-
"version": "4.20.
|
|
3
|
+
"version": "4.20.2-rc-20250620102721",
|
|
4
4
|
"description": "Helios Design System Components",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"hashicorp",
|
|
@@ -32,25 +32,25 @@
|
|
|
32
32
|
"@ember/render-modifiers": "^2.1.0",
|
|
33
33
|
"@ember/string": "^3.1.1",
|
|
34
34
|
"@ember/test-waiters": "^3.1.0",
|
|
35
|
-
"@embroider/addon-shim": "^1.
|
|
36
|
-
"@embroider/macros": "^1.
|
|
35
|
+
"@embroider/addon-shim": "^1.10.0",
|
|
36
|
+
"@embroider/macros": "^1.18.0",
|
|
37
37
|
"@embroider/util": "^1.13.2",
|
|
38
38
|
"@floating-ui/dom": "^1.6.12",
|
|
39
39
|
"@hashicorp/design-system-tokens": "^2.3.0",
|
|
40
|
-
"@hashicorp/flight-icons": "
|
|
40
|
+
"@hashicorp/flight-icons": "3.11.1-rc-20250620102721",
|
|
41
41
|
"@lezer/highlight": "^1.2.1",
|
|
42
|
-
"@nullvoxpopuli/ember-composable-helpers": "^5.2.
|
|
42
|
+
"@nullvoxpopuli/ember-composable-helpers": "^5.2.10",
|
|
43
43
|
"clipboard-polyfill": "^4.1.1",
|
|
44
44
|
"codemirror-lang-hcl": "^0.0.0-beta.2",
|
|
45
45
|
"decorator-transforms": "^2.3.0",
|
|
46
46
|
"ember-a11y-refocus": "^4.1.4",
|
|
47
47
|
"ember-cli-sass": "^11.0.1",
|
|
48
|
-
"ember-concurrency": "^4.0.
|
|
48
|
+
"ember-concurrency": "^4.0.4",
|
|
49
49
|
"ember-element-helper": "^0.8.6",
|
|
50
50
|
"ember-focus-trap": "^1.1.1",
|
|
51
51
|
"ember-get-config": "^2.1.1",
|
|
52
|
-
"ember-modifier": "^4.2.
|
|
53
|
-
"ember-power-select": "^8.
|
|
52
|
+
"ember-modifier": "^4.2.2",
|
|
53
|
+
"ember-power-select": "^8.7.1",
|
|
54
54
|
"ember-stargate": "^0.5.0",
|
|
55
55
|
"ember-style-modifier": "^4.4.0",
|
|
56
56
|
"ember-truth-helpers": "^4.0.3",
|
|
@@ -79,8 +79,8 @@
|
|
|
79
79
|
"@types/prismjs": "^1.26.5",
|
|
80
80
|
"babel-plugin-ember-template-compilation": "^2.4.1",
|
|
81
81
|
"concurrently": "^9.1.2",
|
|
82
|
-
"ember-basic-dropdown": "^8.
|
|
83
|
-
"ember-source": "^
|
|
82
|
+
"ember-basic-dropdown": "^8.6.1",
|
|
83
|
+
"ember-source": "^6.4.0",
|
|
84
84
|
"ember-template-lint": "^7.0.2",
|
|
85
85
|
"ember-template-lint-plugin-prettier": "^5.0.0",
|
|
86
86
|
"eslint": "^9.23.0",
|