@siemens/ix-icons 0.0.0-20250114162200 → 0.0.0-pr-69-20250203134847

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1101) hide show
  1. package/README.md +44 -30
  2. package/components/icon.js +31 -8
  3. package/components/icon.js.map +1 -1
  4. package/components/index.js +1 -1
  5. package/dist/cjs/{icon-7938bd17.js → icon-88309350.js} +34 -10
  6. package/dist/cjs/icon-88309350.js.map +1 -0
  7. package/dist/cjs/{index-12b9d30e.js → index-f6043fa9.js} +184 -77
  8. package/dist/cjs/index-f6043fa9.js.map +1 -0
  9. package/dist/cjs/index.cjs.js +4 -3
  10. package/dist/cjs/index.cjs.js.map +1 -1
  11. package/dist/cjs/ix-icon.cjs.entry.js +2 -2
  12. package/dist/cjs/ix-icons.cjs.js +2 -2
  13. package/dist/cjs/ix-icons.cjs.js.map +1 -1
  14. package/dist/cjs/loader.cjs.js +1 -1
  15. package/dist/collection/collection-manifest.json +2 -2
  16. package/dist/collection/components/icon/icon.js +9 -5
  17. package/dist/collection/components/icon/icon.js.map +1 -1
  18. package/dist/collection/components/icon/icons.js +503 -63
  19. package/dist/collection/components/icon/icons.js.map +1 -1
  20. package/dist/collection/components/icon/resolveIcon.js +29 -2
  21. package/dist/collection/components/icon/resolveIcon.js.map +1 -1
  22. package/dist/collection/index.js +1 -1
  23. package/dist/collection/index.js.map +1 -1
  24. package/dist/esm/{icon-7346da2f.js → icon-4feff534.js} +33 -10
  25. package/dist/esm/icon-4feff534.js.map +1 -0
  26. package/dist/esm/{index-05493327.js → index-051cb4f1.js} +184 -77
  27. package/dist/esm/index-051cb4f1.js.map +1 -0
  28. package/dist/esm/index.js +2 -2
  29. package/dist/esm/ix-icon.entry.js +2 -2
  30. package/dist/esm/ix-icons.js +3 -3
  31. package/dist/esm/ix-icons.js.map +1 -1
  32. package/dist/esm/loader.js +2 -2
  33. package/dist/ix-icons/index.esm.js +1 -1
  34. package/dist/ix-icons/ix-icons.esm.js +1 -1
  35. package/dist/ix-icons/ix-icons.esm.js.map +1 -1
  36. package/dist/ix-icons/p-08f117ce.entry.js +2 -0
  37. package/dist/ix-icons/p-48b5ebf2.js +3 -0
  38. package/dist/ix-icons/p-48b5ebf2.js.map +1 -0
  39. package/dist/ix-icons/p-588f84dc.js +2 -0
  40. package/dist/ix-icons/p-588f84dc.js.map +1 -0
  41. package/dist/ix-icons/svg/add-circle-small-filled.svg +1 -0
  42. package/dist/ix-icons/svg/add-circle-small.svg +1 -0
  43. package/dist/ix-icons/svg/agent-filled.svg +1 -0
  44. package/dist/ix-icons/svg/agent.svg +1 -0
  45. package/dist/ix-icons/svg/ai.svg +1 -1
  46. package/dist/ix-icons/svg/alarm-clock-cancelled.svg +1 -1
  47. package/dist/ix-icons/svg/align-center-horizontally.svg +1 -0
  48. package/dist/ix-icons/svg/align-center-vertically.svg +1 -0
  49. package/dist/ix-icons/svg/align-object-dimensions.svg +1 -0
  50. package/dist/ix-icons/svg/align-object-height.svg +1 -0
  51. package/dist/ix-icons/svg/align-object-width.svg +1 -0
  52. package/dist/ix-icons/svg/align-objects-bottom.svg +1 -0
  53. package/dist/ix-icons/svg/align-objects-centered.svg +1 -0
  54. package/dist/ix-icons/svg/align-objects-horizontally.svg +1 -0
  55. package/dist/ix-icons/svg/align-objects-left.svg +1 -0
  56. package/dist/ix-icons/svg/align-objects-right.svg +1 -0
  57. package/dist/ix-icons/svg/align-objects-top.svg +1 -0
  58. package/dist/ix-icons/svg/align-objects-vertically.svg +1 -0
  59. package/dist/ix-icons/svg/align-objects.svg +1 -0
  60. package/dist/ix-icons/svg/analysis-filled.svg +1 -0
  61. package/dist/ix-icons/svg/analysis.svg +1 -0
  62. package/dist/ix-icons/svg/anomaly-none.svg +1 -0
  63. package/dist/ix-icons/svg/app-document-filled.svg +1 -0
  64. package/dist/ix-icons/svg/app-document.svg +1 -0
  65. package/dist/ix-icons/svg/application-screen-alarm-classes.svg +1 -0
  66. package/dist/ix-icons/svg/application-screen-globe.svg +1 -0
  67. package/dist/ix-icons/svg/application-screen-play.svg +1 -0
  68. package/dist/ix-icons/svg/application-screens.svg +1 -0
  69. package/dist/ix-icons/svg/archive-document-filled.svg +1 -0
  70. package/dist/ix-icons/svg/archive-document.svg +1 -0
  71. package/dist/ix-icons/svg/areachart.svg +1 -0
  72. package/dist/ix-icons/svg/arrow-up-left.svg +1 -0
  73. package/dist/ix-icons/svg/aspects-filled.svg +1 -0
  74. package/dist/ix-icons/svg/aspects.svg +1 -0
  75. package/dist/ix-icons/svg/asset-network-filled.svg +1 -0
  76. package/dist/ix-icons/svg/asset-network.svg +1 -0
  77. package/dist/ix-icons/svg/asterisk.svg +1 -0
  78. package/dist/ix-icons/svg/axes-synchronous.svg +1 -0
  79. package/dist/ix-icons/svg/axis-positioning.svg +1 -0
  80. package/dist/ix-icons/svg/axis-rotation.svg +1 -0
  81. package/dist/ix-icons/svg/barchart-horizontal.svg +1 -0
  82. package/dist/ix-icons/svg/barchart.svg +1 -1
  83. package/dist/ix-icons/svg/bilibili-logo.svg +1 -0
  84. package/dist/ix-icons/svg/box-plot-filled.svg +1 -0
  85. package/dist/ix-icons/svg/box-plot.svg +1 -0
  86. package/dist/ix-icons/svg/bring-forward.svg +1 -0
  87. package/dist/ix-icons/svg/bring-to-front.svg +1 -0
  88. package/dist/ix-icons/svg/brush.svg +1 -0
  89. package/dist/ix-icons/svg/building-block-filled.svg +1 -0
  90. package/dist/ix-icons/svg/building-block.svg +1 -0
  91. package/dist/ix-icons/svg/calendar-day-filled.svg +1 -0
  92. package/dist/ix-icons/svg/calendar-day.svg +1 -0
  93. package/dist/ix-icons/svg/calendar-week-filled.svg +1 -0
  94. package/dist/ix-icons/svg/calendar-week.svg +1 -0
  95. package/dist/ix-icons/svg/cam-disk-10k.svg +1 -0
  96. package/dist/ix-icons/svg/cam-disk.svg +1 -0
  97. package/dist/ix-icons/svg/cam-track.svg +1 -0
  98. package/dist/ix-icons/svg/cam.svg +1 -0
  99. package/dist/ix-icons/svg/certificate.svg +1 -0
  100. package/dist/ix-icons/svg/chain-alternative.svg +1 -0
  101. package/dist/ix-icons/svg/chain-parallel.svg +1 -0
  102. package/dist/ix-icons/svg/chain-step.svg +1 -0
  103. package/dist/ix-icons/svg/chart-duration-curve.svg +1 -0
  104. package/dist/ix-icons/svg/chart-types-filled.svg +1 -0
  105. package/dist/ix-icons/svg/chart-types.svg +1 -0
  106. package/dist/ix-icons/svg/chart-value-horizontal.svg +1 -0
  107. package/dist/ix-icons/svg/chart-value-vertical.svg +1 -0
  108. package/dist/ix-icons/svg/checkbox-empty-filled.svg +1 -0
  109. package/dist/ix-icons/svg/checkbox-empty.svg +1 -0
  110. package/dist/ix-icons/svg/checkbox-mixed-filled.svg +1 -0
  111. package/dist/ix-icons/svg/checkbox-mixed.svg +1 -0
  112. package/dist/ix-icons/svg/checkboxes-empty-filled.svg +1 -0
  113. package/dist/ix-icons/svg/checkboxes-empty.svg +1 -0
  114. package/dist/ix-icons/svg/checkboxes-filled.svg +1 -1
  115. package/dist/ix-icons/svg/checkboxes.svg +1 -1
  116. package/dist/ix-icons/svg/client-interface.svg +1 -0
  117. package/dist/ix-icons/svg/clipboard-filled.svg +1 -0
  118. package/dist/ix-icons/svg/clipboard.svg +1 -0
  119. package/dist/ix-icons/svg/cloud-cancelled-filled.svg +1 -0
  120. package/dist/ix-icons/svg/cloud-cancelled.svg +1 -0
  121. package/dist/ix-icons/svg/cloud-rain-filled.svg +1 -0
  122. package/dist/ix-icons/svg/cloud-rain.svg +1 -0
  123. package/dist/ix-icons/svg/cloud-snow-filled.svg +1 -0
  124. package/dist/ix-icons/svg/cloud-snow.svg +1 -0
  125. package/dist/ix-icons/svg/cloud-thunder-filled.svg +1 -0
  126. package/dist/ix-icons/svg/cloud-thunder.svg +1 -0
  127. package/dist/ix-icons/svg/code-document-check.svg +1 -0
  128. package/dist/ix-icons/svg/code-function.svg +1 -0
  129. package/dist/ix-icons/svg/code-script.svg +1 -0
  130. package/dist/ix-icons/svg/coin-filled.svg +1 -0
  131. package/dist/ix-icons/svg/coin-stack-filled.svg +1 -0
  132. package/dist/ix-icons/svg/coin-stack.svg +1 -0
  133. package/dist/ix-icons/svg/coin.svg +1 -0
  134. package/dist/ix-icons/svg/coins-filled.svg +1 -0
  135. package/dist/ix-icons/svg/coins.svg +1 -0
  136. package/dist/ix-icons/svg/comment-alt-filled.svg +1 -0
  137. package/dist/ix-icons/svg/comment-alt.svg +1 -0
  138. package/dist/ix-icons/svg/connection-bulb.svg +1 -0
  139. package/dist/ix-icons/svg/connection-fail.svg +1 -0
  140. package/dist/ix-icons/svg/connection-local.svg +1 -0
  141. package/dist/ix-icons/svg/connection-signal.svg +1 -0
  142. package/dist/ix-icons/svg/connection-success.svg +1 -0
  143. package/dist/ix-icons/svg/connections-settings.svg +1 -0
  144. package/dist/ix-icons/svg/connections.svg +1 -0
  145. package/dist/ix-icons/svg/connectivity.svg +1 -0
  146. package/dist/ix-icons/svg/control-button.svg +1 -0
  147. package/dist/ix-icons/svg/control-checkbox.svg +1 -0
  148. package/dist/ix-icons/svg/control-io-field.svg +1 -0
  149. package/dist/ix-icons/svg/control-label.svg +1 -0
  150. package/dist/ix-icons/svg/control-list-box.svg +1 -0
  151. package/dist/ix-icons/svg/control-radiobutton.svg +1 -0
  152. package/dist/ix-icons/svg/control-select.svg +1 -0
  153. package/dist/ix-icons/svg/control-slider.svg +1 -0
  154. package/dist/ix-icons/svg/control-spinner.svg +1 -0
  155. package/dist/ix-icons/svg/control-switch.svg +1 -0
  156. package/dist/ix-icons/svg/control-text-button.svg +1 -0
  157. package/dist/ix-icons/svg/control-textbox.svg +1 -0
  158. package/dist/ix-icons/svg/control-touch-area.svg +1 -0
  159. package/dist/ix-icons/svg/control-value-bar.svg +1 -0
  160. package/dist/ix-icons/svg/conversation-filled.svg +1 -0
  161. package/dist/ix-icons/svg/conversation.svg +1 -0
  162. package/dist/ix-icons/svg/create-plant-filled.svg +1 -1
  163. package/dist/ix-icons/svg/create-plant.svg +1 -1
  164. package/dist/ix-icons/svg/cycle-alt.svg +1 -0
  165. package/dist/ix-icons/svg/dashboard-filled.svg +1 -0
  166. package/dist/ix-icons/svg/dashboard.svg +1 -0
  167. package/dist/ix-icons/svg/data-management-filled.svg +1 -0
  168. package/dist/ix-icons/svg/data-management.svg +1 -0
  169. package/dist/ix-icons/svg/data-type-boolean.svg +1 -0
  170. package/dist/ix-icons/svg/data-type-double.svg +1 -0
  171. package/dist/ix-icons/svg/data-type-enum.svg +1 -0
  172. package/dist/ix-icons/svg/data-type-integer.svg +1 -0
  173. package/dist/ix-icons/svg/data-type-string-list.svg +1 -0
  174. package/dist/ix-icons/svg/data-type-string.svg +1 -0
  175. package/dist/ix-icons/svg/database-arrow-left.svg +1 -0
  176. package/dist/ix-icons/svg/device-play-filled.svg +1 -0
  177. package/dist/ix-icons/svg/device-play.svg +1 -0
  178. package/dist/ix-icons/svg/device-view-flat.svg +1 -0
  179. package/dist/ix-icons/svg/device-view-hierarchical.svg +1 -0
  180. package/dist/ix-icons/svg/distribute-objects-horizontally.svg +1 -0
  181. package/dist/ix-icons/svg/distribute-objects-vertically.svg +1 -0
  182. package/dist/ix-icons/svg/document-code-filled.svg +1 -0
  183. package/dist/ix-icons/svg/document-code.svg +1 -0
  184. package/dist/ix-icons/svg/document-filled.svg +1 -0
  185. package/dist/ix-icons/svg/document-info.svg +1 -1
  186. package/dist/ix-icons/svg/document-mapping-filled.svg +1 -0
  187. package/dist/ix-icons/svg/document-mapping.svg +1 -0
  188. package/dist/ix-icons/svg/document-program-filled.svg +1 -0
  189. package/dist/ix-icons/svg/document-program.svg +1 -0
  190. package/dist/ix-icons/svg/doughnutchart-filled.svg +1 -0
  191. package/dist/ix-icons/svg/doughnutchart.svg +1 -0
  192. package/dist/ix-icons/svg/download-delta.svg +1 -0
  193. package/dist/ix-icons/svg/download-full.svg +1 -0
  194. package/dist/ix-icons/svg/downtime.svg +1 -0
  195. package/dist/ix-icons/svg/draw-circle-arc.svg +1 -0
  196. package/dist/ix-icons/svg/draw-circle-segment.svg +1 -0
  197. package/dist/ix-icons/svg/draw-circle.svg +1 -0
  198. package/dist/ix-icons/svg/draw-ellipse-segment.svg +1 -0
  199. package/dist/ix-icons/svg/drawer-documents.svg +1 -0
  200. package/dist/ix-icons/svg/drawing-document-filled.svg +1 -0
  201. package/dist/ix-icons/svg/drawing-document.svg +1 -0
  202. package/dist/ix-icons/svg/e-mail-filled.svg +1 -1
  203. package/dist/ix-icons/svg/e-mail.svg +1 -1
  204. package/dist/ix-icons/svg/edit-plant-filled.svg +1 -0
  205. package/dist/ix-icons/svg/edit-plant.svg +1 -1
  206. package/dist/ix-icons/svg/editor-grid-dots.svg +1 -0
  207. package/dist/ix-icons/svg/editor-grid-lines.svg +1 -0
  208. package/dist/ix-icons/svg/editor-grid-magnet.svg +1 -0
  209. package/dist/ix-icons/svg/editor-grid-none.svg +1 -0
  210. package/dist/ix-icons/svg/editor-grid.svg +1 -0
  211. package/dist/ix-icons/svg/editor-guide-lines-magnet.svg +1 -0
  212. package/dist/ix-icons/svg/editor-guides.svg +1 -0
  213. package/dist/ix-icons/svg/editor-resources.svg +1 -0
  214. package/dist/ix-icons/svg/element-filled.svg +1 -0
  215. package/dist/ix-icons/svg/element.svg +1 -0
  216. package/dist/ix-icons/svg/email-document-filled.svg +1 -0
  217. package/dist/ix-icons/svg/email-document.svg +1 -0
  218. package/dist/ix-icons/svg/emergency-stop.svg +1 -0
  219. package/dist/ix-icons/svg/emote-happy-filled.svg +1 -0
  220. package/dist/ix-icons/svg/emote-happy.svg +1 -0
  221. package/dist/ix-icons/svg/emote-neutral-filled.svg +1 -0
  222. package/dist/ix-icons/svg/emote-neutral.svg +1 -0
  223. package/dist/ix-icons/svg/emote-sad-filled.svg +1 -0
  224. package/dist/ix-icons/svg/emote-sad.svg +1 -0
  225. package/dist/ix-icons/svg/exclamation-mark.svg +1 -0
  226. package/dist/ix-icons/svg/external-encoder.svg +1 -0
  227. package/dist/ix-icons/svg/eye-focus.svg +1 -0
  228. package/dist/ix-icons/svg/eye-magnifying-glass.svg +1 -0
  229. package/dist/ix-icons/svg/facebook-logo.svg +1 -0
  230. package/dist/ix-icons/svg/faceplate-container.svg +1 -0
  231. package/dist/ix-icons/svg/fast-forward-filled.svg +1 -0
  232. package/dist/ix-icons/svg/fast-forward.svg +1 -0
  233. package/dist/ix-icons/svg/feedback-filled.svg +1 -0
  234. package/dist/ix-icons/svg/feedback.svg +1 -0
  235. package/dist/ix-icons/svg/filter-update.svg +1 -0
  236. package/dist/ix-icons/svg/flag-alt-filled.svg +1 -0
  237. package/dist/ix-icons/svg/flag-alt.svg +1 -0
  238. package/dist/ix-icons/svg/flow-physically.svg +1 -0
  239. package/dist/ix-icons/svg/folder-collapse-all.svg +1 -0
  240. package/dist/ix-icons/svg/folder-expand-all.svg +1 -0
  241. package/dist/ix-icons/svg/frames-filled.svg +1 -0
  242. package/dist/ix-icons/svg/frames.svg +1 -0
  243. package/dist/ix-icons/svg/ganttchart.svg +1 -0
  244. package/dist/ix-icons/svg/github-logo.svg +1 -0
  245. package/dist/ix-icons/svg/glasses-play.svg +1 -0
  246. package/dist/ix-icons/svg/global-plant-filled.svg +1 -1
  247. package/dist/ix-icons/svg/global-plant.svg +1 -1
  248. package/dist/ix-icons/svg/globe-filled.svg +1 -1
  249. package/dist/ix-icons/svg/globe-tag.svg +1 -0
  250. package/dist/ix-icons/svg/graph-filled.svg +1 -0
  251. package/dist/ix-icons/svg/graph.svg +1 -0
  252. package/dist/ix-icons/svg/group-objects.svg +1 -0
  253. package/dist/ix-icons/svg/hand-filled.svg +1 -0
  254. package/dist/ix-icons/svg/hand.svg +1 -0
  255. package/dist/ix-icons/svg/hat-man-filled.svg +1 -0
  256. package/dist/ix-icons/svg/hat-man.svg +1 -0
  257. package/dist/ix-icons/svg/heat-map-chart-filled.svg +1 -0
  258. package/dist/ix-icons/svg/heat-map-chart.svg +1 -0
  259. package/dist/ix-icons/svg/history-list.svg +1 -1
  260. package/dist/ix-icons/svg/history.svg +1 -1
  261. package/dist/ix-icons/svg/indicator-filled.svg +1 -0
  262. package/dist/ix-icons/svg/indicator.svg +1 -0
  263. package/dist/ix-icons/svg/ink-pen-add.svg +1 -0
  264. package/dist/ix-icons/svg/ink-pen-filled.svg +1 -0
  265. package/dist/ix-icons/svg/instagram-logo.svg +1 -0
  266. package/dist/ix-icons/svg/interpreter-filled.svg +1 -0
  267. package/dist/ix-icons/svg/interpreter.svg +1 -0
  268. package/dist/ix-icons/svg/java-script.svg +1 -0
  269. package/dist/ix-icons/svg/jigsaw-details-filled.svg +1 -0
  270. package/dist/ix-icons/svg/jigsaw-details.svg +1 -0
  271. package/dist/ix-icons/svg/jigsaw-filled.svg +1 -0
  272. package/dist/ix-icons/svg/jigsaw.svg +1 -0
  273. package/dist/ix-icons/svg/json-document-filled.svg +1 -0
  274. package/dist/ix-icons/svg/json-document.svg +1 -0
  275. package/dist/ix-icons/svg/key.svg +1 -0
  276. package/dist/ix-icons/svg/keyboard-docked-bottom.svg +1 -0
  277. package/dist/ix-icons/svg/keyboard-floating.svg +1 -0
  278. package/dist/ix-icons/svg/keyboard-framed.svg +1 -0
  279. package/dist/ix-icons/svg/keyboard.svg +1 -0
  280. package/dist/ix-icons/svg/kinematics.svg +1 -0
  281. package/dist/ix-icons/svg/kpi-filled.svg +1 -0
  282. package/dist/ix-icons/svg/kpi.svg +1 -0
  283. package/dist/ix-icons/svg/leading-axis-proxy.svg +1 -0
  284. package/dist/ix-icons/svg/legal-circle-filled.svg +1 -0
  285. package/dist/ix-icons/svg/legal-circle.svg +1 -0
  286. package/dist/ix-icons/svg/limits-cancelled.svg +1 -0
  287. package/dist/ix-icons/svg/limits-check.svg +1 -0
  288. package/dist/ix-icons/svg/line-cap-flat.svg +1 -0
  289. package/dist/ix-icons/svg/line-cap-round.svg +1 -0
  290. package/dist/ix-icons/svg/line-cap-square.svg +1 -0
  291. package/dist/ix-icons/svg/line-dash-dot-dot.svg +1 -0
  292. package/dist/ix-icons/svg/line-dash-dot.svg +1 -0
  293. package/dist/ix-icons/svg/line-dash.svg +1 -0
  294. package/dist/ix-icons/svg/line-dot.svg +1 -0
  295. package/dist/ix-icons/svg/line-solid.svg +1 -0
  296. package/dist/ix-icons/svg/linechart.svg +1 -0
  297. package/dist/ix-icons/svg/linkedin-logo.svg +1 -0
  298. package/dist/ix-icons/svg/list-add.svg +1 -0
  299. package/dist/ix-icons/svg/list-graphics-text.svg +1 -0
  300. package/dist/ix-icons/svg/list-graphics.svg +1 -0
  301. package/dist/ix-icons/svg/list-remove.svg +1 -0
  302. package/dist/ix-icons/svg/list-text.svg +1 -0
  303. package/dist/ix-icons/svg/lock-key-filled.svg +1 -1
  304. package/dist/ix-icons/svg/lock-key.svg +1 -1
  305. package/dist/ix-icons/svg/longer.svg +1 -0
  306. package/dist/ix-icons/svg/machine-a-filled.svg +1 -0
  307. package/dist/ix-icons/svg/machine-a.svg +1 -0
  308. package/dist/ix-icons/svg/machine-b-filled.svg +1 -0
  309. package/dist/ix-icons/svg/machine-b.svg +1 -0
  310. package/dist/ix-icons/svg/machine-c-filled.svg +1 -0
  311. package/dist/ix-icons/svg/machine-c.svg +1 -0
  312. package/dist/ix-icons/svg/magnet-cancelled.svg +1 -0
  313. package/dist/ix-icons/svg/magnet.svg +1 -0
  314. package/dist/ix-icons/svg/mail-alarm-analog.svg +1 -0
  315. package/dist/ix-icons/svg/mail-alarm-classes.svg +1 -0
  316. package/dist/ix-icons/svg/mail-alarm-discrete.svg +1 -0
  317. package/dist/ix-icons/svg/map-alt-1-filled.svg +1 -0
  318. package/dist/ix-icons/svg/map-alt-1.svg +1 -0
  319. package/dist/ix-icons/svg/map-alt-2-filled.svg +1 -0
  320. package/dist/ix-icons/svg/map-alt-2.svg +1 -0
  321. package/dist/ix-icons/svg/map-alt-3-filled.svg +1 -0
  322. package/dist/ix-icons/svg/map-alt-3.svg +1 -0
  323. package/dist/ix-icons/svg/mastodon-logo.svg +1 -0
  324. package/dist/ix-icons/svg/measuring-input.svg +1 -0
  325. package/dist/ix-icons/svg/media-player.svg +1 -0
  326. package/dist/ix-icons/svg/mobile-phone-filled.svg +1 -0
  327. package/dist/ix-icons/svg/mobile-phone.svg +1 -0
  328. package/dist/ix-icons/svg/moon-filled.svg +1 -1
  329. package/dist/ix-icons/svg/moon.svg +1 -1
  330. package/dist/ix-icons/svg/move-layer-down.svg +1 -0
  331. package/dist/ix-icons/svg/move-layer-up.svg +1 -0
  332. package/dist/ix-icons/svg/movie-filled.svg +1 -0
  333. package/dist/ix-icons/svg/movie.svg +1 -0
  334. package/dist/ix-icons/svg/mqtt-filled.svg +1 -0
  335. package/dist/ix-icons/svg/mqtt.svg +1 -0
  336. package/dist/ix-icons/svg/music-note.svg +1 -0
  337. package/dist/ix-icons/svg/namur-diagnostics-passive-filled.svg +1 -0
  338. package/dist/ix-icons/svg/namur-diagnostics-passive.svg +1 -0
  339. package/dist/ix-icons/svg/navigation-left-hide.svg +1 -0
  340. package/dist/ix-icons/svg/navigation-right-hide.svg +1 -0
  341. package/dist/ix-icons/svg/network-device-filled.svg +1 -0
  342. package/dist/ix-icons/svg/network-device-play-filled.svg +1 -0
  343. package/dist/ix-icons/svg/network-device-play.svg +1 -0
  344. package/dist/ix-icons/svg/network-device.svg +1 -0
  345. package/dist/ix-icons/svg/network-wired-wireless.svg +1 -0
  346. package/dist/ix-icons/svg/network-wired.svg +1 -0
  347. package/dist/ix-icons/svg/notebook-filled.svg +1 -0
  348. package/dist/ix-icons/svg/notebook.svg +1 -0
  349. package/dist/ix-icons/svg/objects-tree.svg +1 -0
  350. package/dist/ix-icons/svg/objects.svg +1 -0
  351. package/dist/ix-icons/svg/operate-plant-filled.svg +1 -1
  352. package/dist/ix-icons/svg/operate-plant.svg +1 -1
  353. package/dist/ix-icons/svg/package-filled.svg +1 -0
  354. package/dist/ix-icons/svg/package.svg +1 -0
  355. package/dist/ix-icons/svg/parameter.svg +1 -0
  356. package/dist/ix-icons/svg/paste-filled.svg +1 -0
  357. package/dist/ix-icons/svg/paste.svg +1 -1
  358. package/dist/ix-icons/svg/pc-tower-settings-filled.svg +1 -0
  359. package/dist/ix-icons/svg/pc-tower-settings.svg +1 -0
  360. package/dist/ix-icons/svg/pdf-document-filled.svg +1 -0
  361. package/dist/ix-icons/svg/pin-cancelled-filled.svg +1 -0
  362. package/dist/ix-icons/svg/pin-cancelled.svg +1 -0
  363. package/dist/ix-icons/svg/pin-filled.svg +1 -1
  364. package/dist/ix-icons/svg/pin.svg +1 -1
  365. package/dist/ix-icons/svg/plant-details-filled.svg +1 -0
  366. package/dist/ix-icons/svg/plant-details.svg +1 -0
  367. package/dist/ix-icons/svg/plant-handbook-filled.svg +1 -1
  368. package/dist/ix-icons/svg/plant-handbook.svg +1 -1
  369. package/dist/ix-icons/svg/plant-search-filled.svg +1 -0
  370. package/dist/ix-icons/svg/plant-search.svg +1 -0
  371. package/dist/ix-icons/svg/plant-security-filled.svg +1 -0
  372. package/dist/ix-icons/svg/plant-security.svg +1 -1
  373. package/dist/ix-icons/svg/plant-settings-filled.svg +1 -1
  374. package/dist/ix-icons/svg/plant-settings.svg +1 -1
  375. package/dist/ix-icons/svg/plc-device-tag.svg +1 -0
  376. package/dist/ix-icons/svg/plc-device-user-data-type.svg +1 -0
  377. package/dist/ix-icons/svg/plc-device.svg +1 -0
  378. package/dist/ix-icons/svg/plc-tag.svg +1 -0
  379. package/dist/ix-icons/svg/plc-user-data-type.svg +1 -0
  380. package/dist/ix-icons/svg/plc.svg +1 -0
  381. package/dist/ix-icons/svg/polarchart-filled.svg +1 -0
  382. package/dist/ix-icons/svg/polarchart.svg +1 -0
  383. package/dist/ix-icons/svg/process-control.svg +1 -0
  384. package/dist/ix-icons/svg/project-arrow-diagonal-top-right.svg +1 -0
  385. package/dist/ix-icons/svg/project-arrow-left.svg +1 -0
  386. package/dist/ix-icons/svg/project-arrow-right.svg +1 -0
  387. package/dist/ix-icons/svg/project-close.svg +1 -0
  388. package/dist/ix-icons/svg/project-duplicate.svg +1 -0
  389. package/dist/ix-icons/svg/project-history.svg +1 -0
  390. package/dist/ix-icons/svg/project-server-filled.svg +1 -1
  391. package/dist/ix-icons/svg/project-server.svg +1 -1
  392. package/dist/ix-icons/svg/project-settings.svg +1 -0
  393. package/dist/ix-icons/svg/project-simulation.svg +1 -0
  394. package/dist/ix-icons/svg/projects-close.svg +1 -0
  395. package/dist/ix-icons/svg/question-mark.svg +1 -0
  396. package/dist/ix-icons/svg/record-filled.svg +1 -0
  397. package/dist/ix-icons/svg/record.svg +1 -0
  398. package/dist/ix-icons/svg/reddit-logo.svg +1 -0
  399. package/dist/ix-icons/svg/reference-point-bottom-left.svg +1 -0
  400. package/dist/ix-icons/svg/reference-point-bottom-right.svg +1 -0
  401. package/dist/ix-icons/svg/reference-point-centered.svg +1 -0
  402. package/dist/ix-icons/svg/reference-point-top-left.svg +1 -0
  403. package/dist/ix-icons/svg/reference-point-top-right.svg +1 -0
  404. package/dist/ix-icons/svg/refresh-arrow-down.svg +1 -0
  405. package/dist/ix-icons/svg/remove-circle-filled.svg +1 -0
  406. package/dist/ix-icons/svg/remove-circle.svg +1 -0
  407. package/dist/ix-icons/svg/report-general.svg +1 -0
  408. package/dist/ix-icons/svg/restore.svg +1 -0
  409. package/dist/ix-icons/svg/rewind-filled.svg +1 -0
  410. package/dist/ix-icons/svg/rewind.svg +1 -0
  411. package/dist/ix-icons/svg/robotic-arm.svg +1 -0
  412. package/dist/ix-icons/svg/robotic-gripper.svg +1 -0
  413. package/dist/ix-icons/svg/roles-filled.svg +1 -0
  414. package/dist/ix-icons/svg/roles.svg +1 -0
  415. package/dist/ix-icons/svg/rotate-180.svg +1 -0
  416. package/dist/ix-icons/svg/rotate-90-left.svg +1 -0
  417. package/dist/ix-icons/svg/rotate-90-right.svg +1 -0
  418. package/dist/ix-icons/svg/rotate.svg +1 -0
  419. package/dist/ix-icons/svg/ruler-horizontal.svg +1 -0
  420. package/dist/ix-icons/svg/ruler-vertical.svg +1 -0
  421. package/dist/ix-icons/svg/rules-filled.svg +1 -0
  422. package/dist/ix-icons/svg/rules.svg +1 -0
  423. package/dist/ix-icons/svg/runtime-play.svg +1 -0
  424. package/dist/ix-icons/svg/runtime-settings.svg +1 -1
  425. package/dist/ix-icons/svg/runtime-stop.svg +1 -0
  426. package/dist/ix-icons/svg/sankeychart.svg +1 -0
  427. package/dist/ix-icons/svg/save-all.svg +1 -0
  428. package/dist/ix-icons/svg/scale.svg +1 -0
  429. package/dist/ix-icons/svg/screen-duplicate-filled.svg +1 -0
  430. package/dist/ix-icons/svg/screen-duplicate.svg +1 -0
  431. package/dist/ix-icons/svg/screen-pc-tower-filled.svg +1 -0
  432. package/dist/ix-icons/svg/screen-pc-tower-settings-filled.svg +1 -0
  433. package/dist/ix-icons/svg/screen-pc-tower-settings.svg +1 -0
  434. package/dist/ix-icons/svg/screen-pc-tower.svg +1 -0
  435. package/dist/ix-icons/svg/screen-settings-filled.svg +1 -0
  436. package/dist/ix-icons/svg/screen-settings.svg +1 -0
  437. package/dist/ix-icons/svg/screens-filled.svg +1 -0
  438. package/dist/ix-icons/svg/screens.svg +1 -0
  439. package/dist/ix-icons/svg/select-alt-filled.svg +1 -0
  440. package/dist/ix-icons/svg/select-alt.svg +1 -0
  441. package/dist/ix-icons/svg/send-backward.svg +1 -0
  442. package/dist/ix-icons/svg/send-to-back.svg +1 -0
  443. package/dist/ix-icons/svg/server-interface.svg +1 -0
  444. package/dist/ix-icons/svg/shapes-filled.svg +1 -0
  445. package/dist/ix-icons/svg/shapes.svg +1 -0
  446. package/dist/ix-icons/svg/share-alt-filled.svg +1 -0
  447. package/dist/ix-icons/svg/share-alt.svg +1 -0
  448. package/dist/ix-icons/svg/shield-broken-filled.svg +1 -1
  449. package/dist/ix-icons/svg/shield-broken.svg +1 -1
  450. package/dist/ix-icons/svg/shift-filled.svg +1 -0
  451. package/dist/ix-icons/svg/shift.svg +1 -0
  452. package/dist/ix-icons/svg/shopping-cart-filled.svg +1 -1
  453. package/dist/ix-icons/svg/shopping-cart.svg +1 -1
  454. package/dist/ix-icons/svg/shorter.svg +1 -0
  455. package/dist/ix-icons/svg/simulation-table.svg +1 -0
  456. package/dist/ix-icons/svg/sms.svg +1 -0
  457. package/dist/ix-icons/svg/spiderchart-filled.svg +1 -0
  458. package/dist/ix-icons/svg/spiderchart.svg +1 -0
  459. package/dist/ix-icons/svg/stacked-barchart.svg +1 -0
  460. package/dist/ix-icons/svg/star-half-filled.svg +1 -0
  461. package/dist/ix-icons/svg/stopwatch-filled.svg +1 -0
  462. package/dist/ix-icons/svg/stopwatch.svg +1 -0
  463. package/dist/ix-icons/svg/storage-filled.svg +1 -0
  464. package/dist/ix-icons/svg/storage.svg +1 -0
  465. package/dist/ix-icons/svg/subtitle-filled.svg +1 -0
  466. package/dist/ix-icons/svg/subtitle.svg +1 -0
  467. package/dist/ix-icons/svg/sun-cloud-filled.svg +1 -0
  468. package/dist/ix-icons/svg/sun-cloud.svg +1 -0
  469. package/dist/ix-icons/svg/sunrise-filled.svg +1 -0
  470. package/dist/ix-icons/svg/sunrise.svg +1 -0
  471. package/dist/ix-icons/svg/sunset-filled.svg +1 -0
  472. package/dist/ix-icons/svg/sunset.svg +1 -0
  473. package/dist/ix-icons/svg/table-tag.svg +1 -0
  474. package/dist/ix-icons/svg/tag-arrow-left-filled.svg +1 -0
  475. package/dist/ix-icons/svg/tag-arrow-left.svg +1 -0
  476. package/dist/ix-icons/svg/tag-arrow-right-filled.svg +1 -0
  477. package/dist/ix-icons/svg/tag-arrow-right.svg +1 -0
  478. package/dist/ix-icons/svg/tag-circle-arrow-down-filled.svg +1 -0
  479. package/dist/ix-icons/svg/tag-circle-arrow-down.svg +1 -0
  480. package/dist/ix-icons/svg/tag-connection-filled.svg +1 -0
  481. package/dist/ix-icons/svg/tag-connection.svg +1 -0
  482. package/dist/ix-icons/svg/tag-eye-filled.svg +1 -0
  483. package/dist/ix-icons/svg/tag-eye.svg +1 -0
  484. package/dist/ix-icons/svg/tag-filled.svg +1 -1
  485. package/dist/ix-icons/svg/tag-logging-filled.svg +1 -0
  486. package/dist/ix-icons/svg/tag-logging.svg +1 -0
  487. package/dist/ix-icons/svg/tag-plus-filled.svg +1 -1
  488. package/dist/ix-icons/svg/tag-plus.svg +1 -1
  489. package/dist/ix-icons/svg/tag.svg +1 -1
  490. package/dist/ix-icons/svg/telegram-logo.svg +1 -0
  491. package/dist/ix-icons/svg/text-alginment-center.svg +1 -0
  492. package/dist/ix-icons/svg/text-alginment-justified.svg +1 -0
  493. package/dist/ix-icons/svg/text-alginment-left.svg +1 -0
  494. package/dist/ix-icons/svg/text-alginment-right.svg +1 -0
  495. package/dist/ix-icons/svg/thermometer-filled.svg +1 -0
  496. package/dist/ix-icons/svg/threads-logo.svg +1 -0
  497. package/dist/ix-icons/svg/thumb-down-filled.svg +1 -0
  498. package/dist/ix-icons/svg/thumb-down.svg +1 -0
  499. package/dist/ix-icons/svg/thumb-up-filled.svg +1 -0
  500. package/dist/ix-icons/svg/thumb-up.svg +1 -0
  501. package/dist/ix-icons/svg/ticket-filled.svg +1 -0
  502. package/dist/ix-icons/svg/ticket.svg +1 -0
  503. package/dist/ix-icons/svg/tiktok-logo.svg +1 -0
  504. package/dist/ix-icons/svg/tiles-filled.svg +1 -0
  505. package/dist/ix-icons/svg/tiles.svg +1 -0
  506. package/dist/ix-icons/svg/time-zone-filled.svg +1 -0
  507. package/dist/ix-icons/svg/time-zone.svg +1 -0
  508. package/dist/ix-icons/svg/trace-eye.svg +1 -0
  509. package/dist/ix-icons/svg/train-filled.svg +1 -0
  510. package/dist/ix-icons/svg/train.svg +1 -0
  511. package/dist/ix-icons/svg/trend-companion.svg +1 -0
  512. package/dist/ix-icons/svg/txt-document-filled.svg +1 -0
  513. package/dist/ix-icons/svg/ungroup-objects.svg +1 -0
  514. package/dist/ix-icons/svg/unlock-plant-filled.svg +1 -1
  515. package/dist/ix-icons/svg/unlock-plant.svg +1 -1
  516. package/dist/ix-icons/svg/user-data-types.svg +1 -0
  517. package/dist/ix-icons/svg/user-group.svg +1 -0
  518. package/dist/ix-icons/svg/user-key.svg +1 -0
  519. package/dist/ix-icons/svg/user-manual-filled.svg +1 -0
  520. package/dist/ix-icons/svg/user-manual.svg +1 -0
  521. package/dist/ix-icons/svg/user-pen.svg +1 -0
  522. package/dist/ix-icons/svg/user-reading-filled.svg +1 -0
  523. package/dist/ix-icons/svg/user-reading.svg +1 -1
  524. package/dist/ix-icons/svg/variable.svg +1 -0
  525. package/dist/ix-icons/svg/video-camera-filled.svg +1 -0
  526. package/dist/ix-icons/svg/video-camera-record-filled.svg +1 -0
  527. package/dist/ix-icons/svg/video-camera-record.svg +1 -0
  528. package/dist/ix-icons/svg/video-camera.svg +1 -0
  529. package/dist/ix-icons/svg/viva-engage-logo.svg +1 -0
  530. package/dist/ix-icons/svg/voltage-filled.svg +1 -0
  531. package/dist/ix-icons/svg/voltage.svg +1 -0
  532. package/dist/ix-icons/svg/watch-table.svg +1 -0
  533. package/dist/ix-icons/svg/web-browser-screen.svg +1 -0
  534. package/dist/ix-icons/svg/wechat-logo.svg +1 -0
  535. package/dist/ix-icons/svg/weibo-logo.svg +1 -0
  536. package/dist/ix-icons/svg/wlan-strength-1-lock.svg +1 -0
  537. package/dist/ix-icons/svg/wlan-strength-2-lock.svg +1 -0
  538. package/dist/ix-icons/svg/wlan-strength-3-lock.svg +1 -0
  539. package/dist/ix-icons/svg/wlan-warning.svg +1 -0
  540. package/dist/ix-icons/svg/x-logo.svg +1 -0
  541. package/dist/ix-icons/svg/xls-document-filled.svg +1 -0
  542. package/dist/sample.json +1259 -0
  543. package/dist/types/components/icon/icon.d.ts +1 -1
  544. package/dist/types/components/icon/icons.d.ts +504 -64
  545. package/dist/types/components/icon/resolveIcon.d.ts +4 -1
  546. package/dist/types/index.d.ts +1 -1
  547. package/dist/types/stencil-public-runtime.d.ts +6 -0
  548. package/icons/index.d.ts +459 -19
  549. package/icons/index.js +503 -63
  550. package/icons/index.mjs +503 -63
  551. package/icons/package.json +1 -1
  552. package/package.json +3 -3
  553. package/svg/add-circle-small-filled.svg +1 -0
  554. package/svg/add-circle-small.svg +1 -0
  555. package/svg/agent-filled.svg +1 -0
  556. package/svg/agent.svg +1 -0
  557. package/svg/ai.svg +1 -1
  558. package/svg/alarm-clock-cancelled.svg +1 -1
  559. package/svg/align-center-horizontally.svg +1 -0
  560. package/svg/align-center-vertically.svg +1 -0
  561. package/svg/align-object-dimensions.svg +1 -0
  562. package/svg/align-object-height.svg +1 -0
  563. package/svg/align-object-width.svg +1 -0
  564. package/svg/align-objects-bottom.svg +1 -0
  565. package/svg/align-objects-centered.svg +1 -0
  566. package/svg/align-objects-horizontally.svg +1 -0
  567. package/svg/align-objects-left.svg +1 -0
  568. package/svg/align-objects-right.svg +1 -0
  569. package/svg/align-objects-top.svg +1 -0
  570. package/svg/align-objects-vertically.svg +1 -0
  571. package/svg/align-objects.svg +1 -0
  572. package/svg/analysis-filled.svg +1 -0
  573. package/svg/analysis.svg +1 -0
  574. package/svg/anomaly-none.svg +1 -0
  575. package/svg/app-document-filled.svg +1 -0
  576. package/svg/app-document.svg +1 -0
  577. package/svg/application-screen-alarm-classes.svg +1 -0
  578. package/svg/application-screen-globe.svg +1 -0
  579. package/svg/application-screen-play.svg +1 -0
  580. package/svg/application-screens.svg +1 -0
  581. package/svg/archive-document-filled.svg +1 -0
  582. package/svg/archive-document.svg +1 -0
  583. package/svg/areachart.svg +1 -0
  584. package/svg/arrow-up-left.svg +1 -0
  585. package/svg/aspects-filled.svg +1 -0
  586. package/svg/aspects.svg +1 -0
  587. package/svg/asset-network-filled.svg +1 -0
  588. package/svg/asset-network.svg +1 -0
  589. package/svg/asterisk.svg +1 -0
  590. package/svg/axes-synchronous.svg +1 -0
  591. package/svg/axis-positioning.svg +1 -0
  592. package/svg/axis-rotation.svg +1 -0
  593. package/svg/barchart-horizontal.svg +1 -0
  594. package/svg/barchart.svg +1 -1
  595. package/svg/bilibili-logo.svg +1 -0
  596. package/svg/box-plot-filled.svg +1 -0
  597. package/svg/box-plot.svg +1 -0
  598. package/svg/bring-forward.svg +1 -0
  599. package/svg/bring-to-front.svg +1 -0
  600. package/svg/brush.svg +1 -0
  601. package/svg/building-block-filled.svg +1 -0
  602. package/svg/building-block.svg +1 -0
  603. package/svg/calendar-day-filled.svg +1 -0
  604. package/svg/calendar-day.svg +1 -0
  605. package/svg/calendar-week-filled.svg +1 -0
  606. package/svg/calendar-week.svg +1 -0
  607. package/svg/cam-disk-10k.svg +1 -0
  608. package/svg/cam-disk.svg +1 -0
  609. package/svg/cam-track.svg +1 -0
  610. package/svg/cam.svg +1 -0
  611. package/svg/certificate.svg +1 -0
  612. package/svg/chain-alternative.svg +1 -0
  613. package/svg/chain-parallel.svg +1 -0
  614. package/svg/chain-step.svg +1 -0
  615. package/svg/chart-duration-curve.svg +1 -0
  616. package/svg/chart-types-filled.svg +1 -0
  617. package/svg/chart-types.svg +1 -0
  618. package/svg/chart-value-horizontal.svg +1 -0
  619. package/svg/chart-value-vertical.svg +1 -0
  620. package/svg/checkbox-empty-filled.svg +1 -0
  621. package/svg/checkbox-empty.svg +1 -0
  622. package/svg/checkbox-mixed-filled.svg +1 -0
  623. package/svg/checkbox-mixed.svg +1 -0
  624. package/svg/checkboxes-empty-filled.svg +1 -0
  625. package/svg/checkboxes-empty.svg +1 -0
  626. package/svg/checkboxes-filled.svg +1 -1
  627. package/svg/checkboxes.svg +1 -1
  628. package/svg/client-interface.svg +1 -0
  629. package/svg/clipboard-filled.svg +1 -0
  630. package/svg/clipboard.svg +1 -0
  631. package/svg/cloud-cancelled-filled.svg +1 -0
  632. package/svg/cloud-cancelled.svg +1 -0
  633. package/svg/cloud-rain-filled.svg +1 -0
  634. package/svg/cloud-rain.svg +1 -0
  635. package/svg/cloud-snow-filled.svg +1 -0
  636. package/svg/cloud-snow.svg +1 -0
  637. package/svg/cloud-thunder-filled.svg +1 -0
  638. package/svg/cloud-thunder.svg +1 -0
  639. package/svg/code-document-check.svg +1 -0
  640. package/svg/code-function.svg +1 -0
  641. package/svg/code-script.svg +1 -0
  642. package/svg/coin-filled.svg +1 -0
  643. package/svg/coin-stack-filled.svg +1 -0
  644. package/svg/coin-stack.svg +1 -0
  645. package/svg/coin.svg +1 -0
  646. package/svg/coins-filled.svg +1 -0
  647. package/svg/coins.svg +1 -0
  648. package/svg/comment-alt-filled.svg +1 -0
  649. package/svg/comment-alt.svg +1 -0
  650. package/svg/connection-bulb.svg +1 -0
  651. package/svg/connection-fail.svg +1 -0
  652. package/svg/connection-local.svg +1 -0
  653. package/svg/connection-signal.svg +1 -0
  654. package/svg/connection-success.svg +1 -0
  655. package/svg/connections-settings.svg +1 -0
  656. package/svg/connections.svg +1 -0
  657. package/svg/connectivity.svg +1 -0
  658. package/svg/control-button.svg +1 -0
  659. package/svg/control-checkbox.svg +1 -0
  660. package/svg/control-io-field.svg +1 -0
  661. package/svg/control-label.svg +1 -0
  662. package/svg/control-list-box.svg +1 -0
  663. package/svg/control-radiobutton.svg +1 -0
  664. package/svg/control-select.svg +1 -0
  665. package/svg/control-slider.svg +1 -0
  666. package/svg/control-spinner.svg +1 -0
  667. package/svg/control-switch.svg +1 -0
  668. package/svg/control-text-button.svg +1 -0
  669. package/svg/control-textbox.svg +1 -0
  670. package/svg/control-touch-area.svg +1 -0
  671. package/svg/control-value-bar.svg +1 -0
  672. package/svg/conversation-filled.svg +1 -0
  673. package/svg/conversation.svg +1 -0
  674. package/svg/create-plant-filled.svg +1 -1
  675. package/svg/create-plant.svg +1 -1
  676. package/svg/cycle-alt.svg +1 -0
  677. package/svg/dashboard-filled.svg +1 -0
  678. package/svg/dashboard.svg +1 -0
  679. package/svg/data-management-filled.svg +1 -0
  680. package/svg/data-management.svg +1 -0
  681. package/svg/data-type-boolean.svg +1 -0
  682. package/svg/data-type-double.svg +1 -0
  683. package/svg/data-type-enum.svg +1 -0
  684. package/svg/data-type-integer.svg +1 -0
  685. package/svg/data-type-string-list.svg +1 -0
  686. package/svg/data-type-string.svg +1 -0
  687. package/svg/database-arrow-left.svg +1 -0
  688. package/svg/device-play-filled.svg +1 -0
  689. package/svg/device-play.svg +1 -0
  690. package/svg/device-view-flat.svg +1 -0
  691. package/svg/device-view-hierarchical.svg +1 -0
  692. package/svg/distribute-objects-horizontally.svg +1 -0
  693. package/svg/distribute-objects-vertically.svg +1 -0
  694. package/svg/document-code-filled.svg +1 -0
  695. package/svg/document-code.svg +1 -0
  696. package/svg/document-filled.svg +1 -0
  697. package/svg/document-info.svg +1 -1
  698. package/svg/document-mapping-filled.svg +1 -0
  699. package/svg/document-mapping.svg +1 -0
  700. package/svg/document-program-filled.svg +1 -0
  701. package/svg/document-program.svg +1 -0
  702. package/svg/doughnutchart-filled.svg +1 -0
  703. package/svg/doughnutchart.svg +1 -0
  704. package/svg/download-delta.svg +1 -0
  705. package/svg/download-full.svg +1 -0
  706. package/svg/downtime.svg +1 -0
  707. package/svg/draw-circle-arc.svg +1 -0
  708. package/svg/draw-circle-segment.svg +1 -0
  709. package/svg/draw-circle.svg +1 -0
  710. package/svg/draw-ellipse-segment.svg +1 -0
  711. package/svg/drawer-documents.svg +1 -0
  712. package/svg/drawing-document-filled.svg +1 -0
  713. package/svg/drawing-document.svg +1 -0
  714. package/svg/e-mail-filled.svg +1 -1
  715. package/svg/e-mail.svg +1 -1
  716. package/svg/edit-plant-filled.svg +1 -0
  717. package/svg/edit-plant.svg +1 -1
  718. package/svg/editor-grid-dots.svg +1 -0
  719. package/svg/editor-grid-lines.svg +1 -0
  720. package/svg/editor-grid-magnet.svg +1 -0
  721. package/svg/editor-grid-none.svg +1 -0
  722. package/svg/editor-grid.svg +1 -0
  723. package/svg/editor-guide-lines-magnet.svg +1 -0
  724. package/svg/editor-guides.svg +1 -0
  725. package/svg/editor-resources.svg +1 -0
  726. package/svg/element-filled.svg +1 -0
  727. package/svg/element.svg +1 -0
  728. package/svg/email-document-filled.svg +1 -0
  729. package/svg/email-document.svg +1 -0
  730. package/svg/emergency-stop.svg +1 -0
  731. package/svg/emote-happy-filled.svg +1 -0
  732. package/svg/emote-happy.svg +1 -0
  733. package/svg/emote-neutral-filled.svg +1 -0
  734. package/svg/emote-neutral.svg +1 -0
  735. package/svg/emote-sad-filled.svg +1 -0
  736. package/svg/emote-sad.svg +1 -0
  737. package/svg/exclamation-mark.svg +1 -0
  738. package/svg/external-encoder.svg +1 -0
  739. package/svg/eye-focus.svg +1 -0
  740. package/svg/eye-magnifying-glass.svg +1 -0
  741. package/svg/facebook-logo.svg +1 -0
  742. package/svg/faceplate-container.svg +1 -0
  743. package/svg/fast-forward-filled.svg +1 -0
  744. package/svg/fast-forward.svg +1 -0
  745. package/svg/feedback-filled.svg +1 -0
  746. package/svg/feedback.svg +1 -0
  747. package/svg/filter-update.svg +1 -0
  748. package/svg/flag-alt-filled.svg +1 -0
  749. package/svg/flag-alt.svg +1 -0
  750. package/svg/flow-physically.svg +1 -0
  751. package/svg/folder-collapse-all.svg +1 -0
  752. package/svg/folder-expand-all.svg +1 -0
  753. package/svg/frames-filled.svg +1 -0
  754. package/svg/frames.svg +1 -0
  755. package/svg/ganttchart.svg +1 -0
  756. package/svg/github-logo.svg +1 -0
  757. package/svg/glasses-play.svg +1 -0
  758. package/svg/global-plant-filled.svg +1 -1
  759. package/svg/global-plant.svg +1 -1
  760. package/svg/globe-filled.svg +1 -1
  761. package/svg/globe-tag.svg +1 -0
  762. package/svg/graph-filled.svg +1 -0
  763. package/svg/graph.svg +1 -0
  764. package/svg/group-objects.svg +1 -0
  765. package/svg/hand-filled.svg +1 -0
  766. package/svg/hand.svg +1 -0
  767. package/svg/hat-man-filled.svg +1 -0
  768. package/svg/hat-man.svg +1 -0
  769. package/svg/heat-map-chart-filled.svg +1 -0
  770. package/svg/heat-map-chart.svg +1 -0
  771. package/svg/history-list.svg +1 -1
  772. package/svg/history.svg +1 -1
  773. package/svg/indicator-filled.svg +1 -0
  774. package/svg/indicator.svg +1 -0
  775. package/svg/ink-pen-add.svg +1 -0
  776. package/svg/ink-pen-filled.svg +1 -0
  777. package/svg/instagram-logo.svg +1 -0
  778. package/svg/interpreter-filled.svg +1 -0
  779. package/svg/interpreter.svg +1 -0
  780. package/svg/java-script.svg +1 -0
  781. package/svg/jigsaw-details-filled.svg +1 -0
  782. package/svg/jigsaw-details.svg +1 -0
  783. package/svg/jigsaw-filled.svg +1 -0
  784. package/svg/jigsaw.svg +1 -0
  785. package/svg/json-document-filled.svg +1 -0
  786. package/svg/json-document.svg +1 -0
  787. package/svg/key.svg +1 -0
  788. package/svg/keyboard-docked-bottom.svg +1 -0
  789. package/svg/keyboard-floating.svg +1 -0
  790. package/svg/keyboard-framed.svg +1 -0
  791. package/svg/keyboard.svg +1 -0
  792. package/svg/kinematics.svg +1 -0
  793. package/svg/kpi-filled.svg +1 -0
  794. package/svg/kpi.svg +1 -0
  795. package/svg/leading-axis-proxy.svg +1 -0
  796. package/svg/legal-circle-filled.svg +1 -0
  797. package/svg/legal-circle.svg +1 -0
  798. package/svg/limits-cancelled.svg +1 -0
  799. package/svg/limits-check.svg +1 -0
  800. package/svg/line-cap-flat.svg +1 -0
  801. package/svg/line-cap-round.svg +1 -0
  802. package/svg/line-cap-square.svg +1 -0
  803. package/svg/line-dash-dot-dot.svg +1 -0
  804. package/svg/line-dash-dot.svg +1 -0
  805. package/svg/line-dash.svg +1 -0
  806. package/svg/line-dot.svg +1 -0
  807. package/svg/line-solid.svg +1 -0
  808. package/svg/linechart.svg +1 -0
  809. package/svg/linkedin-logo.svg +1 -0
  810. package/svg/list-add.svg +1 -0
  811. package/svg/list-graphics-text.svg +1 -0
  812. package/svg/list-graphics.svg +1 -0
  813. package/svg/list-remove.svg +1 -0
  814. package/svg/list-text.svg +1 -0
  815. package/svg/lock-key-filled.svg +1 -1
  816. package/svg/lock-key.svg +1 -1
  817. package/svg/longer.svg +1 -0
  818. package/svg/machine-a-filled.svg +1 -0
  819. package/svg/machine-a.svg +1 -0
  820. package/svg/machine-b-filled.svg +1 -0
  821. package/svg/machine-b.svg +1 -0
  822. package/svg/machine-c-filled.svg +1 -0
  823. package/svg/machine-c.svg +1 -0
  824. package/svg/magnet-cancelled.svg +1 -0
  825. package/svg/magnet.svg +1 -0
  826. package/svg/mail-alarm-analog.svg +1 -0
  827. package/svg/mail-alarm-classes.svg +1 -0
  828. package/svg/mail-alarm-discrete.svg +1 -0
  829. package/svg/map-alt-1-filled.svg +1 -0
  830. package/svg/map-alt-1.svg +1 -0
  831. package/svg/map-alt-2-filled.svg +1 -0
  832. package/svg/map-alt-2.svg +1 -0
  833. package/svg/map-alt-3-filled.svg +1 -0
  834. package/svg/map-alt-3.svg +1 -0
  835. package/svg/mastodon-logo.svg +1 -0
  836. package/svg/measuring-input.svg +1 -0
  837. package/svg/media-player.svg +1 -0
  838. package/svg/mobile-phone-filled.svg +1 -0
  839. package/svg/mobile-phone.svg +1 -0
  840. package/svg/moon-filled.svg +1 -1
  841. package/svg/moon.svg +1 -1
  842. package/svg/move-layer-down.svg +1 -0
  843. package/svg/move-layer-up.svg +1 -0
  844. package/svg/movie-filled.svg +1 -0
  845. package/svg/movie.svg +1 -0
  846. package/svg/mqtt-filled.svg +1 -0
  847. package/svg/mqtt.svg +1 -0
  848. package/svg/music-note.svg +1 -0
  849. package/svg/namur-diagnostics-passive-filled.svg +1 -0
  850. package/svg/namur-diagnostics-passive.svg +1 -0
  851. package/svg/navigation-left-hide.svg +1 -0
  852. package/svg/navigation-right-hide.svg +1 -0
  853. package/svg/network-device-filled.svg +1 -0
  854. package/svg/network-device-play-filled.svg +1 -0
  855. package/svg/network-device-play.svg +1 -0
  856. package/svg/network-device.svg +1 -0
  857. package/svg/network-wired-wireless.svg +1 -0
  858. package/svg/network-wired.svg +1 -0
  859. package/svg/notebook-filled.svg +1 -0
  860. package/svg/notebook.svg +1 -0
  861. package/svg/objects-tree.svg +1 -0
  862. package/svg/objects.svg +1 -0
  863. package/svg/operate-plant-filled.svg +1 -1
  864. package/svg/operate-plant.svg +1 -1
  865. package/svg/package-filled.svg +1 -0
  866. package/svg/package.svg +1 -0
  867. package/svg/parameter.svg +1 -0
  868. package/svg/paste-filled.svg +1 -0
  869. package/svg/paste.svg +1 -1
  870. package/svg/pc-tower-settings-filled.svg +1 -0
  871. package/svg/pc-tower-settings.svg +1 -0
  872. package/svg/pdf-document-filled.svg +1 -0
  873. package/svg/pin-cancelled-filled.svg +1 -0
  874. package/svg/pin-cancelled.svg +1 -0
  875. package/svg/pin-filled.svg +1 -1
  876. package/svg/pin.svg +1 -1
  877. package/svg/plant-details-filled.svg +1 -0
  878. package/svg/plant-details.svg +1 -0
  879. package/svg/plant-handbook-filled.svg +1 -1
  880. package/svg/plant-handbook.svg +1 -1
  881. package/svg/plant-search-filled.svg +1 -0
  882. package/svg/plant-search.svg +1 -0
  883. package/svg/plant-security-filled.svg +1 -0
  884. package/svg/plant-security.svg +1 -1
  885. package/svg/plant-settings-filled.svg +1 -1
  886. package/svg/plant-settings.svg +1 -1
  887. package/svg/plc-device-tag.svg +1 -0
  888. package/svg/plc-device-user-data-type.svg +1 -0
  889. package/svg/plc-device.svg +1 -0
  890. package/svg/plc-tag.svg +1 -0
  891. package/svg/plc-user-data-type.svg +1 -0
  892. package/svg/plc.svg +1 -0
  893. package/svg/polarchart-filled.svg +1 -0
  894. package/svg/polarchart.svg +1 -0
  895. package/svg/process-control.svg +1 -0
  896. package/svg/project-arrow-diagonal-top-right.svg +1 -0
  897. package/svg/project-arrow-left.svg +1 -0
  898. package/svg/project-arrow-right.svg +1 -0
  899. package/svg/project-close.svg +1 -0
  900. package/svg/project-duplicate.svg +1 -0
  901. package/svg/project-history.svg +1 -0
  902. package/svg/project-server-filled.svg +1 -1
  903. package/svg/project-server.svg +1 -1
  904. package/svg/project-settings.svg +1 -0
  905. package/svg/project-simulation.svg +1 -0
  906. package/svg/projects-close.svg +1 -0
  907. package/svg/question-mark.svg +1 -0
  908. package/svg/record-filled.svg +1 -0
  909. package/svg/record.svg +1 -0
  910. package/svg/reddit-logo.svg +1 -0
  911. package/svg/reference-point-bottom-left.svg +1 -0
  912. package/svg/reference-point-bottom-right.svg +1 -0
  913. package/svg/reference-point-centered.svg +1 -0
  914. package/svg/reference-point-top-left.svg +1 -0
  915. package/svg/reference-point-top-right.svg +1 -0
  916. package/svg/refresh-arrow-down.svg +1 -0
  917. package/svg/remove-circle-filled.svg +1 -0
  918. package/svg/remove-circle.svg +1 -0
  919. package/svg/report-general.svg +1 -0
  920. package/svg/restore.svg +1 -0
  921. package/svg/rewind-filled.svg +1 -0
  922. package/svg/rewind.svg +1 -0
  923. package/svg/robotic-arm.svg +1 -0
  924. package/svg/robotic-gripper.svg +1 -0
  925. package/svg/roles-filled.svg +1 -0
  926. package/svg/roles.svg +1 -0
  927. package/svg/rotate-180.svg +1 -0
  928. package/svg/rotate-90-left.svg +1 -0
  929. package/svg/rotate-90-right.svg +1 -0
  930. package/svg/rotate.svg +1 -0
  931. package/svg/ruler-horizontal.svg +1 -0
  932. package/svg/ruler-vertical.svg +1 -0
  933. package/svg/rules-filled.svg +1 -0
  934. package/svg/rules.svg +1 -0
  935. package/svg/runtime-play.svg +1 -0
  936. package/svg/runtime-settings.svg +1 -1
  937. package/svg/runtime-stop.svg +1 -0
  938. package/svg/sankeychart.svg +1 -0
  939. package/svg/save-all.svg +1 -0
  940. package/svg/scale.svg +1 -0
  941. package/svg/screen-duplicate-filled.svg +1 -0
  942. package/svg/screen-duplicate.svg +1 -0
  943. package/svg/screen-pc-tower-filled.svg +1 -0
  944. package/svg/screen-pc-tower-settings-filled.svg +1 -0
  945. package/svg/screen-pc-tower-settings.svg +1 -0
  946. package/svg/screen-pc-tower.svg +1 -0
  947. package/svg/screen-settings-filled.svg +1 -0
  948. package/svg/screen-settings.svg +1 -0
  949. package/svg/screens-filled.svg +1 -0
  950. package/svg/screens.svg +1 -0
  951. package/svg/select-alt-filled.svg +1 -0
  952. package/svg/select-alt.svg +1 -0
  953. package/svg/send-backward.svg +1 -0
  954. package/svg/send-to-back.svg +1 -0
  955. package/svg/server-interface.svg +1 -0
  956. package/svg/shapes-filled.svg +1 -0
  957. package/svg/shapes.svg +1 -0
  958. package/svg/share-alt-filled.svg +1 -0
  959. package/svg/share-alt.svg +1 -0
  960. package/svg/shield-broken-filled.svg +1 -1
  961. package/svg/shield-broken.svg +1 -1
  962. package/svg/shift-filled.svg +1 -0
  963. package/svg/shift.svg +1 -0
  964. package/svg/shopping-cart-filled.svg +1 -1
  965. package/svg/shopping-cart.svg +1 -1
  966. package/svg/shorter.svg +1 -0
  967. package/svg/simulation-table.svg +1 -0
  968. package/svg/sms.svg +1 -0
  969. package/svg/spiderchart-filled.svg +1 -0
  970. package/svg/spiderchart.svg +1 -0
  971. package/svg/stacked-barchart.svg +1 -0
  972. package/svg/star-half-filled.svg +1 -0
  973. package/svg/stopwatch-filled.svg +1 -0
  974. package/svg/stopwatch.svg +1 -0
  975. package/svg/storage-filled.svg +1 -0
  976. package/svg/storage.svg +1 -0
  977. package/svg/subtitle-filled.svg +1 -0
  978. package/svg/subtitle.svg +1 -0
  979. package/svg/sun-cloud-filled.svg +1 -0
  980. package/svg/sun-cloud.svg +1 -0
  981. package/svg/sunrise-filled.svg +1 -0
  982. package/svg/sunrise.svg +1 -0
  983. package/svg/sunset-filled.svg +1 -0
  984. package/svg/sunset.svg +1 -0
  985. package/svg/table-tag.svg +1 -0
  986. package/svg/tag-arrow-left-filled.svg +1 -0
  987. package/svg/tag-arrow-left.svg +1 -0
  988. package/svg/tag-arrow-right-filled.svg +1 -0
  989. package/svg/tag-arrow-right.svg +1 -0
  990. package/svg/tag-circle-arrow-down-filled.svg +1 -0
  991. package/svg/tag-circle-arrow-down.svg +1 -0
  992. package/svg/tag-connection-filled.svg +1 -0
  993. package/svg/tag-connection.svg +1 -0
  994. package/svg/tag-eye-filled.svg +1 -0
  995. package/svg/tag-eye.svg +1 -0
  996. package/svg/tag-filled.svg +1 -1
  997. package/svg/tag-logging-filled.svg +1 -0
  998. package/svg/tag-logging.svg +1 -0
  999. package/svg/tag-plus-filled.svg +1 -1
  1000. package/svg/tag-plus.svg +1 -1
  1001. package/svg/tag.svg +1 -1
  1002. package/svg/telegram-logo.svg +1 -0
  1003. package/svg/text-alginment-center.svg +1 -0
  1004. package/svg/text-alginment-justified.svg +1 -0
  1005. package/svg/text-alginment-left.svg +1 -0
  1006. package/svg/text-alginment-right.svg +1 -0
  1007. package/svg/thermometer-filled.svg +1 -0
  1008. package/svg/threads-logo.svg +1 -0
  1009. package/svg/thumb-down-filled.svg +1 -0
  1010. package/svg/thumb-down.svg +1 -0
  1011. package/svg/thumb-up-filled.svg +1 -0
  1012. package/svg/thumb-up.svg +1 -0
  1013. package/svg/ticket-filled.svg +1 -0
  1014. package/svg/ticket.svg +1 -0
  1015. package/svg/tiktok-logo.svg +1 -0
  1016. package/svg/tiles-filled.svg +1 -0
  1017. package/svg/tiles.svg +1 -0
  1018. package/svg/time-zone-filled.svg +1 -0
  1019. package/svg/time-zone.svg +1 -0
  1020. package/svg/trace-eye.svg +1 -0
  1021. package/svg/train-filled.svg +1 -0
  1022. package/svg/train.svg +1 -0
  1023. package/svg/trend-companion.svg +1 -0
  1024. package/svg/txt-document-filled.svg +1 -0
  1025. package/svg/ungroup-objects.svg +1 -0
  1026. package/svg/unlock-plant-filled.svg +1 -1
  1027. package/svg/unlock-plant.svg +1 -1
  1028. package/svg/user-data-types.svg +1 -0
  1029. package/svg/user-group.svg +1 -0
  1030. package/svg/user-key.svg +1 -0
  1031. package/svg/user-manual-filled.svg +1 -0
  1032. package/svg/user-manual.svg +1 -0
  1033. package/svg/user-pen.svg +1 -0
  1034. package/svg/user-reading-filled.svg +1 -0
  1035. package/svg/user-reading.svg +1 -1
  1036. package/svg/variable.svg +1 -0
  1037. package/svg/video-camera-filled.svg +1 -0
  1038. package/svg/video-camera-record-filled.svg +1 -0
  1039. package/svg/video-camera-record.svg +1 -0
  1040. package/svg/video-camera.svg +1 -0
  1041. package/svg/viva-engage-logo.svg +1 -0
  1042. package/svg/voltage-filled.svg +1 -0
  1043. package/svg/voltage.svg +1 -0
  1044. package/svg/watch-table.svg +1 -0
  1045. package/svg/web-browser-screen.svg +1 -0
  1046. package/svg/wechat-logo.svg +1 -0
  1047. package/svg/weibo-logo.svg +1 -0
  1048. package/svg/wlan-strength-1-lock.svg +1 -0
  1049. package/svg/wlan-strength-2-lock.svg +1 -0
  1050. package/svg/wlan-strength-3-lock.svg +1 -0
  1051. package/svg/wlan-warning.svg +1 -0
  1052. package/svg/x-logo.svg +1 -0
  1053. package/svg/xls-document-filled.svg +1 -0
  1054. package/dist/cjs/icon-7938bd17.js.map +0 -1
  1055. package/dist/cjs/index-12b9d30e.js.map +0 -1
  1056. package/dist/esm/icon-7346da2f.js.map +0 -1
  1057. package/dist/esm/index-05493327.js.map +0 -1
  1058. package/dist/ix-icons/p-07c8bd06.entry.js +0 -2
  1059. package/dist/ix-icons/p-20132e89.js +0 -3
  1060. package/dist/ix-icons/p-20132e89.js.map +0 -1
  1061. package/dist/ix-icons/p-daba5432.js +0 -2
  1062. package/dist/ix-icons/p-daba5432.js.map +0 -1
  1063. package/dist/ix-icons/svg/checkbox-component-checked.svg +0 -1
  1064. package/dist/ix-icons/svg/checkbox-component-mixed.svg +0 -1
  1065. package/dist/ix-icons/svg/checkbox-component-unchecked.svg +0 -1
  1066. package/dist/ix-icons/svg/corner-arrow-up-left.svg +0 -1
  1067. package/dist/ix-icons/svg/filter-outline.svg +0 -1
  1068. package/dist/ix-icons/svg/folder-new-outline.svg +0 -1
  1069. package/dist/ix-icons/svg/folder-open-outline.svg +0 -1
  1070. package/dist/ix-icons/svg/folder-outline.svg +0 -1
  1071. package/dist/ix-icons/svg/full-screeen-exit.svg +0 -1
  1072. package/dist/ix-icons/svg/full-screeen.svg +0 -1
  1073. package/dist/ix-icons/svg/landing-page-logo.svg +0 -1
  1074. package/dist/ix-icons/svg/location-outline.svg +0 -1
  1075. package/dist/ix-icons/svg/new-indicator-filled.svg +0 -1
  1076. package/dist/ix-icons/svg/new-indicator.svg +0 -1
  1077. package/dist/ix-icons/svg/plant-outline.svg +0 -1
  1078. package/dist/ix-icons/svg/user-reading-reading.svg +0 -1
  1079. package/dist/ix-icons/svg/validate.svg +0 -1
  1080. package/svg/checkbox-component-checked.svg +0 -1
  1081. package/svg/checkbox-component-mixed.svg +0 -1
  1082. package/svg/checkbox-component-unchecked.svg +0 -1
  1083. package/svg/corner-arrow-up-left.svg +0 -1
  1084. package/svg/filter-outline.svg +0 -1
  1085. package/svg/folder-new-outline.svg +0 -1
  1086. package/svg/folder-open-outline.svg +0 -1
  1087. package/svg/folder-outline.svg +0 -1
  1088. package/svg/full-screeen-exit.svg +0 -1
  1089. package/svg/full-screeen.svg +0 -1
  1090. package/svg/landing-page-logo.svg +0 -1
  1091. package/svg/location-outline.svg +0 -1
  1092. package/svg/new-indicator-filled.svg +0 -1
  1093. package/svg/new-indicator.svg +0 -1
  1094. package/svg/plant-outline.svg +0 -1
  1095. package/svg/user-reading-reading.svg +0 -1
  1096. package/svg/validate.svg +0 -1
  1097. /package/dist/ix-icons/{p-07c8bd06.entry.js.map → p-08f117ce.entry.js.map} +0 -0
  1098. /package/dist/ix-icons/svg/{battery-bolt.svg → battery-charge.svg} +0 -0
  1099. /package/dist/ix-icons/svg/{battery-upright-bolt.svg → battery-upright-charge.svg} +0 -0
  1100. /package/svg/{battery-bolt.svg → battery-charge.svg} +0 -0
  1101. /package/svg/{battery-upright-bolt.svg → battery-upright-charge.svg} +0 -0
