@salt-ds/icons 1.13.0 → 1.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @salt-ds/icons
2
2
 
3
+ ## 1.13.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 021e90d: Fixed hidden icons being announced on iOS.
8
+
9
+ ## 1.13.1
10
+
11
+ ### Patch Changes
12
+
13
+ - 0a5b68b: Marked CSS files as having side effects. This fixes Webpack tree-shaking CSS files when `sideEffects: true` is not set on style-loader rules.
14
+
3
15
  ## 1.13.0
4
16
 
5
17
  ### Minor Changes
@@ -11,6 +11,8 @@ const makePrefixer = (prefix) => (...names) => [prefix, ...names].join("-");
11
11
  const withBaseName = makePrefixer("saltIcon");
12
12
  const DEFAULT_ICON_SIZE = 1;
13
13
  const Icon = react.forwardRef(function Icon2({
14
+ "aria-hidden": ariaHidden,
15
+ "aria-label": ariaLabel,
14
16
  children,
15
17
  className,
16
18
  color = "inherit",
@@ -37,7 +39,9 @@ const Icon = react.forwardRef(function Icon2({
37
39
  className
38
40
  ),
39
41
  style,
40
- role: "img",
42
+ role: ariaHidden ? void 0 : "img",
43
+ "aria-label": ariaHidden ? void 0 : ariaLabel,
44
+ "aria-hidden": ariaHidden,
41
45
  ...rest,
42
46
  ref,
43
47
  children: /* @__PURE__ */ jsxRuntime.jsx("g", { "aria-hidden": true, children })
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.js","sources":["../src/icon/Icon.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { type SVGAttributes, forwardRef } from \"react\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport iconCss from \"./Icon.css\";\n// Duplicate from core/util to avoid circular dependency\nexport const makePrefixer =\n (prefix: string): ((...names: string[]) => string) =>\n (...names: string[]): string =>\n [prefix, ...names].join(\"-\");\n\nconst withBaseName = makePrefixer(\"saltIcon\");\n\nexport interface IconProps extends SVGAttributes<SVGSVGElement> {\n /*\n * The color of the icon. Defaults to \"inherit\".\n */\n color?: \"inherit\" | \"primary\" | \"secondary\";\n /**\n * Multiplier for the base icon size. Should be a positive integer to conform to the rest of the design system.\n */\n size?: number;\n}\n\nexport const DEFAULT_ICON_SIZE = 1;\n\nexport const Icon = forwardRef<SVGSVGElement, IconProps>(function Icon(\n {\n children,\n className,\n color = \"inherit\",\n size = DEFAULT_ICON_SIZE,\n style: styleProp,\n ...rest\n },\n ref,\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-icon\",\n css: iconCss,\n window: targetWindow,\n });\n\n const style = {\n ...styleProp,\n \"--saltIcon-size-multiplier\": `${size}`,\n };\n\n return (\n <svg\n className={clsx(\n withBaseName(),\n { [withBaseName(color)]: color !== \"inherit\" },\n className,\n )}\n style={style}\n role=\"img\"\n {...rest}\n ref={ref}\n >\n <g aria-hidden>{children}</g>\n </svg>\n );\n});\n"],"names":["forwardRef","Icon","useWindow","useComponentCssInjection","iconCss","jsx","clsx"],"mappings":";;;;;;;;;AAQa,MAAA,YAAA,GACX,CAAC,MAAA,KACD,CAAI,GAAA,KAAA,KACF,CAAC,MAAA,EAAQ,GAAG,KAAK,CAAE,CAAA,IAAA,CAAK,GAAG;AAE/B,MAAM,YAAA,GAAe,aAAa,UAAU,CAAA;AAarC,MAAM,iBAAoB,GAAA;AAEpB,MAAA,IAAA,GAAOA,gBAAqC,CAAA,SAASC,KAChE,CAAA;AAAA,EACE,QAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAQ,GAAA,SAAA;AAAA,EACR,IAAO,GAAA,iBAAA;AAAA,EACP,KAAO,EAAA,SAAA;AAAA,EACP,GAAG;AACL,CAAA,EACA,GACA,EAAA;AACA,EAAA,MAAM,eAAeC,gBAAU,EAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,WAAA;AAAA,IACR,GAAK,EAAAC,MAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,MAAM,KAAQ,GAAA;AAAA,IACZ,GAAG,SAAA;AAAA,IACH,4BAAA,EAA8B,GAAG,IAAI,CAAA;AAAA,GACvC;AAEA,EACE,uBAAAC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAAC,SAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb,EAAE,CAAC,YAAA,CAAa,KAAK,CAAC,GAAG,UAAU,SAAU,EAAA;AAAA,QAC7C;AAAA,OACF;AAAA,MACA,KAAA;AAAA,MACA,IAAK,EAAA,KAAA;AAAA,MACJ,GAAG,IAAA;AAAA,MACJ,GAAA;AAAA,MAEA,QAAC,kBAAAD,cAAA,CAAA,GAAA,EAAA,EAAE,aAAW,EAAA,IAAA,EAAE,QAAS,EAAA;AAAA;AAAA,GAC3B;AAEJ,CAAC;;;;;;"}
1
+ {"version":3,"file":"Icon.js","sources":["../src/icon/Icon.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { type SVGAttributes, forwardRef } from \"react\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport iconCss from \"./Icon.css\";\n// Duplicate from core/util to avoid circular dependency\nexport const makePrefixer =\n (prefix: string): ((...names: string[]) => string) =>\n (...names: string[]): string =>\n [prefix, ...names].join(\"-\");\n\nconst withBaseName = makePrefixer(\"saltIcon\");\n\nexport interface IconProps extends SVGAttributes<SVGSVGElement> {\n /*\n * The color of the icon. Defaults to \"inherit\".\n */\n color?: \"inherit\" | \"primary\" | \"secondary\";\n /**\n * Multiplier for the base icon size. Should be a positive integer to conform to the rest of the design system.\n */\n size?: number;\n}\n\nexport const DEFAULT_ICON_SIZE = 1;\n\nexport const Icon = forwardRef<SVGSVGElement, IconProps>(function Icon(\n {\n \"aria-hidden\": ariaHidden,\n \"aria-label\": ariaLabel,\n children,\n className,\n color = \"inherit\",\n size = DEFAULT_ICON_SIZE,\n style: styleProp,\n ...rest\n },\n ref,\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-icon\",\n css: iconCss,\n window: targetWindow,\n });\n\n const style = {\n ...styleProp,\n \"--saltIcon-size-multiplier\": `${size}`,\n };\n\n return (\n <svg\n className={clsx(\n withBaseName(),\n { [withBaseName(color)]: color !== \"inherit\" },\n className,\n )}\n style={style}\n // Workaround to fix aria labels being announced even when aria-hidden is set to true on iOS.\n role={ariaHidden ? undefined : \"img\"}\n aria-label={ariaHidden ? undefined : ariaLabel}\n aria-hidden={ariaHidden}\n {...rest}\n ref={ref}\n >\n <g aria-hidden>{children}</g>\n </svg>\n );\n});\n"],"names":["forwardRef","Icon","useWindow","useComponentCssInjection","iconCss","jsx","clsx"],"mappings":";;;;;;;;;AAQa,MAAA,YAAA,GACX,CAAC,MAAA,KACD,CAAI,GAAA,KAAA,KACF,CAAC,MAAA,EAAQ,GAAG,KAAK,CAAE,CAAA,IAAA,CAAK,GAAG;AAE/B,MAAM,YAAA,GAAe,aAAa,UAAU,CAAA;AAarC,MAAM,iBAAoB,GAAA;AAEpB,MAAA,IAAA,GAAOA,gBAAqC,CAAA,SAASC,KAChE,CAAA;AAAA,EACE,aAAe,EAAA,UAAA;AAAA,EACf,YAAc,EAAA,SAAA;AAAA,EACd,QAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAQ,GAAA,SAAA;AAAA,EACR,IAAO,GAAA,iBAAA;AAAA,EACP,KAAO,EAAA,SAAA;AAAA,EACP,GAAG;AACL,CAAA,EACA,GACA,EAAA;AACA,EAAA,MAAM,eAAeC,gBAAU,EAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,WAAA;AAAA,IACR,GAAK,EAAAC,MAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,MAAM,KAAQ,GAAA;AAAA,IACZ,GAAG,SAAA;AAAA,IACH,4BAAA,EAA8B,GAAG,IAAI,CAAA;AAAA,GACvC;AAEA,EACE,uBAAAC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAAC,SAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb,EAAE,CAAC,YAAA,CAAa,KAAK,CAAC,GAAG,UAAU,SAAU,EAAA;AAAA,QAC7C;AAAA,OACF;AAAA,MACA,KAAA;AAAA,MAEA,IAAA,EAAM,aAAa,KAAY,CAAA,GAAA,KAAA;AAAA,MAC/B,YAAA,EAAY,aAAa,KAAY,CAAA,GAAA,SAAA;AAAA,MACrC,aAAa,EAAA,UAAA;AAAA,MACZ,GAAG,IAAA;AAAA,MACJ,GAAA;AAAA,MAEA,QAAC,kBAAAD,cAAA,CAAA,GAAA,EAAA,EAAE,aAAW,EAAA,IAAA,EAAE,QAAS,EAAA;AAAA;AAAA,GAC3B;AAEJ,CAAC;;;;;;"}
@@ -9,6 +9,8 @@ const makePrefixer = (prefix) => (...names) => [prefix, ...names].join("-");
9
9
  const withBaseName = makePrefixer("saltIcon");
10
10
  const DEFAULT_ICON_SIZE = 1;
11
11
  const Icon = forwardRef(function Icon2({
12
+ "aria-hidden": ariaHidden,
13
+ "aria-label": ariaLabel,
12
14
  children,
13
15
  className,
14
16
  color = "inherit",
@@ -35,7 +37,9 @@ const Icon = forwardRef(function Icon2({
35
37
  className
36
38
  ),
37
39
  style,
38
- role: "img",
40
+ role: ariaHidden ? void 0 : "img",
41
+ "aria-label": ariaHidden ? void 0 : ariaLabel,
42
+ "aria-hidden": ariaHidden,
39
43
  ...rest,
40
44
  ref,
41
45
  children: /* @__PURE__ */ jsx("g", { "aria-hidden": true, children })
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.js","sources":["../src/icon/Icon.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { type SVGAttributes, forwardRef } from \"react\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport iconCss from \"./Icon.css\";\n// Duplicate from core/util to avoid circular dependency\nexport const makePrefixer =\n (prefix: string): ((...names: string[]) => string) =>\n (...names: string[]): string =>\n [prefix, ...names].join(\"-\");\n\nconst withBaseName = makePrefixer(\"saltIcon\");\n\nexport interface IconProps extends SVGAttributes<SVGSVGElement> {\n /*\n * The color of the icon. Defaults to \"inherit\".\n */\n color?: \"inherit\" | \"primary\" | \"secondary\";\n /**\n * Multiplier for the base icon size. Should be a positive integer to conform to the rest of the design system.\n */\n size?: number;\n}\n\nexport const DEFAULT_ICON_SIZE = 1;\n\nexport const Icon = forwardRef<SVGSVGElement, IconProps>(function Icon(\n {\n children,\n className,\n color = \"inherit\",\n size = DEFAULT_ICON_SIZE,\n style: styleProp,\n ...rest\n },\n ref,\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-icon\",\n css: iconCss,\n window: targetWindow,\n });\n\n const style = {\n ...styleProp,\n \"--saltIcon-size-multiplier\": `${size}`,\n };\n\n return (\n <svg\n className={clsx(\n withBaseName(),\n { [withBaseName(color)]: color !== \"inherit\" },\n className,\n )}\n style={style}\n role=\"img\"\n {...rest}\n ref={ref}\n >\n <g aria-hidden>{children}</g>\n </svg>\n );\n});\n"],"names":["Icon","iconCss"],"mappings":";;;;;;;AAQa,MAAA,YAAA,GACX,CAAC,MAAA,KACD,CAAI,GAAA,KAAA,KACF,CAAC,MAAA,EAAQ,GAAG,KAAK,CAAE,CAAA,IAAA,CAAK,GAAG;AAE/B,MAAM,YAAA,GAAe,aAAa,UAAU,CAAA;AAarC,MAAM,iBAAoB,GAAA;AAEpB,MAAA,IAAA,GAAO,UAAqC,CAAA,SAASA,KAChE,CAAA;AAAA,EACE,QAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAQ,GAAA,SAAA;AAAA,EACR,IAAO,GAAA,iBAAA;AAAA,EACP,KAAO,EAAA,SAAA;AAAA,EACP,GAAG;AACL,CAAA,EACA,GACA,EAAA;AACA,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,WAAA;AAAA,IACR,GAAK,EAAAC,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,MAAM,KAAQ,GAAA;AAAA,IACZ,GAAG,SAAA;AAAA,IACH,4BAAA,EAA8B,GAAG,IAAI,CAAA;AAAA,GACvC;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAA,IAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb,EAAE,CAAC,YAAA,CAAa,KAAK,CAAC,GAAG,UAAU,SAAU,EAAA;AAAA,QAC7C;AAAA,OACF;AAAA,MACA,KAAA;AAAA,MACA,IAAK,EAAA,KAAA;AAAA,MACJ,GAAG,IAAA;AAAA,MACJ,GAAA;AAAA,MAEA,QAAC,kBAAA,GAAA,CAAA,GAAA,EAAA,EAAE,aAAW,EAAA,IAAA,EAAE,QAAS,EAAA;AAAA;AAAA,GAC3B;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"Icon.js","sources":["../src/icon/Icon.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { type SVGAttributes, forwardRef } from \"react\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport iconCss from \"./Icon.css\";\n// Duplicate from core/util to avoid circular dependency\nexport const makePrefixer =\n (prefix: string): ((...names: string[]) => string) =>\n (...names: string[]): string =>\n [prefix, ...names].join(\"-\");\n\nconst withBaseName = makePrefixer(\"saltIcon\");\n\nexport interface IconProps extends SVGAttributes<SVGSVGElement> {\n /*\n * The color of the icon. Defaults to \"inherit\".\n */\n color?: \"inherit\" | \"primary\" | \"secondary\";\n /**\n * Multiplier for the base icon size. Should be a positive integer to conform to the rest of the design system.\n */\n size?: number;\n}\n\nexport const DEFAULT_ICON_SIZE = 1;\n\nexport const Icon = forwardRef<SVGSVGElement, IconProps>(function Icon(\n {\n \"aria-hidden\": ariaHidden,\n \"aria-label\": ariaLabel,\n children,\n className,\n color = \"inherit\",\n size = DEFAULT_ICON_SIZE,\n style: styleProp,\n ...rest\n },\n ref,\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-icon\",\n css: iconCss,\n window: targetWindow,\n });\n\n const style = {\n ...styleProp,\n \"--saltIcon-size-multiplier\": `${size}`,\n };\n\n return (\n <svg\n className={clsx(\n withBaseName(),\n { [withBaseName(color)]: color !== \"inherit\" },\n className,\n )}\n style={style}\n // Workaround to fix aria labels being announced even when aria-hidden is set to true on iOS.\n role={ariaHidden ? undefined : \"img\"}\n aria-label={ariaHidden ? undefined : ariaLabel}\n aria-hidden={ariaHidden}\n {...rest}\n ref={ref}\n >\n <g aria-hidden>{children}</g>\n </svg>\n );\n});\n"],"names":["Icon","iconCss"],"mappings":";;;;;;;AAQa,MAAA,YAAA,GACX,CAAC,MAAA,KACD,CAAI,GAAA,KAAA,KACF,CAAC,MAAA,EAAQ,GAAG,KAAK,CAAE,CAAA,IAAA,CAAK,GAAG;AAE/B,MAAM,YAAA,GAAe,aAAa,UAAU,CAAA;AAarC,MAAM,iBAAoB,GAAA;AAEpB,MAAA,IAAA,GAAO,UAAqC,CAAA,SAASA,KAChE,CAAA;AAAA,EACE,aAAe,EAAA,UAAA;AAAA,EACf,YAAc,EAAA,SAAA;AAAA,EACd,QAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAQ,GAAA,SAAA;AAAA,EACR,IAAO,GAAA,iBAAA;AAAA,EACP,KAAO,EAAA,SAAA;AAAA,EACP,GAAG;AACL,CAAA,EACA,GACA,EAAA;AACA,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,WAAA;AAAA,IACR,GAAK,EAAAC,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,MAAM,KAAQ,GAAA;AAAA,IACZ,GAAG,SAAA;AAAA,IACH,4BAAA,EAA8B,GAAG,IAAI,CAAA;AAAA,GACvC;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAA,IAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb,EAAE,CAAC,YAAA,CAAa,KAAK,CAAC,GAAG,UAAU,SAAU,EAAA;AAAA,QAC7C;AAAA,OACF;AAAA,MACA,KAAA;AAAA,MAEA,IAAA,EAAM,aAAa,KAAY,CAAA,GAAA,KAAA;AAAA,MAC/B,YAAA,EAAY,aAAa,KAAY,CAAA,GAAA,SAAA;AAAA,MACrC,aAAa,EAAA,UAAA;AAAA,MACZ,GAAG,IAAA;AAAA,MACJ,GAAA;AAAA,MAEA,QAAC,kBAAA,GAAA,CAAA,GAAA,EAAA,EAAE,aAAW,EAAA,IAAA,EAAE,QAAS,EAAA;AAAA;AAAA,GAC3B;AAEJ,CAAC;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salt-ds/icons",
3
- "version": "1.13.0",
3
+ "version": "1.13.2",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -9,7 +9,6 @@
9
9
  },
10
10
  "bugs": "https://github.com/jpmorganchase/salt-ds/issues",
11
11
  "main": "dist-cjs/index.js",
12
- "sideEffects": false,
13
12
  "files": [
14
13
  "css",
15
14
  "saltIcons.css",
@@ -18,6 +17,9 @@
18
17
  "dist-types",
19
18
  "CHANGELOG.md"
20
19
  ],
20
+ "sideEffects": [
21
+ "*.css"
22
+ ],
21
23
  "scripts": {
22
24
  "build": "yarn clean && yarn build:icons && yarn node ../../scripts/build.mjs",
23
25
  "build:icons": "yarn node ./scripts/generateIcons.mjs '*.svg'",