@hashicorp/design-system-components 5.2.0 → 5.2.1-rc-20260108204634

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/declarations/components/hds/theme-context/index.d.ts +24 -0
  2. package/declarations/components/hds/theme-context/types.d.ts +19 -0
  3. package/declarations/components/hds/theme-switcher/index.d.ts +43 -0
  4. package/declarations/components.d.ts +2 -0
  5. package/declarations/services/hds-theming.d.ts +57 -0
  6. package/declarations/services.d.ts +1 -0
  7. package/declarations/template-registry.d.ts +6 -0
  8. package/dist/_app_/components/hds/theme-context.js +1 -0
  9. package/dist/_app_/components/hds/theme-switcher.js +1 -0
  10. package/dist/_app_/services/hds-theming.js +1 -0
  11. package/dist/components/hds/theme-context/index.js +45 -0
  12. package/dist/components/hds/theme-context/index.js.map +1 -0
  13. package/dist/components/hds/theme-context/types.js +27 -0
  14. package/dist/components/hds/theme-context/types.js.map +1 -0
  15. package/dist/components/hds/theme-switcher/index.js +100 -0
  16. package/dist/components/hds/theme-switcher/index.js.map +1 -0
  17. package/dist/components.js +2 -0
  18. package/dist/components.js.map +1 -1
  19. package/dist/services/hds-theming.js +214 -0
  20. package/dist/services/hds-theming.js.map +1 -0
  21. package/dist/services.js +1 -1
  22. package/dist/styles/@hashicorp/design-system-components-common.css +9588 -0
  23. package/dist/styles/@hashicorp/design-system-components-common.css.map +1 -0
  24. package/dist/styles/@hashicorp/design-system-components-common.scss +24 -0
  25. package/dist/styles/@hashicorp/design-system-components.css +501 -320
  26. package/dist/styles/@hashicorp/design-system-components.css.map +1 -0
  27. package/dist/styles/@hashicorp/design-system-components.scss +4 -62
  28. package/dist/styles/@hashicorp/design-system-power-select-overrides.css +229 -0
  29. package/dist/styles/@hashicorp/design-system-power-select-overrides.css.map +1 -0
  30. package/dist/styles/components/badge-count.scss +26 -76
  31. package/dist/styles/components/badge.scss +26 -131
  32. package/dist/styles/components/button.scss +5 -0
  33. package/dist/styles/components/dropdown.scss +3 -5
  34. package/dist/styles/components/form/file-input.scss +2 -2
  35. package/dist/styles/components/form/key-value-inputs.scss +2 -4
  36. package/dist/styles/components/index.scss +52 -0
  37. package/dist/styles/components/theme-context.scss +12 -0
  38. package/dist/styles/mixins/_button.scss +82 -129
  39. package/dist/styles/mixins/_carbonization.scss +31 -0
  40. package/dist/styles/mixins/_interactive-dark-theme.scss +1 -1
  41. package/package.json +7 -3
  42. package/dist/styles/@hashicorp/design-system-components.scss.map +0 -1
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import Component from '@glimmer/component';
6
+ import type Owner from '@ember/owner';
7
+ import type { HdsThemeContexts } from './types.ts';
8
+ import type { HdsThemes, HdsModes } from '../../../services/hds-theming.ts';
9
+ export interface HdsThemeContextSignature {
10
+ Args: {
11
+ context: HdsThemeContexts;
12
+ };
13
+ Blocks: {
14
+ default: [];
15
+ };
16
+ Element: HTMLElement;
17
+ }
18
+ export declare const CONTEXTUAL_THEMES: HdsThemes[];
19
+ export declare const CONTEXTUAL_MODES: HdsModes[];
20
+ export declare const CONTEXTUAL_VALUES: HdsThemeContexts[];
21
+ export default class HdsThemeContext extends Component<HdsThemeContextSignature> {
22
+ constructor(owner: Owner, args: HdsThemeContextSignature['Args']);
23
+ get classNames(): string;
24
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import { HdsThemeValues, HdsModesLightValues, HdsModesDarkValues } from '../../../services/hds-theming.ts';
6
+ import type { HdsThemes, HdsModes } from '../../../services/hds-theming.ts';
7
+ export declare const HdsThemeContextThemesValues: {
8
+ readonly Default: HdsThemeValues.Default;
9
+ readonly System: HdsThemeValues.System;
10
+ readonly Light: HdsThemeValues.Light;
11
+ readonly Dark: HdsThemeValues.Dark;
12
+ };
13
+ export declare const HdsThemeContextModesValues: {
14
+ readonly CdsG0: HdsModesLightValues.CdsG0;
15
+ readonly CdsG10: HdsModesLightValues.CdsG10;
16
+ readonly CdsG90: HdsModesDarkValues.CdsG90;
17
+ readonly CdsG100: HdsModesDarkValues.CdsG100;
18
+ };
19
+ export type HdsThemeContexts = HdsThemes | Exclude<HdsModes, 'default'>;
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import Component from '@glimmer/component';
6
+ import type { HdsDropdownSignature } from '../dropdown/index.ts';
7
+ import type { HdsDropdownToggleButtonSignature } from '../dropdown/toggle/button.ts';
8
+ import type { HdsIconSignature } from '../icon/index.ts';
9
+ import type HdsThemingService from '../../../services/hds-theming.ts';
10
+ import type { HdsThemes, HdsOnSetThemeCallback } from '../../../services/hds-theming.ts';
11
+ interface ThemeOption {
12
+ theme: HdsThemes | undefined;
13
+ icon: HdsIconSignature['Args']['name'];
14
+ label: string;
15
+ }
16
+ export interface HdsThemeSwitcherSignature {
17
+ Args: {
18
+ toggleSize?: HdsDropdownToggleButtonSignature['Args']['size'];
19
+ toggleIsFullWidth?: HdsDropdownToggleButtonSignature['Args']['isFullWidth'];
20
+ hasDefaultOption?: boolean;
21
+ hasSystemOption?: boolean;
22
+ onSetTheme?: HdsOnSetThemeCallback;
23
+ };
24
+ Element: HdsDropdownSignature['Element'];
25
+ }
26
+ export default class HdsThemeSwitcher extends Component<HdsThemeSwitcherSignature> {
27
+ readonly hdsTheming: HdsThemingService;
28
+ get toggleSize(): "small" | "medium";
29
+ get toggleIsFullWidth(): boolean;
30
+ get toggleContent(): {
31
+ label: string;
32
+ icon: "type" | "map" | "filter" | "code" | "link" | "menu" | "search" | "video" | "circle" | "image" | "path" | "tag" | "repeat" | "hash" | "queue" | "shuffle" | "chevron-up" | "chevron-down" | "unfold-open" | "unfold-close" | "arrow-down" | "arrow-up" | "swap-vertical" | "top" | "key" | "move" | "change" | "pause" | "play" | "move-horizontal" | "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-dot" | "circle-fill" | "circle-half" | "diamond" | "diamond-fill" | "disc" | "dot" | "dot-half" | "droplet" | "flag" | "gift" | "government" | "handshake" | "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" | "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" | "music" | "pause-circle" | "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-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-circle" | "filter-fill" | "grid" | "grid-alt" | "home" | "jump-link" | "layout" | "list" | "maximize" | "maximize-alt" | "minimize" | "minimize-alt" | "more-horizontal" | "more-vertical" | "mouse-pointer" | "paperclip" | "pen-tool" | "pencil-tool" | "pin" | "pin-off" | "power" | "printer" | "reload" | "resize-column" | "rotate-cw" | "rotate-ccw" | "share" | "sidebar" | "sidebar-hide" | "sidebar-show" | "sign-in" | "sign-out" | "slash" | "slash-square" | "sort-asc" | "sort-desc" | "start" | "switcher" | "sync" | "sync-alert" | "sync-reverse" | "text-wrap" | "toggle-left" | "toggle-right" | "trash" | "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-circle" | "change-square" | "channel" | "cloud" | "cloud-check" | "cloud-download" | "cloud-lightning" | "cloud-lock" | "cloud-off" | "cloud-upload" | "cloud-x" | "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" | "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" | "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-off" | "bank-vault" | "briefcase" | "credit-card" | "dollar-sign" | "enterprise" | "globe" | "globe-private" | "org" | "provider" | "shopping-bag" | "shopping-cart" | "arrow-down-circle" | "arrow-down-left" | "arrow-down-right" | "arrow-left" | "arrow-left-circle" | "arrow-right" | "arrow-right-circle" | "arrow-up-circle" | "arrow-up-left" | "arrow-up-right" | "caret" | "chevron-left" | "chevron-right" | "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" | "swap-horizontal";
33
+ } | {
34
+ label: string;
35
+ icon: undefined;
36
+ };
37
+ get hasDefaultOption(): boolean;
38
+ get hasSystemOption(): boolean;
39
+ get _options(): Partial<Record<"default" | "light" | "dark" | "system", ThemeOption>>;
40
+ get currentTheme(): "default" | "light" | "dark" | "system" | undefined;
41
+ onSelectTheme(theme: HdsThemes | undefined): void;
42
+ }
43
+ export {};
@@ -222,6 +222,8 @@ export { default as HdsTextBody } from './components/hds/text/body.ts';
222
222
  export { default as HdsTextCode } from './components/hds/text/code.ts';
223
223
  export { default as HdsTextDisplay } from './components/hds/text/display.ts';
224
224
  export * from './components/hds/text/types.ts';
225
+ export { default as HdsThemeContext } from './components/hds/theme-context/index.ts';
226
+ export { default as HdsThemeSwitcher } from './components/hds/theme-switcher/index.ts';
225
227
  export { default as HdsTime } from './components/hds/time/index.ts';
226
228
  export { default as HdsTimeSingle } from './components/hds/time/single.ts';
227
229
  export { default as HdsTimeRange } from './components/hds/time/range.ts';
@@ -0,0 +1,57 @@
1
+ import Service from '@ember/service';
2
+ export declare enum HdsThemeValues {
3
+ Default = "default",
4
+ System = "system",
5
+ Light = "light",
6
+ Dark = "dark"
7
+ }
8
+ export declare enum HdsModesBaseValues {
9
+ Default = "default"
10
+ }
11
+ export declare enum HdsModesLightValues {
12
+ CdsG0 = "cds-g0",
13
+ CdsG10 = "cds-g10"
14
+ }
15
+ export declare enum HdsModesDarkValues {
16
+ CdsG90 = "cds-g90",
17
+ CdsG100 = "cds-g100"
18
+ }
19
+ export type HdsThemes = `${HdsThemeValues}`;
20
+ export type HdsModes = `${HdsModesBaseValues}` | `${HdsModesLightValues}` | `${HdsModesDarkValues}`;
21
+ export type HdsModesLight = `${HdsModesLightValues}`;
22
+ export type HdsModesDark = `${HdsModesDarkValues}`;
23
+ type HdsThemingOptions = {
24
+ lightTheme: HdsModesLight;
25
+ darkTheme: HdsModesDark;
26
+ };
27
+ type SetThemeArgs = {
28
+ theme: HdsThemes | undefined;
29
+ options?: HdsThemingOptions;
30
+ onSetTheme?: HdsOnSetThemeCallback;
31
+ };
32
+ export type HdsOnSetThemeCallbackArgs = {
33
+ currentTheme: HdsThemes | undefined;
34
+ currentMode: HdsModes | undefined;
35
+ };
36
+ export type HdsOnSetThemeCallback = (args: HdsOnSetThemeCallbackArgs) => void;
37
+ export declare const THEMES: HdsThemes[];
38
+ export declare const MODES_LIGHT: HdsModesLight[];
39
+ export declare const MODES_DARK: HdsModesDark[];
40
+ export declare const MODES: HdsModes[];
41
+ export declare const HDS_THEMING_LOCALSTORAGE_DATA = "hds-theming-data";
42
+ export declare const DEFAULT_THEMING_OPTION_LIGHT_THEME = HdsModesLightValues.CdsG0;
43
+ export declare const DEFAULT_THEMING_OPTION_DARK_THEME = HdsModesDarkValues.CdsG100;
44
+ export default class HdsThemingService extends Service {
45
+ _currentTheme: HdsThemes | undefined;
46
+ _currentMode: HdsModes | undefined;
47
+ _currentLightTheme: HdsModesLight;
48
+ _currentDarkTheme: HdsModesDark;
49
+ globalOnSetTheme: HdsOnSetThemeCallback | undefined;
50
+ initializeTheme(): void;
51
+ setTheme({ theme, options, onSetTheme }: SetThemeArgs): void;
52
+ get currentTheme(): HdsThemes | undefined;
53
+ get currentMode(): HdsModes | undefined;
54
+ get currentLightTheme(): HdsModesLight;
55
+ get currentDarkTheme(): HdsModesDark;
56
+ }
57
+ export {};
@@ -2,3 +2,4 @@
2
2
  * Copyright IBM Corp. 2021, 2025
3
3
  * SPDX-License-Identifier: MPL-2.0
4
4
  */
5
+ export * from './services/hds-theming.ts';
@@ -217,6 +217,8 @@ import type HdsTagComponent from './components/hds/tag';
217
217
  import type HdsTooltipButtonComponent from './components/hds/tooltip-button';
218
218
  import type HdsToastComponent from './components/hds/toast';
219
219
  import type HdsTextCodeComponent from './components/hds/text/code';
220
+ import type HdsThemeContextComponent from './components/hds/theme-context';
221
+ import type HdsThemeSwitcherComponent from './components/hds/theme-switcher';
220
222
  import type HdsTimeComponent from './components/hds/time';
221
223
  import type HdsTimeSingleComponent from './components/hds/time/single';
222
224
  import type HdsTimeRangeComponent from './components/hds/time/range';
@@ -687,6 +689,10 @@ export default interface HdsComponentsRegistry {
687
689
  'hds/tooltip-button': typeof HdsTooltipButtonComponent;
688
690
  'Hds::Toast': typeof HdsToastComponent;
689
691
  'hds/toast': typeof HdsToastComponent;
692
+ 'Hds::ThemeContext': typeof HdsThemeContextComponent;
693
+ 'hds/theme-context': typeof HdsThemeContextComponent;
694
+ 'Hds::ThemeSwitcher': typeof HdsThemeSwitcherComponent;
695
+ 'hds/theme-switcher': typeof HdsThemeSwitcherComponent;
690
696
  'Hds::Time': typeof HdsTimeComponent;
691
697
  'hds/time': typeof HdsTimeComponent;
692
698
  'Hds::Time::Single': typeof HdsTimeSingleComponent;
@@ -0,0 +1 @@
1
+ export { default } from "@hashicorp/design-system-components/components/hds/theme-context/index";
@@ -0,0 +1 @@
1
+ export { default } from "@hashicorp/design-system-components/components/hds/theme-switcher/index";
@@ -0,0 +1 @@
1
+ export { default } from "@hashicorp/design-system-components/services/hds-theming";
@@ -0,0 +1,45 @@
1
+ import Component from '@glimmer/component';
2
+ import { assert } from '@ember/debug';
3
+ import { HdsThemeContextThemesValues, HdsThemeContextModesValues } from './types.js';
4
+ import { precompileTemplate } from '@ember/template-compilation';
5
+ import { setComponentTemplate } from '@ember/component';
6
+
7
+ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<div class={{this.classNames}} ...attributes>{{yield}}</div>");
8
+
9
+ /**
10
+ * Copyright (c) HashiCorp, Inc.
11
+ * SPDX-License-Identifier: MPL-2.0
12
+ */
13
+
14
+ const CONTEXTUAL_THEMES = Object.values(HdsThemeContextThemesValues);
15
+ const CONTEXTUAL_MODES = Object.values(HdsThemeContextModesValues);
16
+ const CONTEXTUAL_VALUES = [...CONTEXTUAL_THEMES, ...CONTEXTUAL_MODES];
17
+ class HdsThemeContext extends Component {
18
+ constructor(owner, args) {
19
+ super(owner, args);
20
+ const {
21
+ context
22
+ } = args;
23
+ assert(`@context for "Hds::ThemeContext" must be one of the following: ${CONTEXTUAL_VALUES.join(', ')}; received: ${context}`, CONTEXTUAL_VALUES.includes(context));
24
+ }
25
+
26
+ // Get the class names to apply to the component.
27
+ get classNames() {
28
+ const classes = ['hds-theme-context'];
29
+ const {
30
+ context
31
+ } = this.args;
32
+
33
+ // add "theme" or "mode" classes based on the @context arguments
34
+ if (CONTEXTUAL_THEMES.includes(context)) {
35
+ classes.push(`hds-theme-${context}`);
36
+ } else if (CONTEXTUAL_MODES.includes(context)) {
37
+ classes.push(`hds-mode-${context}`);
38
+ }
39
+ return classes.join(' ');
40
+ }
41
+ }
42
+ setComponentTemplate(TEMPLATE, HdsThemeContext);
43
+
44
+ export { CONTEXTUAL_MODES, CONTEXTUAL_THEMES, CONTEXTUAL_VALUES, HdsThemeContext as default };
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/hds/theme-context/index.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport type Owner from '@ember/owner';\n\nimport {\n HdsThemeContextThemesValues,\n HdsThemeContextModesValues,\n} from './types.ts';\nimport type { HdsThemeContexts } from './types.ts';\n\nimport type { HdsThemes, HdsModes } from '../../../services/hds-theming.ts';\n\nexport interface HdsThemeContextSignature {\n Args: {\n // can be either an `HdsTheme` or an `HdsMode`\n context: HdsThemeContexts;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLElement;\n}\n\nexport const CONTEXTUAL_THEMES: HdsThemes[] = Object.values(\n HdsThemeContextThemesValues\n);\nexport const CONTEXTUAL_MODES: HdsModes[] = Object.values(\n HdsThemeContextModesValues\n);\nexport const CONTEXTUAL_VALUES: HdsThemeContexts[] = [\n ...CONTEXTUAL_THEMES,\n ...CONTEXTUAL_MODES,\n];\n\nexport default class HdsThemeContext extends Component<HdsThemeContextSignature> {\n constructor(owner: Owner, args: HdsThemeContextSignature['Args']) {\n super(owner, args);\n\n const { context } = args;\n\n assert(\n `@context for \"Hds::ThemeContext\" must be one of the following: ${CONTEXTUAL_VALUES.join(\n ', '\n )}; received: ${context}`,\n CONTEXTUAL_VALUES.includes(context)\n );\n }\n\n // Get the class names to apply to the component.\n get classNames(): string {\n const classes = ['hds-theme-context'];\n\n const { context } = this.args;\n\n // add \"theme\" or \"mode\" classes based on the @context arguments\n if (CONTEXTUAL_THEMES.includes(context as HdsThemes)) {\n classes.push(`hds-theme-${context}`);\n } else if (CONTEXTUAL_MODES.includes(context as HdsModes)) {\n classes.push(`hds-mode-${context}`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["CONTEXTUAL_THEMES","Object","values","HdsThemeContextThemesValues","CONTEXTUAL_MODES","HdsThemeContextModesValues","CONTEXTUAL_VALUES","HdsThemeContext","Component","constructor","owner","args","context","assert","join","includes","classNames","classes","push","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;;AAyBO,MAAMA,iBAA8B,GAAGC,MAAM,CAACC,MAAM,CACzDC,2BACF;AACO,MAAMC,gBAA4B,GAAGH,MAAM,CAACC,MAAM,CACvDG,0BACF;AACO,MAAMC,iBAAqC,GAAG,CACnD,GAAGN,iBAAiB,EACpB,GAAGI,gBAAgB;AAGN,MAAMG,eAAe,SAASC,SAAS,CAA2B;AAC/EC,EAAAA,WAAWA,CAACC,KAAY,EAAEC,IAAsC,EAAE;AAChE,IAAA,KAAK,CAACD,KAAK,EAAEC,IAAI,CAAC;IAElB,MAAM;AAAEC,MAAAA;AAAQ,KAAC,GAAGD,IAAI;AAExBE,IAAAA,MAAM,CACJ,CAAA,+DAAA,EAAkEP,iBAAiB,CAACQ,IAAI,CACtF,IACF,CAAC,CAAA,YAAA,EAAeF,OAAO,CAAA,CAAE,EACzBN,iBAAiB,CAACS,QAAQ,CAACH,OAAO,CACpC,CAAC;AACH,EAAA;;AAEA;EACA,IAAII,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CAAC,mBAAmB,CAAC;IAErC,MAAM;AAAEL,MAAAA;KAAS,GAAG,IAAI,CAACD,IAAI;;AAE7B;AACA,IAAA,IAAIX,iBAAiB,CAACe,QAAQ,CAACH,OAAoB,CAAC,EAAE;AACpDK,MAAAA,OAAO,CAACC,IAAI,CAAC,CAAA,UAAA,EAAaN,OAAO,EAAE,CAAC;IACtC,CAAC,MAAM,IAAIR,gBAAgB,CAACW,QAAQ,CAACH,OAAmB,CAAC,EAAE;AACzDK,MAAAA,OAAO,CAACC,IAAI,CAAC,CAAA,SAAA,EAAYN,OAAO,EAAE,CAAC;AACrC,IAAA;AAEA,IAAA,OAAOK,OAAO,CAACH,IAAI,CAAC,GAAG,CAAC;AAC1B,EAAA;AACF;AAACK,oBAAA,CAAAC,QAAA,EA7BoBb,eAAe,CAAA;;;;"}
@@ -0,0 +1,27 @@
1
+ import { HdsThemeValues, HdsModesDarkValues, HdsModesLightValues } from '../../../services/hds-theming.js';
2
+
3
+ /**
4
+ * Copyright (c) HashiCorp, Inc.
5
+ * SPDX-License-Identifier: MPL-2.0
6
+ */
7
+
8
+ // re-export the enum values for the `HdsThemes` to use in the component
9
+ // note: using `as const` ensures Object.values() returns only the values (not keys _and_ values)
10
+ const HdsThemeContextThemesValues = {
11
+ Default: HdsThemeValues.Default,
12
+ System: HdsThemeValues.System,
13
+ Light: HdsThemeValues.Light,
14
+ Dark: HdsThemeValues.Dark
15
+ };
16
+
17
+ // re-export the enum values for the `HdsModes` to use in the component
18
+ // note: using `as const` ensures Object.values() returns only the values (not keys _and_ values)
19
+ const HdsThemeContextModesValues = {
20
+ CdsG0: HdsModesLightValues.CdsG0,
21
+ CdsG10: HdsModesLightValues.CdsG10,
22
+ CdsG90: HdsModesDarkValues.CdsG90,
23
+ CdsG100: HdsModesDarkValues.CdsG100
24
+ };
25
+
26
+ export { HdsThemeContextModesValues, HdsThemeContextThemesValues };
27
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../../../src/components/hds/theme-context/types.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport {\n HdsThemeValues,\n HdsModesLightValues,\n HdsModesDarkValues,\n} from '../../../services/hds-theming.ts';\n\nimport type { HdsThemes, HdsModes } from '../../../services/hds-theming.ts';\n\n// re-export the enum values for the `HdsThemes` to use in the component\n// note: using `as const` ensures Object.values() returns only the values (not keys _and_ values)\nexport const HdsThemeContextThemesValues = {\n Default: HdsThemeValues.Default,\n System: HdsThemeValues.System,\n Light: HdsThemeValues.Light,\n Dark: HdsThemeValues.Dark,\n} as const;\n\n// re-export the enum values for the `HdsModes` to use in the component\n// note: using `as const` ensures Object.values() returns only the values (not keys _and_ values)\nexport const HdsThemeContextModesValues = {\n CdsG0: HdsModesLightValues.CdsG0,\n CdsG10: HdsModesLightValues.CdsG10,\n CdsG90: HdsModesDarkValues.CdsG90,\n CdsG100: HdsModesDarkValues.CdsG100,\n} as const;\n\nexport type HdsThemeContexts = HdsThemes | Exclude<HdsModes, 'default'>;\n"],"names":["HdsThemeContextThemesValues","Default","HdsThemeValues","System","Light","Dark","HdsThemeContextModesValues","CdsG0","HdsModesLightValues","CdsG10","CdsG90","HdsModesDarkValues","CdsG100"],"mappings":";;AAAA;AACA;AACA;AACA;;AAUA;AACA;AACO,MAAMA,2BAA2B,GAAG;EACzCC,OAAO,EAAEC,cAAc,CAACD,OAAO;EAC/BE,MAAM,EAAED,cAAc,CAACC,MAAM;EAC7BC,KAAK,EAAEF,cAAc,CAACE,KAAK;EAC3BC,IAAI,EAAEH,cAAc,CAACG;AACvB;;AAEA;AACA;AACO,MAAMC,0BAA0B,GAAG;EACxCC,KAAK,EAAEC,mBAAmB,CAACD,KAAK;EAChCE,MAAM,EAAED,mBAAmB,CAACC,MAAM;EAClCC,MAAM,EAAEC,kBAAkB,CAACD,MAAM;EACjCE,OAAO,EAAED,kBAAkB,CAACC;AAC9B;;;;"}
@@ -0,0 +1,100 @@
1
+ import Component from '@glimmer/component';
2
+ import { inject } from '@ember/service';
3
+ import { action } from '@ember/object';
4
+ import { precompileTemplate } from '@ember/template-compilation';
5
+ import { g, i, n } from 'decorator-transforms/runtime';
6
+ import { setComponentTemplate } from '@ember/component';
7
+
8
+ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n\n{{!\n ------------------------------------------------------------------------------------------\n IMPORTANT: this is a temporary implementation, while we wait for the design specifications\n ------------------------------------------------------------------------------------------\n}}\n\n<Hds::Dropdown\n @enableCollisionDetection={{true}}\n @matchToggleWidth={{@toggleIsFullWidth}}\n class=\"hds-theme-switcher-control\"\n ...attributes\n as |D|\n>\n <D.ToggleButton\n @color=\"secondary\"\n @size={{this.toggleSize}}\n @isFullWidth={{this.toggleIsFullWidth}}\n @text={{this.toggleContent.label}}\n @icon={{this.toggleContent.icon}}\n />\n {{#each-in this._options as |key data|}}\n <D.Interactive @icon={{data.icon}} {{on \"click\" (fn this.onSelectTheme data.theme)}}>{{data.label}}</D.Interactive>\n {{/each-in}}\n</Hds::Dropdown>");
9
+
10
+ /**
11
+ * Copyright (c) HashiCorp, Inc.
12
+ * SPDX-License-Identifier: MPL-2.0
13
+ */
14
+
15
+ const OPTIONS = {
16
+ default: {
17
+ theme: 'default',
18
+ icon: 'hashicorp',
19
+ label: 'Default'
20
+ },
21
+ system: {
22
+ theme: 'system',
23
+ icon: 'monitor',
24
+ label: 'System'
25
+ },
26
+ light: {
27
+ theme: 'light',
28
+ icon: 'sun',
29
+ label: 'Light'
30
+ },
31
+ dark: {
32
+ theme: 'dark',
33
+ icon: 'moon',
34
+ label: 'Dark'
35
+ }
36
+ };
37
+ class HdsThemeSwitcher extends Component {
38
+ static {
39
+ g(this.prototype, "hdsTheming", [inject]);
40
+ }
41
+ #hdsTheming = (i(this, "hdsTheming"), void 0);
42
+ get toggleSize() {
43
+ return this.args.toggleSize ?? 'small';
44
+ }
45
+ get toggleIsFullWidth() {
46
+ return this.args.toggleIsFullWidth ?? false;
47
+ }
48
+ get toggleContent() {
49
+ if (this.currentTheme === 'default' && this.hasDefaultOption || this.currentTheme === 'system' && this.hasSystemOption || this.currentTheme === 'light' || this.currentTheme === 'dark') {
50
+ return {
51
+ label: OPTIONS[this.currentTheme].label,
52
+ icon: OPTIONS[this.currentTheme].icon
53
+ };
54
+ } else {
55
+ return {
56
+ label: 'Theme',
57
+ icon: undefined
58
+ };
59
+ }
60
+ }
61
+
62
+ // note: we will use the `default` option in development, while migrating to the `cds` theming
63
+ // during this process, consumers will enable/disable this option via code logic or feature flag
64
+ get hasDefaultOption() {
65
+ return this.args.hasDefaultOption ?? false;
66
+ }
67
+ get hasSystemOption() {
68
+ return this.args.hasSystemOption ?? true;
69
+ }
70
+ get _options() {
71
+ const options = {
72
+ ...OPTIONS
73
+ };
74
+ if (!this.hasDefaultOption) {
75
+ delete options.default;
76
+ }
77
+ if (!this.hasSystemOption) {
78
+ delete options.system;
79
+ }
80
+ return options;
81
+ }
82
+ get currentTheme() {
83
+ // we get the theme from the global service
84
+ return this.hdsTheming.currentTheme;
85
+ }
86
+ onSelectTheme(theme) {
87
+ // we set the theme in the global service (and provide an optional user-defined callback)
88
+ this.hdsTheming.setTheme({
89
+ theme,
90
+ onSetTheme: this.args.onSetTheme
91
+ });
92
+ }
93
+ static {
94
+ n(this.prototype, "onSelectTheme", [action]);
95
+ }
96
+ }
97
+ setComponentTemplate(TEMPLATE, HdsThemeSwitcher);
98
+
99
+ export { HdsThemeSwitcher as default };
100
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/hds/theme-switcher/index.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n// ------------------------------------------------------------------------------------------\n// IMPORTANT: this is a temporary implementation, while we wait for the design specifications\n// ------------------------------------------------------------------------------------------\n\nimport Component from '@glimmer/component';\nimport { inject as service } from '@ember/service';\nimport { action } from '@ember/object';\n\nimport type { HdsDropdownSignature } from '../dropdown/index.ts';\nimport type { HdsDropdownToggleButtonSignature } from '../dropdown/toggle/button.ts';\nimport type { HdsIconSignature } from '../icon/index.ts';\nimport type HdsThemingService from '../../../services/hds-theming.ts';\nimport type {\n HdsThemes,\n HdsOnSetThemeCallback,\n} from '../../../services/hds-theming.ts';\n\ninterface ThemeOption {\n theme: HdsThemes | undefined;\n icon: HdsIconSignature['Args']['name'];\n label: string;\n}\n\nconst OPTIONS: Record<HdsThemes, ThemeOption> = {\n default: { theme: 'default', icon: 'hashicorp', label: 'Default' },\n system: { theme: 'system', icon: 'monitor', label: 'System' },\n light: { theme: 'light', icon: 'sun', label: 'Light' },\n dark: { theme: 'dark', icon: 'moon', label: 'Dark' },\n};\n\nexport interface HdsThemeSwitcherSignature {\n Args: {\n toggleSize?: HdsDropdownToggleButtonSignature['Args']['size'];\n toggleIsFullWidth?: HdsDropdownToggleButtonSignature['Args']['isFullWidth'];\n hasDefaultOption?: boolean;\n hasSystemOption?: boolean;\n onSetTheme?: HdsOnSetThemeCallback;\n };\n Element: HdsDropdownSignature['Element'];\n}\n\nexport default class HdsThemeSwitcher extends Component<HdsThemeSwitcherSignature> {\n @service declare readonly hdsTheming: HdsThemingService;\n\n get toggleSize() {\n return this.args.toggleSize ?? 'small';\n }\n\n get toggleIsFullWidth() {\n return this.args.toggleIsFullWidth ?? false;\n }\n\n get toggleContent() {\n if (\n (this.currentTheme === 'default' && this.hasDefaultOption) ||\n (this.currentTheme === 'system' && this.hasSystemOption) ||\n this.currentTheme === 'light' ||\n this.currentTheme === 'dark'\n ) {\n return {\n label: OPTIONS[this.currentTheme].label,\n icon: OPTIONS[this.currentTheme].icon,\n };\n } else {\n return { label: 'Theme', icon: undefined };\n }\n }\n\n // note: we will use the `default` option in development, while migrating to the `cds` theming\n // during this process, consumers will enable/disable this option via code logic or feature flag\n get hasDefaultOption() {\n return this.args.hasDefaultOption ?? false;\n }\n\n get hasSystemOption() {\n return this.args.hasSystemOption ?? true;\n }\n\n get _options() {\n const options: Partial<typeof OPTIONS> = { ...OPTIONS };\n\n if (!this.hasDefaultOption) {\n delete options.default;\n }\n\n if (!this.hasSystemOption) {\n delete options.system;\n }\n\n return options;\n }\n\n get currentTheme() {\n // we get the theme from the global service\n return this.hdsTheming.currentTheme;\n }\n\n @action\n onSelectTheme(theme: HdsThemes | undefined): void {\n // we set the theme in the global service (and provide an optional user-defined callback)\n this.hdsTheming.setTheme({ theme, onSetTheme: this.args.onSetTheme });\n }\n}\n"],"names":["OPTIONS","default","theme","icon","label","system","light","dark","HdsThemeSwitcher","Component","g","prototype","service","i","void 0","toggleSize","args","toggleIsFullWidth","toggleContent","currentTheme","hasDefaultOption","hasSystemOption","undefined","_options","options","hdsTheming","onSelectTheme","setTheme","onSetTheme","n","action","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -218,6 +218,8 @@ export { default as HdsTextBody } from './components/hds/text/body.js';
218
218
  export { default as HdsTextCode } from './components/hds/text/code.js';
219
219
  export { default as HdsTextDisplay } from './components/hds/text/display.js';
220
220
  export { HdsTextAlignValues, HdsTextColorValues, HdsTextGroupValues, HdsTextSizeValues, HdsTextWeightValues } from './components/hds/text/types.js';
221
+ export { default as HdsThemeContext } from './components/hds/theme-context/index.js';
222
+ export { default as HdsThemeSwitcher } from './components/hds/theme-switcher/index.js';
221
223
  export { default as HdsTime } from './components/hds/time/index.js';
222
224
  export { default as HdsTimeSingle } from './components/hds/time/single.js';
223
225
  export { default as HdsTimeRange } from './components/hds/time/range.js';
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"components.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}