package/README.md CHANGED
@@ -12,53 +12,67 @@ SPDX-License-Identifier: MIT
12
12
 
13
13
  ## Usage
14
14
 
15
- ### Installation
15
+ ### With Siemens Industrial Experience design system
16
16
 
17
- First install the package `@siemens/ix-icons` in your project (e.g. `npm install --save @siemens/ix-icons`).
17
+ If you are also using the library [Siemens Industrial Experience](https://github.com/siemens/ix/), no additional project setup will be neccessary. The packages `@siemens/ix-angular`, `@siemens/ix-react` or `@siemens/ix-vue` will take care of setting up the icon library for you.
18
18
 
19
- Then load the icon component:
19
+ ### Without Siemens Industrial Experience design system
20
20
 
21
- ```javascript
22
- import { defineCustomElements } from '@siemens/ix-icons/loader';
21
+ If you want to use `@siemens/ix-icons` without `@siemens/ix` you need to follow these steps:
23
22
 
24
- (async () => {
25
- await defineCustomElements();
26
- })();
27
- ```
23
+ #### Using CDN
28
24
 
29
- Icons are loaded once and then cached for the entire duration of the single-page application.
30
- Additionally, icons can be preloaded to ensure they are immediately available from the cache when needed later:
25
+ Place the following `<script>` near the end of your page, right before the closing </body> tag.
31
26
 
32
- ```javascript
33
- import { loadIcons } from '@siemens/ix-icons';
34
-
35
- const icons = [
36
- 'star',
37
- 'star-filled',
38
- // ...
39
- ];
40
-
41
- loadIcons(icons)
27
+ ```html
28
+ <script type="module" src="https://cdn.jsdelivr.net/npm/@siemens/ix-icons@%5E3.0.0/dist/ix-icons/ix-icons.esm.js"></script>
29
+ <script nomodule src="https://cdn.jsdelivr.net/npm/@siemens/ix-icons@%5E3.0.0/dist/ix-icons/ix-icons.js"></script>
42
30
  ```
43
31
 
44
- ### Angular / Web Components
32
+ Now you can render icons in you applicaton:
45
33
 
46
34
  ```html
47
- <ix-icon name="rocket"></ix-icon>
35
+ <ix-icon name="star"></ix-icon>
48
36
  ```
49
37
 
50
- ### React and Vue
38
+ ### Using a package manager like `npm`/`pnpm`/`yarn`
51
39
 
52
- ```tsx
53
- import { rocket } from '@siemens/ix-icons/icons';
40
+ First install the package `@siemens/ix-icons@latest` in your project (e.g. `npm install --save @siemens/ix-icons`).
41
+
42
+ Then load the icon component:
43
+
44
+ ```javascript
45
+ import { defineCustomElements } from '@siemens/ix-icons/loader';
54
46
 
55
- <ix-icon name={rocket}></ix-icon>;
47
+ // Register Web Component <ix-icon></ix-icon>
48
+ defineCustomElements();
56
49
  ```
57
50
 
58
- ### Use `ix-icon` component with custom svg's
51
+ ### Prepare your project
52
+
53
+ 1. **Copy SVG Files:**
54
+ Copy all SVG files located under `node_modules/@siemens/ix-icons/svg` to an asset folder in your project. This allows the `ix-icon` component to fetch the images.
55
+
56
+ 2. **Alternative Method:**
57
+ Alternatively, you can use the `addIcons` function to load specific icons directly in your code. For example:
58
+
59
+ ```javascript
60
+ import { addIcons } from '@siemens/ix-icons';
61
+ import { iconStar } from '@siemens/ix-icons/icons';
62
+
63
+ addIcons({ iconStar });
64
+ ```
65
+
66
+ ```html
67
+ <ix-icon name="star"></ix-icon>
68
+ ```
69
+
70
+ You only need to add the same icon once. Additional calls to `addIcons` will not add redundant copies of the same icons to the collection.
71
+
72
+ ### Use the `ix-icon` component with custom SVG's
59
73
 
60
74
  ```tsx
61
- <ix-icon name="/your/asset/path/my-icon.svg"></ix-icon>;
75
+ <ix-icon name="/your/asset/path/my-icon.svg"></ix-icon>
62
76
  ```
63
77
 
64
78
  ## Development
@@ -81,6 +95,6 @@ Contributions, issues and feature requests are welcome!
81
95
 
82
96
  ## 📝 License
83
97
 
84
- Copyright © 2019–2023 [Siemens AG](https://www.siemens.com/).
98
+ Copyright © 2019–2025 [Siemens AG](https://www.siemens.com/).
85
99
 
86
100
  This project is MIT licensed.
@@ -111,6 +111,10 @@ async function resolveIcon(iconName) {
111
111
  return await loadIcon(iconName);
112
112
  }
113
113
  async function loadIcon(iconName) {
114
+ const cache = getIconCacheMap();
115
+ if (cache.has(iconName)) {
116
+ return cache.get(iconName);
117
+ }
114
118
  if (isValidUrl(iconName)) {
115
119
  try {
116
120
  return fetchSVG(iconName);
@@ -126,8 +130,31 @@ async function loadIcon(iconName) {
126
130
  throw Error(`Could not resolve ${iconName}`);
127
131
  }
128
132
  }
129
- function loadIcons(icons) {
130
- icons.map(icon => loadIcon(icon));
133
+ function removePrefix(name, prefix) {
134
+ if (name.startsWith(prefix)) {
135
+ name = name.slice(prefix.length);
136
+ return name.replace(/^(\w)/, (_match, p1) => p1.toLowerCase());
137
+ }
138
+ return name;
139
+ }
140
+ function addIcons(icons) {
141
+ Object.keys(icons).forEach(name => {
142
+ const icon = icons[name];
143
+ name = removePrefix(name, 'icon');
144
+ addIconToCache(name, icon);
145
+ });
146
+ }
147
+ function addIconToCache(name, icon) {
148
+ const cache = getIconCacheMap();
149
+ if (cache.has(name)) {
150
+ console.warn(`Icon name '${name}' already in cache. Overwritting with new icon data.`);
151
+ }
152
+ const svg = parseSVGDataContent(icon);
153
+ cache.set(name, svg);
154
+ const toKebabCase = name.replace(/([a-z0-9]|(?=[A-Z]))([A-Z0-9])/g, '$1-$2').toLowerCase();
155
+ if (name != toKebabCase) {
156
+ cache.set(toKebabCase, svg);
157
+ }
131
158
  }
132
159
 
133
160
  const iconCss = ":host{display:inline-flex;height:1.5rem;width:1.5rem;min-height:1.5rem;min-width:1.5rem;color:inherit}:host .svg-container{display:block;position:relative;width:100%;height:100%}:host .svg-container svg{display:block;position:relative;height:100%;width:100%}:host .svg-container svg,:host .svg-container svg[fill],:host .svg-container svg [fill]{fill:currentColor !important}:host(.size-12){height:0.75rem;width:0.75rem;min-height:0.75rem;min-width:0.75rem}:host(.size-16){height:1rem;width:1rem;min-height:1rem;min-width:1rem}:host(.size-32){height:2rem;width:2rem;min-height:2rem;min-width:2rem}";
@@ -139,14 +166,10 @@ const Icon = /*@__PURE__*/ proxyCustomElement(class Icon extends HTMLElement {
139
166
  super();
140
167
  this.__registerHost();
141
168
  this.__attachShadow();
142
- this.size = undefined;
143
- this.color = undefined;
144
- this.name = undefined;
145
169
  this.lazyLoading = false;
146
- this.svgContent = undefined;
147
170
  this.isVisible = false;
148
171
  }
149
- connectedCallback() {
172
+ componentWillLoad() {
150
173
  this.waitForRendering(() => {
151
174
  this.isVisible = true;
152
175
  this.loadIconContent();
@@ -220,6 +243,6 @@ function defineCustomElement() {
220
243
  } });
221
244
  }
222
245
 
223
- export { Icon as I, defineCustomElement as d, loadIcons as l };
246
+ export { Icon as I, addIcons as a, addIconToCache as b, defineCustomElement as d };
224
247
 
225
248
  //# sourceMappingURL=icon.js.map
@@ -1 +1 @@
1
- {"file":"icon.js","mappings":"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","names":[],"sources":["src/components/icon/meta-tag.ts","src/components/icon/resolveIcon.ts","src/components/icon/icon.scss?tag=ix-icon&encapsulation=shadow","src/components/icon/icon.tsx"],"sourcesContent":["/**\n * Provide custom SVG path for icons\n *\n * <meta name=\"ix-icons:path\" content=\"/build/svg\" />\n */\nexport function getCustomAssetUrl() {\n const assetPath = document.querySelector(\"meta[name='ix-icons:path']\");\n if (assetPath) {\n const path = assetPath.getAttribute('content');\n return path;\n }\n\n return false;\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { getAssetPath, setAssetPath } from '@stencil/core';\nimport { getCustomAssetUrl } from './meta-tag';\n\ndeclare global {\n interface Window {\n IxIcons: any;\n }\n}\n\nlet fetchCache: Map<string, string>;\nconst requests = new Map<string, Promise<string>>();\nlet parser = null;\n\nexport const getIconCacheMap = (): Map<string, string> => {\n if (typeof window === 'undefined') {\n return new Map();\n }\n\n if (!fetchCache) {\n window.IxIcons = window.IxIcons || {};\n fetchCache = window.IxIcons.map = window.IxIcons.map || new Map();\n }\n\n return fetchCache;\n};\n\nexport const isSvgDataUrl = (url: string) => {\n if (!url) {\n return false;\n }\n\n if (typeof url !== 'string') {\n return false;\n }\n\n return url.startsWith('data:image/svg+xml');\n};\n\nexport function parseSVGDataContent(content: string) {\n if (typeof window['DOMParser'] === 'undefined') {\n console.warn('DOMParser not supported by your browser.');\n return;\n }\n\n if (parser === null) {\n parser = new window['DOMParser']();\n }\n\n const svgDocument = parser.parseFromString(content, 'text/html');\n const svgElement = svgDocument.querySelector('svg') as HTMLElement;\n\n if (!svgElement) {\n throw Error('No valid svg data provided');\n }\n\n return svgElement.outerHTML;\n}\n\nasync function fetchSVG(url: string) {\n const cache = getIconCacheMap();\n\n if (cache.has(url)) {\n return cache.get(url);\n }\n\n if (requests.has(url)) {\n return requests.get(url);\n }\n\n const fetching = fetch(url).then(async response => {\n const responseText = await response.text();\n\n if (!response.ok) {\n console.error(responseText);\n throw Error(responseText);\n }\n\n const svgContent = parseSVGDataContent(responseText);\n cache.set(url, svgContent);\n\n requests.delete(url);\n\n return svgContent;\n });\n\n requests.set(url, fetching);\n return fetching;\n}\n\nconst urlRegex = /^(?:(?:https?|ftp):\\/\\/)?(?:\\S+(?::\\S*)?@)?(?:www\\.)?(?:\\S+\\.\\S+)(?:\\S*)$/i;\n\nfunction isValidUrl(url: string) {\n return urlRegex.test(url);\n}\n\nexport function getIconUrl(name: string) {\n const customAssetUrl = getCustomAssetUrl();\n\n if (customAssetUrl) {\n return `${customAssetUrl}/${name}.svg`;\n }\n\n let url: string = `svg/${name}.svg`;\n\n try {\n url = getAssetPath(url);\n } catch (error) {\n console.warn(error);\n setAssetPath(`${window.location.origin}/`);\n url = getAssetPath(url);\n }\n\n return url;\n}\n\nexport async function resolveIcon(iconName: string) {\n if (!iconName) {\n throw Error('No icon name provided');\n }\n\n if (isSvgDataUrl(iconName)) {\n return parseSVGDataContent(iconName);\n }\n\n return await loadIcon(iconName);\n}\n\nasync function loadIcon(iconName: string) {\n if (isValidUrl(iconName)) {\n try {\n return fetchSVG(iconName);\n } catch (error) {\n throw error;\n }\n }\n\n try {\n return fetchSVG(getIconUrl(iconName));\n } catch (error) {\n throw Error(`Could not resolve ${iconName}`);\n }\n}\n\nexport function loadIcons(icons: string[]) {\n icons.map(icon => loadIcon(icon));\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@mixin size($size) {\n height: $size;\n width: $size;\n min-height: $size;\n min-width: $size;\n}\n\n:host {\n display: inline-flex;\n @include size(1.5rem);\n color: inherit;\n\n .svg-container {\n display: block;\n position: relative;\n width: 100%;\n height: 100%;\n\n svg {\n display: block;\n position: relative;\n height: 100%;\n width: 100%;\n }\n\n svg,\n svg[fill],\n svg [fill] {\n fill: currentColor !important;\n }\n }\n}\n\n:host(.size-12) {\n @include size(0.75rem);\n}\n\n:host(.size-16) {\n @include size(1rem);\n}\n\n:host(.size-32) {\n @include size(2rem);\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Component, h, Host, Prop, State, Watch, Element, Build } from '@stencil/core';\nimport { parseSVGDataContent, resolveIcon } from './resolveIcon';\n\nconst iconMissingSymbol =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'><path fill-rule='evenodd' d='M384,0 L384,384 L0,384 L0,0 L384,0 Z M192,207.085 L57.751,341.333 L326.248,341.333 L192,207.085 Z M42.666,57.751 L42.666,326.248 L176.915,192 L42.666,57.751 Z M341.333,57.751 L207.085,192 L341.333,326.248 L341.333,57.751 Z M326.248,42.666 L57.751,42.666 L192,176.915 L326.248,42.666 Z' transform='translate(64 64)'/></svg>\";\n\n@Component({\n tag: 'ix-icon',\n styleUrl: 'icon.scss',\n shadow: true,\n assetsDirs: ['svg'],\n})\nexport class Icon {\n @Element() hostElement: HTMLIxIconElement;\n\n /**\n * Size of the icon\n */\n @Prop() size: '12' | '16' | '24' | '32';\n\n /**\n * Color of the icon\n */\n @Prop() color: string;\n\n /**\n * Use one of our defined icon names e.g. `copy`\n *\n * https://ix.siemens.io/docs/icon-library/icons\n *\n * or the import variant\n *\n * ```\n * import { rocket } from '@siemens/ix-icons/icons';\n *\n * <ix-icon name={rocket}></ix-icon>\n * ```\n */\n @Prop() name: string;\n\n @Prop() lazyLoading = false;\n\n @State() svgContent?: string;\n @State() isVisible = false;\n\n connectedCallback() {\n this.waitForRendering(() => {\n this.isVisible = true;\n this.loadIconContent();\n });\n }\n\n @Watch('name')\n async loadIconContent() {\n try {\n this.svgContent = await resolveIcon(this.name);\n } catch (error) {\n this.svgContent = parseSVGDataContent(iconMissingSymbol);\n }\n }\n\n private waitForRendering(onRender: () => void) {\n if (Build.isBrowser && this.lazyLoading && typeof window !== 'undefined' && (window as any).IntersectionObserver) {\n const observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n onRender();\n observer.disconnect();\n }\n });\n },\n {\n rootMargin: '25px',\n },\n );\n\n observer.observe(this.hostElement);\n } else {\n onRender();\n }\n }\n\n render() {\n const style: {\n [key: string]: string;\n } = {};\n\n if (this.color) {\n style['color'] = `var(--theme-${this.color})`;\n }\n\n return (\n <Host\n style={style}\n class={{\n ['size-12']: this.size === '12',\n ['size-16']: this.size === '16',\n ['size-24']: this.size === '24',\n ['size-32']: this.size === '32',\n }}\n >\n <div class={'svg-container'} innerHTML={this.svgContent}></div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"icon.js","mappings":"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","names":[],"sources":["src/components/icon/meta-tag.ts","src/components/icon/resolveIcon.ts","src/components/icon/icon.scss?tag=ix-icon&encapsulation=shadow","src/components/icon/icon.tsx"],"sourcesContent":["/**\n * Provide custom SVG path for icons\n *\n * <meta name=\"ix-icons:path\" content=\"/build/svg\" />\n */\nexport function getCustomAssetUrl() {\n const assetPath = document.querySelector(\"meta[name='ix-icons:path']\");\n if (assetPath) {\n const path = assetPath.getAttribute('content');\n return path;\n }\n\n return false;\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { getAssetPath, setAssetPath } from '@stencil/core';\nimport { getCustomAssetUrl } from './meta-tag';\n\ndeclare global {\n interface Window {\n IxIcons: any;\n }\n}\n\nlet fetchCache: Map<string, string>;\nconst requests = new Map<string, Promise<string>>();\nlet parser = null;\n\nexport const getIconCacheMap = (): Map<string, string> => {\n if (typeof window === 'undefined') {\n return new Map();\n }\n\n if (!fetchCache) {\n window.IxIcons = window.IxIcons || {};\n fetchCache = window.IxIcons.map = window.IxIcons.map || new Map();\n }\n\n return fetchCache;\n};\n\nexport const isSvgDataUrl = (url: string) => {\n if (!url) {\n return false;\n }\n\n if (typeof url !== 'string') {\n return false;\n }\n\n return url.startsWith('data:image/svg+xml');\n};\n\nexport function parseSVGDataContent(content: string) {\n if (typeof window['DOMParser'] === 'undefined') {\n console.warn('DOMParser not supported by your browser.');\n return;\n }\n\n if (parser === null) {\n parser = new window['DOMParser']();\n }\n\n const svgDocument = parser.parseFromString(content, 'text/html');\n const svgElement = svgDocument.querySelector('svg') as HTMLElement;\n\n if (!svgElement) {\n throw Error('No valid svg data provided');\n }\n\n return svgElement.outerHTML;\n}\n\nasync function fetchSVG(url: string) {\n const cache = getIconCacheMap();\n\n if (cache.has(url)) {\n return cache.get(url);\n }\n\n if (requests.has(url)) {\n return requests.get(url);\n }\n\n const fetching = fetch(url).then(async response => {\n const responseText = await response.text();\n\n if (!response.ok) {\n console.error(responseText);\n throw Error(responseText);\n }\n\n const svgContent = parseSVGDataContent(responseText);\n cache.set(url, svgContent);\n\n requests.delete(url);\n\n return svgContent;\n });\n\n requests.set(url, fetching);\n return fetching;\n}\n\nconst urlRegex = /^(?:(?:https?|ftp):\\/\\/)?(?:\\S+(?::\\S*)?@)?(?:www\\.)?(?:\\S+\\.\\S+)(?:\\S*)$/i;\n\nfunction isValidUrl(url: string) {\n return urlRegex.test(url);\n}\n\nexport function getIconUrl(name: string) {\n const customAssetUrl = getCustomAssetUrl();\n\n if (customAssetUrl) {\n return `${customAssetUrl}/${name}.svg`;\n }\n\n let url: string = `svg/${name}.svg`;\n\n try {\n url = getAssetPath(url);\n } catch (error) {\n console.warn(error);\n setAssetPath(`${window.location.origin}/`);\n url = getAssetPath(url);\n }\n\n return url;\n}\n\nexport async function resolveIcon(iconName: string) {\n if (!iconName) {\n throw Error('No icon name provided');\n }\n\n if (isSvgDataUrl(iconName)) {\n return parseSVGDataContent(iconName);\n }\n\n return await loadIcon(iconName);\n}\n\nasync function loadIcon(iconName: string) {\n const cache = getIconCacheMap();\n\n if (cache.has(iconName)) {\n return cache.get(iconName);\n }\n\n if (isValidUrl(iconName)) {\n try {\n return fetchSVG(iconName);\n } catch (error) {\n throw error;\n }\n }\n\n try {\n return fetchSVG(getIconUrl(iconName));\n } catch (error) {\n throw Error(`Could not resolve ${iconName}`);\n }\n}\n\nfunction removePrefix(name: string, prefix: string) {\n if (name.startsWith(prefix)) {\n name = name.slice(prefix.length);\n return name.replace(/^(\\w)/, (_match, p1) => p1.toLowerCase());\n }\n\n return name;\n}\n\nexport function addIcons(icons: { [name: string]: any }) {\n Object.keys(icons).forEach(name => {\n const icon = icons[name];\n name = removePrefix(name, 'icon');\n\n addIconToCache(name, icon);\n });\n}\n\nexport function addIconToCache(name: string, icon: string) {\n const cache = getIconCacheMap();\n\n if (cache.has(name)) {\n console.warn(`Icon name '${name}' already in cache. Overwritting with new icon data.`);\n }\n\n const svg = parseSVGDataContent(icon);\n\n cache.set(name, svg);\n\n const toKebabCase = name.replace(/([a-z0-9]|(?=[A-Z]))([A-Z0-9])/g, '$1-$2').toLowerCase();\n\n if (name != toKebabCase) {\n cache.set(toKebabCase, svg);\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@mixin size($size) {\n height: $size;\n width: $size;\n min-height: $size;\n min-width: $size;\n}\n\n:host {\n display: inline-flex;\n @include size(1.5rem);\n color: inherit;\n\n .svg-container {\n display: block;\n position: relative;\n width: 100%;\n height: 100%;\n\n svg {\n display: block;\n position: relative;\n height: 100%;\n width: 100%;\n }\n\n svg,\n svg[fill],\n svg [fill] {\n fill: currentColor !important;\n }\n }\n}\n\n:host(.size-12) {\n @include size(0.75rem);\n}\n\n:host(.size-16) {\n @include size(1rem);\n}\n\n:host(.size-32) {\n @include size(2rem);\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Component, h, Host, Prop, State, Watch, Element, Build } from '@stencil/core';\nimport { parseSVGDataContent, resolveIcon } from './resolveIcon';\n\nconst iconMissingSymbol =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'><path fill-rule='evenodd' d='M384,0 L384,384 L0,384 L0,0 L384,0 Z M192,207.085 L57.751,341.333 L326.248,341.333 L192,207.085 Z M42.666,57.751 L42.666,326.248 L176.915,192 L42.666,57.751 Z M341.333,57.751 L207.085,192 L341.333,326.248 L341.333,57.751 Z M326.248,42.666 L57.751,42.666 L192,176.915 L326.248,42.666 Z' transform='translate(64 64)'/></svg>\";\n\n@Component({\n tag: 'ix-icon',\n styleUrl: 'icon.scss',\n shadow: true,\n assetsDirs: ['svg'],\n})\nexport class Icon {\n @Element() hostElement: HTMLIxIconElement;\n\n /**\n * Size of the icon\n */\n @Prop() size: '12' | '16' | '24' | '32';\n\n /**\n * Color of the icon\n */\n @Prop() color: string;\n\n /**\n * Use one of our defined icon names e.g. `copy`\n *\n * https://ix.siemens.io/docs/icon-library/icons\n *\n * or the import variant\n *\n * ```\n * import { rocket } from '@siemens/ix-icons/icons';\n *\n * <ix-icon name={rocket}></ix-icon>\n * ```\n */\n @Prop() name: string;\n\n @Prop() lazyLoading = false;\n\n @State() svgContent?: string;\n @State() isVisible = false;\n\n componentWillLoad() {\n this.waitForRendering(() => {\n this.isVisible = true;\n this.loadIconContent();\n });\n }\n\n @Watch('name')\n async loadIconContent() {\n try {\n this.svgContent = await resolveIcon(this.name);\n } catch (error) {\n this.svgContent = parseSVGDataContent(iconMissingSymbol);\n }\n }\n\n private waitForRendering(onRender: () => void) {\n if (Build.isBrowser && this.lazyLoading && typeof window !== 'undefined' && (window as any).IntersectionObserver) {\n const observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n onRender();\n observer.disconnect();\n }\n });\n },\n {\n rootMargin: '25px',\n },\n );\n\n observer.observe(this.hostElement);\n } else {\n onRender();\n }\n }\n\n render() {\n const style: {\n [key: string]: string;\n } = {};\n\n if (this.color) {\n style['color'] = `var(--theme-${this.color})`;\n }\n\n return (\n <Host\n style={style}\n class={{\n ['size-12']: this.size === '12',\n ['size-16']: this.size === '16',\n ['size-24']: this.size === '24',\n ['size-32']: this.size === '32',\n }}\n >\n <div class={'svg-container'} innerHTML={this.svgContent}></div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  export { getAssetPath, setAssetPath, setNonce, setPlatformOptions } from '@stencil/core/internal/client';
2
- export { I as Icon, d as defineCustomElement, l as loadIcons } from './icon.js';
2
+ export { I as Icon, b as addIconToCache, a as addIcons, d as defineCustomElement } from './icon.js';
3
3
 
4
4
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const index = require('./index-12b9d30e.js');
3
+ const index = require('./index-f6043fa9.js');
4
4
 
5
5
  /**
6
6
  * Provide custom SVG path for icons
@@ -113,6 +113,10 @@ async function resolveIcon(iconName) {
113
113
  return await loadIcon(iconName);
114
114
  }
115
115
  async function loadIcon(iconName) {
116
+ const cache = getIconCacheMap();
117
+ if (cache.has(iconName)) {
118
+ return cache.get(iconName);
119
+ }
116
120
  if (isValidUrl(iconName)) {
117
121
  try {
118
122
  return fetchSVG(iconName);
@@ -128,8 +132,31 @@ async function loadIcon(iconName) {
128
132
  throw Error(`Could not resolve ${iconName}`);
129
133
  }
130
134
  }
131
- function loadIcons(icons) {
132
- icons.map(icon => loadIcon(icon));
135
+ function removePrefix(name, prefix) {
136
+ if (name.startsWith(prefix)) {
137
+ name = name.slice(prefix.length);
138
+ return name.replace(/^(\w)/, (_match, p1) => p1.toLowerCase());
139
+ }
140
+ return name;
141
+ }
142
+ function addIcons(icons) {
143
+ Object.keys(icons).forEach(name => {
144
+ const icon = icons[name];
145
+ name = removePrefix(name, 'icon');
146
+ addIconToCache(name, icon);
147
+ });
148
+ }
149
+ function addIconToCache(name, icon) {
150
+ const cache = getIconCacheMap();
151
+ if (cache.has(name)) {
152
+ console.warn(`Icon name '${name}' already in cache. Overwritting with new icon data.`);
153
+ }
154
+ const svg = parseSVGDataContent(icon);
155
+ cache.set(name, svg);
156
+ const toKebabCase = name.replace(/([a-z0-9]|(?=[A-Z]))([A-Z0-9])/g, '$1-$2').toLowerCase();
157
+ if (name != toKebabCase) {
158
+ cache.set(toKebabCase, svg);
159
+ }
133
160
  }
134
161
 
135
162
  const iconCss = ":host{display:inline-flex;height:1.5rem;width:1.5rem;min-height:1.5rem;min-width:1.5rem;color:inherit}:host .svg-container{display:block;position:relative;width:100%;height:100%}:host .svg-container svg{display:block;position:relative;height:100%;width:100%}:host .svg-container svg,:host .svg-container svg[fill],:host .svg-container svg [fill]{fill:currentColor !important}:host(.size-12){height:0.75rem;width:0.75rem;min-height:0.75rem;min-width:0.75rem}:host(.size-16){height:1rem;width:1rem;min-height:1rem;min-width:1rem}:host(.size-32){height:2rem;width:2rem;min-height:2rem;min-width:2rem}";
@@ -139,14 +166,10 @@ const iconMissingSymbol = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org
139
166
  const Icon = class {
140
167
  constructor(hostRef) {
141
168
  index.registerInstance(this, hostRef);
142
- this.size = undefined;
143
- this.color = undefined;
144
- this.name = undefined;
145
169
  this.lazyLoading = false;
146
- this.svgContent = undefined;
147
170
  this.isVisible = false;
148
171
  }
149
- connectedCallback() {
172
+ componentWillLoad() {
150
173
  this.waitForRendering(() => {
151
174
  this.isVisible = true;
152
175
  this.loadIconContent();
@@ -199,6 +222,7 @@ const Icon = class {
199
222
  Icon.style = IxIconStyle0;
200
223
 
201
224
  exports.Icon = Icon;
202
- exports.loadIcons = loadIcons;
225
+ exports.addIconToCache = addIconToCache;
226
+ exports.addIcons = addIcons;
203
227
 
204
- //# sourceMappingURL=icon-7938bd17.js.map
228
+ //# sourceMappingURL=icon-88309350.js.map
@@ -0,0 +1 @@
1
+ {"file":"icon-88309350.js","mappings":"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","names":["getAssetPath","setAssetPath","h","Host"],"sources":["src/components/icon/meta-tag.ts","src/components/icon/resolveIcon.ts","src/components/icon/icon.scss?tag=ix-icon&encapsulation=shadow","src/components/icon/icon.tsx"],"sourcesContent":["/**\n * Provide custom SVG path for icons\n *\n * <meta name=\"ix-icons:path\" content=\"/build/svg\" />\n */\nexport function getCustomAssetUrl() {\n const assetPath = document.querySelector(\"meta[name='ix-icons:path']\");\n if (assetPath) {\n const path = assetPath.getAttribute('content');\n return path;\n }\n\n return false;\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { getAssetPath, setAssetPath } from '@stencil/core';\nimport { getCustomAssetUrl } from './meta-tag';\n\ndeclare global {\n interface Window {\n IxIcons: any;\n }\n}\n\nlet fetchCache: Map<string, string>;\nconst requests = new Map<string, Promise<string>>();\nlet parser = null;\n\nexport const getIconCacheMap = (): Map<string, string> => {\n if (typeof window === 'undefined') {\n return new Map();\n }\n\n if (!fetchCache) {\n window.IxIcons = window.IxIcons || {};\n fetchCache = window.IxIcons.map = window.IxIcons.map || new Map();\n }\n\n return fetchCache;\n};\n\nexport const isSvgDataUrl = (url: string) => {\n if (!url) {\n return false;\n }\n\n if (typeof url !== 'string') {\n return false;\n }\n\n return url.startsWith('data:image/svg+xml');\n};\n\nexport function parseSVGDataContent(content: string) {\n if (typeof window['DOMParser'] === 'undefined') {\n console.warn('DOMParser not supported by your browser.');\n return;\n }\n\n if (parser === null) {\n parser = new window['DOMParser']();\n }\n\n const svgDocument = parser.parseFromString(content, 'text/html');\n const svgElement = svgDocument.querySelector('svg') as HTMLElement;\n\n if (!svgElement) {\n throw Error('No valid svg data provided');\n }\n\n return svgElement.outerHTML;\n}\n\nasync function fetchSVG(url: string) {\n const cache = getIconCacheMap();\n\n if (cache.has(url)) {\n return cache.get(url);\n }\n\n if (requests.has(url)) {\n return requests.get(url);\n }\n\n const fetching = fetch(url).then(async response => {\n const responseText = await response.text();\n\n if (!response.ok) {\n console.error(responseText);\n throw Error(responseText);\n }\n\n const svgContent = parseSVGDataContent(responseText);\n cache.set(url, svgContent);\n\n requests.delete(url);\n\n return svgContent;\n });\n\n requests.set(url, fetching);\n return fetching;\n}\n\nconst urlRegex = /^(?:(?:https?|ftp):\\/\\/)?(?:\\S+(?::\\S*)?@)?(?:www\\.)?(?:\\S+\\.\\S+)(?:\\S*)$/i;\n\nfunction isValidUrl(url: string) {\n return urlRegex.test(url);\n}\n\nexport function getIconUrl(name: string) {\n const customAssetUrl = getCustomAssetUrl();\n\n if (customAssetUrl) {\n return `${customAssetUrl}/${name}.svg`;\n }\n\n let url: string = `svg/${name}.svg`;\n\n try {\n url = getAssetPath(url);\n } catch (error) {\n console.warn(error);\n setAssetPath(`${window.location.origin}/`);\n url = getAssetPath(url);\n }\n\n return url;\n}\n\nexport async function resolveIcon(iconName: string) {\n if (!iconName) {\n throw Error('No icon name provided');\n }\n\n if (isSvgDataUrl(iconName)) {\n return parseSVGDataContent(iconName);\n }\n\n return await loadIcon(iconName);\n}\n\nasync function loadIcon(iconName: string) {\n const cache = getIconCacheMap();\n\n if (cache.has(iconName)) {\n return cache.get(iconName);\n }\n\n if (isValidUrl(iconName)) {\n try {\n return fetchSVG(iconName);\n } catch (error) {\n throw error;\n }\n }\n\n try {\n return fetchSVG(getIconUrl(iconName));\n } catch (error) {\n throw Error(`Could not resolve ${iconName}`);\n }\n}\n\nfunction removePrefix(name: string, prefix: string) {\n if (name.startsWith(prefix)) {\n name = name.slice(prefix.length);\n return name.replace(/^(\\w)/, (_match, p1) => p1.toLowerCase());\n }\n\n return name;\n}\n\nexport function addIcons(icons: { [name: string]: any }) {\n Object.keys(icons).forEach(name => {\n const icon = icons[name];\n name = removePrefix(name, 'icon');\n\n addIconToCache(name, icon);\n });\n}\n\nexport function addIconToCache(name: string, icon: string) {\n const cache = getIconCacheMap();\n\n if (cache.has(name)) {\n console.warn(`Icon name '${name}' already in cache. Overwritting with new icon data.`);\n }\n\n const svg = parseSVGDataContent(icon);\n\n cache.set(name, svg);\n\n const toKebabCase = name.replace(/([a-z0-9]|(?=[A-Z]))([A-Z0-9])/g, '$1-$2').toLowerCase();\n\n if (name != toKebabCase) {\n cache.set(toKebabCase, svg);\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@mixin size($size) {\n height: $size;\n width: $size;\n min-height: $size;\n min-width: $size;\n}\n\n:host {\n display: inline-flex;\n @include size(1.5rem);\n color: inherit;\n\n .svg-container {\n display: block;\n position: relative;\n width: 100%;\n height: 100%;\n\n svg {\n display: block;\n position: relative;\n height: 100%;\n width: 100%;\n }\n\n svg,\n svg[fill],\n svg [fill] {\n fill: currentColor !important;\n }\n }\n}\n\n:host(.size-12) {\n @include size(0.75rem);\n}\n\n:host(.size-16) {\n @include size(1rem);\n}\n\n:host(.size-32) {\n @include size(2rem);\n}\n","/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Component, h, Host, Prop, State, Watch, Element, Build } from '@stencil/core';\nimport { parseSVGDataContent, resolveIcon } from './resolveIcon';\n\nconst iconMissingSymbol =\n \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'><path fill-rule='evenodd' d='M384,0 L384,384 L0,384 L0,0 L384,0 Z M192,207.085 L57.751,341.333 L326.248,341.333 L192,207.085 Z M42.666,57.751 L42.666,326.248 L176.915,192 L42.666,57.751 Z M341.333,57.751 L207.085,192 L341.333,326.248 L341.333,57.751 Z M326.248,42.666 L57.751,42.666 L192,176.915 L326.248,42.666 Z' transform='translate(64 64)'/></svg>\";\n\n@Component({\n tag: 'ix-icon',\n styleUrl: 'icon.scss',\n shadow: true,\n assetsDirs: ['svg'],\n})\nexport class Icon {\n @Element() hostElement: HTMLIxIconElement;\n\n /**\n * Size of the icon\n */\n @Prop() size: '12' | '16' | '24' | '32';\n\n /**\n * Color of the icon\n */\n @Prop() color: string;\n\n /**\n * Use one of our defined icon names e.g. `copy`\n *\n * https://ix.siemens.io/docs/icon-library/icons\n *\n * or the import variant\n *\n * ```\n * import { rocket } from '@siemens/ix-icons/icons';\n *\n * <ix-icon name={rocket}></ix-icon>\n * ```\n */\n @Prop() name: string;\n\n @Prop() lazyLoading = false;\n\n @State() svgContent?: string;\n @State() isVisible = false;\n\n componentWillLoad() {\n this.waitForRendering(() => {\n this.isVisible = true;\n this.loadIconContent();\n });\n }\n\n @Watch('name')\n async loadIconContent() {\n try {\n this.svgContent = await resolveIcon(this.name);\n } catch (error) {\n this.svgContent = parseSVGDataContent(iconMissingSymbol);\n }\n }\n\n private waitForRendering(onRender: () => void) {\n if (Build.isBrowser && this.lazyLoading && typeof window !== 'undefined' && (window as any).IntersectionObserver) {\n const observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n onRender();\n observer.disconnect();\n }\n });\n },\n {\n rootMargin: '25px',\n },\n );\n\n observer.observe(this.hostElement);\n } else {\n onRender();\n }\n }\n\n render() {\n const style: {\n [key: string]: string;\n } = {};\n\n if (this.color) {\n style['color'] = `var(--theme-${this.color})`;\n }\n\n return (\n <Host\n style={style}\n class={{\n ['size-12']: this.size === '12',\n ['size-16']: this.size === '16',\n ['size-24']: this.size === '24',\n ['size-32']: this.size === '32',\n }}\n >\n <div class={'svg-container'} innerHTML={this.svgContent}></div>\n </Host>\n );\n }\n}\n"],"version":3}