@spectrum-web-components/icon 0.0.0-20241209155954

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 (133) hide show
  1. package/README.md +147 -0
  2. package/package.json +96 -0
  3. package/sp-icon.d.ts +6 -0
  4. package/sp-icon.dev.js +5 -0
  5. package/sp-icon.dev.js.map +7 -0
  6. package/sp-icon.js +2 -0
  7. package/sp-icon.js.map +7 -0
  8. package/src/Icon.d.ts +21 -0
  9. package/src/Icon.dev.js +121 -0
  10. package/src/Icon.dev.js.map +7 -0
  11. package/src/Icon.js +10 -0
  12. package/src/Icon.js.map +7 -0
  13. package/src/IconBase.d.ts +13 -0
  14. package/src/IconBase.dev.js +74 -0
  15. package/src/IconBase.dev.js.map +7 -0
  16. package/src/IconBase.js +4 -0
  17. package/src/IconBase.js.map +7 -0
  18. package/src/icon-arrow-overrides.css.d.ts +2 -0
  19. package/src/icon-arrow-overrides.css.dev.js +7 -0
  20. package/src/icon-arrow-overrides.css.dev.js.map +7 -0
  21. package/src/icon-arrow-overrides.css.js +4 -0
  22. package/src/icon-arrow-overrides.css.js.map +7 -0
  23. package/src/icon-asterisk-overrides.css.d.ts +2 -0
  24. package/src/icon-asterisk-overrides.css.dev.js +7 -0
  25. package/src/icon-asterisk-overrides.css.dev.js.map +7 -0
  26. package/src/icon-asterisk-overrides.css.js +4 -0
  27. package/src/icon-asterisk-overrides.css.js.map +7 -0
  28. package/src/icon-checkmark-overrides.css.d.ts +2 -0
  29. package/src/icon-checkmark-overrides.css.dev.js +7 -0
  30. package/src/icon-checkmark-overrides.css.dev.js.map +7 -0
  31. package/src/icon-checkmark-overrides.css.js +4 -0
  32. package/src/icon-checkmark-overrides.css.js.map +7 -0
  33. package/src/icon-chevron-overrides.css.d.ts +2 -0
  34. package/src/icon-chevron-overrides.css.dev.js +7 -0
  35. package/src/icon-chevron-overrides.css.dev.js.map +7 -0
  36. package/src/icon-chevron-overrides.css.js +4 -0
  37. package/src/icon-chevron-overrides.css.js.map +7 -0
  38. package/src/icon-corner-triangle-overrides.css.d.ts +2 -0
  39. package/src/icon-corner-triangle-overrides.css.dev.js +7 -0
  40. package/src/icon-corner-triangle-overrides.css.dev.js.map +7 -0
  41. package/src/icon-corner-triangle-overrides.css.js +4 -0
  42. package/src/icon-corner-triangle-overrides.css.js.map +7 -0
  43. package/src/icon-cross-overrides.css.d.ts +2 -0
  44. package/src/icon-cross-overrides.css.dev.js +7 -0
  45. package/src/icon-cross-overrides.css.dev.js.map +7 -0
  46. package/src/icon-cross-overrides.css.js +4 -0
  47. package/src/icon-cross-overrides.css.js.map +7 -0
  48. package/src/icon-dash-overrides.css.d.ts +2 -0
  49. package/src/icon-dash-overrides.css.dev.js +7 -0
  50. package/src/icon-dash-overrides.css.dev.js.map +7 -0
  51. package/src/icon-dash-overrides.css.js +4 -0
  52. package/src/icon-dash-overrides.css.js.map +7 -0
  53. package/src/icon-overrides.css.d.ts +2 -0
  54. package/src/icon-overrides.css.dev.js +7 -0
  55. package/src/icon-overrides.css.dev.js.map +7 -0
  56. package/src/icon-overrides.css.js +4 -0
  57. package/src/icon-overrides.css.js.map +7 -0
  58. package/src/icon-single-gripper-overrides.css.d.ts +2 -0
  59. package/src/icon-single-gripper-overrides.css.dev.js +7 -0
  60. package/src/icon-single-gripper-overrides.css.dev.js.map +7 -0
  61. package/src/icon-single-gripper-overrides.css.js +4 -0
  62. package/src/icon-single-gripper-overrides.css.js.map +7 -0
  63. package/src/icon-triple-gripper-overrides.css.d.ts +2 -0
  64. package/src/icon-triple-gripper-overrides.css.dev.js +7 -0
  65. package/src/icon-triple-gripper-overrides.css.dev.js.map +7 -0
  66. package/src/icon-triple-gripper-overrides.css.js +4 -0
  67. package/src/icon-triple-gripper-overrides.css.js.map +7 -0
  68. package/src/icon.css.d.ts +2 -0
  69. package/src/icon.css.dev.js +7 -0
  70. package/src/icon.css.dev.js.map +7 -0
  71. package/src/icon.css.js +4 -0
  72. package/src/icon.css.js.map +7 -0
  73. package/src/index.d.ts +2 -0
  74. package/src/index.dev.js +4 -0
  75. package/src/index.dev.js.map +7 -0
  76. package/src/index.js +2 -0
  77. package/src/index.js.map +7 -0
  78. package/src/spectrum-config.js +115 -0
  79. package/src/spectrum-icon-arrow.css.d.ts +2 -0
  80. package/src/spectrum-icon-arrow.css.dev.js +7 -0
  81. package/src/spectrum-icon-arrow.css.dev.js.map +7 -0
  82. package/src/spectrum-icon-arrow.css.js +4 -0
  83. package/src/spectrum-icon-arrow.css.js.map +7 -0
  84. package/src/spectrum-icon-asterisk.css.d.ts +2 -0
  85. package/src/spectrum-icon-asterisk.css.dev.js +7 -0
  86. package/src/spectrum-icon-asterisk.css.dev.js.map +7 -0
  87. package/src/spectrum-icon-asterisk.css.js +4 -0
  88. package/src/spectrum-icon-asterisk.css.js.map +7 -0
  89. package/src/spectrum-icon-checkmark.css.d.ts +2 -0
  90. package/src/spectrum-icon-checkmark.css.dev.js +7 -0
  91. package/src/spectrum-icon-checkmark.css.dev.js.map +7 -0
  92. package/src/spectrum-icon-checkmark.css.js +4 -0
  93. package/src/spectrum-icon-checkmark.css.js.map +7 -0
  94. package/src/spectrum-icon-chevron.css.d.ts +2 -0
  95. package/src/spectrum-icon-chevron.css.dev.js +7 -0
  96. package/src/spectrum-icon-chevron.css.dev.js.map +7 -0
  97. package/src/spectrum-icon-chevron.css.js +4 -0
  98. package/src/spectrum-icon-chevron.css.js.map +7 -0
  99. package/src/spectrum-icon-corner-triangle.css.d.ts +2 -0
  100. package/src/spectrum-icon-corner-triangle.css.dev.js +7 -0
  101. package/src/spectrum-icon-corner-triangle.css.dev.js.map +7 -0
  102. package/src/spectrum-icon-corner-triangle.css.js +4 -0
  103. package/src/spectrum-icon-corner-triangle.css.js.map +7 -0
  104. package/src/spectrum-icon-cross.css.d.ts +2 -0
  105. package/src/spectrum-icon-cross.css.dev.js +7 -0
  106. package/src/spectrum-icon-cross.css.dev.js.map +7 -0
  107. package/src/spectrum-icon-cross.css.js +4 -0
  108. package/src/spectrum-icon-cross.css.js.map +7 -0
  109. package/src/spectrum-icon-dash.css.d.ts +2 -0
  110. package/src/spectrum-icon-dash.css.dev.js +7 -0
  111. package/src/spectrum-icon-dash.css.dev.js.map +7 -0
  112. package/src/spectrum-icon-dash.css.js +4 -0
  113. package/src/spectrum-icon-dash.css.js.map +7 -0
  114. package/src/spectrum-icon-double-gripper.css.d.ts +2 -0
  115. package/src/spectrum-icon-double-gripper.css.dev.js +7 -0
  116. package/src/spectrum-icon-double-gripper.css.dev.js.map +7 -0
  117. package/src/spectrum-icon-double-gripper.css.js +4 -0
  118. package/src/spectrum-icon-double-gripper.css.js.map +7 -0
  119. package/src/spectrum-icon-single-gripper.css.d.ts +2 -0
  120. package/src/spectrum-icon-single-gripper.css.dev.js +7 -0
  121. package/src/spectrum-icon-single-gripper.css.dev.js.map +7 -0
  122. package/src/spectrum-icon-single-gripper.css.js +4 -0
  123. package/src/spectrum-icon-single-gripper.css.js.map +7 -0
  124. package/src/spectrum-icon-triple-gripper.css.d.ts +2 -0
  125. package/src/spectrum-icon-triple-gripper.css.dev.js +7 -0
  126. package/src/spectrum-icon-triple-gripper.css.dev.js.map +7 -0
  127. package/src/spectrum-icon-triple-gripper.css.js +4 -0
  128. package/src/spectrum-icon-triple-gripper.css.js.map +7 -0
  129. package/src/spectrum-icon.css.d.ts +2 -0
  130. package/src/spectrum-icon.css.dev.js +7 -0
  131. package/src/spectrum-icon.css.dev.js.map +7 -0
  132. package/src/spectrum-icon.css.js +4 -0
  133. package/src/spectrum-icon.css.js.map +7 -0
