@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.
- package/README.md +44 -30
- package/components/icon.js +31 -8
- package/components/icon.js.map +1 -1
- package/components/index.js +1 -1
- package/dist/cjs/{icon-7938bd17.js → icon-88309350.js} +34 -10
- package/dist/cjs/icon-88309350.js.map +1 -0
- package/dist/cjs/{index-12b9d30e.js → index-f6043fa9.js} +184 -77
- package/dist/cjs/index-f6043fa9.js.map +1 -0
- package/dist/cjs/index.cjs.js +4 -3
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/ix-icon.cjs.entry.js +2 -2
- package/dist/cjs/ix-icons.cjs.js +2 -2
- package/dist/cjs/ix-icons.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/icon/icon.js +9 -5
- package/dist/collection/components/icon/icon.js.map +1 -1
- package/dist/collection/components/icon/icons.js +503 -63
- package/dist/collection/components/icon/icons.js.map +1 -1
- package/dist/collection/components/icon/resolveIcon.js +29 -2
- package/dist/collection/components/icon/resolveIcon.js.map +1 -1
- package/dist/collection/index.js +1 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/esm/{icon-7346da2f.js → icon-4feff534.js} +33 -10
- package/dist/esm/icon-4feff534.js.map +1 -0
- package/dist/esm/{index-05493327.js → index-051cb4f1.js} +184 -77
- package/dist/esm/index-051cb4f1.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/ix-icon.entry.js +2 -2
- package/dist/esm/ix-icons.js +3 -3
- package/dist/esm/ix-icons.js.map +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/ix-icons/index.esm.js +1 -1
- package/dist/ix-icons/ix-icons.esm.js +1 -1
- package/dist/ix-icons/ix-icons.esm.js.map +1 -1
- package/dist/ix-icons/p-08f117ce.entry.js +2 -0
- package/dist/ix-icons/p-48b5ebf2.js +3 -0
- package/dist/ix-icons/p-48b5ebf2.js.map +1 -0
- package/dist/ix-icons/p-588f84dc.js +2 -0
- package/dist/ix-icons/p-588f84dc.js.map +1 -0
- package/dist/ix-icons/svg/add-circle-small-filled.svg +1 -0
- package/dist/ix-icons/svg/add-circle-small.svg +1 -0
- package/dist/ix-icons/svg/agent-filled.svg +1 -0
- package/dist/ix-icons/svg/agent.svg +1 -0
- package/dist/ix-icons/svg/ai.svg +1 -1
- package/dist/ix-icons/svg/alarm-clock-cancelled.svg +1 -1
- package/dist/ix-icons/svg/align-center-horizontally.svg +1 -0
- package/dist/ix-icons/svg/align-center-vertically.svg +1 -0
- package/dist/ix-icons/svg/align-object-dimensions.svg +1 -0
- package/dist/ix-icons/svg/align-object-height.svg +1 -0
- package/dist/ix-icons/svg/align-object-width.svg +1 -0
- package/dist/ix-icons/svg/align-objects-bottom.svg +1 -0
- package/dist/ix-icons/svg/align-objects-centered.svg +1 -0
- package/dist/ix-icons/svg/align-objects-horizontally.svg +1 -0
- package/dist/ix-icons/svg/align-objects-left.svg +1 -0
- package/dist/ix-icons/svg/align-objects-right.svg +1 -0
- package/dist/ix-icons/svg/align-objects-top.svg +1 -0
- package/dist/ix-icons/svg/align-objects-vertically.svg +1 -0
- package/dist/ix-icons/svg/align-objects.svg +1 -0
- package/dist/ix-icons/svg/analysis-filled.svg +1 -0
- package/dist/ix-icons/svg/analysis.svg +1 -0
- package/dist/ix-icons/svg/anomaly-none.svg +1 -0
- package/dist/ix-icons/svg/app-document-filled.svg +1 -0
- package/dist/ix-icons/svg/app-document.svg +1 -0
- package/dist/ix-icons/svg/application-screen-alarm-classes.svg +1 -0
- package/dist/ix-icons/svg/application-screen-globe.svg +1 -0
- package/dist/ix-icons/svg/application-screen-play.svg +1 -0
- package/dist/ix-icons/svg/application-screens.svg +1 -0
- package/dist/ix-icons/svg/archive-document-filled.svg +1 -0
- package/dist/ix-icons/svg/archive-document.svg +1 -0
- package/dist/ix-icons/svg/areachart.svg +1 -0
- package/dist/ix-icons/svg/arrow-up-left.svg +1 -0
- package/dist/ix-icons/svg/aspects-filled.svg +1 -0
- package/dist/ix-icons/svg/aspects.svg +1 -0
- package/dist/ix-icons/svg/asset-network-filled.svg +1 -0
- package/dist/ix-icons/svg/asset-network.svg +1 -0
- package/dist/ix-icons/svg/asterisk.svg +1 -0
- package/dist/ix-icons/svg/axes-synchronous.svg +1 -0
- package/dist/ix-icons/svg/axis-positioning.svg +1 -0
- package/dist/ix-icons/svg/axis-rotation.svg +1 -0
- package/dist/ix-icons/svg/barchart-horizontal.svg +1 -0
- package/dist/ix-icons/svg/barchart.svg +1 -1
- package/dist/ix-icons/svg/bilibili-logo.svg +1 -0
- package/dist/ix-icons/svg/box-plot-filled.svg +1 -0
- package/dist/ix-icons/svg/box-plot.svg +1 -0
- package/dist/ix-icons/svg/bring-forward.svg +1 -0
- package/dist/ix-icons/svg/bring-to-front.svg +1 -0
- package/dist/ix-icons/svg/brush.svg +1 -0
- package/dist/ix-icons/svg/building-block-filled.svg +1 -0
- package/dist/ix-icons/svg/building-block.svg +1 -0
- package/dist/ix-icons/svg/calendar-day-filled.svg +1 -0
- package/dist/ix-icons/svg/calendar-day.svg +1 -0
- package/dist/ix-icons/svg/calendar-week-filled.svg +1 -0
- package/dist/ix-icons/svg/calendar-week.svg +1 -0
- package/dist/ix-icons/svg/cam-disk-10k.svg +1 -0
- package/dist/ix-icons/svg/cam-disk.svg +1 -0
- package/dist/ix-icons/svg/cam-track.svg +1 -0
- package/dist/ix-icons/svg/cam.svg +1 -0
- package/dist/ix-icons/svg/certificate.svg +1 -0
- package/dist/ix-icons/svg/chain-alternative.svg +1 -0
- package/dist/ix-icons/svg/chain-parallel.svg +1 -0
- package/dist/ix-icons/svg/chain-step.svg +1 -0
- package/dist/ix-icons/svg/chart-duration-curve.svg +1 -0
- package/dist/ix-icons/svg/chart-types-filled.svg +1 -0
- package/dist/ix-icons/svg/chart-types.svg +1 -0
- package/dist/ix-icons/svg/chart-value-horizontal.svg +1 -0
- package/dist/ix-icons/svg/chart-value-vertical.svg +1 -0
- package/dist/ix-icons/svg/checkbox-empty-filled.svg +1 -0
- package/dist/ix-icons/svg/checkbox-empty.svg +1 -0
- package/dist/ix-icons/svg/checkbox-mixed-filled.svg +1 -0
- package/dist/ix-icons/svg/checkbox-mixed.svg +1 -0
- package/dist/ix-icons/svg/checkboxes-empty-filled.svg +1 -0
- package/dist/ix-icons/svg/checkboxes-empty.svg +1 -0
- package/dist/ix-icons/svg/checkboxes-filled.svg +1 -1
- package/dist/ix-icons/svg/checkboxes.svg +1 -1
- package/dist/ix-icons/svg/client-interface.svg +1 -0
- package/dist/ix-icons/svg/clipboard-filled.svg +1 -0
- package/dist/ix-icons/svg/clipboard.svg +1 -0
- package/dist/ix-icons/svg/cloud-cancelled-filled.svg +1 -0
- package/dist/ix-icons/svg/cloud-cancelled.svg +1 -0
- package/dist/ix-icons/svg/cloud-rain-filled.svg +1 -0
- package/dist/ix-icons/svg/cloud-rain.svg +1 -0
- package/dist/ix-icons/svg/cloud-snow-filled.svg +1 -0
- package/dist/ix-icons/svg/cloud-snow.svg +1 -0
- package/dist/ix-icons/svg/cloud-thunder-filled.svg +1 -0
- package/dist/ix-icons/svg/cloud-thunder.svg +1 -0
- package/dist/ix-icons/svg/code-document-check.svg +1 -0
- package/dist/ix-icons/svg/code-function.svg +1 -0
- package/dist/ix-icons/svg/code-script.svg +1 -0
- package/dist/ix-icons/svg/coin-filled.svg +1 -0
- package/dist/ix-icons/svg/coin-stack-filled.svg +1 -0
- package/dist/ix-icons/svg/coin-stack.svg +1 -0
- package/dist/ix-icons/svg/coin.svg +1 -0
- package/dist/ix-icons/svg/coins-filled.svg +1 -0
- package/dist/ix-icons/svg/coins.svg +1 -0
- package/dist/ix-icons/svg/comment-alt-filled.svg +1 -0
- package/dist/ix-icons/svg/comment-alt.svg +1 -0
- package/dist/ix-icons/svg/connection-bulb.svg +1 -0
- package/dist/ix-icons/svg/connection-fail.svg +1 -0
- package/dist/ix-icons/svg/connection-local.svg +1 -0
- package/dist/ix-icons/svg/connection-signal.svg +1 -0
- package/dist/ix-icons/svg/connection-success.svg +1 -0
- package/dist/ix-icons/svg/connections-settings.svg +1 -0
- package/dist/ix-icons/svg/connections.svg +1 -0
- package/dist/ix-icons/svg/connectivity.svg +1 -0
- package/dist/ix-icons/svg/control-button.svg +1 -0
- package/dist/ix-icons/svg/control-checkbox.svg +1 -0
- package/dist/ix-icons/svg/control-io-field.svg +1 -0
- package/dist/ix-icons/svg/control-label.svg +1 -0
- package/dist/ix-icons/svg/control-list-box.svg +1 -0
- package/dist/ix-icons/svg/control-radiobutton.svg +1 -0
- package/dist/ix-icons/svg/control-select.svg +1 -0
- package/dist/ix-icons/svg/control-slider.svg +1 -0
- package/dist/ix-icons/svg/control-spinner.svg +1 -0
- package/dist/ix-icons/svg/control-switch.svg +1 -0
- package/dist/ix-icons/svg/control-text-button.svg +1 -0
- package/dist/ix-icons/svg/control-textbox.svg +1 -0
- package/dist/ix-icons/svg/control-touch-area.svg +1 -0
- package/dist/ix-icons/svg/control-value-bar.svg +1 -0
- package/dist/ix-icons/svg/conversation-filled.svg +1 -0
- package/dist/ix-icons/svg/conversation.svg +1 -0
- package/dist/ix-icons/svg/create-plant-filled.svg +1 -1
- package/dist/ix-icons/svg/create-plant.svg +1 -1
- package/dist/ix-icons/svg/cycle-alt.svg +1 -0
- package/dist/ix-icons/svg/dashboard-filled.svg +1 -0
- package/dist/ix-icons/svg/dashboard.svg +1 -0
- package/dist/ix-icons/svg/data-management-filled.svg +1 -0
- package/dist/ix-icons/svg/data-management.svg +1 -0
- package/dist/ix-icons/svg/data-type-boolean.svg +1 -0
- package/dist/ix-icons/svg/data-type-double.svg +1 -0
- package/dist/ix-icons/svg/data-type-enum.svg +1 -0
- package/dist/ix-icons/svg/data-type-integer.svg +1 -0
- package/dist/ix-icons/svg/data-type-string-list.svg +1 -0
- package/dist/ix-icons/svg/data-type-string.svg +1 -0
- package/dist/ix-icons/svg/database-arrow-left.svg +1 -0
- package/dist/ix-icons/svg/device-play-filled.svg +1 -0
- package/dist/ix-icons/svg/device-play.svg +1 -0
- package/dist/ix-icons/svg/device-view-flat.svg +1 -0
- package/dist/ix-icons/svg/device-view-hierarchical.svg +1 -0
- package/dist/ix-icons/svg/distribute-objects-horizontally.svg +1 -0
- package/dist/ix-icons/svg/distribute-objects-vertically.svg +1 -0
- package/dist/ix-icons/svg/document-code-filled.svg +1 -0
- package/dist/ix-icons/svg/document-code.svg +1 -0
- package/dist/ix-icons/svg/document-filled.svg +1 -0
- package/dist/ix-icons/svg/document-info.svg +1 -1
- package/dist/ix-icons/svg/document-mapping-filled.svg +1 -0
- package/dist/ix-icons/svg/document-mapping.svg +1 -0
- package/dist/ix-icons/svg/document-program-filled.svg +1 -0
- package/dist/ix-icons/svg/document-program.svg +1 -0
- package/dist/ix-icons/svg/doughnutchart-filled.svg +1 -0
- package/dist/ix-icons/svg/doughnutchart.svg +1 -0
- package/dist/ix-icons/svg/download-delta.svg +1 -0
- package/dist/ix-icons/svg/download-full.svg +1 -0
- package/dist/ix-icons/svg/downtime.svg +1 -0
- package/dist/ix-icons/svg/draw-circle-arc.svg +1 -0
- package/dist/ix-icons/svg/draw-circle-segment.svg +1 -0
- package/dist/ix-icons/svg/draw-circle.svg +1 -0
- package/dist/ix-icons/svg/draw-ellipse-segment.svg +1 -0
- package/dist/ix-icons/svg/drawer-documents.svg +1 -0
- package/dist/ix-icons/svg/drawing-document-filled.svg +1 -0
- package/dist/ix-icons/svg/drawing-document.svg +1 -0
- package/dist/ix-icons/svg/e-mail-filled.svg +1 -1
- package/dist/ix-icons/svg/e-mail.svg +1 -1
- package/dist/ix-icons/svg/edit-plant-filled.svg +1 -0
- package/dist/ix-icons/svg/edit-plant.svg +1 -1
- package/dist/ix-icons/svg/editor-grid-dots.svg +1 -0
- package/dist/ix-icons/svg/editor-grid-lines.svg +1 -0
- package/dist/ix-icons/svg/editor-grid-magnet.svg +1 -0
- package/dist/ix-icons/svg/editor-grid-none.svg +1 -0
- package/dist/ix-icons/svg/editor-grid.svg +1 -0
- package/dist/ix-icons/svg/editor-guide-lines-magnet.svg +1 -0
- package/dist/ix-icons/svg/editor-guides.svg +1 -0
- package/dist/ix-icons/svg/editor-resources.svg +1 -0
- package/dist/ix-icons/svg/element-filled.svg +1 -0
- package/dist/ix-icons/svg/element.svg +1 -0
- package/dist/ix-icons/svg/email-document-filled.svg +1 -0
- package/dist/ix-icons/svg/email-document.svg +1 -0
- package/dist/ix-icons/svg/emergency-stop.svg +1 -0
- package/dist/ix-icons/svg/emote-happy-filled.svg +1 -0
- package/dist/ix-icons/svg/emote-happy.svg +1 -0
- package/dist/ix-icons/svg/emote-neutral-filled.svg +1 -0
- package/dist/ix-icons/svg/emote-neutral.svg +1 -0
- package/dist/ix-icons/svg/emote-sad-filled.svg +1 -0
- package/dist/ix-icons/svg/emote-sad.svg +1 -0
- package/dist/ix-icons/svg/exclamation-mark.svg +1 -0
- package/dist/ix-icons/svg/external-encoder.svg +1 -0
- package/dist/ix-icons/svg/eye-focus.svg +1 -0
- package/dist/ix-icons/svg/eye-magnifying-glass.svg +1 -0
- package/dist/ix-icons/svg/facebook-logo.svg +1 -0
- package/dist/ix-icons/svg/faceplate-container.svg +1 -0
- package/dist/ix-icons/svg/fast-forward-filled.svg +1 -0
- package/dist/ix-icons/svg/fast-forward.svg +1 -0
- package/dist/ix-icons/svg/feedback-filled.svg +1 -0
- package/dist/ix-icons/svg/feedback.svg +1 -0
- package/dist/ix-icons/svg/filter-update.svg +1 -0
- package/dist/ix-icons/svg/flag-alt-filled.svg +1 -0
- package/dist/ix-icons/svg/flag-alt.svg +1 -0
- package/dist/ix-icons/svg/flow-physically.svg +1 -0
- package/dist/ix-icons/svg/folder-collapse-all.svg +1 -0
- package/dist/ix-icons/svg/folder-expand-all.svg +1 -0
- package/dist/ix-icons/svg/frames-filled.svg +1 -0
- package/dist/ix-icons/svg/frames.svg +1 -0
- package/dist/ix-icons/svg/ganttchart.svg +1 -0
- package/dist/ix-icons/svg/github-logo.svg +1 -0
- package/dist/ix-icons/svg/glasses-play.svg +1 -0
- package/dist/ix-icons/svg/global-plant-filled.svg +1 -1
- package/dist/ix-icons/svg/global-plant.svg +1 -1
- package/dist/ix-icons/svg/globe-filled.svg +1 -1
- package/dist/ix-icons/svg/globe-tag.svg +1 -0
- package/dist/ix-icons/svg/graph-filled.svg +1 -0
- package/dist/ix-icons/svg/graph.svg +1 -0
- package/dist/ix-icons/svg/group-objects.svg +1 -0
- package/dist/ix-icons/svg/hand-filled.svg +1 -0
- package/dist/ix-icons/svg/hand.svg +1 -0
- package/dist/ix-icons/svg/hat-man-filled.svg +1 -0
- package/dist/ix-icons/svg/hat-man.svg +1 -0
- package/dist/ix-icons/svg/heat-map-chart-filled.svg +1 -0
- package/dist/ix-icons/svg/heat-map-chart.svg +1 -0
- package/dist/ix-icons/svg/history-list.svg +1 -1
- package/dist/ix-icons/svg/history.svg +1 -1
- package/dist/ix-icons/svg/indicator-filled.svg +1 -0
- package/dist/ix-icons/svg/indicator.svg +1 -0
- package/dist/ix-icons/svg/ink-pen-add.svg +1 -0
- package/dist/ix-icons/svg/ink-pen-filled.svg +1 -0
- package/dist/ix-icons/svg/instagram-logo.svg +1 -0
- package/dist/ix-icons/svg/interpreter-filled.svg +1 -0
- package/dist/ix-icons/svg/interpreter.svg +1 -0
- package/dist/ix-icons/svg/java-script.svg +1 -0
- package/dist/ix-icons/svg/jigsaw-details-filled.svg +1 -0
- package/dist/ix-icons/svg/jigsaw-details.svg +1 -0
- package/dist/ix-icons/svg/jigsaw-filled.svg +1 -0
- package/dist/ix-icons/svg/jigsaw.svg +1 -0
- package/dist/ix-icons/svg/json-document-filled.svg +1 -0
- package/dist/ix-icons/svg/json-document.svg +1 -0
- package/dist/ix-icons/svg/key.svg +1 -0
- package/dist/ix-icons/svg/keyboard-docked-bottom.svg +1 -0
- package/dist/ix-icons/svg/keyboard-floating.svg +1 -0
- package/dist/ix-icons/svg/keyboard-framed.svg +1 -0
- package/dist/ix-icons/svg/keyboard.svg +1 -0
- package/dist/ix-icons/svg/kinematics.svg +1 -0
- package/dist/ix-icons/svg/kpi-filled.svg +1 -0
- package/dist/ix-icons/svg/kpi.svg +1 -0
- package/dist/ix-icons/svg/leading-axis-proxy.svg +1 -0
- package/dist/ix-icons/svg/legal-circle-filled.svg +1 -0
- package/dist/ix-icons/svg/legal-circle.svg +1 -0
- package/dist/ix-icons/svg/limits-cancelled.svg +1 -0
- package/dist/ix-icons/svg/limits-check.svg +1 -0
- package/dist/ix-icons/svg/line-cap-flat.svg +1 -0
- package/dist/ix-icons/svg/line-cap-round.svg +1 -0
- package/dist/ix-icons/svg/line-cap-square.svg +1 -0
- package/dist/ix-icons/svg/line-dash-dot-dot.svg +1 -0
- package/dist/ix-icons/svg/line-dash-dot.svg +1 -0
- package/dist/ix-icons/svg/line-dash.svg +1 -0
- package/dist/ix-icons/svg/line-dot.svg +1 -0
- package/dist/ix-icons/svg/line-solid.svg +1 -0
- package/dist/ix-icons/svg/linechart.svg +1 -0
- package/dist/ix-icons/svg/linkedin-logo.svg +1 -0
- package/dist/ix-icons/svg/list-add.svg +1 -0
- package/dist/ix-icons/svg/list-graphics-text.svg +1 -0
- package/dist/ix-icons/svg/list-graphics.svg +1 -0
- package/dist/ix-icons/svg/list-remove.svg +1 -0
- package/dist/ix-icons/svg/list-text.svg +1 -0
- package/dist/ix-icons/svg/lock-key-filled.svg +1 -1
- package/dist/ix-icons/svg/lock-key.svg +1 -1
- package/dist/ix-icons/svg/longer.svg +1 -0
- package/dist/ix-icons/svg/machine-a-filled.svg +1 -0
- package/dist/ix-icons/svg/machine-a.svg +1 -0
- package/dist/ix-icons/svg/machine-b-filled.svg +1 -0
- package/dist/ix-icons/svg/machine-b.svg +1 -0
- package/dist/ix-icons/svg/machine-c-filled.svg +1 -0
- package/dist/ix-icons/svg/machine-c.svg +1 -0
- package/dist/ix-icons/svg/magnet-cancelled.svg +1 -0
- package/dist/ix-icons/svg/magnet.svg +1 -0
- package/dist/ix-icons/svg/mail-alarm-analog.svg +1 -0
- package/dist/ix-icons/svg/mail-alarm-classes.svg +1 -0
- package/dist/ix-icons/svg/mail-alarm-discrete.svg +1 -0
- package/dist/ix-icons/svg/map-alt-1-filled.svg +1 -0
- package/dist/ix-icons/svg/map-alt-1.svg +1 -0
- package/dist/ix-icons/svg/map-alt-2-filled.svg +1 -0
- package/dist/ix-icons/svg/map-alt-2.svg +1 -0
- package/dist/ix-icons/svg/map-alt-3-filled.svg +1 -0
- package/dist/ix-icons/svg/map-alt-3.svg +1 -0
- package/dist/ix-icons/svg/mastodon-logo.svg +1 -0
- package/dist/ix-icons/svg/measuring-input.svg +1 -0
- package/dist/ix-icons/svg/media-player.svg +1 -0
- package/dist/ix-icons/svg/mobile-phone-filled.svg +1 -0
- package/dist/ix-icons/svg/mobile-phone.svg +1 -0
- package/dist/ix-icons/svg/moon-filled.svg +1 -1
- package/dist/ix-icons/svg/moon.svg +1 -1
- package/dist/ix-icons/svg/move-layer-down.svg +1 -0
- package/dist/ix-icons/svg/move-layer-up.svg +1 -0
- package/dist/ix-icons/svg/movie-filled.svg +1 -0
- package/dist/ix-icons/svg/movie.svg +1 -0
- package/dist/ix-icons/svg/mqtt-filled.svg +1 -0
- package/dist/ix-icons/svg/mqtt.svg +1 -0
- package/dist/ix-icons/svg/music-note.svg +1 -0
- package/dist/ix-icons/svg/namur-diagnostics-passive-filled.svg +1 -0
- package/dist/ix-icons/svg/namur-diagnostics-passive.svg +1 -0
- package/dist/ix-icons/svg/navigation-left-hide.svg +1 -0
- package/dist/ix-icons/svg/navigation-right-hide.svg +1 -0
- package/dist/ix-icons/svg/network-device-filled.svg +1 -0
- package/dist/ix-icons/svg/network-device-play-filled.svg +1 -0
- package/dist/ix-icons/svg/network-device-play.svg +1 -0
- package/dist/ix-icons/svg/network-device.svg +1 -0
- package/dist/ix-icons/svg/network-wired-wireless.svg +1 -0
- package/dist/ix-icons/svg/network-wired.svg +1 -0
- package/dist/ix-icons/svg/notebook-filled.svg +1 -0
- package/dist/ix-icons/svg/notebook.svg +1 -0
- package/dist/ix-icons/svg/objects-tree.svg +1 -0
- package/dist/ix-icons/svg/objects.svg +1 -0
- package/dist/ix-icons/svg/operate-plant-filled.svg +1 -1
- package/dist/ix-icons/svg/operate-plant.svg +1 -1
- package/dist/ix-icons/svg/package-filled.svg +1 -0
- package/dist/ix-icons/svg/package.svg +1 -0
- package/dist/ix-icons/svg/parameter.svg +1 -0
- package/dist/ix-icons/svg/paste-filled.svg +1 -0
- package/dist/ix-icons/svg/paste.svg +1 -1
- package/dist/ix-icons/svg/pc-tower-settings-filled.svg +1 -0
- package/dist/ix-icons/svg/pc-tower-settings.svg +1 -0
- package/dist/ix-icons/svg/pdf-document-filled.svg +1 -0
- package/dist/ix-icons/svg/pin-cancelled-filled.svg +1 -0
- package/dist/ix-icons/svg/pin-cancelled.svg +1 -0
- package/dist/ix-icons/svg/pin-filled.svg +1 -1
- package/dist/ix-icons/svg/pin.svg +1 -1
- package/dist/ix-icons/svg/plant-details-filled.svg +1 -0
- package/dist/ix-icons/svg/plant-details.svg +1 -0
- package/dist/ix-icons/svg/plant-handbook-filled.svg +1 -1
- package/dist/ix-icons/svg/plant-handbook.svg +1 -1
- package/dist/ix-icons/svg/plant-search-filled.svg +1 -0
- package/dist/ix-icons/svg/plant-search.svg +1 -0
- package/dist/ix-icons/svg/plant-security-filled.svg +1 -0
- package/dist/ix-icons/svg/plant-security.svg +1 -1
- package/dist/ix-icons/svg/plant-settings-filled.svg +1 -1
- package/dist/ix-icons/svg/plant-settings.svg +1 -1
- package/dist/ix-icons/svg/plc-device-tag.svg +1 -0
- package/dist/ix-icons/svg/plc-device-user-data-type.svg +1 -0
- package/dist/ix-icons/svg/plc-device.svg +1 -0
- package/dist/ix-icons/svg/plc-tag.svg +1 -0
- package/dist/ix-icons/svg/plc-user-data-type.svg +1 -0
- package/dist/ix-icons/svg/plc.svg +1 -0
- package/dist/ix-icons/svg/polarchart-filled.svg +1 -0
- package/dist/ix-icons/svg/polarchart.svg +1 -0
- package/dist/ix-icons/svg/process-control.svg +1 -0
- package/dist/ix-icons/svg/project-arrow-diagonal-top-right.svg +1 -0
- package/dist/ix-icons/svg/project-arrow-left.svg +1 -0
- package/dist/ix-icons/svg/project-arrow-right.svg +1 -0
- package/dist/ix-icons/svg/project-close.svg +1 -0
- package/dist/ix-icons/svg/project-duplicate.svg +1 -0
- package/dist/ix-icons/svg/project-history.svg +1 -0
- package/dist/ix-icons/svg/project-server-filled.svg +1 -1
- package/dist/ix-icons/svg/project-server.svg +1 -1
- package/dist/ix-icons/svg/project-settings.svg +1 -0
- package/dist/ix-icons/svg/project-simulation.svg +1 -0
- package/dist/ix-icons/svg/projects-close.svg +1 -0
- package/dist/ix-icons/svg/question-mark.svg +1 -0
- package/dist/ix-icons/svg/record-filled.svg +1 -0
- package/dist/ix-icons/svg/record.svg +1 -0
- package/dist/ix-icons/svg/reddit-logo.svg +1 -0
- package/dist/ix-icons/svg/reference-point-bottom-left.svg +1 -0
- package/dist/ix-icons/svg/reference-point-bottom-right.svg +1 -0
- package/dist/ix-icons/svg/reference-point-centered.svg +1 -0
- package/dist/ix-icons/svg/reference-point-top-left.svg +1 -0
- package/dist/ix-icons/svg/reference-point-top-right.svg +1 -0
- package/dist/ix-icons/svg/refresh-arrow-down.svg +1 -0
- package/dist/ix-icons/svg/remove-circle-filled.svg +1 -0
- package/dist/ix-icons/svg/remove-circle.svg +1 -0
- package/dist/ix-icons/svg/report-general.svg +1 -0
- package/dist/ix-icons/svg/restore.svg +1 -0
- package/dist/ix-icons/svg/rewind-filled.svg +1 -0
- package/dist/ix-icons/svg/rewind.svg +1 -0
- package/dist/ix-icons/svg/robotic-arm.svg +1 -0
- package/dist/ix-icons/svg/robotic-gripper.svg +1 -0
- package/dist/ix-icons/svg/roles-filled.svg +1 -0
- package/dist/ix-icons/svg/roles.svg +1 -0
- package/dist/ix-icons/svg/rotate-180.svg +1 -0
- package/dist/ix-icons/svg/rotate-90-left.svg +1 -0
- package/dist/ix-icons/svg/rotate-90-right.svg +1 -0
- package/dist/ix-icons/svg/rotate.svg +1 -0
- package/dist/ix-icons/svg/ruler-horizontal.svg +1 -0
- package/dist/ix-icons/svg/ruler-vertical.svg +1 -0
- package/dist/ix-icons/svg/rules-filled.svg +1 -0
- package/dist/ix-icons/svg/rules.svg +1 -0
- package/dist/ix-icons/svg/runtime-play.svg +1 -0
- package/dist/ix-icons/svg/runtime-settings.svg +1 -1
- package/dist/ix-icons/svg/runtime-stop.svg +1 -0
- package/dist/ix-icons/svg/sankeychart.svg +1 -0
- package/dist/ix-icons/svg/save-all.svg +1 -0
- package/dist/ix-icons/svg/scale.svg +1 -0
- package/dist/ix-icons/svg/screen-duplicate-filled.svg +1 -0
- package/dist/ix-icons/svg/screen-duplicate.svg +1 -0
- package/dist/ix-icons/svg/screen-pc-tower-filled.svg +1 -0
- package/dist/ix-icons/svg/screen-pc-tower-settings-filled.svg +1 -0
- package/dist/ix-icons/svg/screen-pc-tower-settings.svg +1 -0
- package/dist/ix-icons/svg/screen-pc-tower.svg +1 -0
- package/dist/ix-icons/svg/screen-settings-filled.svg +1 -0
- package/dist/ix-icons/svg/screen-settings.svg +1 -0
- package/dist/ix-icons/svg/screens-filled.svg +1 -0
- package/dist/ix-icons/svg/screens.svg +1 -0
- package/dist/ix-icons/svg/select-alt-filled.svg +1 -0
- package/dist/ix-icons/svg/select-alt.svg +1 -0
- package/dist/ix-icons/svg/send-backward.svg +1 -0
- package/dist/ix-icons/svg/send-to-back.svg +1 -0
- package/dist/ix-icons/svg/server-interface.svg +1 -0
- package/dist/ix-icons/svg/shapes-filled.svg +1 -0
- package/dist/ix-icons/svg/shapes.svg +1 -0
- package/dist/ix-icons/svg/share-alt-filled.svg +1 -0
- package/dist/ix-icons/svg/share-alt.svg +1 -0
- package/dist/ix-icons/svg/shield-broken-filled.svg +1 -1
- package/dist/ix-icons/svg/shield-broken.svg +1 -1
- package/dist/ix-icons/svg/shift-filled.svg +1 -0
- package/dist/ix-icons/svg/shift.svg +1 -0
- package/dist/ix-icons/svg/shopping-cart-filled.svg +1 -1
- package/dist/ix-icons/svg/shopping-cart.svg +1 -1
- package/dist/ix-icons/svg/shorter.svg +1 -0
- package/dist/ix-icons/svg/simulation-table.svg +1 -0
- package/dist/ix-icons/svg/sms.svg +1 -0
- package/dist/ix-icons/svg/spiderchart-filled.svg +1 -0
- package/dist/ix-icons/svg/spiderchart.svg +1 -0
- package/dist/ix-icons/svg/stacked-barchart.svg +1 -0
- package/dist/ix-icons/svg/star-half-filled.svg +1 -0
- package/dist/ix-icons/svg/stopwatch-filled.svg +1 -0
- package/dist/ix-icons/svg/stopwatch.svg +1 -0
- package/dist/ix-icons/svg/storage-filled.svg +1 -0
- package/dist/ix-icons/svg/storage.svg +1 -0
- package/dist/ix-icons/svg/subtitle-filled.svg +1 -0
- package/dist/ix-icons/svg/subtitle.svg +1 -0
- package/dist/ix-icons/svg/sun-cloud-filled.svg +1 -0
- package/dist/ix-icons/svg/sun-cloud.svg +1 -0
- package/dist/ix-icons/svg/sunrise-filled.svg +1 -0
- package/dist/ix-icons/svg/sunrise.svg +1 -0
- package/dist/ix-icons/svg/sunset-filled.svg +1 -0
- package/dist/ix-icons/svg/sunset.svg +1 -0
- package/dist/ix-icons/svg/table-tag.svg +1 -0
- package/dist/ix-icons/svg/tag-arrow-left-filled.svg +1 -0
- package/dist/ix-icons/svg/tag-arrow-left.svg +1 -0
- package/dist/ix-icons/svg/tag-arrow-right-filled.svg +1 -0
- package/dist/ix-icons/svg/tag-arrow-right.svg +1 -0
- package/dist/ix-icons/svg/tag-circle-arrow-down-filled.svg +1 -0
- package/dist/ix-icons/svg/tag-circle-arrow-down.svg +1 -0
- package/dist/ix-icons/svg/tag-connection-filled.svg +1 -0
- package/dist/ix-icons/svg/tag-connection.svg +1 -0
- package/dist/ix-icons/svg/tag-eye-filled.svg +1 -0
- package/dist/ix-icons/svg/tag-eye.svg +1 -0
- package/dist/ix-icons/svg/tag-filled.svg +1 -1
- package/dist/ix-icons/svg/tag-logging-filled.svg +1 -0
- package/dist/ix-icons/svg/tag-logging.svg +1 -0
- package/dist/ix-icons/svg/tag-plus-filled.svg +1 -1
- package/dist/ix-icons/svg/tag-plus.svg +1 -1
- package/dist/ix-icons/svg/tag.svg +1 -1
- package/dist/ix-icons/svg/telegram-logo.svg +1 -0
- package/dist/ix-icons/svg/text-alginment-center.svg +1 -0
- package/dist/ix-icons/svg/text-alginment-justified.svg +1 -0
- package/dist/ix-icons/svg/text-alginment-left.svg +1 -0
- package/dist/ix-icons/svg/text-alginment-right.svg +1 -0
- package/dist/ix-icons/svg/thermometer-filled.svg +1 -0
- package/dist/ix-icons/svg/threads-logo.svg +1 -0
- package/dist/ix-icons/svg/thumb-down-filled.svg +1 -0
- package/dist/ix-icons/svg/thumb-down.svg +1 -0
- package/dist/ix-icons/svg/thumb-up-filled.svg +1 -0
- package/dist/ix-icons/svg/thumb-up.svg +1 -0
- package/dist/ix-icons/svg/ticket-filled.svg +1 -0
- package/dist/ix-icons/svg/ticket.svg +1 -0
- package/dist/ix-icons/svg/tiktok-logo.svg +1 -0
- package/dist/ix-icons/svg/tiles-filled.svg +1 -0
- package/dist/ix-icons/svg/tiles.svg +1 -0
- package/dist/ix-icons/svg/time-zone-filled.svg +1 -0
- package/dist/ix-icons/svg/time-zone.svg +1 -0
- package/dist/ix-icons/svg/trace-eye.svg +1 -0
- package/dist/ix-icons/svg/train-filled.svg +1 -0
- package/dist/ix-icons/svg/train.svg +1 -0
- package/dist/ix-icons/svg/trend-companion.svg +1 -0
- package/dist/ix-icons/svg/txt-document-filled.svg +1 -0
- package/dist/ix-icons/svg/ungroup-objects.svg +1 -0
- package/dist/ix-icons/svg/unlock-plant-filled.svg +1 -1
- package/dist/ix-icons/svg/unlock-plant.svg +1 -1
- package/dist/ix-icons/svg/user-data-types.svg +1 -0
- package/dist/ix-icons/svg/user-group.svg +1 -0
- package/dist/ix-icons/svg/user-key.svg +1 -0
- package/dist/ix-icons/svg/user-manual-filled.svg +1 -0
- package/dist/ix-icons/svg/user-manual.svg +1 -0
- package/dist/ix-icons/svg/user-pen.svg +1 -0
- package/dist/ix-icons/svg/user-reading-filled.svg +1 -0
- package/dist/ix-icons/svg/user-reading.svg +1 -1
- package/dist/ix-icons/svg/variable.svg +1 -0
- package/dist/ix-icons/svg/video-camera-filled.svg +1 -0
- package/dist/ix-icons/svg/video-camera-record-filled.svg +1 -0
- package/dist/ix-icons/svg/video-camera-record.svg +1 -0
- package/dist/ix-icons/svg/video-camera.svg +1 -0
- package/dist/ix-icons/svg/viva-engage-logo.svg +1 -0
- package/dist/ix-icons/svg/voltage-filled.svg +1 -0
- package/dist/ix-icons/svg/voltage.svg +1 -0
- package/dist/ix-icons/svg/watch-table.svg +1 -0
- package/dist/ix-icons/svg/web-browser-screen.svg +1 -0
- package/dist/ix-icons/svg/wechat-logo.svg +1 -0
- package/dist/ix-icons/svg/weibo-logo.svg +1 -0
- package/dist/ix-icons/svg/wlan-strength-1-lock.svg +1 -0
- package/dist/ix-icons/svg/wlan-strength-2-lock.svg +1 -0
- package/dist/ix-icons/svg/wlan-strength-3-lock.svg +1 -0
- package/dist/ix-icons/svg/wlan-warning.svg +1 -0
- package/dist/ix-icons/svg/x-logo.svg +1 -0
- package/dist/ix-icons/svg/xls-document-filled.svg +1 -0
- package/dist/sample.json +1259 -0
- package/dist/types/components/icon/icon.d.ts +1 -1
- package/dist/types/components/icon/icons.d.ts +504 -64
- package/dist/types/components/icon/resolveIcon.d.ts +4 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/stencil-public-runtime.d.ts +6 -0
- package/icons/index.d.ts +459 -19
- package/icons/index.js +503 -63
- package/icons/index.mjs +503 -63
- package/icons/package.json +1 -1
- package/package.json +3 -3
- package/svg/add-circle-small-filled.svg +1 -0
- package/svg/add-circle-small.svg +1 -0
- package/svg/agent-filled.svg +1 -0
- package/svg/agent.svg +1 -0
- package/svg/ai.svg +1 -1
- package/svg/alarm-clock-cancelled.svg +1 -1
- package/svg/align-center-horizontally.svg +1 -0
- package/svg/align-center-vertically.svg +1 -0
- package/svg/align-object-dimensions.svg +1 -0
- package/svg/align-object-height.svg +1 -0
- package/svg/align-object-width.svg +1 -0
- package/svg/align-objects-bottom.svg +1 -0
- package/svg/align-objects-centered.svg +1 -0
- package/svg/align-objects-horizontally.svg +1 -0
- package/svg/align-objects-left.svg +1 -0
- package/svg/align-objects-right.svg +1 -0
- package/svg/align-objects-top.svg +1 -0
- package/svg/align-objects-vertically.svg +1 -0
- package/svg/align-objects.svg +1 -0
- package/svg/analysis-filled.svg +1 -0
- package/svg/analysis.svg +1 -0
- package/svg/anomaly-none.svg +1 -0
- package/svg/app-document-filled.svg +1 -0
- package/svg/app-document.svg +1 -0
- package/svg/application-screen-alarm-classes.svg +1 -0
- package/svg/application-screen-globe.svg +1 -0
- package/svg/application-screen-play.svg +1 -0
- package/svg/application-screens.svg +1 -0
- package/svg/archive-document-filled.svg +1 -0
- package/svg/archive-document.svg +1 -0
- package/svg/areachart.svg +1 -0
- package/svg/arrow-up-left.svg +1 -0
- package/svg/aspects-filled.svg +1 -0
- package/svg/aspects.svg +1 -0
- package/svg/asset-network-filled.svg +1 -0
- package/svg/asset-network.svg +1 -0
- package/svg/asterisk.svg +1 -0
- package/svg/axes-synchronous.svg +1 -0
- package/svg/axis-positioning.svg +1 -0
- package/svg/axis-rotation.svg +1 -0
- package/svg/barchart-horizontal.svg +1 -0
- package/svg/barchart.svg +1 -1
- package/svg/bilibili-logo.svg +1 -0
- package/svg/box-plot-filled.svg +1 -0
- package/svg/box-plot.svg +1 -0
- package/svg/bring-forward.svg +1 -0
- package/svg/bring-to-front.svg +1 -0
- package/svg/brush.svg +1 -0
- package/svg/building-block-filled.svg +1 -0
- package/svg/building-block.svg +1 -0
- package/svg/calendar-day-filled.svg +1 -0
- package/svg/calendar-day.svg +1 -0
- package/svg/calendar-week-filled.svg +1 -0
- package/svg/calendar-week.svg +1 -0
- package/svg/cam-disk-10k.svg +1 -0
- package/svg/cam-disk.svg +1 -0
- package/svg/cam-track.svg +1 -0
- package/svg/cam.svg +1 -0
- package/svg/certificate.svg +1 -0
- package/svg/chain-alternative.svg +1 -0
- package/svg/chain-parallel.svg +1 -0
- package/svg/chain-step.svg +1 -0
- package/svg/chart-duration-curve.svg +1 -0
- package/svg/chart-types-filled.svg +1 -0
- package/svg/chart-types.svg +1 -0
- package/svg/chart-value-horizontal.svg +1 -0
- package/svg/chart-value-vertical.svg +1 -0
- package/svg/checkbox-empty-filled.svg +1 -0
- package/svg/checkbox-empty.svg +1 -0
- package/svg/checkbox-mixed-filled.svg +1 -0
- package/svg/checkbox-mixed.svg +1 -0
- package/svg/checkboxes-empty-filled.svg +1 -0
- package/svg/checkboxes-empty.svg +1 -0
- package/svg/checkboxes-filled.svg +1 -1
- package/svg/checkboxes.svg +1 -1
- package/svg/client-interface.svg +1 -0
- package/svg/clipboard-filled.svg +1 -0
- package/svg/clipboard.svg +1 -0
- package/svg/cloud-cancelled-filled.svg +1 -0
- package/svg/cloud-cancelled.svg +1 -0
- package/svg/cloud-rain-filled.svg +1 -0
- package/svg/cloud-rain.svg +1 -0
- package/svg/cloud-snow-filled.svg +1 -0
- package/svg/cloud-snow.svg +1 -0
- package/svg/cloud-thunder-filled.svg +1 -0
- package/svg/cloud-thunder.svg +1 -0
- package/svg/code-document-check.svg +1 -0
- package/svg/code-function.svg +1 -0
- package/svg/code-script.svg +1 -0
- package/svg/coin-filled.svg +1 -0
- package/svg/coin-stack-filled.svg +1 -0
- package/svg/coin-stack.svg +1 -0
- package/svg/coin.svg +1 -0
- package/svg/coins-filled.svg +1 -0
- package/svg/coins.svg +1 -0
- package/svg/comment-alt-filled.svg +1 -0
- package/svg/comment-alt.svg +1 -0
- package/svg/connection-bulb.svg +1 -0
- package/svg/connection-fail.svg +1 -0
- package/svg/connection-local.svg +1 -0
- package/svg/connection-signal.svg +1 -0
- package/svg/connection-success.svg +1 -0
- package/svg/connections-settings.svg +1 -0
- package/svg/connections.svg +1 -0
- package/svg/connectivity.svg +1 -0
- package/svg/control-button.svg +1 -0
- package/svg/control-checkbox.svg +1 -0
- package/svg/control-io-field.svg +1 -0
- package/svg/control-label.svg +1 -0
- package/svg/control-list-box.svg +1 -0
- package/svg/control-radiobutton.svg +1 -0
- package/svg/control-select.svg +1 -0
- package/svg/control-slider.svg +1 -0
- package/svg/control-spinner.svg +1 -0
- package/svg/control-switch.svg +1 -0
- package/svg/control-text-button.svg +1 -0
- package/svg/control-textbox.svg +1 -0
- package/svg/control-touch-area.svg +1 -0
- package/svg/control-value-bar.svg +1 -0
- package/svg/conversation-filled.svg +1 -0
- package/svg/conversation.svg +1 -0
- package/svg/create-plant-filled.svg +1 -1
- package/svg/create-plant.svg +1 -1
- package/svg/cycle-alt.svg +1 -0
- package/svg/dashboard-filled.svg +1 -0
- package/svg/dashboard.svg +1 -0
- package/svg/data-management-filled.svg +1 -0
- package/svg/data-management.svg +1 -0
- package/svg/data-type-boolean.svg +1 -0
- package/svg/data-type-double.svg +1 -0
- package/svg/data-type-enum.svg +1 -0
- package/svg/data-type-integer.svg +1 -0
- package/svg/data-type-string-list.svg +1 -0
- package/svg/data-type-string.svg +1 -0
- package/svg/database-arrow-left.svg +1 -0
- package/svg/device-play-filled.svg +1 -0
- package/svg/device-play.svg +1 -0
- package/svg/device-view-flat.svg +1 -0
- package/svg/device-view-hierarchical.svg +1 -0
- package/svg/distribute-objects-horizontally.svg +1 -0
- package/svg/distribute-objects-vertically.svg +1 -0
- package/svg/document-code-filled.svg +1 -0
- package/svg/document-code.svg +1 -0
- package/svg/document-filled.svg +1 -0
- package/svg/document-info.svg +1 -1
- package/svg/document-mapping-filled.svg +1 -0
- package/svg/document-mapping.svg +1 -0
- package/svg/document-program-filled.svg +1 -0
- package/svg/document-program.svg +1 -0
- package/svg/doughnutchart-filled.svg +1 -0
- package/svg/doughnutchart.svg +1 -0
- package/svg/download-delta.svg +1 -0
- package/svg/download-full.svg +1 -0
- package/svg/downtime.svg +1 -0
- package/svg/draw-circle-arc.svg +1 -0
- package/svg/draw-circle-segment.svg +1 -0
- package/svg/draw-circle.svg +1 -0
- package/svg/draw-ellipse-segment.svg +1 -0
- package/svg/drawer-documents.svg +1 -0
- package/svg/drawing-document-filled.svg +1 -0
- package/svg/drawing-document.svg +1 -0
- package/svg/e-mail-filled.svg +1 -1
- package/svg/e-mail.svg +1 -1
- package/svg/edit-plant-filled.svg +1 -0
- package/svg/edit-plant.svg +1 -1
- package/svg/editor-grid-dots.svg +1 -0
- package/svg/editor-grid-lines.svg +1 -0
- package/svg/editor-grid-magnet.svg +1 -0
- package/svg/editor-grid-none.svg +1 -0
- package/svg/editor-grid.svg +1 -0
- package/svg/editor-guide-lines-magnet.svg +1 -0
- package/svg/editor-guides.svg +1 -0
- package/svg/editor-resources.svg +1 -0
- package/svg/element-filled.svg +1 -0
- package/svg/element.svg +1 -0
- package/svg/email-document-filled.svg +1 -0
- package/svg/email-document.svg +1 -0
- package/svg/emergency-stop.svg +1 -0
- package/svg/emote-happy-filled.svg +1 -0
- package/svg/emote-happy.svg +1 -0
- package/svg/emote-neutral-filled.svg +1 -0
- package/svg/emote-neutral.svg +1 -0
- package/svg/emote-sad-filled.svg +1 -0
- package/svg/emote-sad.svg +1 -0
- package/svg/exclamation-mark.svg +1 -0
- package/svg/external-encoder.svg +1 -0
- package/svg/eye-focus.svg +1 -0
- package/svg/eye-magnifying-glass.svg +1 -0
- package/svg/facebook-logo.svg +1 -0
- package/svg/faceplate-container.svg +1 -0
- package/svg/fast-forward-filled.svg +1 -0
- package/svg/fast-forward.svg +1 -0
- package/svg/feedback-filled.svg +1 -0
- package/svg/feedback.svg +1 -0
- package/svg/filter-update.svg +1 -0
- package/svg/flag-alt-filled.svg +1 -0
- package/svg/flag-alt.svg +1 -0
- package/svg/flow-physically.svg +1 -0
- package/svg/folder-collapse-all.svg +1 -0
- package/svg/folder-expand-all.svg +1 -0
- package/svg/frames-filled.svg +1 -0
- package/svg/frames.svg +1 -0
- package/svg/ganttchart.svg +1 -0
- package/svg/github-logo.svg +1 -0
- package/svg/glasses-play.svg +1 -0
- package/svg/global-plant-filled.svg +1 -1
- package/svg/global-plant.svg +1 -1
- package/svg/globe-filled.svg +1 -1
- package/svg/globe-tag.svg +1 -0
- package/svg/graph-filled.svg +1 -0
- package/svg/graph.svg +1 -0
- package/svg/group-objects.svg +1 -0
- package/svg/hand-filled.svg +1 -0
- package/svg/hand.svg +1 -0
- package/svg/hat-man-filled.svg +1 -0
- package/svg/hat-man.svg +1 -0
- package/svg/heat-map-chart-filled.svg +1 -0
- package/svg/heat-map-chart.svg +1 -0
- package/svg/history-list.svg +1 -1
- package/svg/history.svg +1 -1
- package/svg/indicator-filled.svg +1 -0
- package/svg/indicator.svg +1 -0
- package/svg/ink-pen-add.svg +1 -0
- package/svg/ink-pen-filled.svg +1 -0
- package/svg/instagram-logo.svg +1 -0
- package/svg/interpreter-filled.svg +1 -0
- package/svg/interpreter.svg +1 -0
- package/svg/java-script.svg +1 -0
- package/svg/jigsaw-details-filled.svg +1 -0
- package/svg/jigsaw-details.svg +1 -0
- package/svg/jigsaw-filled.svg +1 -0
- package/svg/jigsaw.svg +1 -0
- package/svg/json-document-filled.svg +1 -0
- package/svg/json-document.svg +1 -0
- package/svg/key.svg +1 -0
- package/svg/keyboard-docked-bottom.svg +1 -0
- package/svg/keyboard-floating.svg +1 -0
- package/svg/keyboard-framed.svg +1 -0
- package/svg/keyboard.svg +1 -0
- package/svg/kinematics.svg +1 -0
- package/svg/kpi-filled.svg +1 -0
- package/svg/kpi.svg +1 -0
- package/svg/leading-axis-proxy.svg +1 -0
- package/svg/legal-circle-filled.svg +1 -0
- package/svg/legal-circle.svg +1 -0
- package/svg/limits-cancelled.svg +1 -0
- package/svg/limits-check.svg +1 -0
- package/svg/line-cap-flat.svg +1 -0
- package/svg/line-cap-round.svg +1 -0
- package/svg/line-cap-square.svg +1 -0
- package/svg/line-dash-dot-dot.svg +1 -0
- package/svg/line-dash-dot.svg +1 -0
- package/svg/line-dash.svg +1 -0
- package/svg/line-dot.svg +1 -0
- package/svg/line-solid.svg +1 -0
- package/svg/linechart.svg +1 -0
- package/svg/linkedin-logo.svg +1 -0
- package/svg/list-add.svg +1 -0
- package/svg/list-graphics-text.svg +1 -0
- package/svg/list-graphics.svg +1 -0
- package/svg/list-remove.svg +1 -0
- package/svg/list-text.svg +1 -0
- package/svg/lock-key-filled.svg +1 -1
- package/svg/lock-key.svg +1 -1
- package/svg/longer.svg +1 -0
- package/svg/machine-a-filled.svg +1 -0
- package/svg/machine-a.svg +1 -0
- package/svg/machine-b-filled.svg +1 -0
- package/svg/machine-b.svg +1 -0
- package/svg/machine-c-filled.svg +1 -0
- package/svg/machine-c.svg +1 -0
- package/svg/magnet-cancelled.svg +1 -0
- package/svg/magnet.svg +1 -0
- package/svg/mail-alarm-analog.svg +1 -0
- package/svg/mail-alarm-classes.svg +1 -0
- package/svg/mail-alarm-discrete.svg +1 -0
- package/svg/map-alt-1-filled.svg +1 -0
- package/svg/map-alt-1.svg +1 -0
- package/svg/map-alt-2-filled.svg +1 -0
- package/svg/map-alt-2.svg +1 -0
- package/svg/map-alt-3-filled.svg +1 -0
- package/svg/map-alt-3.svg +1 -0
- package/svg/mastodon-logo.svg +1 -0
- package/svg/measuring-input.svg +1 -0
- package/svg/media-player.svg +1 -0
- package/svg/mobile-phone-filled.svg +1 -0
- package/svg/mobile-phone.svg +1 -0
- package/svg/moon-filled.svg +1 -1
- package/svg/moon.svg +1 -1
- package/svg/move-layer-down.svg +1 -0
- package/svg/move-layer-up.svg +1 -0
- package/svg/movie-filled.svg +1 -0
- package/svg/movie.svg +1 -0
- package/svg/mqtt-filled.svg +1 -0
- package/svg/mqtt.svg +1 -0
- package/svg/music-note.svg +1 -0
- package/svg/namur-diagnostics-passive-filled.svg +1 -0
- package/svg/namur-diagnostics-passive.svg +1 -0
- package/svg/navigation-left-hide.svg +1 -0
- package/svg/navigation-right-hide.svg +1 -0
- package/svg/network-device-filled.svg +1 -0
- package/svg/network-device-play-filled.svg +1 -0
- package/svg/network-device-play.svg +1 -0
- package/svg/network-device.svg +1 -0
- package/svg/network-wired-wireless.svg +1 -0
- package/svg/network-wired.svg +1 -0
- package/svg/notebook-filled.svg +1 -0
- package/svg/notebook.svg +1 -0
- package/svg/objects-tree.svg +1 -0
- package/svg/objects.svg +1 -0
- package/svg/operate-plant-filled.svg +1 -1
- package/svg/operate-plant.svg +1 -1
- package/svg/package-filled.svg +1 -0
- package/svg/package.svg +1 -0
- package/svg/parameter.svg +1 -0
- package/svg/paste-filled.svg +1 -0
- package/svg/paste.svg +1 -1
- package/svg/pc-tower-settings-filled.svg +1 -0
- package/svg/pc-tower-settings.svg +1 -0
- package/svg/pdf-document-filled.svg +1 -0
- package/svg/pin-cancelled-filled.svg +1 -0
- package/svg/pin-cancelled.svg +1 -0
- package/svg/pin-filled.svg +1 -1
- package/svg/pin.svg +1 -1
- package/svg/plant-details-filled.svg +1 -0
- package/svg/plant-details.svg +1 -0
- package/svg/plant-handbook-filled.svg +1 -1
- package/svg/plant-handbook.svg +1 -1
- package/svg/plant-search-filled.svg +1 -0
- package/svg/plant-search.svg +1 -0
- package/svg/plant-security-filled.svg +1 -0
- package/svg/plant-security.svg +1 -1
- package/svg/plant-settings-filled.svg +1 -1
- package/svg/plant-settings.svg +1 -1
- package/svg/plc-device-tag.svg +1 -0
- package/svg/plc-device-user-data-type.svg +1 -0
- package/svg/plc-device.svg +1 -0
- package/svg/plc-tag.svg +1 -0
- package/svg/plc-user-data-type.svg +1 -0
- package/svg/plc.svg +1 -0
- package/svg/polarchart-filled.svg +1 -0
- package/svg/polarchart.svg +1 -0
- package/svg/process-control.svg +1 -0
- package/svg/project-arrow-diagonal-top-right.svg +1 -0
- package/svg/project-arrow-left.svg +1 -0
- package/svg/project-arrow-right.svg +1 -0
- package/svg/project-close.svg +1 -0
- package/svg/project-duplicate.svg +1 -0
- package/svg/project-history.svg +1 -0
- package/svg/project-server-filled.svg +1 -1
- package/svg/project-server.svg +1 -1
- package/svg/project-settings.svg +1 -0
- package/svg/project-simulation.svg +1 -0
- package/svg/projects-close.svg +1 -0
- package/svg/question-mark.svg +1 -0
- package/svg/record-filled.svg +1 -0
- package/svg/record.svg +1 -0
- package/svg/reddit-logo.svg +1 -0
- package/svg/reference-point-bottom-left.svg +1 -0
- package/svg/reference-point-bottom-right.svg +1 -0
- package/svg/reference-point-centered.svg +1 -0
- package/svg/reference-point-top-left.svg +1 -0
- package/svg/reference-point-top-right.svg +1 -0
- package/svg/refresh-arrow-down.svg +1 -0
- package/svg/remove-circle-filled.svg +1 -0
- package/svg/remove-circle.svg +1 -0
- package/svg/report-general.svg +1 -0
- package/svg/restore.svg +1 -0
- package/svg/rewind-filled.svg +1 -0
- package/svg/rewind.svg +1 -0
- package/svg/robotic-arm.svg +1 -0
- package/svg/robotic-gripper.svg +1 -0
- package/svg/roles-filled.svg +1 -0
- package/svg/roles.svg +1 -0
- package/svg/rotate-180.svg +1 -0
- package/svg/rotate-90-left.svg +1 -0
- package/svg/rotate-90-right.svg +1 -0
- package/svg/rotate.svg +1 -0
- package/svg/ruler-horizontal.svg +1 -0
- package/svg/ruler-vertical.svg +1 -0
- package/svg/rules-filled.svg +1 -0
- package/svg/rules.svg +1 -0
- package/svg/runtime-play.svg +1 -0
- package/svg/runtime-settings.svg +1 -1
- package/svg/runtime-stop.svg +1 -0
- package/svg/sankeychart.svg +1 -0
- package/svg/save-all.svg +1 -0
- package/svg/scale.svg +1 -0
- package/svg/screen-duplicate-filled.svg +1 -0
- package/svg/screen-duplicate.svg +1 -0
- package/svg/screen-pc-tower-filled.svg +1 -0
- package/svg/screen-pc-tower-settings-filled.svg +1 -0
- package/svg/screen-pc-tower-settings.svg +1 -0
- package/svg/screen-pc-tower.svg +1 -0
- package/svg/screen-settings-filled.svg +1 -0
- package/svg/screen-settings.svg +1 -0
- package/svg/screens-filled.svg +1 -0
- package/svg/screens.svg +1 -0
- package/svg/select-alt-filled.svg +1 -0
- package/svg/select-alt.svg +1 -0
- package/svg/send-backward.svg +1 -0
- package/svg/send-to-back.svg +1 -0
- package/svg/server-interface.svg +1 -0
- package/svg/shapes-filled.svg +1 -0
- package/svg/shapes.svg +1 -0
- package/svg/share-alt-filled.svg +1 -0
- package/svg/share-alt.svg +1 -0
- package/svg/shield-broken-filled.svg +1 -1
- package/svg/shield-broken.svg +1 -1
- package/svg/shift-filled.svg +1 -0
- package/svg/shift.svg +1 -0
- package/svg/shopping-cart-filled.svg +1 -1
- package/svg/shopping-cart.svg +1 -1
- package/svg/shorter.svg +1 -0
- package/svg/simulation-table.svg +1 -0
- package/svg/sms.svg +1 -0
- package/svg/spiderchart-filled.svg +1 -0
- package/svg/spiderchart.svg +1 -0
- package/svg/stacked-barchart.svg +1 -0
- package/svg/star-half-filled.svg +1 -0
- package/svg/stopwatch-filled.svg +1 -0
- package/svg/stopwatch.svg +1 -0
- package/svg/storage-filled.svg +1 -0
- package/svg/storage.svg +1 -0
- package/svg/subtitle-filled.svg +1 -0
- package/svg/subtitle.svg +1 -0
- package/svg/sun-cloud-filled.svg +1 -0
- package/svg/sun-cloud.svg +1 -0
- package/svg/sunrise-filled.svg +1 -0
- package/svg/sunrise.svg +1 -0
- package/svg/sunset-filled.svg +1 -0
- package/svg/sunset.svg +1 -0
- package/svg/table-tag.svg +1 -0
- package/svg/tag-arrow-left-filled.svg +1 -0
- package/svg/tag-arrow-left.svg +1 -0
- package/svg/tag-arrow-right-filled.svg +1 -0
- package/svg/tag-arrow-right.svg +1 -0
- package/svg/tag-circle-arrow-down-filled.svg +1 -0
- package/svg/tag-circle-arrow-down.svg +1 -0
- package/svg/tag-connection-filled.svg +1 -0
- package/svg/tag-connection.svg +1 -0
- package/svg/tag-eye-filled.svg +1 -0
- package/svg/tag-eye.svg +1 -0
- package/svg/tag-filled.svg +1 -1
- package/svg/tag-logging-filled.svg +1 -0
- package/svg/tag-logging.svg +1 -0
- package/svg/tag-plus-filled.svg +1 -1
- package/svg/tag-plus.svg +1 -1
- package/svg/tag.svg +1 -1
- package/svg/telegram-logo.svg +1 -0
- package/svg/text-alginment-center.svg +1 -0
- package/svg/text-alginment-justified.svg +1 -0
- package/svg/text-alginment-left.svg +1 -0
- package/svg/text-alginment-right.svg +1 -0
- package/svg/thermometer-filled.svg +1 -0
- package/svg/threads-logo.svg +1 -0
- package/svg/thumb-down-filled.svg +1 -0
- package/svg/thumb-down.svg +1 -0
- package/svg/thumb-up-filled.svg +1 -0
- package/svg/thumb-up.svg +1 -0
- package/svg/ticket-filled.svg +1 -0
- package/svg/ticket.svg +1 -0
- package/svg/tiktok-logo.svg +1 -0
- package/svg/tiles-filled.svg +1 -0
- package/svg/tiles.svg +1 -0
- package/svg/time-zone-filled.svg +1 -0
- package/svg/time-zone.svg +1 -0
- package/svg/trace-eye.svg +1 -0
- package/svg/train-filled.svg +1 -0
- package/svg/train.svg +1 -0
- package/svg/trend-companion.svg +1 -0
- package/svg/txt-document-filled.svg +1 -0
- package/svg/ungroup-objects.svg +1 -0
- package/svg/unlock-plant-filled.svg +1 -1
- package/svg/unlock-plant.svg +1 -1
- package/svg/user-data-types.svg +1 -0
- package/svg/user-group.svg +1 -0
- package/svg/user-key.svg +1 -0
- package/svg/user-manual-filled.svg +1 -0
- package/svg/user-manual.svg +1 -0
- package/svg/user-pen.svg +1 -0
- package/svg/user-reading-filled.svg +1 -0
- package/svg/user-reading.svg +1 -1
- package/svg/variable.svg +1 -0
- package/svg/video-camera-filled.svg +1 -0
- package/svg/video-camera-record-filled.svg +1 -0
- package/svg/video-camera-record.svg +1 -0
- package/svg/video-camera.svg +1 -0
- package/svg/viva-engage-logo.svg +1 -0
- package/svg/voltage-filled.svg +1 -0
- package/svg/voltage.svg +1 -0
- package/svg/watch-table.svg +1 -0
- package/svg/web-browser-screen.svg +1 -0
- package/svg/wechat-logo.svg +1 -0
- package/svg/weibo-logo.svg +1 -0
- package/svg/wlan-strength-1-lock.svg +1 -0
- package/svg/wlan-strength-2-lock.svg +1 -0
- package/svg/wlan-strength-3-lock.svg +1 -0
- package/svg/wlan-warning.svg +1 -0
- package/svg/x-logo.svg +1 -0
- package/svg/xls-document-filled.svg +1 -0
- package/dist/cjs/icon-7938bd17.js.map +0 -1
- package/dist/cjs/index-12b9d30e.js.map +0 -1
- package/dist/esm/icon-7346da2f.js.map +0 -1
- package/dist/esm/index-05493327.js.map +0 -1
- package/dist/ix-icons/p-07c8bd06.entry.js +0 -2
- package/dist/ix-icons/p-20132e89.js +0 -3
- package/dist/ix-icons/p-20132e89.js.map +0 -1
- package/dist/ix-icons/p-daba5432.js +0 -2
- package/dist/ix-icons/p-daba5432.js.map +0 -1
- package/dist/ix-icons/svg/checkbox-component-checked.svg +0 -1
- package/dist/ix-icons/svg/checkbox-component-mixed.svg +0 -1
- package/dist/ix-icons/svg/checkbox-component-unchecked.svg +0 -1
- package/dist/ix-icons/svg/corner-arrow-up-left.svg +0 -1
- package/dist/ix-icons/svg/filter-outline.svg +0 -1
- package/dist/ix-icons/svg/folder-new-outline.svg +0 -1
- package/dist/ix-icons/svg/folder-open-outline.svg +0 -1
- package/dist/ix-icons/svg/folder-outline.svg +0 -1
- package/dist/ix-icons/svg/full-screeen-exit.svg +0 -1
- package/dist/ix-icons/svg/full-screeen.svg +0 -1
- package/dist/ix-icons/svg/landing-page-logo.svg +0 -1
- package/dist/ix-icons/svg/location-outline.svg +0 -1
- package/dist/ix-icons/svg/new-indicator-filled.svg +0 -1
- package/dist/ix-icons/svg/new-indicator.svg +0 -1
- package/dist/ix-icons/svg/plant-outline.svg +0 -1
- package/dist/ix-icons/svg/user-reading-reading.svg +0 -1
- package/dist/ix-icons/svg/validate.svg +0 -1
- package/svg/checkbox-component-checked.svg +0 -1
- package/svg/checkbox-component-mixed.svg +0 -1
- package/svg/checkbox-component-unchecked.svg +0 -1
- package/svg/corner-arrow-up-left.svg +0 -1
- package/svg/filter-outline.svg +0 -1
- package/svg/folder-new-outline.svg +0 -1
- package/svg/folder-open-outline.svg +0 -1
- package/svg/folder-outline.svg +0 -1
- package/svg/full-screeen-exit.svg +0 -1
- package/svg/full-screeen.svg +0 -1
- package/svg/landing-page-logo.svg +0 -1
- package/svg/location-outline.svg +0 -1
- package/svg/new-indicator-filled.svg +0 -1
- package/svg/new-indicator.svg +0 -1
- package/svg/plant-outline.svg +0 -1
- package/svg/user-reading-reading.svg +0 -1
- package/svg/validate.svg +0 -1
- /package/dist/ix-icons/{p-07c8bd06.entry.js.map → p-08f117ce.entry.js.map} +0 -0
- /package/dist/ix-icons/svg/{battery-bolt.svg → battery-charge.svg} +0 -0
- /package/dist/ix-icons/svg/{battery-upright-bolt.svg → battery-upright-charge.svg} +0 -0
- /package/svg/{battery-bolt.svg → battery-charge.svg} +0 -0
- /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
|
-
###
|
15
|
+
### With Siemens Industrial Experience design system
|
16
16
|
|
17
|
-
|
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
|
-
|
19
|
+
### Without Siemens Industrial Experience design system
|
20
20
|
|
21
|
-
|
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
|
-
|
25
|
-
await defineCustomElements();
|
26
|
-
})();
|
27
|
-
```
|
23
|
+
#### Using CDN
|
28
24
|
|
29
|
-
|
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
|
-
```
|
33
|
-
|
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
|
-
|
32
|
+
Now you can render icons in you applicaton:
|
45
33
|
|
46
34
|
```html
|
47
|
-
<ix-icon name="
|
35
|
+
<ix-icon name="star"></ix-icon>
|
48
36
|
```
|
49
37
|
|
50
|
-
###
|
38
|
+
### Using a package manager like `npm`/`pnpm`/`yarn`
|
51
39
|
|
52
|
-
|
53
|
-
|
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
|
47
|
+
// Register Web Component <ix-icon></ix-icon>
|
48
|
+
defineCustomElements();
|
56
49
|
```
|
57
50
|
|
58
|
-
###
|
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–
|
98
|
+
Copyright © 2019–2025 [Siemens AG](https://www.siemens.com/).
|
85
99
|
|
86
100
|
This project is MIT licensed.
|
package/components/icon.js
CHANGED
@@ -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
|
130
|
-
|
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
|
-
|
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,
|
246
|
+
export { Icon as I, addIcons as a, addIconToCache as b, defineCustomElement as d };
|
224
247
|
|
225
248
|
//# sourceMappingURL=icon.js.map
|
package/components/icon.js.map
CHANGED
@@ -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":";;AAAA;;;;;SAKgB,iBAAiB;IAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;IACvE,IAAI,SAAS,EAAE;QACb,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf;;ACbA;;;;;;;;AAiBA,IAAI,UAA+B,CAAC;AACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;AACpD,IAAI,MAAM,GAAG,IAAI,CAAC;AAEX,MAAM,eAAe,GAAG;IAC7B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,IAAI,GAAG,EAAE,CAAC;KAClB;IAED,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACtC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC;KACnE;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,GAAW;IACtC,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,OAAO,KAAK,CAAC;KACd;IAED,OAAO,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAC9C,CAAC,CAAC;SAEc,mBAAmB,CAAC,OAAe;IACjD,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,WAAW,EAAE;QAC9C,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACzD,OAAO;KACR;IAED,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;KACpC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAgB,CAAC;IAEnE,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAC;KAC3C;IAED,OAAO,UAAU,CAAC,SAAS,CAAC;AAC9B,CAAC;AAED,eAAe,QAAQ,CAAC,GAAW;IACjC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAEhC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAClB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACvB;IAED,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACrB,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAC1B;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAM,QAAQ;QAC7C,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE3C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5B,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;SAC3B;QAED,MAAM,UAAU,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACrD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAE3B,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAErB,OAAO,UAAU,CAAC;KACnB,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC5B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,QAAQ,GAAG,4EAA4E,CAAC;AAE9F,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;SAEe,UAAU,CAAC,IAAY;IACrC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,IAAI,cAAc,EAAE;QAClB,OAAO,GAAG,cAAc,IAAI,IAAI,MAAM,CAAC;KACxC;IAED,IAAI,GAAG,GAAW,OAAO,IAAI,MAAM,CAAC;IAEpC,IAAI;QACF,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;KACzB;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,YAAY,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3C,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;KACzB;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAEM,eAAe,WAAW,CAAC,QAAgB;IAChD,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,KAAK,CAAC,uBAAuB,CAAC,CAAC;KACtC;IAED,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE;QAC1B,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC;KACtC;IAED,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,eAAe,QAAQ,CAAC,QAAgB;IACtC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAEhC,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;QACvB,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KAC5B;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;QACxB,IAAI;YACF,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC3B;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAC;SACb;KACF;IAED,IAAI;QACF,OAAO,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;KACvC;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;KAC9C;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,MAAc;IACjD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC1B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;KAChE;IAED,OAAO,IAAI,CAAC;AACd,CAAC;SAEe,QAAQ,CAAC,KAA8B;IACrD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAElC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC5B,CAAC,CAAC;AACL,CAAC;SAEe,cAAc,CAAC,IAAY,EAAE,IAAY;IACvD,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAEhC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACnB,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,sDAAsD,CAAC,CAAC;KACxF;IAED,MAAM,GAAG,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEtC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAErB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,iCAAiC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAE3F,IAAI,IAAI,IAAI,WAAW,EAAE;QACvB,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;KAC7B;AACH;;AC/LA,MAAM,OAAO,GAAG,ulBAAulB,CAAC;AACxmB,qBAAe,OAAO;;ACUtB,MAAM,iBAAiB,GACrB,gdAAgd,CAAC;MAQtc,IAAI;IANjB;;;;QAkCU,gBAAW,GAAG,KAAK,CAAC;QAGnB,cAAS,GAAG,KAAK,CAAC;KA+D5B;IA7DC,iBAAiB;QACf,IAAI,CAAC,gBAAgB,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB,CAAC,CAAC;KACJ;IAGD,MAAM,eAAe;QACnB,IAAI;YACF,IAAI,CAAC,UAAU,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChD;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;SAC1D;KACF;IAEO,gBAAgB,CAAC,QAAoB;QAC3C,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW,IAAK,MAAc,CAAC,oBAAoB,EAAE;YAChH,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACvC,OAAO;gBACL,OAAO,CAAC,OAAO,CAAC,KAAK;oBACnB,IAAI,KAAK,CAAC,cAAc,EAAE;wBACxB,QAAQ,EAAE,CAAC;wBACX,QAAQ,CAAC,UAAU,EAAE,CAAC;qBACvB;iBACF,CAAC,CAAC;aACJ,EACD;gBACE,UAAU,EAAE,MAAM;aACnB,CACF,CAAC;YAEF,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACpC;aAAM;YACL,QAAQ,EAAE,CAAC;SACZ;KACF;IAED,MAAM;QACJ,MAAM,KAAK,GAEP,EAAE,CAAC;QAEP,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,KAAK,CAAC,OAAO,CAAC,GAAG,eAAe,IAAI,CAAC,KAAK,GAAG,CAAC;SAC/C;QAED,QACE,EAAC,IAAI,qDACH,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE;gBACL,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI;gBAC/B,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI;gBAC/B,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI;gBAC/B,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI;aAChC,IAED,4DAAK,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,GAAQ,CAC1D,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","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}
|
package/components/index.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
export { getAssetPath, setAssetPath, setNonce, setPlatformOptions } from '@stencil/core/internal/client';
|
2
|
-
export { I as Icon,
|
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-
|
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
|
132
|
-
|
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
|
-
|
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.
|
225
|
+
exports.addIconToCache = addIconToCache;
|
226
|
+
exports.addIcons = addIcons;
|
203
227
|
|
204
|
-
//# sourceMappingURL=icon-
|
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}
|