@hashicorp/design-system-components 5.2.0-rc-20260105174051 → 5.2.0-rc-20260105213008

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.
@@ -3,9 +3,10 @@
3
3
  * SPDX-License-Identifier: MPL-2.0
4
4
  */
5
5
  import Component from '@glimmer/component';
6
+ import type { SafeString } from '@ember/template';
6
7
  import type { IconName } from '@hashicorp/flight-icons/svg';
7
- import type Owner from '@ember/owner';
8
- import { HdsIconSizeValues } from './types.ts';
8
+ import type { HdsIconModule, HdsIconRegistryEntry } from '@hashicorp/flight-icons/symbol-js/registry.ts';
9
+ import type HdsThemingService from '@hashicorp/design-system-components/services/hds-theming';
9
10
  import type { HdsIconSizes, HdsIconColors } from './types';
10
11
  export declare const COLORS: HdsIconColors[];
11
12
  export declare const NAMES: readonly ["loading", "loading-static", "running", "running-static", "apple", "apple-color", "alibaba", "alibaba-color", "amazon-ecs", "amazon-ecs-color", "amazon-eks", "amazon-eks-color", "ansible-community", "ansible-community-color", "ansible-automation-platform", "ansible-automation-platform-color", "auth0", "auth0-color", "aws", "aws-color", "aws-cdk", "aws-cdk-color", "aws-cloudwatch", "aws-cloudwatch-color", "aws-ec2", "aws-ec2-color", "aws-lambda", "aws-lambda-color", "aws-s3", "aws-s3-color", "azure", "azure-color", "azure-aks", "azure-aks-color", "azure-blob-storage", "azure-blob-storage-color", "azure-devops", "azure-devops-color", "azure-vms", "azure-vms-color", "bitbucket", "bitbucket-color", "bridgecrew", "bridgecrew-color", "cisco", "cisco-color", "codepen", "codepen-color", "confluence", "confluence-color", "confluent", "confluent-color", "datadog", "datadog-color", "digital-ocean", "digital-ocean-color", "docker", "docker-color", "duo", "duo-color", "elastic-observability", "elastic-observability-color", "f5", "f5-color", "facebook", "facebook-color", "figma", "figma-color", "gcp", "gcp-color", "git", "git-color", "gitlab", "gitlab-color", "github", "github-color", "google", "google-color", "google-docs", "google-docs-color", "google-drive", "google-drive-color", "google-forms", "google-forms-color", "google-sheets", "google-sheets-color", "google-slides", "google-slides-color", "grafana", "grafana-color", "helm", "helm-color", "infracost", "infracost-color", "jenkins", "jenkins-color", "jfrog", "jfrog-color", "jira", "jira-color", "jwt", "jwt-color", "kubernetes", "kubernetes-color", "lightlytics", "lightlytics-color", "linkedin", "linkedin-color", "linode", "linode-color", "linux", "linux-color", "loom", "loom-color", "meetup", "meetup-color", "microsoft", "microsoft-color", "microsoft-teams", "microsoft-teams-color", "minio", "minio-color", "mongodb", "mongodb-color", "new-relic", "new-relic-color", "okta", "okta-color", "oracle", "oracle-color", "opa", "opa-color", "openid", "openid-color", "openstack", "openstack-color", "pack", "pack-color", "pager-duty", "pager-duty-color", "ping-identity ", "ping-identity-color", "postgres", "postgres-color", "rabbitmq", "rabbitmq-color", "saml", "saml-color", "service-now", "service-now-color", "slack", "slack-color", "snyk", "snyk-color", "splunk", "splunk-color", "twilio", "twilio-color", "twitch", "twitch-color", "twitter", "twitter-color", "twitter-x", "twitter-x-color", "vantage", "vantage-color", "venafi", "venafi-color", "vercel", "vercel-color", "vmware", "vmware-color", "youtube", "youtube-color", "boundary", "boundary-color", "boundary-fill", "boundary-fill-color", "boundary-square", "boundary-square-color", "consul", "consul-color", "consul-fill", "consul-fill-color", "consul-square", "consul-square-color", "nomad", "nomad-color", "nomad-fill", "nomad-fill-color", "nomad-square", "nomad-square-color", "packer", "packer-color", "packer-fill", "packer-fill-color", "packer-square", "packer-square-color", "terraform", "terraform-color", "terraform-fill", "terraform-fill-color", "terraform-square", "terraform-square-color", "vagrant", "vagrant-color", "vagrant-fill", "vagrant-fill-color", "vagrant-square", "vagrant-square-color", "vault", "vault-color", "vault-fill", "vault-fill-color", "vault-square", "vault-square-color", "vault-radar", "vault-radar-color", "vault-radar-fill", "vault-radar-fill-color", "vault-radar-square", "vault-radar-square-color", "vault-secrets", "vault-secrets-color", "vault-secrets-fill", "vault-secrets-fill-color", "vault-secrets-square", "vault-secrets-square-color", "waypoint", "waypoint-color", "waypoint-fill", "waypoint-fill-color", "waypoint-square", "waypoint-square-color", "hashicorp", "hashicorp-color", "hashicorp-fill", "hashicorp-fill-color", "hashicorp-square", "hashicorp-square-color", "hcp", "hcp-color", "hcp-fill", "hcp-fill-color", "hcp-square", "hcp-square-color", "accessibility", "folder-users", "frown", "identity-service", "identity-user", "meh", "robot", "smile", "user", "user-check", "user-circle", "user-circle-fill", "user-minus", "user-plus", "user-x", "users", "ampersand", "beaker", "bucket", "bulb", "circle", "circle-dot", "circle-fill", "circle-half", "diamond", "diamond-fill", "disc", "dot", "dot-half", "droplet", "flag", "gift", "government", "handshake", "hash", "hexagon", "hexagon-fill", "labyrinth", "layers", "moon", "octagon", "outline", "random", "rocket", "sparkle", "square", "square-fill", "sun", "triangle", "triangle-fill", "truck", "wand", "zap", "zap-off", "docs", "docs-download", "docs-link", "guide", "guide-link", "help", "info", "info-fill", "learn", "learn-link", "support", "alert-circle", "alert-circle-fill", "alert-diamond", "alert-diamond-fill", "alert-octagon", "alert-octagon-fill", "alert-triangle", "alert-triangle-fill", "check", "check-circle", "check-circle-fill", "check-diamond", "check-diamond-fill", "check-hexagon", "check-hexagon-fill", "check-square", "check-square-fill", "skip", "x", "x-circle", "x-circle-fill", "x-diamond", "x-diamond-fill", "x-hexagon", "x-hexagon-fill", "x-square", "x-square-fill", "bug", "certificate", "eye", "eye-off", "fingerprint", "key", "keychain", "lock", "lock-fill", "lock-off", "shield", "shield-alert", "shield-check", "shield-off", "shield-x", "token", "unlock", "verified", "wall", "minus", "minus-circle", "minus-circle-fill", "minus-plus", "minus-plus-circle", "minus-plus-square", "minus-square", "minus-square-fill", "plus", "plus-circle", "plus-circle-fill", "plus-square", "camera", "camera-off", "cast", "closed-caption", "fast-forward", "film", "headphones", "image", "music", "pause", "pause-circle", "play", "play-circle", "radio", "rewind", "rss", "skip-back", "skip-forward", "speaker", "stop-circle", "volume", "volume-down", "volume-up", "volume-x", "wifi", "wifi-off", "compass", "crosshair", "map", "map-pin", "navigation", "navigation-alt", "redirect", "target", "align-center", "align-justify", "align-left", "align-right", "battery", "battery-charging", "bookmark", "bookmark-add", "bookmark-add-fill", "bookmark-fill", "bookmark-remove", "bookmark-remove-fill", "bottom", "command", "crop", "dashboard", "delete", "download", "edit", "end", "entry-point", "exit-point", "external-link", "filter", "filter-circle", "filter-fill", "grid", "grid-alt", "home", "jump-link", "layout", "link", "list", "maximize", "maximize-alt", "menu", "minimize", "minimize-alt", "more-horizontal", "more-vertical", "mouse-pointer", "move-horizontal", "paperclip", "pen-tool", "pencil-tool", "pin", "pin-off", "power", "printer", "reload", "repeat", "resize-column", "rotate-cw", "rotate-ccw", "search", "share", "sidebar", "sidebar-hide", "sidebar-show", "sign-in", "sign-out", "slash", "slash-square", "sort-asc", "sort-desc", "start", "switcher", "sync", "sync-alert", "sync-reverse", "tag", "text-wrap", "toggle-left", "toggle-right", "top", "trash", "type", "unfold-close", "unfold-open", "upload", "zoom-in", "zoom-out", "archive", "clipboard", "clipboard-checked", "clipboard-copy", "clipboard-x", "file", "file-change", "file-check", "file-diff", "file-minus", "file-plus", "file-source", "file-text", "file-x", "files", "folder", "folder-fill", "folder-minus", "folder-minus-fill", "folder-plus", "folder-plus-fill", "folder-star", "inbox", "api", "auto-apply", "build", "change", "change-circle", "change-square", "channel", "cloud", "cloud-check", "cloud-download", "cloud-lightning", "cloud-lock", "cloud-off", "cloud-upload", "cloud-x", "code", "connection", "connection-gateway", "cpu", "duplicate", "gateway", "git-branch", "git-commit", "git-merge", "git-pull-request", "git-repo", "hammer", "key-values", "mainframe", "mesh", "module", "monitor", "network", "network-alt", "node", "path", "pipeline", "plug", "replication-direct", "replication-perf", "scissors", "server", "server-cluster", "serverless", "service", "settings", "sliders", "smartphone", "socket", "step", "tablet", "terminal", "terminal-screen", "test", "tools", "transform-data", "tv", "webhook", "wrench", "calendar", "clock", "clock-filled", "delay", "event", "history", "hourglass", "watch", "bar-chart", "bar-chart-alt", "box", "collections", "database", "hard-drive", "line-chart", "line-chart-up", "logs", "package", "pie-chart", "queue", "save", "trend-down", "trend-up", "activity", "at-sign", "award", "bell", "bell-active", "bell-active-fill", "bell-off", "discussion-circle", "discussion-square", "heart", "heart-fill", "heart-off", "mail", "mail-open", "message-circle", "message-circle-fill", "message-square", "message-square-fill", "mic", "mic-off", "newspaper", "phone", "phone-call", "phone-off", "send", "star", "star-circle", "star-fill", "star-off", "thumbs-down", "thumbs-up", "video", "video-off", "bank-vault", "briefcase", "credit-card", "dollar-sign", "enterprise", "globe", "globe-private", "org", "provider", "shopping-bag", "shopping-cart", "arrow-down", "arrow-down-circle", "arrow-down-left", "arrow-down-right", "arrow-left", "arrow-left-circle", "arrow-right", "arrow-right-circle", "arrow-up", "arrow-up-circle", "arrow-up-left", "arrow-up-right", "caret", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "chevrons-down", "chevrons-left", "chevrons-right", "chevrons-up", "corner-down-left", "corner-down-right", "corner-left-down", "corner-left-up", "corner-right-down", "corner-right-up", "corner-up-left", "corner-up-right", "load-balancer", "migrate", "move", "shuffle", "swap-horizontal", "swap-vertical"];