package/README.md ADDED
@@ -0,0 +1,147 @@
1
+ ## Description
2
+
3
+ `<sp-icon>` renders an icon to the page. By default the `name` attribute will pair with separately registered icon sets to deliver the icons. When not present, `<sp-icon>` will subsequently check for its `src` attribute which could populate the icon via an image, and then fallback to any slotted content for an element based icon.
4
+
5
+ ### Usage
6
+
7
+ [![See it on NPM!](https://img.shields.io/npm/v/@spectrum-web-components/icon?style=for-the-badge)](https://www.npmjs.com/package/@spectrum-web-components/icon)
8
+ [![How big is this package in your project?](https://img.shields.io/bundlephobia/minzip/@spectrum-web-components/icon?style=for-the-badge)](https://bundlephobia.com/result?p=@spectrum-web-components/icon)
9
+
10
+ ```
11
+ yarn add @spectrum-web-components/icon
12
+ ```
13
+
14
+ Import the side effectful registration of `<sp-icon>` via:
15
+
16
+ ```
17
+ import '@spectrum-web-components/icon/sp-icon.js';
18
+ ```
19
+
20
+ When looking to leverage the `Icon` base class as a type and/or for extension purposes, do so via:
21
+
22
+ ```
23
+ import { Icon } from '@spectrum-web-components/icon';
24
+ ```
25
+
26
+ ## Example
27
+
28
+ Names icons on this page are provided by the [`<sp-icons-medium>` icon set](components/icons). Learn how to create your own via [`sp-iconset`](components/iconset).
29
+
30
+ ```html
31
+ <sp-icons-medium></sp-icons-medium>
32
+ <sp-icon name="ui:Arrow100"></sp-icon>
33
+ ```
34
+
35
+ ## Variants
36
+
37
+ Icons are available in various sizes in Spectrum ranging from `s` to `xxl`. By default an `sp-icon` without a `size` attribute will appear as if it were `size="m"`. We can specify the size via `size` attribute.
38
+
39
+ ### Size variants
40
+
41
+ ```html
42
+ <sp-icon size="s" name="ui:Arrow100"></sp-icon>
43
+ <sp-icon size="m" name="ui:Arrow100"></sp-icon>
44
+ <sp-icon size="l" name="ui:Arrow100"></sp-icon>
45
+ <sp-icon size="xl" name="ui:Arrow100"></sp-icon>
46
+ <sp-icon size="xxl" name="ui:Arrow100"></sp-icon>
47
+ ```
48
+
49
+ ## Color icon
50
+
51
+ Icons apply their color as `currentColor` so change the `color` property of the element for customization.
52
+
53
+ ```html
54
+ <sp-icon name="ui:Arrow100" style="color: red;"></sp-icon>
55
+ ```
56
+
57
+ ## Image icon
58
+
59
+ An image icon can be supplied via the `src` attribute. Remember that you cannot style the contents of an image via CSS, so use graphics that are appropriately prepared for including in your applications design requirements.
60
+
61
+ ```html
62
+ <sp-icon
63
+ size="s"
64
+ label="Previous"
65
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0yOTU3Ljk5NSAtNTUzMC4wMzIgNiAxMCI+PGRlZnM+PHN0eWxlPi5he2ZpbGw6bm9uZTtzdHJva2U6IzE0NzNlNjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjJweDt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImEiIGQ9Ik0yNTEuMywzMzNsNC00LTQtNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI3MDEuNjk1IC01MTk2LjAzMikgcm90YXRlKDE4MCkiLz48L3N2Zz4="
66
+ ></sp-icon>
67
+ <sp-icon
68
+ size="m"
69
+ label="Previous"
70
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0yOTU3Ljk5NSAtNTUzMC4wMzIgNiAxMCI+PGRlZnM+PHN0eWxlPi5he2ZpbGw6bm9uZTtzdHJva2U6IzE0NzNlNjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjJweDt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImEiIGQ9Ik0yNTEuMywzMzNsNC00LTQtNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI3MDEuNjk1IC01MTk2LjAzMikgcm90YXRlKDE4MCkiLz48L3N2Zz4="
71
+ ></sp-icon>
72
+ <sp-icon
73
+ size="l"
74
+ label="Previous"
75
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0yOTU3Ljk5NSAtNTUzMC4wMzIgNiAxMCI+PGRlZnM+PHN0eWxlPi5he2ZpbGw6bm9uZTtzdHJva2U6IzE0NzNlNjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjJweDt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImEiIGQ9Ik0yNTEuMywzMzNsNC00LTQtNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI3MDEuNjk1IC01MTk2LjAzMikgcm90YXRlKDE4MCkiLz48L3N2Zz4="
76
+ ></sp-icon>
77
+ <sp-icon
78
+ size="xl"
79
+ label="Previous"
80
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0yOTU3Ljk5NSAtNTUzMC4wMzIgNiAxMCI+PGRlZnM+PHN0eWxlPi5he2ZpbGw6bm9uZTtzdHJva2U6IzE0NzNlNjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjJweDt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImEiIGQ9Ik0yNTEuMywzMzNsNC00LTQtNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI3MDEuNjk1IC01MTk2LjAzMikgcm90YXRlKDE4MCkiLz48L3N2Zz4="
81
+ ></sp-icon>
82
+ <sp-icon
83
+ size="xxl"
84
+ label="Previous"
85
+ src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0yOTU3Ljk5NSAtNTUzMC4wMzIgNiAxMCI+PGRlZnM+PHN0eWxlPi5he2ZpbGw6bm9uZTtzdHJva2U6IzE0NzNlNjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7c3Ryb2tlLXdpZHRoOjJweDt9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImEiIGQ9Ik0yNTEuMywzMzNsNC00LTQtNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI3MDEuNjk1IC01MTk2LjAzMikgcm90YXRlKDE4MCkiLz48L3N2Zz4="
86
+ ></sp-icon>
87
+ ```
88
+
89
+ ## Element icon
90
+
91
+ Icons can also be supplied as HTML elements to be applied via the default `<slot>`.
92
+
93
+ ```html
94
+ <sp-icon size="s">
95
+ <svg
96
+ xmlns="http://www.w3.org/2000/svg"
97
+ viewBox="0 0 22 22"
98
+ role="img"
99
+ fill="currentColor"
100
+ height="18"
101
+ width="18"
102
+ aria-hidden="true"
103
+ >
104
+ <path
105
+ d="M19.75,10.04h-15l5.97-5.97a.483.483,0,0,0,0-.7l-.35-.36a.513.513,0,0,0-.71,0L2.24,10.44a.513.513,0,0,0,0,.71l7.39,7.84a.513.513,0,0,0,.71,0l.35-.35a.513.513,0,0,0,0-.71L4.76,11.5H19.75a.25.25,0,0,0,.25-.25v-.96A.25.25,0,0,0,19.75,10.04Z"
106
+ ></path>
107
+ </svg>
108
+ </sp-icon>
109
+ <sp-icon>
110
+ <svg
111
+ xmlns="http://www.w3.org/2000/svg"
112
+ viewBox="0 0 22 22"
113
+ role="img"
114
+ fill="currentColor"
115
+ height="18"
116
+ width="18"
117
+ aria-hidden="true"
118
+ >
119
+ <path
120
+ d="M19.75,10.04h-15l5.97-5.97a.483.483,0,0,0,0-.7l-.35-.36a.513.513,0,0,0-.71,0L2.24,10.44a.513.513,0,0,0,0,.71l7.39,7.84a.513.513,0,0,0,.71,0l.35-.35a.513.513,0,0,0,0-.71L4.76,11.5H19.75a.25.25,0,0,0,.25-.25v-.96A.25.25,0,0,0,19.75,10.04Z"
121
+ ></path>
122
+ </svg>
123
+ </sp-icon>
124
+ <sp-icon size="xxl">
125
+ <svg
126
+ xmlns="http://www.w3.org/2000/svg"
127
+ viewBox="0 0 22 22"
128
+ role="img"
129
+ fill="currentColor"
130
+ height="18"
131
+ width="18"
132
+ aria-hidden="true"
133
+ >
134
+ <path
135
+ d="M19.75,10.04h-15l5.97-5.97a.483.483,0,0,0,0-.7l-.35-.36a.513.513,0,0,0-.71,0L2.24,10.44a.513.513,0,0,0,0,.71l7.39,7.84a.513.513,0,0,0,.71,0l.35-.35a.513.513,0,0,0,0-.71L4.76,11.5H19.75a.25.25,0,0,0,.25-.25v-.96A.25.25,0,0,0,19.75,10.04Z"
136
+ ></path>
137
+ </svg>
138
+ </sp-icon>
139
+ ```
140
+
141
+ ## Accessibility
142
+
143
+ `aria-hidden` is set to true by default for Icons. The `label` attribute suppresses this and adds the label text as the aria-label of the icon.
144
+
145
+ ```html
146
+ <sp-icon name="ui:Arrow100" label="Arrow pointing to the right"></sp-icon>
147
+ ```
package/package.json ADDED
@@ -0,0 +1,96 @@
1
+ {
2
+ "name": "@spectrum-web-components/icon",
3
+ "version": "0.0.0-20241209155954",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "description": "",
8
+ "license": "Apache-2.0",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/adobe/spectrum-web-components.git",
12
+ "directory": "packages/icon"
13
+ },
14
+ "author": "",
15
+ "homepage": "https://opensource.adobe.com/spectrum-web-components/components/icon",
16
+ "bugs": {
17
+ "url": "https://github.com/adobe/spectrum-web-components/issues"
18
+ },
19
+ "main": "./src/index.js",
20
+ "module": "./src/index.js",
21
+ "type": "module",
22
+ "exports": {
23
+ ".": {
24
+ "development": "./src/index.dev.js",
25
+ "default": "./src/index.js"
26
+ },
27
+ "./package.json": "./package.json",
28
+ "./src/Icon.js": {
29
+ "development": "./src/Icon.dev.js",
30
+ "default": "./src/Icon.js"
31
+ },
32
+ "./src/IconBase.js": {
33
+ "development": "./src/IconBase.dev.js",
34
+ "default": "./src/IconBase.js"
35
+ },
36
+ "./src/icon-arrow-overrides.css.js": "./src/icon-arrow-overrides.css.js",
37
+ "./src/icon-asterisk-overrides.css.js": "./src/icon-asterisk-overrides.css.js",
38
+ "./src/icon-checkmark-overrides.css.js": "./src/icon-checkmark-overrides.css.js",
39
+ "./src/icon-chevron-overrides.css.js": "./src/icon-chevron-overrides.css.js",
40
+ "./src/icon-corner-triangle-overrides.css.js": "./src/icon-corner-triangle-overrides.css.js",
41
+ "./src/icon-cross-overrides.css.js": "./src/icon-cross-overrides.css.js",
42
+ "./src/icon-dash-overrides.css.js": "./src/icon-dash-overrides.css.js",
43
+ "./src/icon-overrides.css.js": "./src/icon-overrides.css.js",
44
+ "./src/icon-single-gripper-overrides.css.js": "./src/icon-single-gripper-overrides.css.js",
45
+ "./src/icon-triple-gripper-overrides.css.js": "./src/icon-triple-gripper-overrides.css.js",
46
+ "./src/icon.css.js": "./src/icon.css.js",
47
+ "./src/index.js": {
48
+ "development": "./src/index.dev.js",
49
+ "default": "./src/index.js"
50
+ },
51
+ "./src/spectrum-icon-arrow.css.js": "./src/spectrum-icon-arrow.css.js",
52
+ "./src/spectrum-icon-asterisk.css.js": "./src/spectrum-icon-asterisk.css.js",
53
+ "./src/spectrum-icon-checkmark.css.js": "./src/spectrum-icon-checkmark.css.js",
54
+ "./src/spectrum-icon-chevron.css.js": "./src/spectrum-icon-chevron.css.js",
55
+ "./src/spectrum-icon-corner-triangle.css.js": "./src/spectrum-icon-corner-triangle.css.js",
56
+ "./src/spectrum-icon-cross.css.js": "./src/spectrum-icon-cross.css.js",
57
+ "./src/spectrum-icon-dash.css.js": "./src/spectrum-icon-dash.css.js",
58
+ "./src/spectrum-icon-double-gripper.css.js": "./src/spectrum-icon-double-gripper.css.js",
59
+ "./src/spectrum-icon-single-gripper.css.js": "./src/spectrum-icon-single-gripper.css.js",
60
+ "./src/spectrum-icon-triple-gripper.css.js": "./src/spectrum-icon-triple-gripper.css.js",
61
+ "./sp-icon.js": {
62
+ "development": "./sp-icon.dev.js",
63
+ "default": "./sp-icon.js"
64
+ }
65
+ },
66
+ "scripts": {
67
+ "test": "echo \"Error: run tests from mono-repo root.\" && exit 1"
68
+ },
69
+ "files": [
70
+ "**/*.d.ts",
71
+ "**/*.js",
72
+ "**/*.js.map",
73
+ "custom-elements.json",
74
+ "!stories/",
75
+ "!test/"
76
+ ],
77
+ "keywords": [
78
+ "spectrum css",
79
+ "web components",
80
+ "lit-element",
81
+ "lit-html"
82
+ ],
83
+ "dependencies": {
84
+ "@spectrum-web-components/base": "0.0.0-20241209155954",
85
+ "@spectrum-web-components/iconset": "0.0.0-20241209155954"
86
+ },
87
+ "devDependencies": {
88
+ "@spectrum-css/icon": "^8.0.0-s2-foundations.17"
89
+ },
90
+ "types": "./src/index.d.ts",
91
+ "customElements": "custom-elements.json",
92
+ "sideEffects": [
93
+ "./sp-*.js",
94
+ "./**/*.dev.js"
95
+ ]
96
+ }
package/sp-icon.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { Icon } from './src/Icon.js';
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'sp-icon': Icon;
5
+ }
6
+ }
package/sp-icon.dev.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ import { Icon } from "./src/Icon.dev.js";
3
+ import { defineElement } from "@spectrum-web-components/base/src/define-element.js";
4
+ defineElement("sp-icon", Icon);
5
+ //# sourceMappingURL=sp-icon.dev.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["sp-icon.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport { Icon } from './src/Icon.dev.js'\nimport { defineElement } from '@spectrum-web-components/base/src/define-element.js';\n\ndefineElement('sp-icon', Icon);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-icon': Icon;\n }\n}\n"],
5
+ "mappings": ";AAWA,SAAS,YAAY;AACrB,SAAS,qBAAqB;AAE9B,cAAc,WAAW,IAAI;",
6
+ "names": []
7
+ }
package/sp-icon.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";import{Icon as e}from"./src/Icon.js";import{defineElement as o}from"@spectrum-web-components/base/src/define-element.js";o("sp-icon",e);
2
+ //# sourceMappingURL=sp-icon.js.map
package/sp-icon.js.map ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["sp-icon.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport { Icon } from './src/Icon.js';\nimport { defineElement } from '@spectrum-web-components/base/src/define-element.js';\n\ndefineElement('sp-icon', Icon);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'sp-icon': Icon;\n }\n}\n"],
5
+ "mappings": "aAWA,OAAS,QAAAA,MAAY,gBACrB,OAAS,iBAAAC,MAAqB,sDAE9BA,EAAc,UAAWD,CAAI",
6
+ "names": ["Icon", "defineElement"]
7
+ }
package/src/Icon.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ import { TemplateResult } from '@spectrum-web-components/base';
2
+ import { IconBase } from './IconBase.js';
3
+ /**
4
+ * @element sp-icon
5
+ */
6
+ export declare class Icon extends IconBase {
7
+ src?: string;
8
+ name?: string;
9
+ private iconContainer?;
10
+ private updateIconPromise?;
11
+ connectedCallback(): void;
12
+ disconnectedCallback(): void;
13
+ firstUpdated(): void;
14
+ attributeChangedCallback(name: string, old: string, value: string): void;
15
+ private iconsetListener;
16
+ private announceIconImageSrcError;
17
+ protected render(): TemplateResult;
18
+ private updateIcon;
19
+ private parseIcon;
20
+ protected getUpdateComplete(): Promise<boolean>;
21
+ }
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __decorateClass = (decorators, target, key, kind) => {
5
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
6
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
7
+ if (decorator = decorators[i])
8
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
9
+ if (kind && result) __defProp(target, key, result);
10
+ return result;
11
+ };
12
+ import { html } from "@spectrum-web-components/base";
13
+ import {
14
+ property,
15
+ query
16
+ } from "@spectrum-web-components/base/src/decorators.js";
17
+ import { ifDefined } from "@spectrum-web-components/base/src/directives.js";
18
+ import { IconsetRegistry } from "@spectrum-web-components/iconset/src/iconset-registry.js";
19
+ import { IconBase } from "./IconBase.dev.js";
20
+ export class Icon extends IconBase {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.iconsetListener = (event) => {
24
+ if (!this.name) {
25
+ return;
26
+ }
27
+ const icon = this.parseIcon(this.name);
28
+ if (event.detail.name === icon.iconset) {
29
+ this.updateIconPromise = this.updateIcon();
30
+ }
31
+ };
32
+ }
33
+ connectedCallback() {
34
+ super.connectedCallback();
35
+ window.addEventListener("sp-iconset-added", this.iconsetListener);
36
+ }
37
+ disconnectedCallback() {
38
+ super.disconnectedCallback();
39
+ window.removeEventListener("sp-iconset-added", this.iconsetListener);
40
+ }
41
+ firstUpdated() {
42
+ this.updateIconPromise = this.updateIcon();
43
+ }
44
+ attributeChangedCallback(name, old, value) {
45
+ super.attributeChangedCallback(name, old, value);
46
+ this.updateIconPromise = this.updateIcon();
47
+ }
48
+ announceIconImageSrcError() {
49
+ this.dispatchEvent(
50
+ new Event("error", {
51
+ cancelable: false,
52
+ bubbles: false,
53
+ composed: false
54
+ })
55
+ );
56
+ }
57
+ render() {
58
+ if (this.name) {
59
+ return html`
60
+ <div id="container"></div>
61
+ `;
62
+ } else if (this.src) {
63
+ return html`
64
+ <img
65
+ src="${this.src}"
66
+ alt=${ifDefined(this.label)}
67
+ @error=${this.announceIconImageSrcError}
68
+ />
69
+ `;
70
+ }
71
+ return super.render();
72
+ }
73
+ async updateIcon() {
74
+ if (this.updateIconPromise) {
75
+ await this.updateIconPromise;
76
+ }
77
+ if (!this.name) {
78
+ return Promise.resolve();
79
+ }
80
+ const icon = this.parseIcon(this.name);
81
+ const iconset = IconsetRegistry.getInstance().getIconset(icon.iconset);
82
+ if (!iconset) {
83
+ return Promise.resolve();
84
+ }
85
+ if (!this.iconContainer) {
86
+ return Promise.resolve();
87
+ }
88
+ this.iconContainer.innerHTML = "";
89
+ return iconset.applyIconToElement(
90
+ this.iconContainer,
91
+ icon.icon,
92
+ this.size || "",
93
+ this.label ? this.label : ""
94
+ );
95
+ }
96
+ parseIcon(icon) {
97
+ const iconParts = icon.split(":");
98
+ let iconsetName = "default";
99
+ let iconName = icon;
100
+ if (iconParts.length > 1) {
101
+ iconsetName = iconParts[0];
102
+ iconName = iconParts[1];
103
+ }
104
+ return { iconset: iconsetName, icon: iconName };
105
+ }
106
+ async getUpdateComplete() {
107
+ const complete = await super.getUpdateComplete();
108
+ await this.updateIconPromise;
109
+ return complete;
110
+ }
111
+ }
112
+ __decorateClass([
113
+ property()
114
+ ], Icon.prototype, "src", 2);
115
+ __decorateClass([
116
+ property()
117
+ ], Icon.prototype, "name", 2);
118
+ __decorateClass([
119
+ query("#container")
120
+ ], Icon.prototype, "iconContainer", 2);
121
+ //# sourceMappingURL=Icon.dev.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["Icon.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { html, TemplateResult } from '@spectrum-web-components/base';\nimport {\n property,\n query,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\n\nimport { IconsetRegistry } from '@spectrum-web-components/iconset/src/iconset-registry.js';\n\nimport { IconBase } from './IconBase.dev.js'\n\n/**\n * @element sp-icon\n */\nexport class Icon extends IconBase {\n @property()\n public src?: string;\n\n @property()\n public name?: string;\n\n @query('#container')\n private iconContainer?: HTMLElement;\n\n private updateIconPromise?: Promise<void>;\n\n public override connectedCallback(): void {\n super.connectedCallback();\n window.addEventListener('sp-iconset-added', this.iconsetListener);\n }\n\n public override disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener('sp-iconset-added', this.iconsetListener);\n }\n\n public override firstUpdated(): void {\n this.updateIconPromise = this.updateIcon();\n }\n\n public override attributeChangedCallback(\n name: string,\n old: string,\n value: string\n ): void {\n super.attributeChangedCallback(name, old, value);\n this.updateIconPromise = this.updateIcon(); // any of our attributes change, update our icon\n }\n\n private iconsetListener = (event: CustomEvent): void => {\n if (!this.name) {\n return;\n }\n // parse the icon name to get iconset name\n const icon = this.parseIcon(this.name);\n if (event.detail.name === icon.iconset) {\n this.updateIconPromise = this.updateIcon();\n }\n };\n\n private announceIconImageSrcError(): void {\n this.dispatchEvent(\n new Event('error', {\n cancelable: false,\n bubbles: false,\n composed: false,\n })\n );\n }\n\n protected override render(): TemplateResult {\n if (this.name) {\n return html`\n <div id=\"container\"></div>\n `;\n } else if (this.src) {\n return html`\n <img\n src=\"${this.src}\"\n alt=${ifDefined(this.label)}\n @error=${this.announceIconImageSrcError}\n />\n `;\n }\n return super.render();\n }\n\n private async updateIcon(): Promise<void> {\n if (this.updateIconPromise) {\n await this.updateIconPromise;\n }\n if (!this.name) {\n return Promise.resolve();\n }\n // parse the icon name to get iconset name\n const icon = this.parseIcon(this.name);\n // try to retrieve the iconset\n const iconset = IconsetRegistry.getInstance().getIconset(icon.iconset);\n if (!iconset) {\n // we can stop here as there's nothing to be done till we get the iconset\n return Promise.resolve();\n }\n if (!this.iconContainer) {\n return Promise.resolve();\n }\n this.iconContainer.innerHTML = '';\n return iconset.applyIconToElement(\n this.iconContainer,\n icon.icon,\n this.size || '',\n this.label ? this.label : ''\n );\n }\n\n private parseIcon(icon: string): { iconset: string; icon: string } {\n const iconParts = icon.split(':');\n let iconsetName = 'default';\n let iconName = icon;\n if (iconParts.length > 1) {\n iconsetName = iconParts[0];\n iconName = iconParts[1];\n }\n return { iconset: iconsetName, icon: iconName };\n }\n\n protected override async getUpdateComplete(): Promise<boolean> {\n const complete = (await super.getUpdateComplete()) as boolean;\n await this.updateIconPromise;\n return complete;\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;AAYA,SAAS,YAA4B;AACrC;AAAA,EACI;AAAA,EACA;AAAA,OACG;AACP,SAAS,iBAAiB;AAE1B,SAAS,uBAAuB;AAEhC,SAAS,gBAAgB;AAKlB,aAAM,aAAa,SAAS;AAAA,EAA5B;AAAA;AAmCH,SAAQ,kBAAkB,CAAC,UAA6B;AACpD,UAAI,CAAC,KAAK,MAAM;AACZ;AAAA,MACJ;AAEA,YAAM,OAAO,KAAK,UAAU,KAAK,IAAI;AACrC,UAAI,MAAM,OAAO,SAAS,KAAK,SAAS;AACpC,aAAK,oBAAoB,KAAK,WAAW;AAAA,MAC7C;AAAA,IACJ;AAAA;AAAA,EAhCgB,oBAA0B;AACtC,UAAM,kBAAkB;AACxB,WAAO,iBAAiB,oBAAoB,KAAK,eAAe;AAAA,EACpE;AAAA,EAEgB,uBAA6B;AACzC,UAAM,qBAAqB;AAC3B,WAAO,oBAAoB,oBAAoB,KAAK,eAAe;AAAA,EACvE;AAAA,EAEgB,eAAqB;AACjC,SAAK,oBAAoB,KAAK,WAAW;AAAA,EAC7C;AAAA,EAEgB,yBACZ,MACA,KACA,OACI;AACJ,UAAM,yBAAyB,MAAM,KAAK,KAAK;AAC/C,SAAK,oBAAoB,KAAK,WAAW;AAAA,EAC7C;AAAA,EAaQ,4BAAkC;AACtC,SAAK;AAAA,MACD,IAAI,MAAM,SAAS;AAAA,QACf,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,UAAU;AAAA,MACd,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAEmB,SAAyB;AACxC,QAAI,KAAK,MAAM;AACX,aAAO;AAAA;AAAA;AAAA,IAGX,WAAW,KAAK,KAAK;AACjB,aAAO;AAAA;AAAA,2BAEQ,KAAK,GAAG;AAAA,0BACT,UAAU,KAAK,KAAK,CAAC;AAAA,6BAClB,KAAK,yBAAyB;AAAA;AAAA;AAAA,IAGnD;AACA,WAAO,MAAM,OAAO;AAAA,EACxB;AAAA,EAEA,MAAc,aAA4B;AACtC,QAAI,KAAK,mBAAmB;AACxB,YAAM,KAAK;AAAA,IACf;AACA,QAAI,CAAC,KAAK,MAAM;AACZ,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAEA,UAAM,OAAO,KAAK,UAAU,KAAK,IAAI;AAErC,UAAM,UAAU,gBAAgB,YAAY,EAAE,WAAW,KAAK,OAAO;AACrE,QAAI,CAAC,SAAS;AAEV,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AACA,QAAI,CAAC,KAAK,eAAe;AACrB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AACA,SAAK,cAAc,YAAY;AAC/B,WAAO,QAAQ;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ,KAAK,QAAQ;AAAA,IAC9B;AAAA,EACJ;AAAA,EAEQ,UAAU,MAAiD;AAC/D,UAAM,YAAY,KAAK,MAAM,GAAG;AAChC,QAAI,cAAc;AAClB,QAAI,WAAW;AACf,QAAI,UAAU,SAAS,GAAG;AACtB,oBAAc,UAAU,CAAC;AACzB,iBAAW,UAAU,CAAC;AAAA,IAC1B;AACA,WAAO,EAAE,SAAS,aAAa,MAAM,SAAS;AAAA,EAClD;AAAA,EAEA,MAAyB,oBAAsC;AAC3D,UAAM,WAAY,MAAM,MAAM,kBAAkB;AAChD,UAAM,KAAK;AACX,WAAO;AAAA,EACX;AACJ;AAlHW;AAAA,EADN,SAAS;AAAA,GADD,KAEF;AAGA;AAAA,EADN,SAAS;AAAA,GAJD,KAKF;AAGC;AAAA,EADP,MAAM,YAAY;AAAA,GAPV,KAQD;",
6
+ "names": []
7
+ }
package/src/Icon.js ADDED
@@ -0,0 +1,10 @@
1
+ "use strict";var p=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var o=(s,r,e,t)=>{for(var i=t>1?void 0:t?l(r,e):r,n=s.length-1,a;n>=0;n--)(a=s[n])&&(i=(t?a(r,e,i):a(i))||i);return t&&i&&p(r,e,i),i};import{html as c}from"@spectrum-web-components/base";import{property as d,query as m}from"@spectrum-web-components/base/src/decorators.js";import{ifDefined as u}from"@spectrum-web-components/base/src/directives.js";import{IconsetRegistry as h}from"@spectrum-web-components/iconset/src/iconset-registry.js";import{IconBase as v}from"./IconBase.js";export class Icon extends v{constructor(){super(...arguments);this.iconsetListener=e=>{if(!this.name)return;const t=this.parseIcon(this.name);e.detail.name===t.iconset&&(this.updateIconPromise=this.updateIcon())}}connectedCallback(){super.connectedCallback(),window.addEventListener("sp-iconset-added",this.iconsetListener)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("sp-iconset-added",this.iconsetListener)}firstUpdated(){this.updateIconPromise=this.updateIcon()}attributeChangedCallback(e,t,i){super.attributeChangedCallback(e,t,i),this.updateIconPromise=this.updateIcon()}announceIconImageSrcError(){this.dispatchEvent(new Event("error",{cancelable:!1,bubbles:!1,composed:!1}))}render(){return this.name?c`
2
+ <div id="container"></div>
3
+ `:this.src?c`
4
+ <img
5
+ src="${this.src}"
6
+ alt=${u(this.label)}
7
+ @error=${this.announceIconImageSrcError}
8
+ />
9
+ `:super.render()}async updateIcon(){if(this.updateIconPromise&&await this.updateIconPromise,!this.name)return Promise.resolve();const e=this.parseIcon(this.name),t=h.getInstance().getIconset(e.iconset);return!t||!this.iconContainer?Promise.resolve():(this.iconContainer.innerHTML="",t.applyIconToElement(this.iconContainer,e.icon,this.size||"",this.label?this.label:""))}parseIcon(e){const t=e.split(":");let i="default",n=e;return t.length>1&&(i=t[0],n=t[1]),{iconset:i,icon:n}}async getUpdateComplete(){const e=await super.getUpdateComplete();return await this.updateIconPromise,e}}o([d()],Icon.prototype,"src",2),o([d()],Icon.prototype,"name",2),o([m("#container")],Icon.prototype,"iconContainer",2);
10
+ //# sourceMappingURL=Icon.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["Icon.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { html, TemplateResult } from '@spectrum-web-components/base';\nimport {\n property,\n query,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { ifDefined } from '@spectrum-web-components/base/src/directives.js';\n\nimport { IconsetRegistry } from '@spectrum-web-components/iconset/src/iconset-registry.js';\n\nimport { IconBase } from './IconBase.js';\n\n/**\n * @element sp-icon\n */\nexport class Icon extends IconBase {\n @property()\n public src?: string;\n\n @property()\n public name?: string;\n\n @query('#container')\n private iconContainer?: HTMLElement;\n\n private updateIconPromise?: Promise<void>;\n\n public override connectedCallback(): void {\n super.connectedCallback();\n window.addEventListener('sp-iconset-added', this.iconsetListener);\n }\n\n public override disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener('sp-iconset-added', this.iconsetListener);\n }\n\n public override firstUpdated(): void {\n this.updateIconPromise = this.updateIcon();\n }\n\n public override attributeChangedCallback(\n name: string,\n old: string,\n value: string\n ): void {\n super.attributeChangedCallback(name, old, value);\n this.updateIconPromise = this.updateIcon(); // any of our attributes change, update our icon\n }\n\n private iconsetListener = (event: CustomEvent): void => {\n if (!this.name) {\n return;\n }\n // parse the icon name to get iconset name\n const icon = this.parseIcon(this.name);\n if (event.detail.name === icon.iconset) {\n this.updateIconPromise = this.updateIcon();\n }\n };\n\n private announceIconImageSrcError(): void {\n this.dispatchEvent(\n new Event('error', {\n cancelable: false,\n bubbles: false,\n composed: false,\n })\n );\n }\n\n protected override render(): TemplateResult {\n if (this.name) {\n return html`\n <div id=\"container\"></div>\n `;\n } else if (this.src) {\n return html`\n <img\n src=\"${this.src}\"\n alt=${ifDefined(this.label)}\n @error=${this.announceIconImageSrcError}\n />\n `;\n }\n return super.render();\n }\n\n private async updateIcon(): Promise<void> {\n if (this.updateIconPromise) {\n await this.updateIconPromise;\n }\n if (!this.name) {\n return Promise.resolve();\n }\n // parse the icon name to get iconset name\n const icon = this.parseIcon(this.name);\n // try to retrieve the iconset\n const iconset = IconsetRegistry.getInstance().getIconset(icon.iconset);\n if (!iconset) {\n // we can stop here as there's nothing to be done till we get the iconset\n return Promise.resolve();\n }\n if (!this.iconContainer) {\n return Promise.resolve();\n }\n this.iconContainer.innerHTML = '';\n return iconset.applyIconToElement(\n this.iconContainer,\n icon.icon,\n this.size || '',\n this.label ? this.label : ''\n );\n }\n\n private parseIcon(icon: string): { iconset: string; icon: string } {\n const iconParts = icon.split(':');\n let iconsetName = 'default';\n let iconName = icon;\n if (iconParts.length > 1) {\n iconsetName = iconParts[0];\n iconName = iconParts[1];\n }\n return { iconset: iconsetName, icon: iconName };\n }\n\n protected override async getUpdateComplete(): Promise<boolean> {\n const complete = (await super.getUpdateComplete()) as boolean;\n await this.updateIconPromise;\n return complete;\n }\n}\n"],
5
+ "mappings": "qNAYA,OAAS,QAAAA,MAA4B,gCACrC,OACI,YAAAC,EACA,SAAAC,MACG,kDACP,OAAS,aAAAC,MAAiB,kDAE1B,OAAS,mBAAAC,MAAuB,2DAEhC,OAAS,YAAAC,MAAgB,gBAKlB,aAAM,aAAaA,CAAS,CAA5B,kCAmCH,KAAQ,gBAAmBC,GAA6B,CACpD,GAAI,CAAC,KAAK,KACN,OAGJ,MAAMC,EAAO,KAAK,UAAU,KAAK,IAAI,EACjCD,EAAM,OAAO,OAASC,EAAK,UAC3B,KAAK,kBAAoB,KAAK,WAAW,EAEjD,EAhCgB,mBAA0B,CACtC,MAAM,kBAAkB,EACxB,OAAO,iBAAiB,mBAAoB,KAAK,eAAe,CACpE,CAEgB,sBAA6B,CACzC,MAAM,qBAAqB,EAC3B,OAAO,oBAAoB,mBAAoB,KAAK,eAAe,CACvE,CAEgB,cAAqB,CACjC,KAAK,kBAAoB,KAAK,WAAW,CAC7C,CAEgB,yBACZC,EACAC,EACAC,EACI,CACJ,MAAM,yBAAyBF,EAAMC,EAAKC,CAAK,EAC/C,KAAK,kBAAoB,KAAK,WAAW,CAC7C,CAaQ,2BAAkC,CACtC,KAAK,cACD,IAAI,MAAM,QAAS,CACf,WAAY,GACZ,QAAS,GACT,SAAU,EACd,CAAC,CACL,CACJ,CAEmB,QAAyB,CACxC,OAAI,KAAK,KACEV;AAAA;AAAA,cAGA,KAAK,IACLA;AAAA;AAAA,2BAEQ,KAAK,GAAG;AAAA,0BACTG,EAAU,KAAK,KAAK,CAAC;AAAA,6BAClB,KAAK,yBAAyB;AAAA;AAAA,cAI5C,MAAM,OAAO,CACxB,CAEA,MAAc,YAA4B,CAItC,GAHI,KAAK,mBACL,MAAM,KAAK,kBAEX,CAAC,KAAK,KACN,OAAO,QAAQ,QAAQ,EAG3B,MAAMI,EAAO,KAAK,UAAU,KAAK,IAAI,EAE/BI,EAAUP,EAAgB,YAAY,EAAE,WAAWG,EAAK,OAAO,EAKrE,MAJI,CAACI,GAID,CAAC,KAAK,cACC,QAAQ,QAAQ,GAE3B,KAAK,cAAc,UAAY,GACxBA,EAAQ,mBACX,KAAK,cACLJ,EAAK,KACL,KAAK,MAAQ,GACb,KAAK,MAAQ,KAAK,MAAQ,EAC9B,EACJ,CAEQ,UAAUA,EAAiD,CAC/D,MAAMK,EAAYL,EAAK,MAAM,GAAG,EAChC,IAAIM,EAAc,UACdC,EAAWP,EACf,OAAIK,EAAU,OAAS,IACnBC,EAAcD,EAAU,CAAC,EACzBE,EAAWF,EAAU,CAAC,GAEnB,CAAE,QAASC,EAAa,KAAMC,CAAS,CAClD,CAEA,MAAyB,mBAAsC,CAC3D,MAAMC,EAAY,MAAM,MAAM,kBAAkB,EAChD,aAAM,KAAK,kBACJA,CACX,CACJ,CAlHWC,EAAA,CADNf,EAAS,GADD,KAEF,mBAGAe,EAAA,CADNf,EAAS,GAJD,KAKF,oBAGCe,EAAA,CADPd,EAAM,YAAY,GAPV,KAQD",
6
+ "names": ["html", "property", "query", "ifDefined", "IconsetRegistry", "IconBase", "event", "icon", "name", "old", "value", "iconset", "iconParts", "iconsetName", "iconName", "complete", "__decorateClass"]
7
+ }
@@ -0,0 +1,13 @@
1
+ import { CSSResultArray, PropertyValues, SpectrumElement, TemplateResult } from '@spectrum-web-components/base';
2
+ export declare class IconBase extends SpectrumElement {
3
+ static get styles(): CSSResultArray;
4
+ private unsubscribeSystemContext;
5
+ spectrumVersion: number;
6
+ label: string;
7
+ size?: 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl';
8
+ connectedCallback(): void;
9
+ disconnectedCallback(): void;
10
+ private systemResolver;
11
+ protected update(changes: PropertyValues): void;
12
+ protected render(): TemplateResult;
13
+ }
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __decorateClass = (decorators, target, key, kind) => {
5
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
6
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
7
+ if (decorator = decorators[i])
8
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
9
+ if (kind && result) __defProp(target, key, result);
10
+ return result;
11
+ };
12
+ import {
13
+ html,
14
+ SpectrumElement
15
+ } from "@spectrum-web-components/base";
16
+ import {
17
+ SystemResolutionController,
18
+ systemResolverUpdatedSymbol
19
+ } from "@spectrum-web-components/reactive-controllers/src/SystemContextResolution.js";
20
+ import {
21
+ property,
22
+ state
23
+ } from "@spectrum-web-components/base/src/decorators.js";
24
+ import iconStyles from "./icon.css.js";
25
+ export class IconBase extends SpectrumElement {
26
+ constructor() {
27
+ super(...arguments);
28
+ this.unsubscribeSystemContext = null;
29
+ this.spectrumVersion = 1;
30
+ this.label = "";
31
+ this.systemResolver = new SystemResolutionController(this);
32
+ }
33
+ static get styles() {
34
+ return [iconStyles];
35
+ }
36
+ connectedCallback() {
37
+ super.connectedCallback();
38
+ }
39
+ disconnectedCallback() {
40
+ super.disconnectedCallback();
41
+ if (this.unsubscribeSystemContext) {
42
+ this.unsubscribeSystemContext();
43
+ this.unsubscribeSystemContext = null;
44
+ }
45
+ }
46
+ update(changes) {
47
+ if (changes.has("label")) {
48
+ if (this.label) {
49
+ this.removeAttribute("aria-hidden");
50
+ } else {
51
+ this.setAttribute("aria-hidden", "true");
52
+ }
53
+ }
54
+ if (changes.has(systemResolverUpdatedSymbol)) {
55
+ this.spectrumVersion = this.systemResolver.system === "spectrum-two" ? 2 : 1;
56
+ }
57
+ super.update(changes);
58
+ }
59
+ render() {
60
+ return html`
61
+ <slot></slot>
62
+ `;
63
+ }
64
+ }
65
+ __decorateClass([
66
+ state()
67
+ ], IconBase.prototype, "spectrumVersion", 2);
68
+ __decorateClass([
69
+ property({ reflect: true })
70
+ ], IconBase.prototype, "label", 2);
71
+ __decorateClass([
72
+ property({ reflect: true })
73
+ ], IconBase.prototype, "size", 2);
74
+ //# sourceMappingURL=IconBase.dev.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["IconBase.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n SystemResolutionController,\n systemResolverUpdatedSymbol,\n} from '@spectrum-web-components/reactive-controllers/src/SystemContextResolution.js';\n\nimport {\n property,\n state,\n} from '@spectrum-web-components/base/src/decorators.js';\n\nimport iconStyles from './icon.css.js';\n\nexport class IconBase extends SpectrumElement {\n public static override get styles(): CSSResultArray {\n return [iconStyles];\n }\n\n private unsubscribeSystemContext: (() => void) | null = null;\n\n @state()\n public spectrumVersion = 1;\n\n @property({ reflect: true })\n public label = '';\n\n @property({ reflect: true })\n public size?: 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl';\n\n public override connectedCallback(): void {\n super.connectedCallback();\n }\n\n public override disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this.unsubscribeSystemContext) {\n this.unsubscribeSystemContext();\n this.unsubscribeSystemContext = null;\n }\n }\n\n private systemResolver = new SystemResolutionController(this);\n\n protected override update(changes: PropertyValues): void {\n if (changes.has('label')) {\n if (this.label) {\n this.removeAttribute('aria-hidden');\n } else {\n this.setAttribute('aria-hidden', 'true');\n }\n }\n\n if (changes.has(systemResolverUpdatedSymbol)) {\n this.spectrumVersion =\n this.systemResolver.system === 'spectrum-two' ? 2 : 1;\n }\n\n super.update(changes);\n }\n\n protected override render(): TemplateResult {\n return html`\n <slot></slot>\n `;\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;AAYA;AAAA,EAEI;AAAA,EAEA;AAAA,OAEG;AACP;AAAA,EACI;AAAA,EACA;AAAA,OACG;AAEP;AAAA,EACI;AAAA,EACA;AAAA,OACG;AAEP,OAAO,gBAAgB;AAEhB,aAAM,iBAAiB,gBAAgB;AAAA,EAAvC;AAAA;AAKH,SAAQ,2BAAgD;AAGxD,SAAO,kBAAkB;AAGzB,SAAO,QAAQ;AAiBf,SAAQ,iBAAiB,IAAI,2BAA2B,IAAI;AAAA;AAAA,EA3B5D,WAA2B,SAAyB;AAChD,WAAO,CAAC,UAAU;AAAA,EACtB;AAAA,EAagB,oBAA0B;AACtC,UAAM,kBAAkB;AAAA,EAC5B;AAAA,EAEgB,uBAA6B;AACzC,UAAM,qBAAqB;AAC3B,QAAI,KAAK,0BAA0B;AAC/B,WAAK,yBAAyB;AAC9B,WAAK,2BAA2B;AAAA,IACpC;AAAA,EACJ;AAAA,EAImB,OAAO,SAA+B;AACrD,QAAI,QAAQ,IAAI,OAAO,GAAG;AACtB,UAAI,KAAK,OAAO;AACZ,aAAK,gBAAgB,aAAa;AAAA,MACtC,OAAO;AACH,aAAK,aAAa,eAAe,MAAM;AAAA,MAC3C;AAAA,IACJ;AAEA,QAAI,QAAQ,IAAI,2BAA2B,GAAG;AAC1C,WAAK,kBACD,KAAK,eAAe,WAAW,iBAAiB,IAAI;AAAA,IAC5D;AAEA,UAAM,OAAO,OAAO;AAAA,EACxB;AAAA,EAEmB,SAAyB;AACxC,WAAO;AAAA;AAAA;AAAA,EAGX;AACJ;AA5CW;AAAA,EADN,MAAM;AAAA,GAPE,SAQF;AAGA;AAAA,EADN,SAAS,EAAE,SAAS,KAAK,CAAC;AAAA,GAVlB,SAWF;AAGA;AAAA,EADN,SAAS,EAAE,SAAS,KAAK,CAAC;AAAA,GAblB,SAcF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";var c=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var l=(i,r,e,s)=>{for(var t=s>1?void 0:s?m(r,e):r,o=i.length-1,u;o>=0;o--)(u=i[o])&&(t=(s?u(r,e,t):u(t))||t);return s&&t&&c(r,e,t),t};import{html as n,SpectrumElement as a}from"@spectrum-web-components/base";import{SystemResolutionController as d,systemResolverUpdatedSymbol as b}from"@spectrum-web-components/reactive-controllers/src/SystemContextResolution.js";import{property as p,state as y}from"@spectrum-web-components/base/src/decorators.js";import v from"./icon.css.js";export class IconBase extends a{constructor(){super(...arguments);this.unsubscribeSystemContext=null;this.spectrumVersion=1;this.label="";this.systemResolver=new d(this)}static get styles(){return[v]}connectedCallback(){super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback(),this.unsubscribeSystemContext&&(this.unsubscribeSystemContext(),this.unsubscribeSystemContext=null)}update(e){e.has("label")&&(this.label?this.removeAttribute("aria-hidden"):this.setAttribute("aria-hidden","true")),e.has(b)&&(this.spectrumVersion=this.systemResolver.system==="spectrum-two"?2:1),super.update(e)}render(){return n`
2
+ <slot></slot>
3
+ `}}l([y()],IconBase.prototype,"spectrumVersion",2),l([p({reflect:!0})],IconBase.prototype,"label",2),l([p({reflect:!0})],IconBase.prototype,"size",2);
4
+ //# sourceMappingURL=IconBase.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["IconBase.ts"],
4
+ "sourcesContent": ["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport {\n CSSResultArray,\n html,\n PropertyValues,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n SystemResolutionController,\n systemResolverUpdatedSymbol,\n} from '@spectrum-web-components/reactive-controllers/src/SystemContextResolution.js';\n\nimport {\n property,\n state,\n} from '@spectrum-web-components/base/src/decorators.js';\n\nimport iconStyles from './icon.css.js';\n\nexport class IconBase extends SpectrumElement {\n public static override get styles(): CSSResultArray {\n return [iconStyles];\n }\n\n private unsubscribeSystemContext: (() => void) | null = null;\n\n @state()\n public spectrumVersion = 1;\n\n @property({ reflect: true })\n public label = '';\n\n @property({ reflect: true })\n public size?: 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl';\n\n public override connectedCallback(): void {\n super.connectedCallback();\n }\n\n public override disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this.unsubscribeSystemContext) {\n this.unsubscribeSystemContext();\n this.unsubscribeSystemContext = null;\n }\n }\n\n private systemResolver = new SystemResolutionController(this);\n\n protected override update(changes: PropertyValues): void {\n if (changes.has('label')) {\n if (this.label) {\n this.removeAttribute('aria-hidden');\n } else {\n this.setAttribute('aria-hidden', 'true');\n }\n }\n\n if (changes.has(systemResolverUpdatedSymbol)) {\n this.spectrumVersion =\n this.systemResolver.system === 'spectrum-two' ? 2 : 1;\n }\n\n super.update(changes);\n }\n\n protected override render(): TemplateResult {\n return html`\n <slot></slot>\n `;\n }\n}\n"],
5
+ "mappings": "qNAYA,OAEI,QAAAA,EAEA,mBAAAC,MAEG,gCACP,OACI,8BAAAC,EACA,+BAAAC,MACG,+EAEP,OACI,YAAAC,EACA,SAAAC,MACG,kDAEP,OAAOC,MAAgB,gBAEhB,aAAM,iBAAiBL,CAAgB,CAAvC,kCAKH,KAAQ,yBAAgD,KAGxD,KAAO,gBAAkB,EAGzB,KAAO,MAAQ,GAiBf,KAAQ,eAAiB,IAAIC,EAA2B,IAAI,EA3B5D,WAA2B,QAAyB,CAChD,MAAO,CAACI,CAAU,CACtB,CAagB,mBAA0B,CACtC,MAAM,kBAAkB,CAC5B,CAEgB,sBAA6B,CACzC,MAAM,qBAAqB,EACvB,KAAK,2BACL,KAAK,yBAAyB,EAC9B,KAAK,yBAA2B,KAExC,CAImB,OAAOC,EAA+B,CACjDA,EAAQ,IAAI,OAAO,IACf,KAAK,MACL,KAAK,gBAAgB,aAAa,EAElC,KAAK,aAAa,cAAe,MAAM,GAI3CA,EAAQ,IAAIJ,CAA2B,IACvC,KAAK,gBACD,KAAK,eAAe,SAAW,eAAiB,EAAI,GAG5D,MAAM,OAAOI,CAAO,CACxB,CAEmB,QAAyB,CACxC,OAAOP;AAAA;AAAA,SAGX,CACJ,CA5CWQ,EAAA,CADNH,EAAM,GAPE,SAQF,+BAGAG,EAAA,CADNJ,EAAS,CAAE,QAAS,EAAK,CAAC,GAVlB,SAWF,qBAGAI,EAAA,CADNJ,EAAS,CAAE,QAAS,EAAK,CAAC,GAblB,SAcF",
6
+ "names": ["html", "SpectrumElement", "SystemResolutionController", "systemResolverUpdatedSymbol", "property", "state", "iconStyles", "changes", "__decorateClass"]
7
+ }
@@ -0,0 +1,2 @@
1
+ declare const styles: import("@spectrum-web-components/base").CSSResult;
2
+ export default styles;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ import { css } from "@spectrum-web-components/base";
3
+ const styles = css`
4
+ .spectrum-UIIcon-ArrowRight75{--spectrum-icon-size:var(--system-ui-icon-arrow-right-75-icon-size)}.spectrum-UIIcon-ArrowRight100{--spectrum-icon-size:var(--system-ui-icon-arrow-right-100-icon-size)}.spectrum-UIIcon-ArrowRight200{--spectrum-icon-size:var(--system-ui-icon-arrow-right-200-icon-size)}.spectrum-UIIcon-ArrowRight300{--spectrum-icon-size:var(--system-ui-icon-arrow-right-300-icon-size)}.spectrum-UIIcon-ArrowRight400{--spectrum-icon-size:var(--system-ui-icon-arrow-right-400-icon-size)}.spectrum-UIIcon-ArrowRight500{--spectrum-icon-size:var(--system-ui-icon-arrow-right-500-icon-size)}.spectrum-UIIcon-ArrowRight600{--spectrum-icon-size:var(--system-ui-icon-arrow-right-600-icon-size)}.spectrum-UIIcon-ArrowDown75{--spectrum-icon-size:var(--system-ui-icon-arrow-down-75-icon-size)}.spectrum-UIIcon-ArrowDown100{--spectrum-icon-size:var(--system-ui-icon-arrow-down-100-icon-size)}.spectrum-UIIcon-ArrowDown200{--spectrum-icon-size:var(--system-ui-icon-arrow-down-200-icon-size)}.spectrum-UIIcon-ArrowDown300{--spectrum-icon-size:var(--system-ui-icon-arrow-down-300-icon-size)}.spectrum-UIIcon-ArrowDown400{--spectrum-icon-size:var(--system-ui-icon-arrow-down-400-icon-size)}.spectrum-UIIcon-ArrowDown500{--spectrum-icon-size:var(--system-ui-icon-arrow-down-500-icon-size)}.spectrum-UIIcon-ArrowDown600{--spectrum-icon-size:var(--system-ui-icon-arrow-down-600-icon-size)}.spectrum-UIIcon-ArrowLeft75{--spectrum-icon-size:var(--system-ui-icon-arrow-left-75-icon-size)}.spectrum-UIIcon-ArrowLeft100{--spectrum-icon-size:var(--system-ui-icon-arrow-left-100-icon-size)}.spectrum-UIIcon-ArrowLeft200{--spectrum-icon-size:var(--system-ui-icon-arrow-left-200-icon-size)}.spectrum-UIIcon-ArrowLeft300{--spectrum-icon-size:var(--system-ui-icon-arrow-left-300-icon-size)}.spectrum-UIIcon-ArrowLeft400{--spectrum-icon-size:var(--system-ui-icon-arrow-left-400-icon-size)}.spectrum-UIIcon-ArrowLeft500{--spectrum-icon-size:var(--system-ui-icon-arrow-left-500-icon-size)}.spectrum-UIIcon-ArrowLeft600{--spectrum-icon-size:var(--system-ui-icon-arrow-left-600-icon-size)}.spectrum-UIIcon-ArrowUp75{--spectrum-icon-size:var(--system-ui-icon-arrow-up-75-icon-size)}.spectrum-UIIcon-ArrowUp100{--spectrum-icon-size:var(--system-ui-icon-arrow-up-100-icon-size)}.spectrum-UIIcon-ArrowUp200{--spectrum-icon-size:var(--system-ui-icon-arrow-up-200-icon-size)}.spectrum-UIIcon-ArrowUp300{--spectrum-icon-size:var(--system-ui-icon-arrow-up-300-icon-size)}.spectrum-UIIcon-ArrowUp400{--spectrum-icon-size:var(--system-ui-icon-arrow-up-400-icon-size)}.spectrum-UIIcon-ArrowUp500{--spectrum-icon-size:var(--system-ui-icon-arrow-up-500-icon-size)}.spectrum-UIIcon-ArrowUp600{--spectrum-icon-size:var(--system-ui-icon-arrow-up-600-icon-size)}
5
+ `;
6
+ export default styles;
7
+ //# sourceMappingURL=icon-arrow-overrides.css.dev.js.map