From a39a707a217d92a7bc64e79657d30daadc62c3ca Mon Sep 17 00:00:00 2001 From: Melanie Boeckmann Date: Mon, 17 Feb 2025 12:11:15 -0800 Subject: [PATCH 01/13] feat: add new gcds icon font --- packages/web/src/components.d.ts | 30 +- .../src/components/gcds-icon/gcds-icon.scss | 648 +++++++++++------- .../src/components/gcds-icon/gcds-icon.tsx | 72 +- .../web/src/components/gcds-icon/i18n/i18n.js | 10 + .../web/src/components/gcds-icon/readme.md | 2 +- .../gcds-icon/test/gcds-icon.e2e.ts | 4 +- .../gcds-icon/test/gcds-icon.spec.ts | 50 +- 7 files changed, 525 insertions(+), 291 deletions(-) create mode 100644 packages/web/src/components/gcds-icon/i18n/i18n.js diff --git a/packages/web/src/components.d.ts b/packages/web/src/components.d.ts index 5e9c4e3ee..ed8aa13d8 100644 --- a/packages/web/src/components.d.ts +++ b/packages/web/src/components.d.ts @@ -590,7 +590,20 @@ export namespace Components { /** * Name of the icon. */ - "name": string; + "name": | 'checkmark-circle' + | 'chevron-down' + | 'chevron-left' + | 'chevron-right' + | 'chevron-up' + | 'close' + | 'download' + | 'email' + | 'exclamation-circle' + | 'external' + | 'info-circle' + | 'phone' + | 'search' + | 'warning-triangle'; /** * Defines the size of the icon. */ @@ -2413,7 +2426,20 @@ declare namespace LocalJSX { /** * Name of the icon. */ - "name": string; + "name": | 'checkmark-circle' + | 'chevron-down' + | 'chevron-left' + | 'chevron-right' + | 'chevron-up' + | 'close' + | 'download' + | 'email' + | 'exclamation-circle' + | 'external' + | 'info-circle' + | 'phone' + | 'search' + | 'warning-triangle'; /** * Defines the size of the icon. */ diff --git a/packages/web/src/components/gcds-icon/gcds-icon.scss b/packages/web/src/components/gcds-icon/gcds-icon.scss index a7ee11731..7fe3ec9ec 100644 --- a/packages/web/src/components/gcds-icon/gcds-icon.scss +++ b/packages/web/src/components/gcds-icon/gcds-icon.scss @@ -1,336 +1,466 @@ -@use '../../../../../node_modules/@fortawesome/fontawesome-free/css/all.min.css'; +@layer reset, default, names, fixedWidth, margin, size; -:host .gcds-icon { - font-family: var(--gcds-icon-font-family); - font-size: inherit; - line-height: inherit; - color: inherit; +@layer reset { + :host { + display: inline-block; - /* Margin left */ - &.ml-0 { - margin-inline-start: var(--gcds-icon-margin-0); - } - - &.ml-25 { - margin-inline-start: var(--gcds-icon-margin-25); - } - - &.ml-50 { - margin-inline-start: var(--gcds-icon-margin-50); - } - - &.ml-75 { - margin-inline-start: var(--gcds-icon-margin-75); - } - - &.ml-100 { - margin-inline-start: var(--gcds-icon-margin-100); - } - - &.ml-125 { - margin-inline-start: var(--gcds-icon-margin-125); - } - - &.ml-150 { - margin-inline-start: var(--gcds-icon-margin-150); - } - - &.ml-175 { - margin-inline-start: var(--gcds-icon-margin-175); - } - - &.ml-200 { - margin-inline-start: var(--gcds-icon-margin-200); - } - - &.ml-225 { - margin-inline-start: var(--gcds-icon-margin-225); - } - - &.ml-250 { - margin-inline-start: var(--gcds-icon-margin-250); + :host .gcds-icon { + font-size: inherit; + line-height: inherit; + color: inherit; + } } +} - &.ml-300 { - margin-inline-start: var(--gcds-icon-margin-300); +@layer default { + :host .gcds-icon { + font-family: var(--gcds-icon-font-family) !important; + speak: never; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } +} - &.ml-350 { - margin-inline-start: var(--gcds-icon-margin-350); - } +@layer names { + :host .gcds-icon { + &-checkmark-circle:before { + content: "\e908"; + } - &.ml-400 { - margin-inline-start: var(--gcds-icon-margin-400); - } + &-chevron-down:before { + content: "\e900"; + } - &.ml-450 { - margin-inline-start: var(--gcds-icon-margin-450); - } + &-chevron-left:before { + content: "\e901"; + } - &.ml-500 { - margin-inline-start: var(--gcds-icon-margin-500); - } + &-chevron-right:before { + content: "\e902"; + } - &.ml-550 { - margin-inline-start: var(--gcds-icon-margin-550); - } + &-chevron-up:before { + content: "\e903"; + } - &.ml-600 { - margin-inline-start: var(--gcds-icon-margin-600); - } + &-close:before { + content: "\e90b"; + } - &.ml-650 { - margin-inline-start: var(--gcds-icon-margin-650); - } + &-download:before { + content: "\e906"; + } - &.ml-700 { - margin-inline-start: var(--gcds-icon-margin-700); - } + &-email:before { + content: "\e905"; + } - &.ml-750 { - margin-inline-start: var(--gcds-icon-margin-750); - } + &-exclamation-circle:before { + content: "\e909"; + } - &.ml-800 { - margin-inline-start: var(--gcds-icon-margin-800); - } + &-external:before { + content: "\e904"; + } - &.ml-850 { - margin-inline-start: var(--gcds-icon-margin-850); - } + &-info-circle:before { + content: "\e90a"; + } - &.ml-900 { - margin-inline-start: var(--gcds-icon-margin-900); - } + &-phone:before { + content: "\e90c"; + } - &.ml-950 { - margin-inline-start: var(--gcds-icon-margin-950); - } + &-search:before { + content: "\e907"; + } - &.ml-1000 { - margin-inline-start: var(--gcds-icon-margin-1000); + &-warning-triangle:before { + content: "\e90d"; + } } +} - &.ml-1050 { - margin-inline-start: var(--gcds-icon-margin-1050); - } +// TODO: Will be removed in separate pull request +@layer fixedWidth { + :host .gcds-icon { + &.fixed-width { + text-align: center; + } - &.ml-1100 { - margin-inline-start: var(--gcds-icon-margin-1100); - } + &.size-text-small.fixed-width { + width: calc(var(--gcds-icon-fixed-width-text-small) * 1em); + } - &.ml-1150 { - margin-inline-start: var(--gcds-icon-margin-1150); - } + &.size-text.fixed-width { + width: calc(var(--gcds-icon-fixed-width-text) * 1em); + } - &.ml-1200 { - margin-inline-start: var(--gcds-icon-margin-1200); - } + &.size-h6.fixed-width { + width: calc(var(--gcds-icon-fixed-width-h6) * 1em); + } - &.ml-1250 { - margin-inline-start: var(--gcds-icon-margin-1250); - } + &.size-h5.fixed-width { + width: calc(var(--gcds-icon-fixed-width-h5) * 1em); + } - /* Margin right */ - &.mr-0 { - margin-inline-end: var(--gcds-icon-margin-0); - } + &.size-h4.fixed-width { + width: calc(var(--gcds-icon-fixed-width-h4) * 1em); + } - &.mr-25 { - margin-inline-end: var(--gcds-icon-margin-25); - } + &.size-h3.fixed-width { + width: calc(var(--gcds-icon-fixed-width-h3) * 1em); + } - &.mr-50 { - margin-inline-end: var(--gcds-icon-margin-50); - } + &.size-h2.fixed-width { + width: calc(var(--gcds-icon-fixed-width-h2) * 1em); + } - &.mr-75 { - margin-inline-end: var(--gcds-icon-margin-75); + &.size-h1.fixed-width { + width: calc(var(--gcds-icon-fixed-width-h1) * 1em); + } } +} - &.mr-100 { - margin-inline-end: var(--gcds-icon-margin-100); - } +@layer margin { + :host .gcds-icon { + /* Margin left */ + &.ml-0 { + margin-inline-start: var(--gcds-icon-margin-0); + } - &.mr-125 { - margin-inline-end: var(--gcds-icon-margin-125); - } + &.ml-25 { + margin-inline-start: var(--gcds-icon-margin-25); + } - &.mr-150 { - margin-inline-end: var(--gcds-icon-margin-150); - } + &.ml-50 { + margin-inline-start: var(--gcds-icon-margin-50); + } - &.mr-175 { - margin-inline-end: var(--gcds-icon-margin-175); - } + &.ml-75 { + margin-inline-start: var(--gcds-icon-margin-75); + } - &.mr-200 { - margin-inline-end: var(--gcds-icon-margin-200); - } + &.ml-100 { + margin-inline-start: var(--gcds-icon-margin-100); + } - &.mr-225 { - margin-inline-end: var(--gcds-icon-margin-225); - } + &.ml-125 { + margin-inline-start: var(--gcds-icon-margin-125); + } - &.mr-250 { - margin-inline-end: var(--gcds-icon-margin-250); - } + &.ml-150 { + margin-inline-start: var(--gcds-icon-margin-150); + } + + &.ml-175 { + margin-inline-start: var(--gcds-icon-margin-175); + } + + &.ml-200 { + margin-inline-start: var(--gcds-icon-margin-200); + } + + &.ml-225 { + margin-inline-start: var(--gcds-icon-margin-225); + } + + &.ml-250 { + margin-inline-start: var(--gcds-icon-margin-250); + } + + &.ml-300 { + margin-inline-start: var(--gcds-icon-margin-300); + } + + &.ml-350 { + margin-inline-start: var(--gcds-icon-margin-350); + } + + &.ml-400 { + margin-inline-start: var(--gcds-icon-margin-400); + } + + &.ml-450 { + margin-inline-start: var(--gcds-icon-margin-450); + } + + &.ml-500 { + margin-inline-start: var(--gcds-icon-margin-500); + } + + &.ml-550 { + margin-inline-start: var(--gcds-icon-margin-550); + } + + &.ml-600 { + margin-inline-start: var(--gcds-icon-margin-600); + } + + &.ml-650 { + margin-inline-start: var(--gcds-icon-margin-650); + } + + &.ml-700 { + margin-inline-start: var(--gcds-icon-margin-700); + } + + &.ml-750 { + margin-inline-start: var(--gcds-icon-margin-750); + } + + &.ml-800 { + margin-inline-start: var(--gcds-icon-margin-800); + } + + &.ml-850 { + margin-inline-start: var(--gcds-icon-margin-850); + } + + &.ml-900 { + margin-inline-start: var(--gcds-icon-margin-900); + } + + &.ml-950 { + margin-inline-start: var(--gcds-icon-margin-950); + } + + &.ml-1000 { + margin-inline-start: var(--gcds-icon-margin-1000); + } - &.mr-300 { - margin-inline-end: var(--gcds-icon-margin-300); - } + &.ml-1050 { + margin-inline-start: var(--gcds-icon-margin-1050); + } - &.mr-350 { - margin-inline-end: var(--gcds-icon-margin-350); - } + &.ml-1100 { + margin-inline-start: var(--gcds-icon-margin-1100); + } - &.mr-400 { - margin-inline-end: var(--gcds-icon-margin-400); - } + &.ml-1150 { + margin-inline-start: var(--gcds-icon-margin-1150); + } - &.mr-450 { - margin-inline-end: var(--gcds-icon-margin-450); - } + &.ml-1200 { + margin-inline-start: var(--gcds-icon-margin-1200); + } - &.mr-500 { - margin-inline-end: var(--gcds-icon-margin-500); - } + &.ml-1250 { + margin-inline-start: var(--gcds-icon-margin-1250); + } - &.mr-550 { - margin-inline-end: var(--gcds-icon-margin-550); - } + /* Margin right */ + &.mr-0 { + margin-inline-end: var(--gcds-icon-margin-0); + } - &.mr-600 { - margin-inline-end: var(--gcds-icon-margin-600); - } + &.mr-25 { + margin-inline-end: var(--gcds-icon-margin-25); + } - &.mr-650 { - margin-inline-end: var(--gcds-icon-margin-650); - } + &.mr-50 { + margin-inline-end: var(--gcds-icon-margin-50); + } - &.mr-700 { - margin-inline-end: var(--gcds-icon-margin-700); - } + &.mr-75 { + margin-inline-end: var(--gcds-icon-margin-75); + } - &.mr-750 { - margin-inline-end: var(--gcds-icon-margin-750); - } + &.mr-100 { + margin-inline-end: var(--gcds-icon-margin-100); + } - &.mr-800 { - margin-inline-end: var(--gcds-icon-margin-800); - } + &.mr-125 { + margin-inline-end: var(--gcds-icon-margin-125); + } - &.mr-850 { - margin-inline-end: var(--gcds-icon-margin-850); - } + &.mr-150 { + margin-inline-end: var(--gcds-icon-margin-150); + } - &.mr-900 { - margin-inline-end: var(--gcds-icon-margin-900); - } + &.mr-175 { + margin-inline-end: var(--gcds-icon-margin-175); + } - &.mr-950 { - margin-inline-end: var(--gcds-icon-margin-950); - } + &.mr-200 { + margin-inline-end: var(--gcds-icon-margin-200); + } - &.mr-1000 { - margin-inline-end: var(--gcds-icon-margin-1000); - } + &.mr-225 { + margin-inline-end: var(--gcds-icon-margin-225); + } - &.mr-1050 { - margin-inline-end: var(--gcds-icon-margin-1050); - } + &.mr-250 { + margin-inline-end: var(--gcds-icon-margin-250); + } - &.mr-1100 { - margin-inline-end: var(--gcds-icon-margin-1100); - } + &.mr-300 { + margin-inline-end: var(--gcds-icon-margin-300); + } - &.mr-1150 { - margin-inline-end: var(--gcds-icon-margin-1150); - } + &.mr-350 { + margin-inline-end: var(--gcds-icon-margin-350); + } - &.mr-1200 { - margin-inline-end: var(--gcds-icon-margin-1200); - } + &.mr-400 { + margin-inline-end: var(--gcds-icon-margin-400); + } - &.mr-1250 { - margin-inline-end: var(--gcds-icon-margin-1250); - } + &.mr-450 { + margin-inline-end: var(--gcds-icon-margin-450); + } - /* Fixed width */ - &.fixed-width { - text-align: center; - } + &.mr-500 { + margin-inline-end: var(--gcds-icon-margin-500); + } - &.size-text-small.fixed-width { - width: calc(var(--gcds-icon-fixed-width-text-small) * 1em); - } + &.mr-550 { + margin-inline-end: var(--gcds-icon-margin-550); + } - &.size-text.fixed-width { - width: calc(var(--gcds-icon-fixed-width-text) * 1em); - } + &.mr-600 { + margin-inline-end: var(--gcds-icon-margin-600); + } - &.size-h6.fixed-width { - width: calc(var(--gcds-icon-fixed-width-h6) * 1em); - } + &.mr-650 { + margin-inline-end: var(--gcds-icon-margin-650); + } - &.size-h5.fixed-width { - width: calc(var(--gcds-icon-fixed-width-h5) * 1em); - } + &.mr-700 { + margin-inline-end: var(--gcds-icon-margin-700); + } - &.size-h4.fixed-width { - width: calc(var(--gcds-icon-fixed-width-h4) * 1em); - } + &.mr-750 { + margin-inline-end: var(--gcds-icon-margin-750); + } - &.size-h3.fixed-width { - width: calc(var(--gcds-icon-fixed-width-h3) * 1em); - } + &.mr-800 { + margin-inline-end: var(--gcds-icon-margin-800); + } - &.size-h2.fixed-width { - width: calc(var(--gcds-icon-fixed-width-h2) * 1em); - } + &.mr-850 { + margin-inline-end: var(--gcds-icon-margin-850); + } - &.size-h1.fixed-width { - width: calc(var(--gcds-icon-fixed-width-h1) * 1em); - } + &.mr-900 { + margin-inline-end: var(--gcds-icon-margin-900); + } - /* Size */ - &.size-text-small { - font-size: var(--gcds-icon-font-size-text-small); - line-height: var(--gcds-icon-line-height-text-small); - } + &.mr-950 { + margin-inline-end: var(--gcds-icon-margin-950); + } - &.size-text { - font-size: var(--gcds-icon-font-size-text); - line-height: var(--gcds-icon-line-height-text); - } + &.mr-1000 { + margin-inline-end: var(--gcds-icon-margin-1000); + } - &.size-h6 { - font-size: var(--gcds-icon-font-size-h6); - line-height: var(--gcds-icon-line-height-h6); - } + &.mr-1050 { + margin-inline-end: var(--gcds-icon-margin-1050); + } - &.size-h5 { - font-size: var(--gcds-icon-font-size-h5); - line-height: var(--gcds-icon-line-height-h5); - } + &.mr-1100 { + margin-inline-end: var(--gcds-icon-margin-1100); + } - &.size-h4 { - font-size: var(--gcds-icon-font-size-h4); - line-height: var(--gcds-icon-line-height-h4); - } + &.mr-1150 { + margin-inline-end: var(--gcds-icon-margin-1150); + } - &.size-h3 { - font-size: var(--gcds-icon-font-size-h3); - line-height: var(--gcds-icon-line-height-h3); - } + &.mr-1200 { + margin-inline-end: var(--gcds-icon-margin-1200); + } - &.size-h2 { - font-size: var(--gcds-icon-font-size-h2); - line-height: var(--gcds-icon-line-height-h2); + &.mr-1250 { + margin-inline-end: var(--gcds-icon-margin-1250); + } } +} - &.size-h1 { - font-size: var(--gcds-icon-font-size-h1); - line-height: var(--gcds-icon-line-height-h1); +@layer size { + :host .gcds-icon { + &.size-text-small { + font-size: var(--gcds-icon-font-size-text-small); + line-height: var(--gcds-icon-line-height-text-small); + + @media only screen and (width < 48em) { + font-size: var(--gcds-icon-font-size-text-small-mobile); + line-height: var(--gcds-icon-line-height-text-small-mobile); + } + } + + &.size-text { + font-size: var(--gcds-icon-font-size-text); + line-height: var(--gcds-icon-line-height-text); + + @media only screen and (width < 48em) { + font-size: var(--gcds-icon-font-size-text-mobile); + line-height: var(--gcds-icon-line-height-text-mobile); + } + } + + &.size-h6 { + font-size: var(--gcds-icon-font-size-h6); + line-height: var(--gcds-icon-line-height-h6); + + @media only screen and (width < 48em) { + font-size: var(--gcds-icon-font-size-h6-mobile); + line-height: var(--gcds-icon-line-height-h6-mobile); + } + } + + &.size-h5 { + font-size: var(--gcds-icon-font-size-h5); + line-height: var(--gcds-icon-line-height-h5); + + @media only screen and (width < 48em) { + font-size: var(--gcds-icon-font-size-h5-mobile); + line-height: var(--gcds-icon-line-height-h5-mobile); + } + } + + &.size-h4 { + font-size: var(--gcds-icon-font-size-h4); + line-height: var(--gcds-icon-line-height-h4); + + @media only screen and (width < 48em) { + font-size: var(--gcds-icon-font-size-h4-mobile); + line-height: var(--gcds-icon-line-height-h4-mobile); + } + } + + &.size-h3 { + font-size: var(--gcds-icon-font-size-h3); + line-height: var(--gcds-icon-line-height-h3); + + @media only screen and (width < 48em) { + font-size: var(--gcds-icon-font-size-h3-mobile); + line-height: var(--gcds-icon-line-height-h3-mobile); + } + } + + &.size-h2 { + font-size: var(--gcds-icon-font-size-h2); + line-height: var(--gcds-icon-line-height-h2); + + @media only screen and (width < 48em) { + font-size: var(--gcds-icon-font-size-h2-mobile); + line-height: var(--gcds-icon-line-height-h2-mobile); + } + } + + &.size-h1 { + font-size: var(--gcds-icon-font-size-h1); + line-height: var(--gcds-icon-line-height-h1); + + @media only screen and (width < 48em) { + font-size: var(--gcds-icon-font-size-h1-mobile); + line-height: var(--gcds-icon-line-height-h1-mobile); + } + } } } diff --git a/packages/web/src/components/gcds-icon/gcds-icon.tsx b/packages/web/src/components/gcds-icon/gcds-icon.tsx index 9cc4b04d1..9583fda6d 100644 --- a/packages/web/src/components/gcds-icon/gcds-icon.tsx +++ b/packages/web/src/components/gcds-icon/gcds-icon.tsx @@ -1,5 +1,6 @@ -import { Component, Element, Host, Prop, h } from '@stencil/core'; +import { Component, Element, Host, Watch, Prop, h } from '@stencil/core'; import { SpacingValues } from '../../utils/types/spacing'; +import i18n from './i18n/i18n'; @Component({ tag: 'gcds-icon', @@ -13,6 +14,7 @@ export class GcdsIcon { * Props */ + // TODO: Will be removed in separate pull request /** * Style of the icon. 'regular' icons are outlined. Some icons have 'solid' variation. */ @@ -36,8 +38,47 @@ export class GcdsIcon { /** * Name of the icon. */ - @Prop() name!: string; + @Prop({ mutable: true }) name!: + | 'checkmark-circle' + | 'chevron-down' + | 'chevron-left' + | 'chevron-right' + | 'chevron-up' + | 'close' + | 'download' + | 'email' + | 'exclamation-circle' + | 'external' + | 'info-circle' + | 'phone' + | 'search' + | 'warning-triangle'; + @Watch('name') + validateName(newValue: string) { + const values = [ + 'checkmark-circle', + 'chevron-down', + 'chevron-left', + 'chevron-right', + 'chevron-up', + 'close', + 'download', + 'email', + 'exclamation-circle', + 'external', + 'info-circle', + 'phone', + 'search', + 'warning-triangle', + ]; + + if (!values.includes(newValue)) { + console.error(`${i18n['en'].nameError} | ${i18n['fr'].nameError}`); + } + } + + // TODO: Will be removed in separate pull request /** * If the icon should render as a fixed-width square, or their natural width. */ @@ -57,6 +98,31 @@ export class GcdsIcon { | 'h2' | 'h1' = 'text'; + @Watch('size') + validateSize(newValue: string) { + const values = [ + 'inherit', + 'text-small', + 'text', + 'h6', + 'h5', + 'h4', + 'h3', + 'h2', + 'h1', + ]; + + if (!values.includes(newValue)) { + this.size = 'text'; + } + } + + componentWillLoad() { + // Validate attributes and set defaults + this.validateName(this.name); + this.validateSize(this.size); + } + render() { const { iconStyle, @@ -72,7 +138,7 @@ export class GcdsIcon { { it('renders', async () => { const page = await newE2EPage(); - await page.setContent(''); + await page.setContent(''); const element = await page.find('gcds-icon'); expect(element).toHaveClass('hydrated'); @@ -23,7 +23,7 @@ describe('gcds-banner a11y tests', () => { it('colour contrast', async () => { const page = await newE2EPage(); await page.setContent(` - + `); const colorContrastTest = new AxePuppeteer(page) diff --git a/packages/web/src/components/gcds-icon/test/gcds-icon.spec.ts b/packages/web/src/components/gcds-icon/test/gcds-icon.spec.ts index a72141110..8d29a5878 100644 --- a/packages/web/src/components/gcds-icon/test/gcds-icon.spec.ts +++ b/packages/web/src/components/gcds-icon/test/gcds-icon.spec.ts @@ -5,12 +5,12 @@ describe('gcds-icon', () => { it('renders', async () => { const { root } = await newSpecPage({ components: [GcdsIcon], - html: '', + html: '', }); expect(root).toEqualHtml(` - + - + `); @@ -19,12 +19,12 @@ describe('gcds-icon', () => { it('renders margin left', async () => { const { root } = await newSpecPage({ components: [GcdsIcon], - html: '', + html: '', }); expect(root).toEqualHtml(` - + - + `); @@ -33,12 +33,12 @@ describe('gcds-icon', () => { it('renders margin right', async () => { const { root } = await newSpecPage({ components: [GcdsIcon], - html: '', + html: '', }); expect(root).toEqualHtml(` - + - + `); @@ -47,12 +47,12 @@ describe('gcds-icon', () => { it('renders size', async () => { const { root } = await newSpecPage({ components: [GcdsIcon], - html: '', + html: '', }); expect(root).toEqualHtml(` - + - + `); @@ -61,12 +61,12 @@ describe('gcds-icon', () => { it('renders hidden for screen readers', async () => { const { root } = await newSpecPage({ components: [GcdsIcon], - html: '', + html: '', }); expect(root).toEqualHtml(` - + - + `); @@ -75,40 +75,42 @@ describe('gcds-icon', () => { it('renders with label', async () => { const { root } = await newSpecPage({ components: [GcdsIcon], - html: '', + html: '', }); expect(root).toEqualHtml(` - + - + `); }); + // TODO: Will be removed in separate pull request it('renders icon style', async () => { const { root } = await newSpecPage({ components: [GcdsIcon], - html: '', + html: '', }); expect(root).toEqualHtml(` - + - + `); }); + // TODO: Will be removed in separate pull request it('renders fixed width icons', async () => { const { root } = await newSpecPage({ components: [GcdsIcon], - html: '', + html: '', }); expect(root).toEqualHtml(` - + - + `); From 07bc436071de38144df83e848da8ccae321ddd47 Mon Sep 17 00:00:00 2001 From: Melanie Boeckmann Date: Mon, 17 Feb 2025 12:15:25 -0800 Subject: [PATCH 02/13] chore: update existing components to use new token names --- .../src/components/gcds-alert/gcds-alert.tsx | 6 +-- .../gcds-alert/test/gcds-alert.spec.tsx | 46 +++++++++---------- .../components/gcds-button/gcds-button.tsx | 2 +- .../gcds-button/test/gcds-button.spec.ts | 2 +- .../gcds-error-message/gcds-error-message.tsx | 2 +- .../test/gcds-error-message.spec.ts | 2 +- .../gcds-file-uploader/gcds-file-uploader.tsx | 2 +- .../src/components/gcds-link/gcds-link.tsx | 4 +- .../gcds-link/test/gcds-link.spec.ts | 8 ++-- .../gcds-nav-group/gcds-nav-group.tsx | 2 +- .../test/gcds-nav-group.spec.tsx | 6 +-- .../components/gcds-notice/gcds-notice.tsx | 24 ++++++++-- .../gcds-notice/test/gcds-notice.spec.tsx | 14 +++--- 13 files changed, 68 insertions(+), 52 deletions(-) diff --git a/packages/web/src/components/gcds-alert/gcds-alert.tsx b/packages/web/src/components/gcds-alert/gcds-alert.tsx index 1372bc1b2..32f7d1344 100644 --- a/packages/web/src/components/gcds-alert/gcds-alert.tsx +++ b/packages/web/src/components/gcds-alert/gcds-alert.tsx @@ -138,9 +138,9 @@ export class GcdsAlert { : alertRole === 'info' ? 'info-circle' : alertRole === 'success' - ? 'check-circle' + ? 'checkmark-circle' : alertRole === 'warning' - ? 'exclamation-triangle' + ? 'warning-triangle' : null } /> @@ -164,7 +164,7 @@ export class GcdsAlert { }} aria-label={i18n[lang].closeBtn} > -