@@ -21,13 +22,32 @@ export interface HdsIconSignature {
21
22
  Element: SVGElement;
22
23
  }
23
24
  export default class HdsIcon extends Component<HdsIconSignature> {
25
+ readonly hdsTheming: HdsThemingService;
26
+ iconModule: HdsIconModule | null;
24
27
  private _iconId;
25
28
  private _titleId;
26
- constructor(owner: Owner, args: HdsIconSignature['Args']);
29
+ loadIconModule: import("ember-modifier").FunctionBasedModifier<{
30
+ Args: {
31
+ Positional: [];
32
+ Named: {
33
+ name: IconName;
34
+ size: HdsIconSizes;
35
+ carbonModeEnabled: boolean;
36
+ };
37
+ };
38
+ Element: SVGElement;
39
+ }>;
40
+ get name(): HdsIconSignature['Args']['name'];
41
+ get registryEntry(): HdsIconRegistryEntry | undefined;
42
+ get hasCarbonEquivalent(): boolean;
43
+ get carbonThemeEnabled(): boolean;
44
+ get isCarbon(): boolean;
45
+ get svgSymbol(): SafeString | undefined;
46
+ get uniqueSymbolId(): string;
27
47
  get isInline(): boolean;
28
48
  get predefinedColor(): "strong" | "primary" | "faint" | "disabled" | "high-contrast" | "action" | "action-hover" | "action-active" | "highlight" | "highlight-on-surface" | "highlight-high-contrast" | "success" | "success-on-surface" | "success-high-contrast" | "warning" | "warning-on-surface" | "warning-high-contrast" | "critical" | "critical-on-surface" | "critical-high-contrast" | undefined;
29
49
  get fillColor(): string;
30
- get size(): "16" | "24" | HdsIconSizeValues.Sixteen;
50
+ get size(): HdsIconSizes;
31
51
  get svgSize(): {
32
52
  width: string;
33
53
  height: string;
@@ -36,4 +56,5 @@ export default class HdsIcon extends Component<HdsIconSignature> {
36
56
  get role(): "img" | null;
37
57
  get ariaLabelledby(): string | null;
38
58
  get classNames(): string;
59
+ loadIconModuleTask: import("ember-concurrency").TaskForAsyncTaskFunction<unknown, (name: IconName, size: HdsIconSizes) => Promise<void>>;
39
60
  }
@@ -36,8 +36,8 @@ export default class HdsThemeSwitcher extends Component<HdsThemeSwitcherSignatur
36
36
  };
37
37
  get hasDefaultOption(): boolean;
38
38
  get hasSystemOption(): boolean;
39
- get _options(): Partial<Record<"default" | "light" | "dark" | "system", ThemeOption>>;
40
- get currentTheme(): "default" | "light" | "dark" | "system" | undefined;
39
+ get _options(): Partial<Record<"default" | "system" | "light" | "dark", ThemeOption>>;
40
+ get currentTheme(): "default" | "system" | "light" | "dark" | undefined;
41
41
  onSelectTheme(theme: HdsThemes | undefined): void;
42
42
  }
