@hashicorp/design-system-components 5.0.0-rc-20251027011435 → 5.0.0-rc-20251027023804
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/addon-main.cjs +1 -0
- package/declarations/components/hds/dropdown/toggle/icon.d.ts +2 -1
- package/declarations/components/hds/dropdown/toggle/types.d.ts +5 -0
- package/declarations/instance-initializers/load-sprite.d.ts +2 -1
- package/dist/components/hds/dropdown/toggle/icon.js +7 -3
- package/dist/components/hds/dropdown/toggle/icon.js.map +1 -1
- package/dist/components/hds/dropdown/toggle/types.js +6 -1
- package/dist/components/hds/dropdown/toggle/types.js.map +1 -1
- package/dist/components.js +1 -1
- package/dist/instance-initializers/load-sprite.js +5 -6
- package/dist/instance-initializers/load-sprite.js.map +1 -1
- package/dist/modifiers/hds-code-editor.js +2 -3
- package/dist/modifiers/hds-code-editor.js.map +1 -1
- package/package.json +2 -3
package/addon-main.cjs
CHANGED
|
@@ -11,6 +11,7 @@ import type { SetupPrimitiveToggleModifier } from '../../popover-primitive/index
|
|
|
11
11
|
import type Owner from '@ember/owner';
|
|
12
12
|
export declare const DEFAULT_SIZE = HdsDropdownToggleIconSizeValues.Medium;
|
|
13
13
|
export declare const SIZES: HdsDropdownToggleIconSizes[];
|
|
14
|
+
export declare const ALLOWED_ICON_LIST: HdsIconSignature['Args']['name'][];
|
|
14
15
|
export interface HdsDropdownToggleIconSignature {
|
|
15
16
|
Args: {
|
|
16
17
|
hasChevron?: boolean;
|
|
@@ -49,7 +50,7 @@ export default class HdsDropdownToggleIcon extends Component<HdsDropdownToggleIc
|
|
|
49
50
|
*/
|
|
50
51
|
get iconSize(): HdsIconSignature['Args']['size'];
|
|
51
52
|
/**
|
|
52
|
-
* Indicates if a dropdown chevron icon should be displayed; should be displayed unless the "more-horizontal"
|
|
53
|
+
* Indicates if a dropdown chevron icon should be displayed; should be displayed unless the "more-horizontal" or "more-vertical" icons are used.
|
|
53
54
|
*
|
|
54
55
|
* @param hasChevron
|
|
55
56
|
* @type {boolean}
|
|
@@ -17,3 +17,8 @@ export declare enum HdsDropdownToggleButtonColorValues {
|
|
|
17
17
|
Secondary = "secondary"
|
|
18
18
|
}
|
|
19
19
|
export type HdsDropdownToggleButtonColors = `${HdsDropdownToggleButtonColorValues}`;
|
|
20
|
+
export declare enum HdsDropdownToggleIconAllowedIconValues {
|
|
21
|
+
MoreHorizontal = "more-horizontal",
|
|
22
|
+
MoreVertical = "more-vertical"
|
|
23
|
+
}
|
|
24
|
+
export type HdsDropdownToggleIconAllowedIcons = `${HdsDropdownToggleIconAllowedIconValues}`;
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* Copyright (c) HashiCorp, Inc.
|
|
3
3
|
* SPDX-License-Identifier: MPL-2.0
|
|
4
4
|
*/
|
|
5
|
-
|
|
5
|
+
import type ApplicationInstance from '@ember/application/instance';
|
|
6
|
+
export declare function initialize(appInstance: ApplicationInstance): Promise<void>;
|
|
6
7
|
declare const _default: {
|
|
7
8
|
initialize: typeof initialize;
|
|
8
9
|
};
|
|
@@ -2,7 +2,7 @@ import Component from '@glimmer/component';
|
|
|
2
2
|
import { action } from '@ember/object';
|
|
3
3
|
import { assert } from '@ember/debug';
|
|
4
4
|
import { tracked } from '@glimmer/tracking';
|
|
5
|
-
import { HdsDropdownToggleIconSizeValues } from './types.js';
|
|
5
|
+
import { HdsDropdownToggleIconSizeValues, HdsDropdownToggleIconAllowedIconValues } from './types.js';
|
|
6
6
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
7
7
|
import { g, i, n } from 'decorator-transforms/runtime';
|
|
8
8
|
import { setComponentTemplate } from '@ember/component';
|
|
@@ -16,6 +16,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
|
|
|
16
16
|
|
|
17
17
|
const DEFAULT_SIZE = HdsDropdownToggleIconSizeValues.Medium;
|
|
18
18
|
const SIZES = Object.values(HdsDropdownToggleIconSizeValues);
|
|
19
|
+
const ALLOWED_ICON_LIST = Object.values(HdsDropdownToggleIconAllowedIconValues);
|
|
19
20
|
class HdsDropdownToggleIcon extends Component {
|
|
20
21
|
static {
|
|
21
22
|
g(this.prototype, "_hasImage", [tracked], function () {
|
|
@@ -86,13 +87,16 @@ class HdsDropdownToggleIcon extends Component {
|
|
|
86
87
|
}
|
|
87
88
|
|
|
88
89
|
/**
|
|
89
|
-
* Indicates if a dropdown chevron icon should be displayed; should be displayed unless the "more-horizontal"
|
|
90
|
+
* Indicates if a dropdown chevron icon should be displayed; should be displayed unless the "more-horizontal" or "more-vertical" icons are used.
|
|
90
91
|
*
|
|
91
92
|
* @param hasChevron
|
|
92
93
|
* @type {boolean}
|
|
93
94
|
* @default true
|
|
94
95
|
*/
|
|
95
96
|
get hasChevron() {
|
|
97
|
+
if (this.args.icon && !ALLOWED_ICON_LIST.includes(this.args.icon) && this.args.hasChevron === false) {
|
|
98
|
+
assert(`@hasChevron for "Hds::Dropdown::Toggle::Icon" must be true unless the icon is one of the following: ${ALLOWED_ICON_LIST.join(', ')}; received: ${this.args.icon}`);
|
|
99
|
+
}
|
|
96
100
|
return this.args.hasChevron ?? true;
|
|
97
101
|
}
|
|
98
102
|
|
|
@@ -121,5 +125,5 @@ class HdsDropdownToggleIcon extends Component {
|
|
|
121
125
|
}
|
|
122
126
|
setComponentTemplate(TEMPLATE, HdsDropdownToggleIcon);
|
|
123
127
|
|
|
124
|
-
export { DEFAULT_SIZE, SIZES, HdsDropdownToggleIcon as default };
|
|
128
|
+
export { ALLOWED_ICON_LIST, DEFAULT_SIZE, SIZES, HdsDropdownToggleIcon as default };
|
|
125
129
|
//# sourceMappingURL=icon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.js","sources":["../../../../../src/components/hds/dropdown/toggle/icon.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { tracked } from '@glimmer/tracking';\nimport {
|
|
1
|
+
{"version":3,"file":"icon.js","sources":["../../../../../src/components/hds/dropdown/toggle/icon.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { tracked } from '@glimmer/tracking';\nimport {\n HdsDropdownToggleIconSizeValues,\n HdsDropdownToggleIconAllowedIconValues,\n} from './types.ts';\n\nimport type { HdsIconSignature } from '../../icon';\nimport type { HdsDropdownToggleIconSizes } from './types';\nimport type { ModifierLike } from '@glint/template';\nimport type { SetupPrimitiveToggleModifier } from '../../popover-primitive/index.ts';\nimport type Owner from '@ember/owner';\n\nexport const DEFAULT_SIZE = HdsDropdownToggleIconSizeValues.Medium;\nexport const SIZES: HdsDropdownToggleIconSizes[] = Object.values(\n HdsDropdownToggleIconSizeValues\n);\n\nexport const ALLOWED_ICON_LIST: HdsIconSignature['Args']['name'][] =\n Object.values(HdsDropdownToggleIconAllowedIconValues);\n\nexport interface HdsDropdownToggleIconSignature {\n Args: {\n hasChevron?: boolean;\n icon?: HdsIconSignature['Args']['name'];\n imageSrc?: string;\n isOpen?: boolean;\n size?: HdsDropdownToggleIconSizes;\n text: string;\n setupPrimitiveToggle?: ModifierLike<SetupPrimitiveToggleModifier>;\n };\n Element: HTMLButtonElement;\n}\n\nexport default class HdsDropdownToggleIcon extends Component<HdsDropdownToggleIconSignature> {\n @tracked private _hasImage = true;\n\n constructor(owner: Owner, args: HdsDropdownToggleIconSignature['Args']) {\n super(owner, args);\n if (!(this.args.icon || this.args.imageSrc)) {\n assert(\n '@icon or @imageSrc must be defined for \"Hds::Dropdown::Toggle::Icon\"'\n );\n }\n }\n\n @action\n onDidUpdateImageSrc(): void {\n this._hasImage = true;\n }\n\n @action\n onImageLoadError(): void {\n this._hasImage = false;\n }\n\n /**\n * @param text\n * @type {string}\n * @description The text of the `aria-label` applied to the toggle\n */\n get text(): string {\n const { text } = this.args;\n\n assert(\n '@text for \"Hds::Dropdown::Toggle::Icon\" must have a valid value',\n text !== undefined\n );\n\n return text;\n }\n\n /**\n * @param size\n * @type {string}\n * @default medium\n * @description The size of the button; acceptable values are `small` and `medium`\n */\n get size(): HdsDropdownToggleIconSizes {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Dropdown::Toggle::Icon\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n /**\n * @param iconSize\n * @type {string}\n * @default 24\n * @description ensures that the correct icon size is used\n */\n get iconSize(): HdsIconSignature['Args']['size'] {\n if (this.args.size === 'medium' && !this.hasChevron) {\n // in this special case we use a larger SVG\n return '24';\n } else {\n // this is the default size (notice: for the \"small\" variant with chevron, we set the actual size to `12px` via CSS)\n return '16';\n }\n }\n\n /**\n * Indicates if a dropdown chevron icon should be displayed; should be displayed unless the \"more-horizontal\" or \"more-vertical\" icons are used.\n *\n * @param hasChevron\n * @type {boolean}\n * @default true\n */\n get hasChevron(): boolean {\n if (\n this.args.icon &&\n !ALLOWED_ICON_LIST.includes(this.args.icon) &&\n this.args.hasChevron === false\n ) {\n assert(\n `@hasChevron for \"Hds::Dropdown::Toggle::Icon\" must be true unless the icon is one of the following: ${ALLOWED_ICON_LIST.join(\n ', '\n )}; received: ${this.args.icon}`\n );\n }\n\n return this.args.hasChevron ?? true;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method ToggleIcon#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-dropdown-toggle-icon'];\n\n // add a class based on the @size argument\n classes.push(`hds-dropdown-toggle-icon--size-${this.size}`);\n\n // add a class based on the @isOpen argument\n if (this.args.isOpen) {\n classes.push('hds-dropdown-toggle-icon--is-open');\n }\n\n // add a class based on the @hasChevron argument\n if (this.hasChevron) {\n classes.push('hds-dropdown-toggle-icon--has-chevron');\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["DEFAULT_SIZE","HdsDropdownToggleIconSizeValues","Medium","SIZES","Object","values","ALLOWED_ICON_LIST","HdsDropdownToggleIconAllowedIconValues","HdsDropdownToggleIcon","Component","g","prototype","tracked","i","void 0","constructor","owner","args","icon","imageSrc","assert","onDidUpdateImageSrc","_hasImage","n","action","onImageLoadError","text","undefined","size","join","includes","iconSize","hasChevron","classNames","classes","push","isOpen","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
@@ -18,6 +18,11 @@ let HdsDropdownToggleButtonColorValues = /*#__PURE__*/function (HdsDropdownToggl
|
|
|
18
18
|
HdsDropdownToggleButtonColorValues["Secondary"] = "secondary";
|
|
19
19
|
return HdsDropdownToggleButtonColorValues;
|
|
20
20
|
}({});
|
|
21
|
+
let HdsDropdownToggleIconAllowedIconValues = /*#__PURE__*/function (HdsDropdownToggleIconAllowedIconValues) {
|
|
22
|
+
HdsDropdownToggleIconAllowedIconValues["MoreHorizontal"] = "more-horizontal";
|
|
23
|
+
HdsDropdownToggleIconAllowedIconValues["MoreVertical"] = "more-vertical";
|
|
24
|
+
return HdsDropdownToggleIconAllowedIconValues;
|
|
25
|
+
}({});
|
|
21
26
|
|
|
22
|
-
export { HdsDropdownToggleButtonColorValues, HdsDropdownToggleButtonSizeValues, HdsDropdownToggleIconSizeValues };
|
|
27
|
+
export { HdsDropdownToggleButtonColorValues, HdsDropdownToggleButtonSizeValues, HdsDropdownToggleIconAllowedIconValues, HdsDropdownToggleIconSizeValues };
|
|
23
28
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../../src/components/hds/dropdown/toggle/types.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nexport enum HdsDropdownToggleIconSizeValues {\n Small = 'small',\n Medium = 'medium',\n}\nexport type HdsDropdownToggleIconSizes = `${HdsDropdownToggleIconSizeValues}`;\n\nexport enum HdsDropdownToggleButtonSizeValues {\n Small = 'small',\n Medium = 'medium',\n}\nexport type HdsDropdownToggleButtonSizes =\n `${HdsDropdownToggleButtonSizeValues}`;\n\nexport enum HdsDropdownToggleButtonColorValues {\n Primary = 'primary',\n Secondary = 'secondary',\n}\nexport type HdsDropdownToggleButtonColors =\n `${HdsDropdownToggleButtonColorValues}`;\n"],"names":["HdsDropdownToggleIconSizeValues","HdsDropdownToggleButtonSizeValues","HdsDropdownToggleButtonColorValues"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA,IAAYA,+BAA+B,0BAA/BA,+BAA+B,EAAA;EAA/BA,+BAA+B,CAAA,OAAA,CAAA,GAAA,OAAA;EAA/BA,+BAA+B,CAAA,QAAA,CAAA,GAAA,QAAA;AAAA,EAAA,OAA/BA,+BAA+B;AAAA,CAAA,CAAA,EAAA;AAM3C,IAAYC,iCAAiC,0BAAjCA,iCAAiC,EAAA;EAAjCA,iCAAiC,CAAA,OAAA,CAAA,GAAA,OAAA;EAAjCA,iCAAiC,CAAA,QAAA,CAAA,GAAA,QAAA;AAAA,EAAA,OAAjCA,iCAAiC;AAAA,CAAA,CAAA,EAAA;AAO7C,IAAYC,kCAAkC,0BAAlCA,kCAAkC,EAAA;EAAlCA,kCAAkC,CAAA,SAAA,CAAA,GAAA,SAAA;EAAlCA,kCAAkC,CAAA,WAAA,CAAA,GAAA,WAAA;AAAA,EAAA,OAAlCA,kCAAkC;AAAA,CAAA,CAAA,EAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../../src/components/hds/dropdown/toggle/types.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nexport enum HdsDropdownToggleIconSizeValues {\n Small = 'small',\n Medium = 'medium',\n}\nexport type HdsDropdownToggleIconSizes = `${HdsDropdownToggleIconSizeValues}`;\n\nexport enum HdsDropdownToggleButtonSizeValues {\n Small = 'small',\n Medium = 'medium',\n}\nexport type HdsDropdownToggleButtonSizes =\n `${HdsDropdownToggleButtonSizeValues}`;\n\nexport enum HdsDropdownToggleButtonColorValues {\n Primary = 'primary',\n Secondary = 'secondary',\n}\nexport type HdsDropdownToggleButtonColors =\n `${HdsDropdownToggleButtonColorValues}`;\n\nexport enum HdsDropdownToggleIconAllowedIconValues {\n MoreHorizontal = 'more-horizontal',\n MoreVertical = 'more-vertical',\n}\nexport type HdsDropdownToggleIconAllowedIcons =\n `${HdsDropdownToggleIconAllowedIconValues}`;\n"],"names":["HdsDropdownToggleIconSizeValues","HdsDropdownToggleButtonSizeValues","HdsDropdownToggleButtonColorValues","HdsDropdownToggleIconAllowedIconValues"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA,IAAYA,+BAA+B,0BAA/BA,+BAA+B,EAAA;EAA/BA,+BAA+B,CAAA,OAAA,CAAA,GAAA,OAAA;EAA/BA,+BAA+B,CAAA,QAAA,CAAA,GAAA,QAAA;AAAA,EAAA,OAA/BA,+BAA+B;AAAA,CAAA,CAAA,EAAA;AAM3C,IAAYC,iCAAiC,0BAAjCA,iCAAiC,EAAA;EAAjCA,iCAAiC,CAAA,OAAA,CAAA,GAAA,OAAA;EAAjCA,iCAAiC,CAAA,QAAA,CAAA,GAAA,QAAA;AAAA,EAAA,OAAjCA,iCAAiC;AAAA,CAAA,CAAA,EAAA;AAO7C,IAAYC,kCAAkC,0BAAlCA,kCAAkC,EAAA;EAAlCA,kCAAkC,CAAA,SAAA,CAAA,GAAA,SAAA;EAAlCA,kCAAkC,CAAA,WAAA,CAAA,GAAA,WAAA;AAAA,EAAA,OAAlCA,kCAAkC;AAAA,CAAA,CAAA,EAAA;AAO9C,IAAYC,sCAAsC,0BAAtCA,sCAAsC,EAAA;EAAtCA,sCAAsC,CAAA,gBAAA,CAAA,GAAA,iBAAA;EAAtCA,sCAAsC,CAAA,cAAA,CAAA,GAAA,eAAA;AAAA,EAAA,OAAtCA,sCAAsC;AAAA,CAAA,CAAA,EAAA;;;;"}
|
package/dist/components.js
CHANGED
|
@@ -81,7 +81,7 @@ export { default as HdsDropdownListItemTitle } from './components/hds/dropdown/l
|
|
|
81
81
|
export { default as HdsDropdownToggleButton } from './components/hds/dropdown/toggle/button.js';
|
|
82
82
|
export { default as HdsDropdownToggleIcon } from './components/hds/dropdown/toggle/icon.js';
|
|
83
83
|
export { HdsDropdownListItemInteractiveColorValues } from './components/hds/dropdown/list-item/types.js';
|
|
84
|
-
export { HdsDropdownToggleButtonColorValues, HdsDropdownToggleButtonSizeValues, HdsDropdownToggleIconSizeValues } from './components/hds/dropdown/toggle/types.js';
|
|
84
|
+
export { HdsDropdownToggleButtonColorValues, HdsDropdownToggleButtonSizeValues, HdsDropdownToggleIconAllowedIconValues, HdsDropdownToggleIconSizeValues } from './components/hds/dropdown/toggle/types.js';
|
|
85
85
|
export { HdsDropdownPositionToPlacementValues, HdsDropdownPositionValues } from './components/hds/dropdown/types.js';
|
|
86
86
|
export { default as HdsFlyout } from './components/hds/flyout/index.js';
|
|
87
87
|
export { HdsFlyoutSizesValues } from './components/hds/flyout/types.js';
|
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { isTesting } from '@embroider/macros';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Copyright (c) HashiCorp, Inc.
|
|
5
5
|
* SPDX-License-Identifier: MPL-2.0
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
async function initialize() {
|
|
9
|
-
|
|
10
|
-
if (config
|
|
8
|
+
async function initialize(appInstance) {
|
|
9
|
+
const config = appInstance.resolveRegistration('config:environment');
|
|
10
|
+
if (config.flightIconsSpriteLazyEmbed) {
|
|
11
11
|
const {
|
|
12
12
|
default: svgSprite
|
|
13
13
|
} = await import('@hashicorp/flight-icons/svg-sprite/svg-sprite-module');
|
|
14
14
|
|
|
15
15
|
// in test environments we can inject the sprite directly into the ember testing container
|
|
16
16
|
// to avoid issues with tools like Percy that only consider content inside that element
|
|
17
|
-
|
|
18
|
-
if (config.environment === 'test') {
|
|
17
|
+
if (isTesting()) {
|
|
19
18
|
const container = window.document?.getElementById('ember-testing');
|
|
20
19
|
if (container && !container.querySelector('.flight-sprite-container')) {
|
|
21
20
|
container.insertAdjacentHTML('afterbegin', svgSprite);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-sprite.js","sources":["../../src/instance-initializers/load-sprite.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport
|
|
1
|
+
{"version":3,"file":"load-sprite.js","sources":["../../src/instance-initializers/load-sprite.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { isTesting } from '@embroider/macros';\n\nimport type ApplicationInstance from '@ember/application/instance';\n\ninterface Config {\n flightIconsSpriteLazyEmbed?: boolean;\n}\n\nexport async function initialize(appInstance: ApplicationInstance) {\n const config = appInstance.resolveRegistration(\n 'config:environment'\n ) as Config;\n\n if (config.flightIconsSpriteLazyEmbed) {\n const { default: svgSprite } = await import(\n '@hashicorp/flight-icons/svg-sprite/svg-sprite-module'\n );\n\n // in test environments we can inject the sprite directly into the ember testing container\n // to avoid issues with tools like Percy that only consider content inside that element\n if (isTesting()) {\n const container = window.document?.getElementById('ember-testing');\n\n if (container && !container.querySelector('.flight-sprite-container')) {\n container.insertAdjacentHTML('afterbegin', svgSprite);\n }\n } else {\n const container = window.document?.body;\n\n if (container && !container.querySelector('.flight-sprite-container')) {\n container.insertAdjacentHTML('beforeend', svgSprite);\n }\n }\n }\n}\n\nexport default {\n initialize,\n};\n"],"names":["initialize","appInstance","config","resolveRegistration","flightIconsSpriteLazyEmbed","default","svgSprite","isTesting","container","window","document","getElementById","querySelector","insertAdjacentHTML","body"],"mappings":";;AAAA;AACA;AACA;AACA;;AAUO,eAAeA,UAAUA,CAACC,WAAgC,EAAE;AACjE,EAAA,MAAMC,MAAM,GAAGD,WAAW,CAACE,mBAAmB,CAC5C,oBACF,CAAW;EAEX,IAAID,MAAM,CAACE,0BAA0B,EAAE;IACrC,MAAM;AAAEC,MAAAA,OAAO,EAAEC;AAAU,KAAC,GAAG,MAAM,OACnC,sDACF,CAAC;;AAED;AACA;IACA,IAAIC,SAAS,EAAE,EAAE;MACf,MAAMC,SAAS,GAAGC,MAAM,CAACC,QAAQ,EAAEC,cAAc,CAAC,eAAe,CAAC;MAElE,IAAIH,SAAS,IAAI,CAACA,SAAS,CAACI,aAAa,CAAC,0BAA0B,CAAC,EAAE;AACrEJ,QAAAA,SAAS,CAACK,kBAAkB,CAAC,YAAY,EAAEP,SAAS,CAAC;AACvD,MAAA;AACF,IAAA,CAAC,MAAM;AACL,MAAA,MAAME,SAAS,GAAGC,MAAM,CAACC,QAAQ,EAAEI,IAAI;MAEvC,IAAIN,SAAS,IAAI,CAACA,SAAS,CAACI,aAAa,CAAC,0BAA0B,CAAC,EAAE;AACrEJ,QAAAA,SAAS,CAACK,kBAAkB,CAAC,WAAW,EAAEP,SAAS,CAAC;AACtD,MAAA;AACF,IAAA;AACF,EAAA;AACF;AAEA,iBAAe;AACbN,EAAAA;AACF,CAAC;;;;"}
|
|
@@ -3,7 +3,7 @@ import Modifier from 'ember-modifier';
|
|
|
3
3
|
import { assert, warn } from '@ember/debug';
|
|
4
4
|
import { registerDestructor } from '@ember/destroyable';
|
|
5
5
|
import 'ember-concurrency';
|
|
6
|
-
import
|
|
6
|
+
import { macroCondition, isTesting } from '@embroider/macros';
|
|
7
7
|
import { Compartment } from '@codemirror/state';
|
|
8
8
|
import { EditorView } from '@codemirror/view';
|
|
9
9
|
import { guidFor } from '@ember/object/internals';
|
|
@@ -130,8 +130,7 @@ class HdsCodeEditorModifier extends Modifier {
|
|
|
130
130
|
// if the editor does not exist, setup the editor
|
|
131
131
|
else {
|
|
132
132
|
// the intersection observer makes loading unreliable in tests
|
|
133
|
-
|
|
134
|
-
if (config.environment === 'test') {
|
|
133
|
+
if (macroCondition(isTesting())) {
|
|
135
134
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
136
135
|
this._setupTask.perform(element, positional, named);
|
|
137
136
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hds-code-editor.js","sources":["../../src/modifiers/hds-code-editor.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Modifier from 'ember-modifier';\nimport { assert, warn } from '@ember/debug';\nimport { registerDestructor } from '@ember/destroyable';\nimport { task } from 'ember-concurrency';\nimport config from 'ember-get-config';\nimport { Compartment } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { guidFor } from '@ember/object/internals';\nimport { isEmpty } from '@ember/utils';\nimport { service } from '@ember/service';\n\n// hds-dark theme\nimport hdsDarkTheme from './hds-code-editor/themes/hds-dark-theme.ts';\nimport hdsDarkHighlightStyle from './hds-code-editor/highlight-styles/hds-dark-highlight-style.ts';\n\nimport type HdsIntlService from '../services/hds-intl.ts';\nimport type { HdsCodeEditorLanguages } from './hds-code-editor/types.ts';\nimport type { ArgsFor, PositionalArgs, NamedArgs } from 'ember-modifier';\nimport type {\n StreamLanguage as StreamLanguageType,\n StreamParser as StreamParserType,\n} from '@codemirror/language';\nimport type { Extension } from '@codemirror/state';\nimport type {\n EditorView as EditorViewType,\n KeyBinding,\n ViewUpdate,\n} from '@codemirror/view';\nimport type { Diagnostic as DiagnosticType } from '@codemirror/lint';\nimport type Owner from '@ember/owner';\n\ntype HTMLElementWithEditor = HTMLElement & { editor: EditorViewType };\n\ntype HdsCodeEditorBlurHandler = (\n editor: EditorViewType,\n event: FocusEvent\n) => void;\n\ninterface HdsCodeEditorExtraKeys {\n [key: string]: () => void;\n}\n\nexport interface HdsCodeEditorSignature {\n Args: {\n Named: {\n ariaDescribedBy?: string;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n cspNonce?: string;\n extraKeys?: HdsCodeEditorExtraKeys;\n hasLineWrapping?: boolean;\n isLintingEnabled?: boolean;\n language?: HdsCodeEditorLanguages;\n value?: string;\n onInput?: (newValue: string, editor: EditorViewType) => void;\n onBlur?: HdsCodeEditorBlurHandler;\n onLint?: (\n diagnostics: DiagnosticType[],\n newValue: string,\n editor: EditorViewType\n ) => void;\n onSetup?: (editor: EditorViewType) => unknown;\n };\n };\n}\n\nasync function defineStreamLanguage(streamParser: StreamParserType<unknown>) {\n const { StreamLanguage } = await import('@codemirror/language');\n\n return StreamLanguage.define(streamParser);\n}\n\nexport function getCSPNonceFromMeta(): string | undefined {\n const meta = document.querySelector(\n 'meta[http-equiv=\"Content-Security-Policy\"]'\n );\n\n if (meta === null) {\n return undefined;\n }\n\n const content = meta.getAttribute('content');\n\n if (content === null) {\n return undefined;\n }\n\n // searches for either \"style-src\" or \"script-src\" followed by anything until a token like 'nonce-<value>'\n const match = content.match(/(?:style-src|script-src)[^;]*'nonce-([^']+)'/);\n\n return match ? match[1] : undefined;\n}\n\nconst LOADER_HEIGHT = '164px';\n\nconst LANGUAGES: Record<\n HdsCodeEditorLanguages,\n {\n load: () => Promise<Extension | StreamLanguageType<unknown>>;\n loadLinter?: (\n onLint?: HdsCodeEditorSignature['Args']['Named']['onLint']\n ) => Promise<Extension>;\n }\n> = {\n rego: {\n load: async () => {\n const { rego } = await import('./hds-code-editor/languages/rego.ts');\n return defineStreamLanguage(rego);\n },\n },\n ruby: {\n load: async () => {\n const { ruby } = await import('@codemirror/legacy-modes/mode/ruby');\n return defineStreamLanguage(ruby);\n },\n },\n sentinel: {\n load: async () => {\n const { sentinel } = await import(\n './hds-code-editor/languages/sentinel.ts'\n );\n return defineStreamLanguage(sentinel);\n },\n },\n shell: {\n load: async () => {\n const { shell } = await import('@codemirror/legacy-modes/mode/shell');\n return defineStreamLanguage(shell);\n },\n },\n go: {\n load: async () => (await import('@codemirror/lang-go')).go(),\n },\n hcl: {\n load: async () => (await import('codemirror-lang-hcl')).hcl(),\n },\n javascript: {\n load: async () =>\n (await import('@codemirror/lang-javascript')).javascript(),\n },\n json: {\n load: async () => (await import('@codemirror/lang-json')).json(),\n loadLinter: async (onLint) => {\n const linter = await import('./hds-code-editor/linters/json-linter.ts');\n\n return linter.default(onLint);\n },\n },\n markdown: {\n load: async () => (await import('@codemirror/lang-markdown')).markdown(),\n },\n sql: {\n load: async () => (await import('@codemirror/lang-sql')).sql(),\n },\n yaml: {\n load: async () => (await import('@codemirror/lang-yaml')).yaml(),\n },\n} as const;\n\nexport default class HdsCodeEditorModifier extends Modifier<HdsCodeEditorSignature> {\n @service declare hdsIntl: HdsIntlService;\n\n editor!: EditorViewType;\n element!: HTMLElementWithEditor;\n\n onBlur: HdsCodeEditorSignature['Args']['Named']['onBlur'];\n onInput: HdsCodeEditorSignature['Args']['Named']['onInput'];\n\n blurHandler!: (event: FocusEvent) => void;\n intersectionObserver!: IntersectionObserver;\n mutationObserver!: MutationObserver;\n\n lineWrappingCompartment = new Compartment();\n\n constructor(owner: Owner, args: ArgsFor<HdsCodeEditorSignature>) {\n super(owner, args);\n\n registerDestructor(this, () => {\n this.intersectionObserver?.disconnect();\n this.mutationObserver?.disconnect();\n\n if (this.onBlur !== undefined) {\n this.element.removeEventListener('blur', this.blurHandler);\n }\n });\n }\n\n modify(\n element: HTMLElementWithEditor,\n positional: PositionalArgs<HdsCodeEditorSignature>,\n named: NamedArgs<HdsCodeEditorSignature>\n ): void {\n const { hasLineWrapping = false } = named;\n\n // if the editor already exists, update the line wrapping\n if (this.editor) {\n this.editor.dispatch({\n effects: this.lineWrappingCompartment.reconfigure(\n hasLineWrapping ? EditorView.lineWrapping : []\n ),\n });\n }\n // if the editor does not exist, setup the editor\n else {\n // the intersection observer makes loading unreliable in tests\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (config.environment === 'test') {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._setupTask.perform(element, positional, named);\n } else {\n this.intersectionObserver = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting && this.editor === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._setupTask.perform(element, positional, named);\n }\n });\n },\n {\n rootMargin: LOADER_HEIGHT,\n }\n );\n\n this.intersectionObserver.observe(element);\n }\n }\n }\n\n private _setupEditorBlurHandler(\n element: HTMLElementWithEditor,\n onBlur: HdsCodeEditorBlurHandler\n ) {\n const inputElement = element.querySelector('.cm-content');\n\n if (inputElement === null) {\n return;\n }\n\n this.blurHandler = (event: FocusEvent) => onBlur(this.editor, event);\n\n (inputElement as HTMLElement).addEventListener('blur', this.blurHandler);\n }\n\n private _setupEditorAriaLabel(\n editor: EditorViewType,\n {\n ariaLabel,\n ariaLabelledBy,\n }: Pick<\n HdsCodeEditorSignature['Args']['Named'],\n 'ariaLabel' | 'ariaLabelledBy'\n >\n ) {\n assert(\n '`hds-code-editor` modifier - Either `ariaLabel` or `ariaLabelledBy` must be provided',\n ariaLabel !== undefined || ariaLabelledBy !== undefined\n );\n\n if (ariaLabel !== undefined) {\n editor.dom\n .querySelector('[role=\"textbox\"]')\n ?.setAttribute('aria-label', ariaLabel);\n } else if (ariaLabelledBy !== undefined) {\n editor.dom\n .querySelector('[role=\"textbox\"]')\n ?.setAttribute('aria-labelledby', ariaLabelledBy);\n }\n }\n\n private _setupEditorAriaDescribedBy(\n editor: EditorViewType,\n {\n ariaDescribedBy,\n lintingDescriptionElement,\n }: {\n ariaDescribedBy?: string;\n lintingDescriptionElement?: HTMLParagraphElement;\n }\n ) {\n if (\n ariaDescribedBy === undefined &&\n lintingDescriptionElement === undefined\n ) {\n return;\n }\n\n const ariaDescribedByArray = [];\n\n if (ariaDescribedBy !== undefined) {\n ariaDescribedByArray.push(ariaDescribedBy);\n }\n\n if (lintingDescriptionElement !== undefined) {\n ariaDescribedByArray.push(lintingDescriptionElement.id);\n }\n\n editor.dom\n .querySelector('[role=\"textbox\"]')\n ?.setAttribute('aria-describedby', ariaDescribedByArray.join(' '));\n }\n\n private _createLintingDescriptionElement(): HTMLParagraphElement {\n const element = document.createElement('p');\n\n element.id = `lint-panel-instructions-${this.element.id}`;\n element.classList.add('sr-only');\n element.textContent = this.hdsIntl.t(\n 'hds.modifiers.hds-code-editor.lint-panel-description',\n {\n default:\n 'Press `Ctrl-Shift-m` (`Cmd-Shift-m` on macOS) while focus is on the textbox to open the linting panel',\n }\n );\n\n this.element.insertAdjacentElement('beforebegin', element);\n\n return element;\n }\n\n private _setupEditorAriaAttributes(\n editor: EditorViewType,\n {\n ariaDescribedBy,\n ariaLabel,\n ariaLabelledBy,\n lintingDescriptionElement,\n }: Pick<\n HdsCodeEditorSignature['Args']['Named'],\n 'ariaDescribedBy' | 'ariaLabel' | 'ariaLabelledBy'\n > & { lintingDescriptionElement?: HTMLParagraphElement }\n ) {\n this._setupEditorAriaLabel(editor, { ariaLabel, ariaLabelledBy });\n this._setupEditorAriaDescribedBy(editor, {\n ariaDescribedBy,\n lintingDescriptionElement,\n });\n }\n\n private _loadLanguageExtensionsTask = task(\n { drop: true },\n async ({\n language,\n isLintingEnabled,\n onLint,\n }: {\n language?: HdsCodeEditorLanguages;\n isLintingEnabled?: boolean;\n onLint?: HdsCodeEditorSignature['Args']['Named']['onLint'];\n }) => {\n if (language === undefined) {\n return;\n }\n\n try {\n const validLanguageKeys = Object.keys(LANGUAGES);\n\n assert(\n `\\`hds-code-editor\\` modifier - \\`language\\` must be one of the following: ${validLanguageKeys.join(\n ', '\n )}; received: ${language}`,\n validLanguageKeys.includes(language)\n );\n\n let extensionPromises = [LANGUAGES[language].load()];\n\n if (isLintingEnabled && LANGUAGES[language].loadLinter) {\n extensionPromises = [\n ...extensionPromises,\n LANGUAGES[language].loadLinter(onLint),\n ];\n }\n\n return Promise.all(extensionPromises);\n } catch (error) {\n warn(\n `\\`hds-code-editor\\` modifier - Failed to dynamically import the CodeMirror language module for '${language}'. Error: ${JSON.stringify(\n error\n )}`,\n {\n id: 'hds-code-editor.load-language-task.import-failed',\n }\n );\n }\n }\n );\n\n private _buildExtensionsTask = task(\n { drop: true },\n async ({\n cspNonce,\n extraKeys,\n language,\n hasLineWrapping,\n isLintingEnabled,\n onLint,\n }) => {\n const [\n {\n keymap,\n lineNumbers,\n highlightActiveLineGutter,\n highlightSpecialChars,\n highlightActiveLine,\n },\n { defaultKeymap, history, historyKeymap },\n { bracketMatching, syntaxHighlighting },\n ] = await Promise.all([\n import('@codemirror/view'),\n import('@codemirror/commands'),\n import('@codemirror/language'),\n ]);\n\n const languageExtensions = await this._loadLanguageExtensionsTask.perform(\n {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n language,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n isLintingEnabled,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n onLint,\n }\n );\n\n const handleUpdateExtension = EditorView.updateListener.of(\n (update: ViewUpdate) => {\n // toggle a class if the update has/does not have a selection\n if (update.selectionSet) {\n update.view.dom.classList.toggle(\n 'cm-hasSelection',\n !update.state.selection.main.empty\n );\n }\n\n // call the onInput callback if the document has changed\n if (!update.docChanged || this.onInput === undefined) {\n return;\n }\n this.onInput(update.state.doc.toString(), update.view);\n }\n );\n\n const lineWrappingExtension = this.lineWrappingCompartment.of(\n hasLineWrapping ? EditorView.lineWrapping : []\n );\n\n let extensions = [\n lineWrappingExtension,\n bracketMatching(),\n highlightActiveLine(),\n highlightActiveLineGutter(),\n highlightSpecialChars(),\n history(),\n keymap.of([...defaultKeymap, ...historyKeymap]),\n // custom extensions\n handleUpdateExtension,\n // hds dark theme\n hdsDarkTheme,\n syntaxHighlighting(hdsDarkHighlightStyle),\n ];\n\n if (extraKeys !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const customKeyMap = Object.entries(extraKeys).map(([key, value]) => ({\n key: key,\n run: value,\n }));\n\n extensions = [keymap.of(customKeyMap as KeyBinding[]), ...extensions];\n }\n\n if (languageExtensions !== undefined) {\n extensions = [...extensions, ...languageExtensions];\n }\n\n // add nonce to the editor view if it exists\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const nonce = cspNonce ?? getCSPNonceFromMeta();\n\n if (nonce !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n extensions = [...extensions, EditorView.cspNonce.of(nonce)];\n }\n\n // ensure we add lineNumber last in the stack to create the right gutter order for linting\n extensions = [...extensions, lineNumbers()];\n\n return extensions;\n }\n );\n\n private _createEditorTask = task(\n { drop: true },\n async (\n element: HTMLElementWithEditor,\n {\n cspNonce,\n language,\n extraKeys,\n value,\n hasLineWrapping,\n isLintingEnabled,\n onLint,\n }: Pick<\n HdsCodeEditorSignature['Args']['Named'],\n | 'cspNonce'\n | 'language'\n | 'extraKeys'\n | 'value'\n | 'hasLineWrapping'\n | 'isLintingEnabled'\n | 'onLint'\n >\n ) => {\n try {\n const { EditorState } = await import('@codemirror/state');\n\n const extensions = await this._buildExtensionsTask.perform({\n cspNonce,\n extraKeys,\n language,\n hasLineWrapping: hasLineWrapping ?? false,\n isLintingEnabled,\n onLint,\n });\n\n const state = EditorState.create({\n doc: value,\n extensions,\n });\n\n const editor = new EditorView({\n state,\n parent: element,\n });\n\n return editor;\n } catch (error) {\n console.error(\n `\\`hds-code-editor\\` modifier - Failed to setup the CodeMirror editor. Error: ${JSON.stringify(error)}`\n );\n }\n }\n );\n\n private _setupEditorMutationObserver() {\n this.mutationObserver = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n mutation.removedNodes.forEach((node) => {\n if (!(node instanceof HTMLElement)) {\n return;\n }\n\n const removedNodeContainsLintPanel =\n node.querySelector('.cm-panel-lint') !== null;\n\n if (removedNodeContainsLintPanel) {\n this.editor.focus();\n }\n });\n });\n });\n\n this.mutationObserver.observe(this.element, {\n childList: true,\n subtree: true,\n });\n }\n\n private _setupTask = task(\n { drop: true },\n async (\n element: HTMLElementWithEditor,\n _positional: PositionalArgs<HdsCodeEditorSignature>,\n named: NamedArgs<HdsCodeEditorSignature>\n ) => {\n const {\n onBlur,\n onInput,\n onLint,\n onSetup,\n ariaDescribedBy,\n ariaLabel,\n ariaLabelledBy,\n cspNonce,\n extraKeys,\n hasLineWrapping,\n isLintingEnabled,\n language,\n value,\n } = named;\n\n this.onInput = onInput;\n this.onBlur = onBlur;\n\n this.element = element;\n this.element.id = isEmpty(this.element.id)\n ? guidFor(this)\n : this.element.id;\n\n const editor = await this._createEditorTask.perform(element, {\n onLint,\n cspNonce,\n hasLineWrapping,\n isLintingEnabled,\n extraKeys,\n language,\n value,\n });\n\n if (editor === undefined) {\n return;\n }\n\n this.editor = editor;\n element.editor = editor;\n\n if (onBlur !== undefined) {\n this._setupEditorBlurHandler(element, onBlur);\n }\n\n let lintingDescriptionElement: HTMLParagraphElement | null = null;\n\n if (\n isLintingEnabled &&\n language !== undefined &&\n LANGUAGES[language]?.loadLinter !== undefined\n ) {\n // insert a new dom element above the editor\n lintingDescriptionElement = this._createLintingDescriptionElement();\n\n this._setupEditorMutationObserver();\n }\n\n this._setupEditorAriaAttributes(editor, {\n ariaDescribedBy,\n ariaLabel,\n ariaLabelledBy,\n lintingDescriptionElement: lintingDescriptionElement ?? undefined,\n });\n\n onSetup?.(this.editor);\n }\n );\n}\n"],"names":["defineStreamLanguage","streamParser","StreamLanguage","define","getCSPNonceFromMeta","meta","document","querySelector","undefined","content","getAttribute","match","LOADER_HEIGHT","LANGUAGES","rego","load","ruby","sentinel","shell","go","hcl","javascript","json","loadLinter","onLint","linter","default","markdown","sql","yaml","HdsCodeEditorModifier","Modifier","g","prototype","service","i","void 0","editor","element","onBlur","onInput","blurHandler","intersectionObserver","mutationObserver","lineWrappingCompartment","Compartment","constructor","owner","args","registerDestructor","disconnect","removeEventListener","modify","positional","named","hasLineWrapping","dispatch","effects","reconfigure","EditorView","lineWrapping","config","environment","_setupTask","perform","IntersectionObserver","entries","forEach","entry","isIntersecting","rootMargin","observe","_setupEditorBlurHandler","inputElement","event","addEventListener","_setupEditorAriaLabel","ariaLabel","ariaLabelledBy","assert","dom","setAttribute","_setupEditorAriaDescribedBy","ariaDescribedBy","lintingDescriptionElement","ariaDescribedByArray","push","id","join","_createLintingDescriptionElement","createElement","classList","add","textContent","hdsIntl","t","insertAdjacentElement","_setupEditorAriaAttributes","_loadLanguageExtensionsTask","_buildTask","context","generator","language","isLintingEnabled","validLanguageKeys","Object","keys","includes","extensionPromises","Promise","all","error","warn","JSON","stringify","drop","_buildExtensionsTask","cspNonce","extraKeys","keymap","lineNumbers","highlightActiveLineGutter","highlightSpecialChars","highlightActiveLine","defaultKeymap","history","historyKeymap","bracketMatching","syntaxHighlighting","languageExtensions","handleUpdateExtension","updateListener","of","update","selectionSet","view","toggle","state","selection","main","empty","docChanged","doc","toString","lineWrappingExtension","extensions","hdsDarkTheme","hdsDarkHighlightStyle","customKeyMap","map","key","value","run","nonce","_createEditorTask","EditorState","create","parent","console","_setupEditorMutationObserver","MutationObserver","mutations","mutation","removedNodes","node","HTMLElement","removedNodeContainsLintPanel","focus","childList","subtree","_positional","onSetup","isEmpty","guidFor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hds-code-editor.js","sources":["../../src/modifiers/hds-code-editor.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Modifier from 'ember-modifier';\nimport { assert, warn } from '@ember/debug';\nimport { registerDestructor } from '@ember/destroyable';\nimport { task } from 'ember-concurrency';\nimport { macroCondition, isTesting } from '@embroider/macros';\nimport { Compartment } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { guidFor } from '@ember/object/internals';\nimport { isEmpty } from '@ember/utils';\nimport { service } from '@ember/service';\n\n// hds-dark theme\nimport hdsDarkTheme from './hds-code-editor/themes/hds-dark-theme.ts';\nimport hdsDarkHighlightStyle from './hds-code-editor/highlight-styles/hds-dark-highlight-style.ts';\n\nimport type HdsIntlService from '../services/hds-intl.ts';\nimport type { HdsCodeEditorLanguages } from './hds-code-editor/types.ts';\nimport type { ArgsFor, PositionalArgs, NamedArgs } from 'ember-modifier';\nimport type {\n StreamLanguage as StreamLanguageType,\n StreamParser as StreamParserType,\n} from '@codemirror/language';\nimport type { Extension } from '@codemirror/state';\nimport type {\n EditorView as EditorViewType,\n KeyBinding,\n ViewUpdate,\n} from '@codemirror/view';\nimport type { Diagnostic as DiagnosticType } from '@codemirror/lint';\nimport type Owner from '@ember/owner';\n\ntype HTMLElementWithEditor = HTMLElement & { editor: EditorViewType };\n\ntype HdsCodeEditorBlurHandler = (\n editor: EditorViewType,\n event: FocusEvent\n) => void;\n\ninterface HdsCodeEditorExtraKeys {\n [key: string]: () => void;\n}\n\nexport interface HdsCodeEditorSignature {\n Args: {\n Named: {\n ariaDescribedBy?: string;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n cspNonce?: string;\n extraKeys?: HdsCodeEditorExtraKeys;\n hasLineWrapping?: boolean;\n isLintingEnabled?: boolean;\n language?: HdsCodeEditorLanguages;\n value?: string;\n onInput?: (newValue: string, editor: EditorViewType) => void;\n onBlur?: HdsCodeEditorBlurHandler;\n onLint?: (\n diagnostics: DiagnosticType[],\n newValue: string,\n editor: EditorViewType\n ) => void;\n onSetup?: (editor: EditorViewType) => unknown;\n };\n };\n}\n\nasync function defineStreamLanguage(streamParser: StreamParserType<unknown>) {\n const { StreamLanguage } = await import('@codemirror/language');\n\n return StreamLanguage.define(streamParser);\n}\n\nexport function getCSPNonceFromMeta(): string | undefined {\n const meta = document.querySelector(\n 'meta[http-equiv=\"Content-Security-Policy\"]'\n );\n\n if (meta === null) {\n return undefined;\n }\n\n const content = meta.getAttribute('content');\n\n if (content === null) {\n return undefined;\n }\n\n // searches for either \"style-src\" or \"script-src\" followed by anything until a token like 'nonce-<value>'\n const match = content.match(/(?:style-src|script-src)[^;]*'nonce-([^']+)'/);\n\n return match ? match[1] : undefined;\n}\n\nconst LOADER_HEIGHT = '164px';\n\nconst LANGUAGES: Record<\n HdsCodeEditorLanguages,\n {\n load: () => Promise<Extension | StreamLanguageType<unknown>>;\n loadLinter?: (\n onLint?: HdsCodeEditorSignature['Args']['Named']['onLint']\n ) => Promise<Extension>;\n }\n> = {\n rego: {\n load: async () => {\n const { rego } = await import('./hds-code-editor/languages/rego.ts');\n return defineStreamLanguage(rego);\n },\n },\n ruby: {\n load: async () => {\n const { ruby } = await import('@codemirror/legacy-modes/mode/ruby');\n return defineStreamLanguage(ruby);\n },\n },\n sentinel: {\n load: async () => {\n const { sentinel } = await import(\n './hds-code-editor/languages/sentinel.ts'\n );\n return defineStreamLanguage(sentinel);\n },\n },\n shell: {\n load: async () => {\n const { shell } = await import('@codemirror/legacy-modes/mode/shell');\n return defineStreamLanguage(shell);\n },\n },\n go: {\n load: async () => (await import('@codemirror/lang-go')).go(),\n },\n hcl: {\n load: async () => (await import('codemirror-lang-hcl')).hcl(),\n },\n javascript: {\n load: async () =>\n (await import('@codemirror/lang-javascript')).javascript(),\n },\n json: {\n load: async () => (await import('@codemirror/lang-json')).json(),\n loadLinter: async (onLint) => {\n const linter = await import('./hds-code-editor/linters/json-linter.ts');\n\n return linter.default(onLint);\n },\n },\n markdown: {\n load: async () => (await import('@codemirror/lang-markdown')).markdown(),\n },\n sql: {\n load: async () => (await import('@codemirror/lang-sql')).sql(),\n },\n yaml: {\n load: async () => (await import('@codemirror/lang-yaml')).yaml(),\n },\n} as const;\n\nexport default class HdsCodeEditorModifier extends Modifier<HdsCodeEditorSignature> {\n @service declare hdsIntl: HdsIntlService;\n\n editor!: EditorViewType;\n element!: HTMLElementWithEditor;\n\n onBlur: HdsCodeEditorSignature['Args']['Named']['onBlur'];\n onInput: HdsCodeEditorSignature['Args']['Named']['onInput'];\n\n blurHandler!: (event: FocusEvent) => void;\n intersectionObserver!: IntersectionObserver;\n mutationObserver!: MutationObserver;\n\n lineWrappingCompartment = new Compartment();\n\n constructor(owner: Owner, args: ArgsFor<HdsCodeEditorSignature>) {\n super(owner, args);\n\n registerDestructor(this, () => {\n this.intersectionObserver?.disconnect();\n this.mutationObserver?.disconnect();\n\n if (this.onBlur !== undefined) {\n this.element.removeEventListener('blur', this.blurHandler);\n }\n });\n }\n\n modify(\n element: HTMLElementWithEditor,\n positional: PositionalArgs<HdsCodeEditorSignature>,\n named: NamedArgs<HdsCodeEditorSignature>\n ): void {\n const { hasLineWrapping = false } = named;\n\n // if the editor already exists, update the line wrapping\n if (this.editor) {\n this.editor.dispatch({\n effects: this.lineWrappingCompartment.reconfigure(\n hasLineWrapping ? EditorView.lineWrapping : []\n ),\n });\n }\n // if the editor does not exist, setup the editor\n else {\n // the intersection observer makes loading unreliable in tests\n if (macroCondition(isTesting())) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._setupTask.perform(element, positional, named);\n } else {\n this.intersectionObserver = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting && this.editor === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._setupTask.perform(element, positional, named);\n }\n });\n },\n {\n rootMargin: LOADER_HEIGHT,\n }\n );\n\n this.intersectionObserver.observe(element);\n }\n }\n }\n\n private _setupEditorBlurHandler(\n element: HTMLElementWithEditor,\n onBlur: HdsCodeEditorBlurHandler\n ) {\n const inputElement = element.querySelector('.cm-content');\n\n if (inputElement === null) {\n return;\n }\n\n this.blurHandler = (event: FocusEvent) => onBlur(this.editor, event);\n\n (inputElement as HTMLElement).addEventListener('blur', this.blurHandler);\n }\n\n private _setupEditorAriaLabel(\n editor: EditorViewType,\n {\n ariaLabel,\n ariaLabelledBy,\n }: Pick<\n HdsCodeEditorSignature['Args']['Named'],\n 'ariaLabel' | 'ariaLabelledBy'\n >\n ) {\n assert(\n '`hds-code-editor` modifier - Either `ariaLabel` or `ariaLabelledBy` must be provided',\n ariaLabel !== undefined || ariaLabelledBy !== undefined\n );\n\n if (ariaLabel !== undefined) {\n editor.dom\n .querySelector('[role=\"textbox\"]')\n ?.setAttribute('aria-label', ariaLabel);\n } else if (ariaLabelledBy !== undefined) {\n editor.dom\n .querySelector('[role=\"textbox\"]')\n ?.setAttribute('aria-labelledby', ariaLabelledBy);\n }\n }\n\n private _setupEditorAriaDescribedBy(\n editor: EditorViewType,\n {\n ariaDescribedBy,\n lintingDescriptionElement,\n }: {\n ariaDescribedBy?: string;\n lintingDescriptionElement?: HTMLParagraphElement;\n }\n ) {\n if (\n ariaDescribedBy === undefined &&\n lintingDescriptionElement === undefined\n ) {\n return;\n }\n\n const ariaDescribedByArray = [];\n\n if (ariaDescribedBy !== undefined) {\n ariaDescribedByArray.push(ariaDescribedBy);\n }\n\n if (lintingDescriptionElement !== undefined) {\n ariaDescribedByArray.push(lintingDescriptionElement.id);\n }\n\n editor.dom\n .querySelector('[role=\"textbox\"]')\n ?.setAttribute('aria-describedby', ariaDescribedByArray.join(' '));\n }\n\n private _createLintingDescriptionElement(): HTMLParagraphElement {\n const element = document.createElement('p');\n\n element.id = `lint-panel-instructions-${this.element.id}`;\n element.classList.add('sr-only');\n element.textContent = this.hdsIntl.t(\n 'hds.modifiers.hds-code-editor.lint-panel-description',\n {\n default:\n 'Press `Ctrl-Shift-m` (`Cmd-Shift-m` on macOS) while focus is on the textbox to open the linting panel',\n }\n );\n\n this.element.insertAdjacentElement('beforebegin', element);\n\n return element;\n }\n\n private _setupEditorAriaAttributes(\n editor: EditorViewType,\n {\n ariaDescribedBy,\n ariaLabel,\n ariaLabelledBy,\n lintingDescriptionElement,\n }: Pick<\n HdsCodeEditorSignature['Args']['Named'],\n 'ariaDescribedBy' | 'ariaLabel' | 'ariaLabelledBy'\n > & { lintingDescriptionElement?: HTMLParagraphElement }\n ) {\n this._setupEditorAriaLabel(editor, { ariaLabel, ariaLabelledBy });\n this._setupEditorAriaDescribedBy(editor, {\n ariaDescribedBy,\n lintingDescriptionElement,\n });\n }\n\n private _loadLanguageExtensionsTask = task(\n { drop: true },\n async ({\n language,\n isLintingEnabled,\n onLint,\n }: {\n language?: HdsCodeEditorLanguages;\n isLintingEnabled?: boolean;\n onLint?: HdsCodeEditorSignature['Args']['Named']['onLint'];\n }) => {\n if (language === undefined) {\n return;\n }\n\n try {\n const validLanguageKeys = Object.keys(LANGUAGES);\n\n assert(\n `\\`hds-code-editor\\` modifier - \\`language\\` must be one of the following: ${validLanguageKeys.join(\n ', '\n )}; received: ${language}`,\n validLanguageKeys.includes(language)\n );\n\n let extensionPromises = [LANGUAGES[language].load()];\n\n if (isLintingEnabled && LANGUAGES[language].loadLinter) {\n extensionPromises = [\n ...extensionPromises,\n LANGUAGES[language].loadLinter(onLint),\n ];\n }\n\n return Promise.all(extensionPromises);\n } catch (error) {\n warn(\n `\\`hds-code-editor\\` modifier - Failed to dynamically import the CodeMirror language module for '${language}'. Error: ${JSON.stringify(\n error\n )}`,\n {\n id: 'hds-code-editor.load-language-task.import-failed',\n }\n );\n }\n }\n );\n\n private _buildExtensionsTask = task(\n { drop: true },\n async ({\n cspNonce,\n extraKeys,\n language,\n hasLineWrapping,\n isLintingEnabled,\n onLint,\n }) => {\n const [\n {\n keymap,\n lineNumbers,\n highlightActiveLineGutter,\n highlightSpecialChars,\n highlightActiveLine,\n },\n { defaultKeymap, history, historyKeymap },\n { bracketMatching, syntaxHighlighting },\n ] = await Promise.all([\n import('@codemirror/view'),\n import('@codemirror/commands'),\n import('@codemirror/language'),\n ]);\n\n const languageExtensions = await this._loadLanguageExtensionsTask.perform(\n {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n language,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n isLintingEnabled,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n onLint,\n }\n );\n\n const handleUpdateExtension = EditorView.updateListener.of(\n (update: ViewUpdate) => {\n // toggle a class if the update has/does not have a selection\n if (update.selectionSet) {\n update.view.dom.classList.toggle(\n 'cm-hasSelection',\n !update.state.selection.main.empty\n );\n }\n\n // call the onInput callback if the document has changed\n if (!update.docChanged || this.onInput === undefined) {\n return;\n }\n this.onInput(update.state.doc.toString(), update.view);\n }\n );\n\n const lineWrappingExtension = this.lineWrappingCompartment.of(\n hasLineWrapping ? EditorView.lineWrapping : []\n );\n\n let extensions = [\n lineWrappingExtension,\n bracketMatching(),\n highlightActiveLine(),\n highlightActiveLineGutter(),\n highlightSpecialChars(),\n history(),\n keymap.of([...defaultKeymap, ...historyKeymap]),\n // custom extensions\n handleUpdateExtension,\n // hds dark theme\n hdsDarkTheme,\n syntaxHighlighting(hdsDarkHighlightStyle),\n ];\n\n if (extraKeys !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const customKeyMap = Object.entries(extraKeys).map(([key, value]) => ({\n key: key,\n run: value,\n }));\n\n extensions = [keymap.of(customKeyMap as KeyBinding[]), ...extensions];\n }\n\n if (languageExtensions !== undefined) {\n extensions = [...extensions, ...languageExtensions];\n }\n\n // add nonce to the editor view if it exists\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const nonce = cspNonce ?? getCSPNonceFromMeta();\n\n if (nonce !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n extensions = [...extensions, EditorView.cspNonce.of(nonce)];\n }\n\n // ensure we add lineNumber last in the stack to create the right gutter order for linting\n extensions = [...extensions, lineNumbers()];\n\n return extensions;\n }\n );\n\n private _createEditorTask = task(\n { drop: true },\n async (\n element: HTMLElementWithEditor,\n {\n cspNonce,\n language,\n extraKeys,\n value,\n hasLineWrapping,\n isLintingEnabled,\n onLint,\n }: Pick<\n HdsCodeEditorSignature['Args']['Named'],\n | 'cspNonce'\n | 'language'\n | 'extraKeys'\n | 'value'\n | 'hasLineWrapping'\n | 'isLintingEnabled'\n | 'onLint'\n >\n ) => {\n try {\n const { EditorState } = await import('@codemirror/state');\n\n const extensions = await this._buildExtensionsTask.perform({\n cspNonce,\n extraKeys,\n language,\n hasLineWrapping: hasLineWrapping ?? false,\n isLintingEnabled,\n onLint,\n });\n\n const state = EditorState.create({\n doc: value,\n extensions,\n });\n\n const editor = new EditorView({\n state,\n parent: element,\n });\n\n return editor;\n } catch (error) {\n console.error(\n `\\`hds-code-editor\\` modifier - Failed to setup the CodeMirror editor. Error: ${JSON.stringify(error)}`\n );\n }\n }\n );\n\n private _setupEditorMutationObserver() {\n this.mutationObserver = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n mutation.removedNodes.forEach((node) => {\n if (!(node instanceof HTMLElement)) {\n return;\n }\n\n const removedNodeContainsLintPanel =\n node.querySelector('.cm-panel-lint') !== null;\n\n if (removedNodeContainsLintPanel) {\n this.editor.focus();\n }\n });\n });\n });\n\n this.mutationObserver.observe(this.element, {\n childList: true,\n subtree: true,\n });\n }\n\n private _setupTask = task(\n { drop: true },\n async (\n element: HTMLElementWithEditor,\n _positional: PositionalArgs<HdsCodeEditorSignature>,\n named: NamedArgs<HdsCodeEditorSignature>\n ) => {\n const {\n onBlur,\n onInput,\n onLint,\n onSetup,\n ariaDescribedBy,\n ariaLabel,\n ariaLabelledBy,\n cspNonce,\n extraKeys,\n hasLineWrapping,\n isLintingEnabled,\n language,\n value,\n } = named;\n\n this.onInput = onInput;\n this.onBlur = onBlur;\n\n this.element = element;\n this.element.id = isEmpty(this.element.id)\n ? guidFor(this)\n : this.element.id;\n\n const editor = await this._createEditorTask.perform(element, {\n onLint,\n cspNonce,\n hasLineWrapping,\n isLintingEnabled,\n extraKeys,\n language,\n value,\n });\n\n if (editor === undefined) {\n return;\n }\n\n this.editor = editor;\n element.editor = editor;\n\n if (onBlur !== undefined) {\n this._setupEditorBlurHandler(element, onBlur);\n }\n\n let lintingDescriptionElement: HTMLParagraphElement | null = null;\n\n if (\n isLintingEnabled &&\n language !== undefined &&\n LANGUAGES[language]?.loadLinter !== undefined\n ) {\n // insert a new dom element above the editor\n lintingDescriptionElement = this._createLintingDescriptionElement();\n\n this._setupEditorMutationObserver();\n }\n\n this._setupEditorAriaAttributes(editor, {\n ariaDescribedBy,\n ariaLabel,\n ariaLabelledBy,\n lintingDescriptionElement: lintingDescriptionElement ?? undefined,\n });\n\n onSetup?.(this.editor);\n }\n );\n}\n"],"names":["defineStreamLanguage","streamParser","StreamLanguage","define","getCSPNonceFromMeta","meta","document","querySelector","undefined","content","getAttribute","match","LOADER_HEIGHT","LANGUAGES","rego","load","ruby","sentinel","shell","go","hcl","javascript","json","loadLinter","onLint","linter","default","markdown","sql","yaml","HdsCodeEditorModifier","Modifier","g","prototype","service","i","void 0","editor","element","onBlur","onInput","blurHandler","intersectionObserver","mutationObserver","lineWrappingCompartment","Compartment","constructor","owner","args","registerDestructor","disconnect","removeEventListener","modify","positional","named","hasLineWrapping","dispatch","effects","reconfigure","EditorView","lineWrapping","macroCondition","isTesting","_setupTask","perform","IntersectionObserver","entries","forEach","entry","isIntersecting","rootMargin","observe","_setupEditorBlurHandler","inputElement","event","addEventListener","_setupEditorAriaLabel","ariaLabel","ariaLabelledBy","assert","dom","setAttribute","_setupEditorAriaDescribedBy","ariaDescribedBy","lintingDescriptionElement","ariaDescribedByArray","push","id","join","_createLintingDescriptionElement","createElement","classList","add","textContent","hdsIntl","t","insertAdjacentElement","_setupEditorAriaAttributes","_loadLanguageExtensionsTask","_buildTask","context","generator","language","isLintingEnabled","validLanguageKeys","Object","keys","includes","extensionPromises","Promise","all","error","warn","JSON","stringify","drop","_buildExtensionsTask","cspNonce","extraKeys","keymap","lineNumbers","highlightActiveLineGutter","highlightSpecialChars","highlightActiveLine","defaultKeymap","history","historyKeymap","bracketMatching","syntaxHighlighting","languageExtensions","handleUpdateExtension","updateListener","of","update","selectionSet","view","toggle","state","selection","main","empty","docChanged","doc","toString","lineWrappingExtension","extensions","hdsDarkTheme","hdsDarkHighlightStyle","customKeyMap","map","key","value","run","nonce","_createEditorTask","EditorState","create","parent","console","_setupEditorMutationObserver","MutationObserver","mutations","mutation","removedNodes","node","HTMLElement","removedNodeContainsLintPanel","focus","childList","subtree","_positional","onSetup","isEmpty","guidFor"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hashicorp/design-system-components",
|
|
3
|
-
"version": "5.0.0-rc-
|
|
3
|
+
"version": "5.0.0-rc-20251027023804",
|
|
4
4
|
"description": "Helios Design System Components",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"hashicorp",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@embroider/util": "^1.13.4",
|
|
37
37
|
"@floating-ui/dom": "^1.6.12",
|
|
38
38
|
"@hashicorp/design-system-tokens": "^3.0.0",
|
|
39
|
-
"@hashicorp/flight-icons": "4.0.0-rc-
|
|
39
|
+
"@hashicorp/flight-icons": "4.0.0-rc-20251027023804",
|
|
40
40
|
"@lezer/highlight": "^1.2.1",
|
|
41
41
|
"@nullvoxpopuli/ember-composable-helpers": "^5.2.11",
|
|
42
42
|
"clipboard-polyfill": "^4.1.1",
|
|
@@ -46,7 +46,6 @@
|
|
|
46
46
|
"ember-concurrency": "^4.0.4",
|
|
47
47
|
"ember-element-helper": "^0.8.6",
|
|
48
48
|
"ember-focus-trap": "^1.1.1",
|
|
49
|
-
"ember-get-config": "^2.1.1",
|
|
50
49
|
"ember-modifier": "^4.2.2",
|
|
51
50
|
"ember-power-select": "^8.7.1",
|
|
52
51
|
"ember-stargate": "^1.0.2",
|