43
43
  export {};
@@ -1,27 +1,79 @@
1
+ import { buildTask } from 'ember-concurrency/async-arrow-runtime';
1
2
  import Component from '@glimmer/component';
2
- import { assert } from '@ember/debug';
3
+ import { tracked } from '@glimmer/tracking';
4
+ import { service } from '@ember/service';
3
5
  import { guidFor } from '@ember/object/internals';
6
+ import { assert } from '@ember/debug';
7
+ import { htmlSafe } from '@ember/template';
4
8
  import { iconNames } from '@hashicorp/flight-icons/svg';
9
+ import { IconRegistry } from '@hashicorp/flight-icons/symbol-js/registry';
10
+ import 'ember-concurrency';
11
+ import { modifier } from 'ember-modifier';
5
12
  import { HdsIconSizeValues, HdsIconColorValues } from './types.js';
13
+ import { HdsThemeValues } from '@hashicorp/design-system-components/services/hds-theming';
6
14
  import { precompileTemplate } from '@ember/template-compilation';
7
15
  import { setComponentTemplate } from '@ember/component';
16
+ import { g, i } from 'decorator-transforms/runtime';
8
17
 
9
- /**
10
- * Copyright IBM Corp. 2021, 2025
11
- * SPDX-License-Identifier: MPL-2.0
12
- */
13
18
  const COLORS = Object.values(HdsIconColorValues);
14
19
  const NAMES = iconNames;
15
20
  class HdsIcon extends Component {
21
+ static {
22
+ g(this.prototype, "hdsTheming", [service]);
23
+ }
24
+ #hdsTheming = (i(this, "hdsTheming"), void 0);
25
+ static {
26
+ g(this.prototype, "iconModule", [tracked], function () {
27
+ return null;
28
+ });
29
+ }
30
+ #iconModule = (i(this, "iconModule"), void 0);
16
31
  _iconId = 'icon-' + guidFor(this);
17
32
  _titleId = 'title-' + guidFor(this);
18
- constructor(owner, args) {
19
- super(owner, args);
20
- if (!this.args.name) {
21
- assert('Please provide to <Hds::Icon> a value for @name');
22
- } else if (!iconNames.includes(this.args.name)) {
23
- assert(`The icon @name "${this.args.name}" provided to <Hds::Icon> is not correct. Please verify it exists on https://helios.hashicorp.design/icons/library`);
33
+ // reacts to changes to the name and size arguments to reload the icon
34
+ loadIconModule = modifier((_element, _positional, {
35
+ name,
36
+ size,
37
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
38
+ carbonModeEnabled
39
+ }) => {
40
+ void this.loadIconModuleTask.perform(name, size);
41
+ });
42
+ get name() {
43
+ const {
44
+ name
45
+ } = this.args;
46
+ assert('Please provide to <Hds::Icon> a value for @name', name !== undefined);
47
+ return name;
48
+ }
49
+ get registryEntry() {
50
+ const {
51
+ name,
52
+ size
53
+ } = this.args;
54
+ const registryEntry = IconRegistry[this.name];
55
+ assert(`The icon @name "${name}" or @size "${size}" provided to <Hds::Icon> is not correct.`, registryEntry !== undefined);
56
+ return IconRegistry[this.name];
57
+ }
58
+ get hasCarbonEquivalent() {
59
+ return this.registryEntry?.carbon !== null;
60
+ }
61
+ get carbonThemeEnabled() {
62
+ return [HdsThemeValues.System, HdsThemeValues.Light, HdsThemeValues.Dark].includes(this.hdsTheming.currentTheme);
63
+ }
64
+ get isCarbon() {
65
+ return this.carbonThemeEnabled && this.hasCarbonEquivalent;
66
+ }
67
+ get svgSymbol() {
68
+ if (this.iconModule === null) {
69
+ return undefined;
24
70
  }
71
+ return htmlSafe(this.iconModule.default(this.uniqueSymbolId));
72
+ }
73
+ // this is the internal unique DOM `id` for the `<symbol>` element
74
+ get uniqueSymbolId() {
75
+ // note: we can't use just the `_iconId` because that's the DOM `id` of the `<svg>` element
76
+ return `${this._iconId}-symbol`;
25
77
  }
26
78
  get isInline() {
27
79
  return this.args.isInline ?? false;
@@ -81,8 +133,21 @@ class HdsIcon extends Component {
81
133
  }
82
134
  return classes.join(' ');
83
135
  }
136
+ loadIconModuleTask = buildTask(() => ({
137
+ context: this,
138
+ generator: function* (name, size) {
139
+ let loader = this.registryEntry?.flight[size];
140
+ let loaderAssertDesc = `Flight icon not available for "${name}" with size "${size}".`;
141
+ if (this.isCarbon) {
142
+ loader = this.registryEntry?.carbon ?? undefined;
143
+ loaderAssertDesc = `Carbon icon not available for "${name}".`;
144
+ }
145
+ assert(loaderAssertDesc, loader !== undefined);
146
+ this.iconModule = yield loader();
147
+ }
148
+ }), null, "loadIconModuleTask", null);
84
149
  static {
85
- setComponentTemplate(precompileTemplate("\n <svg class={{this.classNames}} ...attributes aria-hidden={{if @title \"false\" \"true\"}} aria-labelledby={{this.ariaLabelledby}} data-test-icon={{@name}} fill={{this.fillColor}} id={{this._iconId}} role={{this.role}} width={{this.svgSize.width}} height={{this.svgSize.height}} viewBox=\"0 0 {{this.size}} {{this.size}}\" xmlns=\"http://www.w3.org/2000/svg\">\n {{#if @title}}\n <title id={{this._titleId}}>{{@title}}</title>\n <g role=\"presentation\">\n <use href=\"#flight-{{@name}}-{{this.size}}\" />\n </g>\n {{else}}\n <use href=\"#flight-{{@name}}-{{this.size}}\" />\n {{/if}}\n </svg>\n ", {
150
+ setComponentTemplate(precompileTemplate("\n <svg class={{this.classNames}} ...attributes aria-hidden=\"{{if @title \"false\" \"true\"}}\" aria-labelledby={{this.ariaLabelledby}} data-test-icon={{this.name}} data-has-carbon-equivalent={{this.hasCarbonEquivalent}} data-is-carbon={{this.isCarbon}} fill=\"{{this.fillColor}}\" id={{this._iconId}} role={{this.role}} width=\"{{this.svgSize.width}}\" height=\"{{this.svgSize.height}}\" viewBox=\"0 0 {{this.size}} {{this.size}}\" xmlns=\"http://www.w3.org/2000/svg\" {{this.loadIconModule name=this.name size=this.size carbonModeEnabled=this.carbonThemeEnabled}}>\n {{#if @title}}\n <title id={{this._titleId}}>{{@title}}</title>\n <g role=\"presentation\">\n <use href=\"#{{this.uniqueSymbolId}}\"></use>\n </g>\n {{else}}\n <use href=\"#{{this.uniqueSymbolId}}\"></use>\n {{/if}}\n\n {{this.svgSymbol}}\n </svg>\n ", {
86
151
  strictMode: true
87
152
  }), this);
88
153
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/hds/icon/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { guidFor } from '@ember/object/internals';\nimport { iconNames } from '@hashicorp/flight-icons/svg';\nimport type { IconName } from '@hashicorp/flight-icons/svg';\nimport type Owner from '@ember/owner';\n\nimport { HdsIconSizeValues, HdsIconColorValues } from './types.ts';\nimport type { HdsIconSizes, HdsIconColors } from './types';\n\nexport const COLORS: HdsIconColors[] = Object.values(HdsIconColorValues);\nexport const NAMES = iconNames;\n\nexport interface HdsIconSignature {\n Args: {\n name: IconName;\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n color?: HdsIconColors | string | undefined;\n size?: HdsIconSizes;\n stretched?: boolean;\n isInline?: boolean;\n title?: string;\n };\n Element: SVGElement;\n}\n\nexport default class HdsIcon extends Component<HdsIconSignature> {\n private _iconId = 'icon-' + guidFor(this);\n private _titleId = 'title-' + guidFor(this);\n\n constructor(owner: Owner, args: HdsIconSignature['Args']) {\n super(owner, args);\n\n if (!this.args.name) {\n assert('Please provide to <Hds::Icon> a value for @name');\n } else if (!iconNames.includes(this.args.name)) {\n assert(\n `The icon @name \"${this.args.name}\" provided to <Hds::Icon> is not correct. Please verify it exists on https://helios.hashicorp.design/icons/library`\n );\n }\n }\n\n get isInline() {\n return this.args.isInline ?? false;\n }\n\n get predefinedColor() {\n const { color } = this.args;\n\n if (color && COLORS.includes(color as HdsIconColors)) {\n return color as HdsIconColors;\n } else {\n return undefined;\n }\n }\n\n get fillColor() {\n if (this.predefinedColor !== undefined) {\n return 'currentColor';\n } else {\n return this.args.color ?? 'currentColor';\n }\n }\n\n get size() {\n return this.args.size ?? HdsIconSizeValues.Sixteen;\n }\n\n get svgSize(): { width: string; height: string } {\n return {\n width: this.args.stretched ? '100%' : this.size,\n height: this.args.stretched ? '100%' : this.size,\n };\n }\n\n get title() {\n return this.args.title ?? null;\n }\n\n get role() {\n return this.args.title ? 'img' : null;\n }\n\n get ariaLabelledby() {\n return this.args.title ? this._titleId : null;\n }\n\n get classNames() {\n const { name } = this.args;\n const classes = ['hds-icon'];\n\n // add a class based on the @name argument\n classes.push(`hds-icon-${name}`);\n\n if (this.isInline) {\n classes.push('hds-icon--is-inline');\n }\n\n // add a (helper) class based on the @color argument (if pre-defined)\n if (this.predefinedColor) {\n classes.push(`hds-foreground-${this.predefinedColor}`);\n }\n\n // add an extra class to control the animation (depends on the icon)\n if (['loading', 'running'].includes(name)) {\n classes.push(`hds-icon--animation-${name}`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n <svg\n class={{this.classNames}}\n ...attributes\n aria-hidden={{if @title \"false\" \"true\"}}\n aria-labelledby={{this.ariaLabelledby}}\n data-test-icon={{@name}}\n fill={{this.fillColor}}\n id={{this._iconId}}\n role={{this.role}}\n width={{this.svgSize.width}}\n height={{this.svgSize.height}}\n viewBox=\"0 0 {{this.size}} {{this.size}}\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n {{#if @title}}\n <title id={{this._titleId}}>{{@title}}</title>\n <g role=\"presentation\">\n <use href=\"#flight-{{@name}}-{{this.size}}\" />\n </g>\n {{else}}\n <use href=\"#flight-{{@name}}-{{this.size}}\" />\n {{/if}}\n </svg>\n </template>\n}\n"],"names":["COLORS","Object","values","HdsIconColorValues","NAMES","iconNames","HdsIcon","Component","_iconId","guidFor","_titleId","constructor","owner","args","name","assert","includes","isInline","predefinedColor","color","undefined","fillColor","size","HdsIconSizeValues","Sixteen","svgSize","width","stretched","height","title","role","ariaLabelledby","classNames","classes","push","join","setComponentTemplate","precompileTemplate","strictMode"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/hds/icon/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { service } from '@ember/service';\nimport { guidFor } from '@ember/object/internals';\nimport { assert } from '@ember/debug';\nimport { htmlSafe } from '@ember/template';\nimport { iconNames } from '@hashicorp/flight-icons/svg';\nimport { IconRegistry } from '@hashicorp/flight-icons/symbol-js/registry';\nimport { task } from 'ember-concurrency';\nimport { modifier } from 'ember-modifier';\nimport { HdsIconSizeValues, HdsIconColorValues } from './types.ts';\nimport { HdsThemeValues } from '@hashicorp/design-system-components/services/hds-theming';\n\nimport type { SafeString } from '@ember/template';\nimport type { IconName } from '@hashicorp/flight-icons/svg';\nimport type {\n HdsIconModule,\n HdsIconRegistryEntry,\n} from '@hashicorp/flight-icons/symbol-js/registry.ts';\nimport type HdsThemingService from '@hashicorp/design-system-components/services/hds-theming';\nimport type { HdsIconSizes, HdsIconColors } from './types';\n\nexport const COLORS: HdsIconColors[] = Object.values(HdsIconColorValues);\nexport const NAMES = iconNames;\n\nexport interface HdsIconSignature {\n Args: {\n name: IconName;\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n color?: HdsIconColors | string | undefined;\n size?: HdsIconSizes;\n stretched?: boolean;\n isInline?: boolean;\n title?: string;\n };\n Element: SVGElement;\n}\n\nexport default class HdsIcon extends Component<HdsIconSignature> {\n @service declare readonly hdsTheming: HdsThemingService;\n\n @tracked iconModule: HdsIconModule | null = null;\n\n private _iconId = 'icon-' + guidFor(this);\n private _titleId = 'title-' + guidFor(this);\n\n // reacts to changes to the name and size arguments to reload the icon\n loadIconModule = modifier(\n (\n _element: SVGElement,\n\n _positional: [],\n {\n name,\n size,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n carbonModeEnabled,\n }: { name: IconName; size: HdsIconSizes; carbonModeEnabled: boolean }\n ) => {\n void this.loadIconModuleTask.perform(name, size);\n }\n );\n\n get name(): HdsIconSignature['Args']['name'] {\n const { name } = this.args;\n\n assert(\n 'Please provide to <Hds::Icon> a value for @name',\n name !== undefined\n );\n\n return name;\n }\n\n get registryEntry(): HdsIconRegistryEntry | undefined {\n const { name, size } = this.args;\n const registryEntry = IconRegistry[this.name];\n\n assert(\n `The icon @name \"${name}\" or @size \"${size}\" provided to <Hds::Icon> is not correct.`,\n registryEntry !== undefined\n );\n\n return IconRegistry[this.name];\n }\n\n get hasCarbonEquivalent(): boolean {\n return this.registryEntry?.carbon !== null;\n }\n\n get carbonThemeEnabled(): boolean {\n return [\n HdsThemeValues.System,\n HdsThemeValues.Light,\n HdsThemeValues.Dark,\n ].includes(this.hdsTheming.currentTheme as HdsThemeValues);\n }\n\n get isCarbon(): boolean {\n return this.carbonThemeEnabled && this.hasCarbonEquivalent;\n }\n\n get svgSymbol(): SafeString | undefined {\n if (this.iconModule === null) {\n return undefined;\n }\n\n return htmlSafe(this.iconModule.default(this.uniqueSymbolId));\n }\n\n // this is the internal unique DOM `id` for the `<symbol>` element\n get uniqueSymbolId(): string {\n // note: we can't use just the `_iconId` because that's the DOM `id` of the `<svg>` element\n return `${this._iconId}-symbol`;\n }\n\n get isInline() {\n return this.args.isInline ?? false;\n }\n\n get predefinedColor() {\n const { color } = this.args;\n\n if (color && COLORS.includes(color as HdsIconColors)) {\n return color as HdsIconColors;\n } else {\n return undefined;\n }\n }\n\n get fillColor() {\n if (this.predefinedColor !== undefined) {\n return 'currentColor';\n } else {\n return this.args.color ?? 'currentColor';\n }\n }\n\n get size(): HdsIconSizes {\n return this.args.size ?? HdsIconSizeValues.Sixteen;\n }\n\n get svgSize(): { width: string; height: string } {\n return {\n width: this.args.stretched ? '100%' : this.size,\n height: this.args.stretched ? '100%' : this.size,\n };\n }\n\n get title() {\n return this.args.title ?? null;\n }\n\n get role() {\n return this.args.title ? 'img' : null;\n }\n\n get ariaLabelledby() {\n return this.args.title ? this._titleId : null;\n }\n\n get classNames() {\n const { name } = this.args;\n const classes = ['hds-icon'];\n\n // add a class based on the @name argument\n classes.push(`hds-icon-${name}`);\n\n if (this.isInline) {\n classes.push('hds-icon--is-inline');\n }\n\n // add a (helper) class based on the @color argument (if pre-defined)\n if (this.predefinedColor) {\n classes.push(`hds-foreground-${this.predefinedColor}`);\n }\n\n // add an extra class to control the animation (depends on the icon)\n if (['loading', 'running'].includes(name)) {\n classes.push(`hds-icon--animation-${name}`);\n }\n\n return classes.join(' ');\n }\n\n loadIconModuleTask = task(\n async (name: IconName, size: HdsIconSizes): Promise<void> => {\n let loader = this.registryEntry?.flight[size];\n let loaderAssertDesc = `Flight icon not available for \"${name}\" with size \"${size}\".`;\n\n if (this.isCarbon) {\n loader = this.registryEntry?.carbon ?? undefined;\n loaderAssertDesc = `Carbon icon not available for \"${name}\".`;\n }\n\n assert(loaderAssertDesc, loader !== undefined);\n\n this.iconModule = await loader();\n }\n );\n\n <template>\n <svg\n class={{this.classNames}}\n ...attributes\n aria-hidden=\"{{if @title 'false' 'true'}}\"\n aria-labelledby={{this.ariaLabelledby}}\n data-test-icon={{this.name}}\n data-has-carbon-equivalent={{this.hasCarbonEquivalent}}\n data-is-carbon={{this.isCarbon}}\n fill=\"{{this.fillColor}}\"\n id={{this._iconId}}\n role={{this.role}}\n width=\"{{this.svgSize.width}}\"\n height=\"{{this.svgSize.height}}\"\n viewBox=\"0 0 {{this.size}} {{this.size}}\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {{this.loadIconModule\n name=this.name\n size=this.size\n carbonModeEnabled=this.carbonThemeEnabled\n }}\n >\n {{#if @title}}\n <title id={{this._titleId}}>{{@title}}</title>\n <g role=\"presentation\">\n <use href=\"#{{this.uniqueSymbolId}}\"></use>\n </g>\n {{else}}\n <use href=\"#{{this.uniqueSymbolId}}\"></use>\n {{/if}}\n\n {{this.svgSymbol}}\n </svg>\n </template>\n}\n"],"names":["COLORS","Object","values","HdsIconColorValues","NAMES","iconNames","HdsIcon","Component","g","prototype","service","i","void 0","tracked","_iconId","guidFor","_titleId","loadIconModule","modifier","_element","_positional","name","size","carbonModeEnabled","loadIconModuleTask","perform","args","assert","undefined","registryEntry","IconRegistry","hasCarbonEquivalent","carbon","carbonThemeEnabled","HdsThemeValues","System","Light","Dark","includes","hdsTheming","currentTheme","isCarbon","svgSymbol","iconModule","htmlSafe","default","uniqueSymbolId","isInline","predefinedColor","color","fillColor","HdsIconSizeValues","Sixteen","svgSize","width","stretched","height","title","role","ariaLabelledby","classNames","classes","push","join","_buildTask","context","generator","loader","flight","loaderAssertDesc","setComponentTemplate","precompileTemplate","strictMode"],"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.2.0-rc-20260105174051",
3
+ "version": "5.2.0-rc-20260105213008",
4
4
  "description": "Helios Design System Components",
5
5
  "keywords": [
6
6
  "hashicorp",
@@ -35,8 +35,8 @@
35
35
  "@embroider/macros": "^1.18.1",
36
36
  "@embroider/util": "^1.13.4",
37
37
  "@floating-ui/dom": "^1.6.12",
38
- "@hashicorp/design-system-tokens": "4.0.0-rc-20260105174051",
39
- "@hashicorp/flight-icons": "4.1.1-rc-20260105174051",
38
+ "@hashicorp/design-system-tokens": "4.0.0-rc-20260105213008",
39
+ "@hashicorp/flight-icons": "4.1.1-rc-20260105213008",
40
40
  "@lezer/highlight": "^1.2.1",
41
41
  "@nullvoxpopuli/ember-composable-helpers": "^5.2.11",
42
42
  "clipboard-polyfill": "^4.1.1",