@bookklik/senangstart-icons 1.0.8 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent/skills/build-scripts/SKILL.md +155 -0
- package/.agent/skills/icon-development/SKILL.md +154 -0
- package/.agent/skills/senangstart-icons-architecture/SKILL.md +123 -0
- package/.agent/skills/testing/SKILL.md +202 -0
- package/.agent/skills/web-components/SKILL.md +209 -0
- package/.agent/workflows/add-icon.md +85 -0
- package/.agent/workflows/build.md +73 -0
- package/.agent/workflows/dev.md +52 -0
- package/.agent/workflows/docs.md +77 -0
- package/.agent/workflows/publish.md +80 -0
- package/.agent/workflows/test.md +56 -0
- package/README.md +5 -5
- package/docs/.vitepress/config.mjs +15 -13
- package/docs/guide/configuration.md +3 -48
- package/docs/guide/getting-started.md +10 -3
- package/docs/guide/installation.md +1 -1
- package/docs/guide/styling.md +10 -10
- package/docs/guide/usage.md +37 -44
- package/docs/icons/alert.md +6 -10
- package/docs/icons/align-bottom-object.md +6 -10
- package/docs/icons/align-center-object.md +6 -10
- package/docs/icons/align-left-object.md +6 -10
- package/docs/icons/align-middle-object.md +6 -10
- package/docs/icons/align-right-object.md +6 -10
- package/docs/icons/align-top-object.md +6 -10
- package/docs/icons/ar.md +6 -10
- package/docs/icons/archive-box.md +6 -10
- package/docs/icons/arrow-down.md +6 -10
- package/docs/icons/arrow-left-arrow-right.md +6 -10
- package/docs/icons/arrow-left-on-rectangle.md +6 -10
- package/docs/icons/arrow-left-right.md +6 -10
- package/docs/icons/arrow-left.md +6 -10
- package/docs/icons/arrow-long-down.md +6 -10
- package/docs/icons/arrow-long-left.md +6 -10
- package/docs/icons/arrow-long-right.md +6 -10
- package/docs/icons/arrow-long-up.md +6 -10
- package/docs/icons/arrow-path.md +6 -10
- package/docs/icons/arrow-right-on-rectangle.md +6 -10
- package/docs/icons/arrow-right.md +6 -10
- package/docs/icons/arrow-rotate-ccw.md +6 -10
- package/docs/icons/arrow-rotate-cw.md +6 -10
- package/docs/icons/arrow-top-right-on-square.md +6 -10
- package/docs/icons/arrow-up-arrow-down.md +6 -10
- package/docs/icons/arrow-up-down-left-right.md +6 -10
- package/docs/icons/arrow-up-down.md +6 -10
- package/docs/icons/arrow-up.md +6 -10
- package/docs/icons/banknotes.md +6 -10
- package/docs/icons/bars-3.md +6 -10
- package/docs/icons/basket.md +6 -10
- package/docs/icons/battery-0.md +6 -10
- package/docs/icons/battery-10.md +6 -10
- package/docs/icons/battery-100.md +6 -10
- package/docs/icons/battery-50.md +6 -10
- package/docs/icons/bell-alert.md +6 -10
- package/docs/icons/bell.md +6 -10
- package/docs/icons/bolt.md +6 -10
- package/docs/icons/book-close.md +6 -10
- package/docs/icons/book-open.md +6 -10
- package/docs/icons/book-stacked.md +6 -10
- package/docs/icons/bookmark.md +6 -10
- package/docs/icons/briefcase.md +6 -10
- package/docs/icons/brush.md +6 -10
- package/docs/icons/cake.md +6 -10
- package/docs/icons/calendar-approve.md +6 -10
- package/docs/icons/calendar-days.md +6 -10
- package/docs/icons/calendar-minus.md +6 -10
- package/docs/icons/calendar-plus.md +6 -10
- package/docs/icons/calendar-reject.md +6 -10
- package/docs/icons/calendar.md +6 -10
- package/docs/icons/camera.md +6 -10
- package/docs/icons/carousel.md +6 -10
- package/docs/icons/chart-bar.md +6 -10
- package/docs/icons/chart-line.md +6 -10
- package/docs/icons/chart-pie.md +6 -10
- package/docs/icons/chat-bubble-left-ellipsis.md +6 -10
- package/docs/icons/chat-bubble-left-right.md +6 -10
- package/docs/icons/chat-bubble-left.md +6 -10
- package/docs/icons/chat-bubble-right-ellipsis.md +6 -10
- package/docs/icons/chat-bubble-right.md +6 -10
- package/docs/icons/chatbot.md +6 -10
- package/docs/icons/check.md +6 -10
- package/docs/icons/chevron-double-down.md +6 -10
- package/docs/icons/chevron-double-left.md +6 -10
- package/docs/icons/chevron-double-right.md +6 -10
- package/docs/icons/chevron-double-up.md +6 -10
- package/docs/icons/chevron-down.md +6 -10
- package/docs/icons/chevron-left.md +6 -10
- package/docs/icons/chevron-right.md +6 -10
- package/docs/icons/chevron-up.md +6 -10
- package/docs/icons/circle.md +6 -10
- package/docs/icons/clipboard-document-check.md +6 -10
- package/docs/icons/clipboard.md +6 -10
- package/docs/icons/clock.md +6 -10
- package/docs/icons/cloud.md +6 -10
- package/docs/icons/code.md +6 -10
- package/docs/icons/cog-6-tooth.md +6 -10
- package/docs/icons/compress.md +6 -10
- package/docs/icons/computer-code.md +6 -10
- package/docs/icons/computer-desktop.md +6 -10
- package/docs/icons/computer-laptop.md +6 -10
- package/docs/icons/cone.md +6 -10
- package/docs/icons/console.md +6 -10
- package/docs/icons/container.md +6 -10
- package/docs/icons/contrast.md +6 -10
- package/docs/icons/controller.md +6 -10
- package/docs/icons/credit-card.md +6 -10
- package/docs/icons/crop.md +6 -10
- package/docs/icons/crosshair.md +6 -10
- package/docs/icons/cube.md +6 -10
- package/docs/icons/currency-dollar.md +6 -10
- package/docs/icons/currency-euro.md +6 -10
- package/docs/icons/currency-pound.md +6 -10
- package/docs/icons/currency-ringgit.md +6 -10
- package/docs/icons/currency-yen.md +6 -10
- package/docs/icons/cursor.md +6 -10
- package/docs/icons/cylinder-half.md +6 -10
- package/docs/icons/cylinder.md +6 -10
- package/docs/icons/device-phone-mobile.md +6 -10
- package/docs/icons/device-tablet.md +6 -10
- package/docs/icons/diamond.md +6 -10
- package/docs/icons/document-duplicate.md +6 -10
- package/docs/icons/document-text.md +6 -10
- package/docs/icons/document.md +6 -10
- package/docs/icons/dodecahedron.md +6 -10
- package/docs/icons/double-tick.md +6 -10
- package/docs/icons/draw-curve.md +6 -10
- package/docs/icons/draw-line.md +6 -10
- package/docs/icons/envelope-open.md +6 -10
- package/docs/icons/envelope.md +6 -10
- package/docs/icons/eraser.md +6 -10
- package/docs/icons/exclamation-circle.md +6 -10
- package/docs/icons/exclamation-triangle.md +6 -10
- package/docs/icons/expand.md +6 -10
- package/docs/icons/eye-slash.md +6 -10
- package/docs/icons/eye.md +6 -10
- package/docs/icons/flag.md +6 -10
- package/docs/icons/flip-horizontal.md +6 -10
- package/docs/icons/flip-vertical.md +6 -10
- package/docs/icons/focus.md +6 -10
- package/docs/icons/folder-minus.md +6 -10
- package/docs/icons/folder-open.md +6 -10
- package/docs/icons/folder-plus.md +6 -10
- package/docs/icons/folder.md +6 -10
- package/docs/icons/font.md +6 -10
- package/docs/icons/game.md +6 -10
- package/docs/icons/gift.md +6 -10
- package/docs/icons/globe-alt.md +6 -10
- package/docs/icons/gradient.md +6 -10
- package/docs/icons/grid.md +6 -10
- package/docs/icons/group-object.md +6 -10
- package/docs/icons/hand-grab.md +6 -10
- package/docs/icons/hand-thumb-down.md +6 -10
- package/docs/icons/hand-thumb-up.md +6 -10
- package/docs/icons/hand.md +6 -10
- package/docs/icons/heart-extruded.md +6 -10
- package/docs/icons/heart.md +6 -10
- package/docs/icons/hexagon.md +6 -10
- package/docs/icons/home.md +6 -10
- package/docs/icons/horizontal-3-dots.md +6 -10
- package/docs/icons/hourglass-0.md +6 -10
- package/docs/icons/hourglass-100.md +6 -10
- package/docs/icons/hourglass-50.md +6 -10
- package/docs/icons/hourglass-80.md +6 -10
- package/docs/icons/icosahedron.md +6 -10
- package/docs/icons/inbox.md +6 -10
- package/docs/icons/information-circle.md +6 -10
- package/docs/icons/key.md +6 -10
- package/docs/icons/layer-stacks.md +6 -10
- package/docs/icons/layout.md +6 -10
- package/docs/icons/light-bulb.md +6 -10
- package/docs/icons/lock-closed.md +6 -10
- package/docs/icons/lock-open.md +6 -10
- package/docs/icons/magic-wand.md +6 -10
- package/docs/icons/magnifying-glass-focus.md +6 -10
- package/docs/icons/magnifying-glass-minus.md +6 -10
- package/docs/icons/magnifying-glass-plus.md +6 -10
- package/docs/icons/magnifying-glass.md +6 -10
- package/docs/icons/map-pin.md +6 -10
- package/docs/icons/map.md +6 -10
- package/docs/icons/marquee.md +6 -10
- package/docs/icons/maximize.md +6 -10
- package/docs/icons/medal.md +6 -10
- package/docs/icons/microphone-mute.md +6 -10
- package/docs/icons/microphone.md +6 -10
- package/docs/icons/minimize.md +6 -10
- package/docs/icons/minus.md +6 -10
- package/docs/icons/moon.md +6 -10
- package/docs/icons/musical-note.md +6 -10
- package/docs/icons/octahedron.md +6 -10
- package/docs/icons/panorama.md +6 -10
- package/docs/icons/paper-clip.md +6 -10
- package/docs/icons/pause-circle.md +6 -10
- package/docs/icons/pause.md +6 -10
- package/docs/icons/pencil.md +6 -10
- package/docs/icons/phone-x-mark.md +6 -10
- package/docs/icons/phone.md +6 -10
- package/docs/icons/photo.md +6 -10
- package/docs/icons/plane.md +6 -10
- package/docs/icons/play-circle.md +6 -10
- package/docs/icons/play.md +6 -10
- package/docs/icons/plus.md +6 -10
- package/docs/icons/polygon.md +6 -10
- package/docs/icons/presentation-chart-line.md +6 -10
- package/docs/icons/presentation-media.md +6 -10
- package/docs/icons/pyramid.md +6 -10
- package/docs/icons/qr-code.md +6 -10
- package/docs/icons/question-mark-circle.md +6 -10
- package/docs/icons/rectangle.md +6 -10
- package/docs/icons/reel.md +6 -10
- package/docs/icons/robot.md +6 -10
- package/docs/icons/roof.md +6 -10
- package/docs/icons/rotate-add.md +6 -10
- package/docs/icons/rotate-minus.md +6 -10
- package/docs/icons/save.md +6 -10
- package/docs/icons/scissor.md +6 -10
- package/docs/icons/shapes.md +6 -10
- package/docs/icons/shield-check.md +6 -10
- package/docs/icons/shield-exclamation.md +6 -10
- package/docs/icons/shopping-bag.md +6 -10
- package/docs/icons/shopping-cart.md +6 -10
- package/docs/icons/sliders-horizontal.md +6 -10
- package/docs/icons/sliders-vertical.md +6 -10
- package/docs/icons/sparkles.md +6 -10
- package/docs/icons/speaker-wave.md +6 -10
- package/docs/icons/speaker-x-mark.md +6 -10
- package/docs/icons/sphere-half.md +6 -10
- package/docs/icons/sphere.md +6 -10
- package/docs/icons/square.md +6 -10
- package/docs/icons/star.md +6 -10
- package/docs/icons/stop-circle.md +6 -10
- package/docs/icons/stop.md +6 -10
- package/docs/icons/sun.md +6 -10
- package/docs/icons/table.md +6 -10
- package/docs/icons/tabs.md +6 -10
- package/docs/icons/tetrahedron.md +6 -10
- package/docs/icons/text-align-center.md +6 -10
- package/docs/icons/text-align-justify.md +6 -10
- package/docs/icons/text-align-left.md +6 -10
- package/docs/icons/text-align-right.md +6 -10
- package/docs/icons/text.md +6 -10
- package/docs/icons/thunder.md +6 -10
- package/docs/icons/tic-tac-toe.md +6 -10
- package/docs/icons/time-reset.md +6 -10
- package/docs/icons/torus-knot.md +6 -10
- package/docs/icons/torus.md +6 -10
- package/docs/icons/trash.md +6 -10
- package/docs/icons/trophy.md +6 -10
- package/docs/icons/truck.md +6 -10
- package/docs/icons/tube.md +6 -10
- package/docs/icons/ungroup-object.md +6 -10
- package/docs/icons/user-circle.md +6 -10
- package/docs/icons/user-group.md +6 -10
- package/docs/icons/user-minus.md +6 -10
- package/docs/icons/user-plus.md +6 -10
- package/docs/icons/user.md +6 -10
- package/docs/icons/users.md +6 -10
- package/docs/icons/vertical-3-dots.md +6 -10
- package/docs/icons/video-camera.md +6 -10
- package/docs/icons/vr.md +6 -10
- package/docs/icons/wedge.md +6 -10
- package/docs/icons/whiteboard.md +6 -10
- package/docs/icons/wifi.md +6 -10
- package/docs/icons/window.md +6 -10
- package/docs/icons/x-mark.md +6 -10
- package/docs/index.md +12 -5
- package/docs/ms/guide/configuration.md +3 -48
- package/docs/ms/guide/getting-started.md +10 -3
- package/docs/ms/guide/installation.md +1 -1
- package/docs/ms/guide/styling.md +10 -10
- package/docs/ms/guide/usage.md +37 -44
- package/docs/ms/icons/alert.md +6 -10
- package/docs/ms/icons/align-bottom-object.md +6 -10
- package/docs/ms/icons/align-center-object.md +6 -10
- package/docs/ms/icons/align-left-object.md +6 -10
- package/docs/ms/icons/align-middle-object.md +6 -10
- package/docs/ms/icons/align-right-object.md +6 -10
- package/docs/ms/icons/align-top-object.md +6 -10
- package/docs/ms/icons/ar.md +6 -10
- package/docs/ms/icons/archive-box.md +6 -10
- package/docs/ms/icons/arrow-down.md +6 -10
- package/docs/ms/icons/arrow-left-arrow-right.md +6 -10
- package/docs/ms/icons/arrow-left-on-rectangle.md +6 -10
- package/docs/ms/icons/arrow-left-right.md +6 -10
- package/docs/ms/icons/arrow-left.md +6 -10
- package/docs/ms/icons/arrow-long-down.md +6 -10
- package/docs/ms/icons/arrow-long-left.md +6 -10
- package/docs/ms/icons/arrow-long-right.md +6 -10
- package/docs/ms/icons/arrow-long-up.md +6 -10
- package/docs/ms/icons/arrow-path.md +6 -10
- package/docs/ms/icons/arrow-right-on-rectangle.md +6 -10
- package/docs/ms/icons/arrow-right.md +6 -10
- package/docs/ms/icons/arrow-rotate-ccw.md +6 -10
- package/docs/ms/icons/arrow-rotate-cw.md +6 -10
- package/docs/ms/icons/arrow-top-right-on-square.md +6 -10
- package/docs/ms/icons/arrow-up-arrow-down.md +6 -10
- package/docs/ms/icons/arrow-up-down-left-right.md +6 -10
- package/docs/ms/icons/arrow-up-down.md +6 -10
- package/docs/ms/icons/arrow-up.md +6 -10
- package/docs/ms/icons/banknotes.md +6 -10
- package/docs/ms/icons/bars-3.md +6 -10
- package/docs/ms/icons/basket.md +6 -10
- package/docs/ms/icons/battery-0.md +6 -10
- package/docs/ms/icons/battery-10.md +6 -10
- package/docs/ms/icons/battery-100.md +6 -10
- package/docs/ms/icons/battery-50.md +6 -10
- package/docs/ms/icons/bell-alert.md +6 -10
- package/docs/ms/icons/bell.md +6 -10
- package/docs/ms/icons/bolt.md +6 -10
- package/docs/ms/icons/book-close.md +6 -10
- package/docs/ms/icons/book-open.md +6 -10
- package/docs/ms/icons/book-stacked.md +6 -10
- package/docs/ms/icons/bookmark.md +6 -10
- package/docs/ms/icons/briefcase.md +6 -10
- package/docs/ms/icons/brush.md +6 -10
- package/docs/ms/icons/cake.md +6 -10
- package/docs/ms/icons/calendar-approve.md +6 -10
- package/docs/ms/icons/calendar-days.md +6 -10
- package/docs/ms/icons/calendar-minus.md +6 -10
- package/docs/ms/icons/calendar-plus.md +6 -10
- package/docs/ms/icons/calendar-reject.md +6 -10
- package/docs/ms/icons/calendar.md +6 -10
- package/docs/ms/icons/camera.md +6 -10
- package/docs/ms/icons/carousel.md +6 -10
- package/docs/ms/icons/chart-bar.md +6 -10
- package/docs/ms/icons/chart-line.md +6 -10
- package/docs/ms/icons/chart-pie.md +6 -10
- package/docs/ms/icons/chat-bubble-left-ellipsis.md +6 -10
- package/docs/ms/icons/chat-bubble-left-right.md +6 -10
- package/docs/ms/icons/chat-bubble-left.md +6 -10
- package/docs/ms/icons/chat-bubble-right-ellipsis.md +6 -10
- package/docs/ms/icons/chat-bubble-right.md +6 -10
- package/docs/ms/icons/chatbot.md +6 -10
- package/docs/ms/icons/check.md +6 -10
- package/docs/ms/icons/chevron-double-down.md +6 -10
- package/docs/ms/icons/chevron-double-left.md +6 -10
- package/docs/ms/icons/chevron-double-right.md +6 -10
- package/docs/ms/icons/chevron-double-up.md +6 -10
- package/docs/ms/icons/chevron-down.md +6 -10
- package/docs/ms/icons/chevron-left.md +6 -10
- package/docs/ms/icons/chevron-right.md +6 -10
- package/docs/ms/icons/chevron-up.md +6 -10
- package/docs/ms/icons/circle.md +6 -10
- package/docs/ms/icons/clipboard-document-check.md +6 -10
- package/docs/ms/icons/clipboard.md +6 -10
- package/docs/ms/icons/clock.md +6 -10
- package/docs/ms/icons/cloud.md +6 -10
- package/docs/ms/icons/code.md +6 -10
- package/docs/ms/icons/cog-6-tooth.md +6 -10
- package/docs/ms/icons/compress.md +6 -10
- package/docs/ms/icons/computer-code.md +6 -10
- package/docs/ms/icons/computer-desktop.md +6 -10
- package/docs/ms/icons/computer-laptop.md +6 -10
- package/docs/ms/icons/cone.md +6 -10
- package/docs/ms/icons/console.md +6 -10
- package/docs/ms/icons/container.md +6 -10
- package/docs/ms/icons/contrast.md +6 -10
- package/docs/ms/icons/controller.md +6 -10
- package/docs/ms/icons/credit-card.md +6 -10
- package/docs/ms/icons/crop.md +6 -10
- package/docs/ms/icons/crosshair.md +6 -10
- package/docs/ms/icons/cube.md +6 -10
- package/docs/ms/icons/currency-dollar.md +6 -10
- package/docs/ms/icons/currency-euro.md +6 -10
- package/docs/ms/icons/currency-pound.md +6 -10
- package/docs/ms/icons/currency-ringgit.md +6 -10
- package/docs/ms/icons/currency-yen.md +6 -10
- package/docs/ms/icons/cursor.md +6 -10
- package/docs/ms/icons/cylinder-half.md +6 -10
- package/docs/ms/icons/cylinder.md +6 -10
- package/docs/ms/icons/device-phone-mobile.md +6 -10
- package/docs/ms/icons/device-tablet.md +6 -10
- package/docs/ms/icons/diamond.md +6 -10
- package/docs/ms/icons/document-duplicate.md +6 -10
- package/docs/ms/icons/document-text.md +6 -10
- package/docs/ms/icons/document.md +6 -10
- package/docs/ms/icons/dodecahedron.md +6 -10
- package/docs/ms/icons/double-tick.md +6 -10
- package/docs/ms/icons/draw-curve.md +6 -10
- package/docs/ms/icons/draw-line.md +6 -10
- package/docs/ms/icons/envelope-open.md +6 -10
- package/docs/ms/icons/envelope.md +6 -10
- package/docs/ms/icons/eraser.md +6 -10
- package/docs/ms/icons/exclamation-circle.md +6 -10
- package/docs/ms/icons/exclamation-triangle.md +6 -10
- package/docs/ms/icons/expand.md +6 -10
- package/docs/ms/icons/eye-slash.md +6 -10
- package/docs/ms/icons/eye.md +6 -10
- package/docs/ms/icons/flag.md +6 -10
- package/docs/ms/icons/flip-horizontal.md +6 -10
- package/docs/ms/icons/flip-vertical.md +6 -10
- package/docs/ms/icons/focus.md +6 -10
- package/docs/ms/icons/folder-minus.md +6 -10
- package/docs/ms/icons/folder-open.md +6 -10
- package/docs/ms/icons/folder-plus.md +6 -10
- package/docs/ms/icons/folder.md +6 -10
- package/docs/ms/icons/font.md +6 -10
- package/docs/ms/icons/game.md +6 -10
- package/docs/ms/icons/gift.md +6 -10
- package/docs/ms/icons/globe-alt.md +6 -10
- package/docs/ms/icons/gradient.md +6 -10
- package/docs/ms/icons/grid.md +6 -10
- package/docs/ms/icons/group-object.md +6 -10
- package/docs/ms/icons/hand-grab.md +6 -10
- package/docs/ms/icons/hand-thumb-down.md +6 -10
- package/docs/ms/icons/hand-thumb-up.md +6 -10
- package/docs/ms/icons/hand.md +6 -10
- package/docs/ms/icons/heart-extruded.md +6 -10
- package/docs/ms/icons/heart.md +6 -10
- package/docs/ms/icons/hexagon.md +6 -10
- package/docs/ms/icons/home.md +6 -10
- package/docs/ms/icons/horizontal-3-dots.md +6 -10
- package/docs/ms/icons/hourglass-0.md +6 -10
- package/docs/ms/icons/hourglass-100.md +6 -10
- package/docs/ms/icons/hourglass-50.md +6 -10
- package/docs/ms/icons/hourglass-80.md +6 -10
- package/docs/ms/icons/icosahedron.md +6 -10
- package/docs/ms/icons/inbox.md +6 -10
- package/docs/ms/icons/information-circle.md +6 -10
- package/docs/ms/icons/key.md +6 -10
- package/docs/ms/icons/layer-stacks.md +6 -10
- package/docs/ms/icons/layout.md +6 -10
- package/docs/ms/icons/light-bulb.md +6 -10
- package/docs/ms/icons/lock-closed.md +6 -10
- package/docs/ms/icons/lock-open.md +6 -10
- package/docs/ms/icons/magic-wand.md +6 -10
- package/docs/ms/icons/magnifying-glass-focus.md +6 -10
- package/docs/ms/icons/magnifying-glass-minus.md +6 -10
- package/docs/ms/icons/magnifying-glass-plus.md +6 -10
- package/docs/ms/icons/magnifying-glass.md +6 -10
- package/docs/ms/icons/map-pin.md +6 -10
- package/docs/ms/icons/map.md +6 -10
- package/docs/ms/icons/marquee.md +6 -10
- package/docs/ms/icons/maximize.md +6 -10
- package/docs/ms/icons/medal.md +6 -10
- package/docs/ms/icons/microphone-mute.md +6 -10
- package/docs/ms/icons/microphone.md +6 -10
- package/docs/ms/icons/minimize.md +6 -10
- package/docs/ms/icons/minus.md +6 -10
- package/docs/ms/icons/moon.md +6 -10
- package/docs/ms/icons/musical-note.md +6 -10
- package/docs/ms/icons/octahedron.md +6 -10
- package/docs/ms/icons/panorama.md +6 -10
- package/docs/ms/icons/paper-clip.md +6 -10
- package/docs/ms/icons/pause-circle.md +6 -10
- package/docs/ms/icons/pause.md +6 -10
- package/docs/ms/icons/pencil.md +6 -10
- package/docs/ms/icons/phone-x-mark.md +6 -10
- package/docs/ms/icons/phone.md +6 -10
- package/docs/ms/icons/photo.md +6 -10
- package/docs/ms/icons/plane.md +6 -10
- package/docs/ms/icons/play-circle.md +6 -10
- package/docs/ms/icons/play.md +6 -10
- package/docs/ms/icons/plus.md +6 -10
- package/docs/ms/icons/polygon.md +6 -10
- package/docs/ms/icons/presentation-chart-line.md +6 -10
- package/docs/ms/icons/presentation-media.md +6 -10
- package/docs/ms/icons/pyramid.md +6 -10
- package/docs/ms/icons/qr-code.md +6 -10
- package/docs/ms/icons/question-mark-circle.md +6 -10
- package/docs/ms/icons/rectangle.md +6 -10
- package/docs/ms/icons/reel.md +6 -10
- package/docs/ms/icons/robot.md +6 -10
- package/docs/ms/icons/roof.md +6 -10
- package/docs/ms/icons/rotate-add.md +6 -10
- package/docs/ms/icons/rotate-minus.md +6 -10
- package/docs/ms/icons/save.md +6 -10
- package/docs/ms/icons/scissor.md +6 -10
- package/docs/ms/icons/shapes.md +6 -10
- package/docs/ms/icons/shield-check.md +6 -10
- package/docs/ms/icons/shield-exclamation.md +6 -10
- package/docs/ms/icons/shopping-bag.md +6 -10
- package/docs/ms/icons/shopping-cart.md +6 -10
- package/docs/ms/icons/sliders-horizontal.md +6 -10
- package/docs/ms/icons/sliders-vertical.md +6 -10
- package/docs/ms/icons/sparkles.md +6 -10
- package/docs/ms/icons/speaker-wave.md +6 -10
- package/docs/ms/icons/speaker-x-mark.md +6 -10
- package/docs/ms/icons/sphere-half.md +6 -10
- package/docs/ms/icons/sphere.md +6 -10
- package/docs/ms/icons/square.md +6 -10
- package/docs/ms/icons/star.md +6 -10
- package/docs/ms/icons/stop-circle.md +6 -10
- package/docs/ms/icons/stop.md +6 -10
- package/docs/ms/icons/sun.md +6 -10
- package/docs/ms/icons/table.md +6 -10
- package/docs/ms/icons/tabs.md +6 -10
- package/docs/ms/icons/tetrahedron.md +6 -10
- package/docs/ms/icons/text-align-center.md +6 -10
- package/docs/ms/icons/text-align-justify.md +6 -10
- package/docs/ms/icons/text-align-left.md +6 -10
- package/docs/ms/icons/text-align-right.md +6 -10
- package/docs/ms/icons/text.md +6 -10
- package/docs/ms/icons/thunder.md +6 -10
- package/docs/ms/icons/tic-tac-toe.md +6 -10
- package/docs/ms/icons/time-reset.md +6 -10
- package/docs/ms/icons/torus-knot.md +6 -10
- package/docs/ms/icons/torus.md +6 -10
- package/docs/ms/icons/trash.md +6 -10
- package/docs/ms/icons/trophy.md +6 -10
- package/docs/ms/icons/truck.md +6 -10
- package/docs/ms/icons/tube.md +6 -10
- package/docs/ms/icons/ungroup-object.md +6 -10
- package/docs/ms/icons/user-circle.md +6 -10
- package/docs/ms/icons/user-group.md +6 -10
- package/docs/ms/icons/user-minus.md +6 -10
- package/docs/ms/icons/user-plus.md +6 -10
- package/docs/ms/icons/user.md +6 -10
- package/docs/ms/icons/users.md +6 -10
- package/docs/ms/icons/vertical-3-dots.md +6 -10
- package/docs/ms/icons/video-camera.md +6 -10
- package/docs/ms/icons/vr.md +6 -10
- package/docs/ms/icons/wedge.md +6 -10
- package/docs/ms/icons/whiteboard.md +6 -10
- package/docs/ms/icons/wifi.md +6 -10
- package/docs/ms/icons/window.md +6 -10
- package/docs/ms/icons/x-mark.md +6 -10
- package/docs/ms/index.md +12 -5
- package/docs/public/assets/senangstart-icons-logo.svg +1 -0
- package/docs/public/assets/ss-logo.svg +83 -0
- package/docs/public/llms.txt +285 -0
- package/package.json +1 -1
- package/scripts/build-icon-docs.js +12 -20
- package/scripts/build.js +4 -0
- package/scripts/generate-llms-txt.js +70 -0
- package/tests/build-icon-docs.test.js +3 -1
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Web Components
|
|
3
|
+
description: Working with the ss-icon Web Component and ss-loader
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Web Components Skill
|
|
7
|
+
|
|
8
|
+
This skill covers the two JavaScript components that render icons.
|
|
9
|
+
|
|
10
|
+
## ss-icon Web Component
|
|
11
|
+
|
|
12
|
+
**Location:** `src/ss-icon.js`
|
|
13
|
+
|
|
14
|
+
### Usage
|
|
15
|
+
|
|
16
|
+
```html
|
|
17
|
+
<ss-icon icon="check"></ss-icon>
|
|
18
|
+
<ss-icon icon="arrow-left" thickness="1.5"></ss-icon>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Attributes
|
|
22
|
+
|
|
23
|
+
| Attribute | Type | Default | Description |
|
|
24
|
+
|-----------|------|---------|-------------|
|
|
25
|
+
| `icon` | string | - | Icon slug from icons.json |
|
|
26
|
+
| `thickness` | number | 2 | Stroke width of the icon |
|
|
27
|
+
|
|
28
|
+
### How It Works
|
|
29
|
+
|
|
30
|
+
```javascript
|
|
31
|
+
class SSIcon extends HTMLElement {
|
|
32
|
+
// Watch for attribute changes
|
|
33
|
+
static get observedAttributes() {
|
|
34
|
+
return ["icon", "thickness"];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
constructor() {
|
|
38
|
+
super();
|
|
39
|
+
this.attachShadow({ mode: "open" });
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Re-render when attributes change
|
|
43
|
+
attributeChangedCallback(name, oldValue, newValue) {
|
|
44
|
+
if (name === "icon" || name === "thickness") {
|
|
45
|
+
this.render();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
render() {
|
|
50
|
+
const iconName = this.getAttribute("icon");
|
|
51
|
+
const iconSvg = icons[iconName];
|
|
52
|
+
// Inject SVG with custom thickness into shadow DOM
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
customElements.define("ss-icon", SSIcon);
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Styling
|
|
60
|
+
|
|
61
|
+
The component inherits color from parent:
|
|
62
|
+
|
|
63
|
+
```css
|
|
64
|
+
.my-button {
|
|
65
|
+
color: blue;
|
|
66
|
+
}
|
|
67
|
+
.my-button ss-icon {
|
|
68
|
+
/* Icon will be blue */
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Override size:
|
|
73
|
+
|
|
74
|
+
```css
|
|
75
|
+
ss-icon {
|
|
76
|
+
font-size: 24px; /* Icons scale with font-size */
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## ss-loader (Class-based Icons)
|
|
83
|
+
|
|
84
|
+
**Location:** `src/ss-loader.js`
|
|
85
|
+
|
|
86
|
+
### Usage
|
|
87
|
+
|
|
88
|
+
```html
|
|
89
|
+
<i class="ss ss-check"></i>
|
|
90
|
+
<i class="ss ss-arrow-left"></i>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### How It Works
|
|
94
|
+
|
|
95
|
+
1. **Initial Load:** On DOMContentLoaded, finds all `i.ss` elements
|
|
96
|
+
2. **Extract Icon:** Looks for class starting with `ss-`
|
|
97
|
+
3. **Inject SVG:** Inserts SVG content into the element
|
|
98
|
+
4. **Mark Loaded:** Adds `data-ss-loaded="true"` to prevent reprocessing
|
|
99
|
+
5. **Observe Changes:** MutationObserver watches for new icons added dynamically
|
|
100
|
+
|
|
101
|
+
```javascript
|
|
102
|
+
function replaceIcons() {
|
|
103
|
+
const elements = document.querySelectorAll("i.ss");
|
|
104
|
+
elements.forEach((el) => {
|
|
105
|
+
if (el.dataset.ssLoaded) return; // Skip already processed
|
|
106
|
+
|
|
107
|
+
const iconClass = classes.find(c => c.startsWith("ss-"));
|
|
108
|
+
const iconName = iconClass.replace("ss-", "");
|
|
109
|
+
const iconSvg = icons[iconName];
|
|
110
|
+
|
|
111
|
+
if (iconSvg) {
|
|
112
|
+
el.innerHTML = iconSvg;
|
|
113
|
+
el.dataset.ssLoaded = "true";
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Watch for dynamically added icons
|
|
119
|
+
const observer = new MutationObserver((mutations) => {
|
|
120
|
+
// Check for added nodes or class changes
|
|
121
|
+
if (shouldUpdate) replaceIcons();
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
observer.observe(document.body, {
|
|
125
|
+
childList: true,
|
|
126
|
+
subtree: true,
|
|
127
|
+
attributes: true,
|
|
128
|
+
attributeFilter: ["class"]
|
|
129
|
+
});
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Styling Class-based Icons
|
|
133
|
+
|
|
134
|
+
```css
|
|
135
|
+
.ss {
|
|
136
|
+
display: inline-block;
|
|
137
|
+
width: 1em;
|
|
138
|
+
height: 1em;
|
|
139
|
+
vertical-align: middle;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/* Custom styling */
|
|
143
|
+
.ss-check {
|
|
144
|
+
color: green;
|
|
145
|
+
font-size: 2rem;
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## CSS-Only Icons (Alternative)
|
|
152
|
+
|
|
153
|
+
For environments without JavaScript, use the CSS-only approach:
|
|
154
|
+
|
|
155
|
+
```html
|
|
156
|
+
<link rel="stylesheet" href="senangstart.min.css">
|
|
157
|
+
<i class="ss ss-check"></i>
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
The CSS uses `mask-image` with data URIs - no JavaScript required.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Extending the Components
|
|
165
|
+
|
|
166
|
+
### Adding New Attributes to ss-icon
|
|
167
|
+
|
|
168
|
+
1. Add to `observedAttributes` array
|
|
169
|
+
2. Handle in `render()` method
|
|
170
|
+
3. Update tests in `tests/ss-icon.test.js`
|
|
171
|
+
|
|
172
|
+
### Example: Adding a `color` attribute
|
|
173
|
+
|
|
174
|
+
```javascript
|
|
175
|
+
static get observedAttributes() {
|
|
176
|
+
return ["icon", "thickness", "color"];
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
render() {
|
|
180
|
+
const color = this.getAttribute("color") || "currentColor";
|
|
181
|
+
this.shadowRoot.innerHTML = `
|
|
182
|
+
<style>
|
|
183
|
+
:host { color: ${color}; }
|
|
184
|
+
/* ... */
|
|
185
|
+
</style>
|
|
186
|
+
${finalSvg}
|
|
187
|
+
`;
|
|
188
|
+
}
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Adding Animation Support
|
|
192
|
+
|
|
193
|
+
```javascript
|
|
194
|
+
render() {
|
|
195
|
+
const animate = this.hasAttribute("animate");
|
|
196
|
+
this.shadowRoot.innerHTML = `
|
|
197
|
+
<style>
|
|
198
|
+
${animate ? `
|
|
199
|
+
@keyframes spin {
|
|
200
|
+
from { transform: rotate(0deg); }
|
|
201
|
+
to { transform: rotate(360deg); }
|
|
202
|
+
}
|
|
203
|
+
svg { animation: spin 1s linear infinite; }
|
|
204
|
+
` : ""}
|
|
205
|
+
</style>
|
|
206
|
+
${finalSvg}
|
|
207
|
+
`;
|
|
208
|
+
}
|
|
209
|
+
```
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Add a new icon to the SenangStart Icons library
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Add Icon Workflow
|
|
6
|
+
|
|
7
|
+
This workflow guides adding a new icon to the library.
|
|
8
|
+
|
|
9
|
+
## Step 1: Edit icons.json
|
|
10
|
+
|
|
11
|
+
Add the new icon to `src/icons.json`:
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
{
|
|
15
|
+
"name": "Icon Display Name",
|
|
16
|
+
"slug": "icon-slug",
|
|
17
|
+
"src": "M12 2L2 7l10 5 10-5-10-5z...",
|
|
18
|
+
"tags": ["category", "related", "keywords"]
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Icon Properties
|
|
23
|
+
|
|
24
|
+
| Property | Required | Description |
|
|
25
|
+
|----------|----------|-------------|
|
|
26
|
+
| `name` | Yes | Human-readable display name |
|
|
27
|
+
| `slug` | Yes | URL-safe identifier (lowercase, hyphens) |
|
|
28
|
+
| `src` | Yes | SVG path `d` attribute |
|
|
29
|
+
| `tags` | Yes | Array of searchable keywords |
|
|
30
|
+
| `viewBox` | No | Custom viewBox (default: "0 0 24 24") |
|
|
31
|
+
| `fill` | No | Fill color (default: "none") |
|
|
32
|
+
| `stroke` | No | Stroke color (default: "currentColor") |
|
|
33
|
+
| `strokeWidth` | No | Stroke width (default: "2") |
|
|
34
|
+
|
|
35
|
+
## Step 2: Rebuild Assets
|
|
36
|
+
|
|
37
|
+
Run the full build to generate all files:
|
|
38
|
+
|
|
39
|
+
// turbo
|
|
40
|
+
```bash
|
|
41
|
+
npm run build
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
This generates:
|
|
45
|
+
- `src/svg/{slug}.svg` - Individual SVG file
|
|
46
|
+
- Updated `src/icons.css` - CSS class for the icon
|
|
47
|
+
- `docs/icons/{slug}.md` - English documentation
|
|
48
|
+
- `docs/ms/icons/{slug}.md` - Malay documentation
|
|
49
|
+
- Updated `dist/` bundles
|
|
50
|
+
|
|
51
|
+
## Step 3: Verify the Icon
|
|
52
|
+
|
|
53
|
+
1. Check the generated SVG in `src/svg/{slug}.svg`
|
|
54
|
+
2. Open `index.html` in a browser to preview
|
|
55
|
+
3. Run docs dev server to verify documentation:
|
|
56
|
+
|
|
57
|
+
// turbo
|
|
58
|
+
```bash
|
|
59
|
+
npm run docs:dev
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Step 4: Run Tests
|
|
63
|
+
|
|
64
|
+
// turbo
|
|
65
|
+
```bash
|
|
66
|
+
npm test
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Best Practices
|
|
70
|
+
|
|
71
|
+
### SVG Path Guidelines
|
|
72
|
+
- Use 24x24 viewBox for consistency
|
|
73
|
+
- Optimize paths (remove unnecessary precision)
|
|
74
|
+
- Use stroke-based icons for thickness customization
|
|
75
|
+
- Ensure paths work with `stroke-linecap="round"` and `stroke-linejoin="round"`
|
|
76
|
+
|
|
77
|
+
### Naming Conventions
|
|
78
|
+
- Use descriptive, concise names
|
|
79
|
+
- Slugs should be lowercase with hyphens
|
|
80
|
+
- Follow existing naming patterns (e.g., `arrow-left`, `chevron-down`)
|
|
81
|
+
|
|
82
|
+
### Tags
|
|
83
|
+
- Include the icon name broken into words
|
|
84
|
+
- Add related concept keywords
|
|
85
|
+
- Include action words if applicable
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Build the production distribution files for SenangStart Icons
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Build Workflow
|
|
6
|
+
|
|
7
|
+
This workflow builds the production-ready distribution files.
|
|
8
|
+
|
|
9
|
+
## Full Build (Recommended)
|
|
10
|
+
|
|
11
|
+
// turbo
|
|
12
|
+
```bash
|
|
13
|
+
npm run build
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
This runs the complete 4-step build pipeline:
|
|
17
|
+
1. **Build SVGs** - Generates individual SVG files from `src/icons.json`
|
|
18
|
+
2. **Build CSS** - Creates `src/icons.css` with mask-based icon classes
|
|
19
|
+
3. **Build Icon Docs** - Generates markdown docs for each icon (EN + MS)
|
|
20
|
+
4. **Webpack** - Bundles and minifies JS/CSS to `dist/`
|
|
21
|
+
|
|
22
|
+
## Individual Build Steps
|
|
23
|
+
|
|
24
|
+
### Build SVGs Only
|
|
25
|
+
|
|
26
|
+
// turbo
|
|
27
|
+
```bash
|
|
28
|
+
npm run build:svg
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Reads `src/icons.json` and generates:
|
|
32
|
+
- Individual SVG files in `src/svg/`
|
|
33
|
+
- `src/svg/index.js` exporting all icons
|
|
34
|
+
|
|
35
|
+
### Build CSS Only
|
|
36
|
+
|
|
37
|
+
// turbo
|
|
38
|
+
```bash
|
|
39
|
+
npm run build:css
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Generates `src/icons.css` with `.ss-{slug}` classes using CSS mask-image.
|
|
43
|
+
|
|
44
|
+
### Build Icon Documentation Only
|
|
45
|
+
|
|
46
|
+
// turbo
|
|
47
|
+
```bash
|
|
48
|
+
npm run build:icon-docs
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Generates:
|
|
52
|
+
- `docs/icons/{slug}.md` - Individual icon pages (English)
|
|
53
|
+
- `docs/ms/icons/{slug}.md` - Individual icon pages (Malay)
|
|
54
|
+
- `docs/icons/index.md` - Icon gallery index (English)
|
|
55
|
+
- `docs/ms/icons/index.md` - Icon gallery index (Malay)
|
|
56
|
+
|
|
57
|
+
## Output Files
|
|
58
|
+
|
|
59
|
+
| File | Description |
|
|
60
|
+
|------|-------------|
|
|
61
|
+
| `dist/senangstart-icon.min.js` | Bundled JS (Web Component + Loader) |
|
|
62
|
+
| `dist/senangstart-icon.min.js.map` | JS source map |
|
|
63
|
+
| `dist/senangstart.min.css` | Bundled CSS |
|
|
64
|
+
| `dist/senangstart.min.css.map` | CSS source map |
|
|
65
|
+
|
|
66
|
+
## Webpack Configuration
|
|
67
|
+
|
|
68
|
+
See `webpack.config.js` for bundling options:
|
|
69
|
+
- UMD module format
|
|
70
|
+
- Babel transpilation
|
|
71
|
+
- TerserPlugin for JS minification
|
|
72
|
+
- CssMinimizerPlugin for CSS minification
|
|
73
|
+
- Source maps enabled
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Start the development server with hot-reload for icon development
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Development Server Workflow
|
|
6
|
+
|
|
7
|
+
This workflow starts the development environment for SenangStart Icons.
|
|
8
|
+
|
|
9
|
+
## Prerequisites
|
|
10
|
+
|
|
11
|
+
Ensure dependencies are installed:
|
|
12
|
+
|
|
13
|
+
// turbo
|
|
14
|
+
```bash
|
|
15
|
+
npm install
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Steps
|
|
19
|
+
|
|
20
|
+
### 1. Start Development Mode
|
|
21
|
+
|
|
22
|
+
This builds SVGs and CSS, then starts Webpack in watch mode:
|
|
23
|
+
|
|
24
|
+
// turbo
|
|
25
|
+
```bash
|
|
26
|
+
npm run dev
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
This command:
|
|
30
|
+
- Runs `build:svg` to generate SVG files from `src/icons.json`
|
|
31
|
+
- Runs `build:css` to generate `src/icons.css` with mask-based icon classes
|
|
32
|
+
- Starts Webpack in development watch mode
|
|
33
|
+
|
|
34
|
+
### 2. (Optional) Start Documentation Dev Server
|
|
35
|
+
|
|
36
|
+
In a separate terminal, start the VitePress docs server:
|
|
37
|
+
|
|
38
|
+
// turbo
|
|
39
|
+
```bash
|
|
40
|
+
npm run docs:dev
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
This serves the documentation at `http://localhost:5173` with hot-reload.
|
|
44
|
+
|
|
45
|
+
## File Locations
|
|
46
|
+
|
|
47
|
+
| File | Purpose |
|
|
48
|
+
|------|---------|
|
|
49
|
+
| `src/icons.json` | Icon definitions (name, slug, SVG path, tags) |
|
|
50
|
+
| `src/svg/` | Generated SVG files |
|
|
51
|
+
| `src/icons.css` | Generated CSS with mask-based icons |
|
|
52
|
+
| `dist/` | Bundled output files |
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Work with VitePress documentation for SenangStart Icons
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Documentation Workflow
|
|
6
|
+
|
|
7
|
+
This workflow covers working with the VitePress documentation site.
|
|
8
|
+
|
|
9
|
+
## Development Server
|
|
10
|
+
|
|
11
|
+
Start the docs server with hot-reload:
|
|
12
|
+
|
|
13
|
+
// turbo
|
|
14
|
+
```bash
|
|
15
|
+
npm run docs:dev
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Access at `http://localhost:5173`
|
|
19
|
+
|
|
20
|
+
## Build Documentation
|
|
21
|
+
|
|
22
|
+
Build static documentation files:
|
|
23
|
+
|
|
24
|
+
// turbo
|
|
25
|
+
```bash
|
|
26
|
+
npm run docs:build
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Output goes to `docs/.vitepress/dist/`
|
|
30
|
+
|
|
31
|
+
## Preview Production Build
|
|
32
|
+
|
|
33
|
+
// turbo
|
|
34
|
+
```bash
|
|
35
|
+
npm run docs:preview
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Serves the built documentation for testing before deployment.
|
|
39
|
+
|
|
40
|
+
## Documentation Structure
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
docs/
|
|
44
|
+
├── .vitepress/ # VitePress config
|
|
45
|
+
├── guide/ # Usage guides (English)
|
|
46
|
+
│ ├── getting-started.md
|
|
47
|
+
│ ├── installation.md
|
|
48
|
+
│ ├── usage.md
|
|
49
|
+
│ ├── styling.md
|
|
50
|
+
│ └── configuration.md
|
|
51
|
+
├── icons/ # Auto-generated icon pages (English)
|
|
52
|
+
│ ├── index.md # Icon gallery
|
|
53
|
+
│ └── {slug}.md # Individual icon pages
|
|
54
|
+
├── ms/ # Malay translations
|
|
55
|
+
│ ├── guide/
|
|
56
|
+
│ └── icons/
|
|
57
|
+
├── public/ # Static assets
|
|
58
|
+
└── index.md # Homepage
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Regenerating Icon Docs
|
|
62
|
+
|
|
63
|
+
After adding/modifying icons in `src/icons.json`:
|
|
64
|
+
|
|
65
|
+
// turbo
|
|
66
|
+
```bash
|
|
67
|
+
npm run build:icon-docs
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
This regenerates all icon documentation pages in both English and Malay.
|
|
71
|
+
|
|
72
|
+
## Adding Guide Pages
|
|
73
|
+
|
|
74
|
+
1. Create new `.md` file in `docs/guide/`
|
|
75
|
+
2. Add frontmatter with `title` field
|
|
76
|
+
3. Update VitePress config sidebar if needed
|
|
77
|
+
4. Create Malay translation in `docs/ms/guide/` if applicable
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Publish a new version of SenangStart Icons to npm
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Publish Workflow
|
|
6
|
+
|
|
7
|
+
This workflow guides publishing a new version to npm.
|
|
8
|
+
|
|
9
|
+
## Prerequisites
|
|
10
|
+
|
|
11
|
+
1. Ensure you're logged in to npm: `npm whoami`
|
|
12
|
+
2. Ensure you have publish access to `@bookklik/senangstart-icons`
|
|
13
|
+
|
|
14
|
+
## Step 1: Run Tests
|
|
15
|
+
|
|
16
|
+
Ensure all tests pass:
|
|
17
|
+
|
|
18
|
+
// turbo
|
|
19
|
+
```bash
|
|
20
|
+
npm test
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Step 2: Build Production Files
|
|
24
|
+
|
|
25
|
+
// turbo
|
|
26
|
+
```bash
|
|
27
|
+
npm run build
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Step 3: Update Version
|
|
31
|
+
|
|
32
|
+
Update version in `package.json` following semver:
|
|
33
|
+
|
|
34
|
+
- **Patch** (1.0.x): Bug fixes, minor icon adjustments
|
|
35
|
+
- **Minor** (1.x.0): New icons, non-breaking feature additions
|
|
36
|
+
- **Major** (x.0.0): Breaking API changes
|
|
37
|
+
|
|
38
|
+
// turbo
|
|
39
|
+
```bash
|
|
40
|
+
npm version patch
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Or for minor/major:
|
|
44
|
+
```bash
|
|
45
|
+
npm version minor
|
|
46
|
+
npm version major
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Step 4: Publish to npm
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npm publish --access public
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Step 5: Push Tags
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
git push origin main --tags
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Step 6: Build and Deploy Docs
|
|
62
|
+
|
|
63
|
+
Build documentation:
|
|
64
|
+
|
|
65
|
+
// turbo
|
|
66
|
+
```bash
|
|
67
|
+
npm run docs:build
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Deploy to GitHub Pages (if configured via GitHub Actions).
|
|
71
|
+
|
|
72
|
+
## Checklist
|
|
73
|
+
|
|
74
|
+
Before publishing:
|
|
75
|
+
- [ ] All tests pass
|
|
76
|
+
- [ ] Build completes without errors
|
|
77
|
+
- [ ] Version number updated
|
|
78
|
+
- [ ] CHANGELOG updated (if maintained)
|
|
79
|
+
- [ ] Documentation regenerated
|
|
80
|
+
- [ ] Icons visually verified
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run the test suite for SenangStart Icons
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Testing Workflow
|
|
6
|
+
|
|
7
|
+
This workflow runs the Vitest test suite for SenangStart Icons.
|
|
8
|
+
|
|
9
|
+
## Test Commands
|
|
10
|
+
|
|
11
|
+
### Run All Tests Once
|
|
12
|
+
|
|
13
|
+
// turbo
|
|
14
|
+
```bash
|
|
15
|
+
npm test
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### Run Tests in Watch Mode
|
|
19
|
+
|
|
20
|
+
// turbo
|
|
21
|
+
```bash
|
|
22
|
+
npm run test:watch
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Run Tests with Coverage
|
|
26
|
+
|
|
27
|
+
// turbo
|
|
28
|
+
```bash
|
|
29
|
+
npm run test:coverage
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Coverage reports are generated in HTML format in the `coverage/` directory.
|
|
33
|
+
|
|
34
|
+
## Test Files
|
|
35
|
+
|
|
36
|
+
| Test File | What It Tests |
|
|
37
|
+
|-----------|---------------|
|
|
38
|
+
| `tests/ss-icon.test.js` | `<ss-icon>` Web Component rendering |
|
|
39
|
+
| `tests/ss-loader.test.js` | Class-based icon loader (`i.ss`) |
|
|
40
|
+
| `tests/build-svgs.test.js` | SVG generation from icons.json |
|
|
41
|
+
| `tests/build-css.test.js` | CSS generation with mask-image |
|
|
42
|
+
| `tests/build-icon-docs.test.js` | Documentation generation |
|
|
43
|
+
| `tests/build-pipeline.test.js` | Full build pipeline integration |
|
|
44
|
+
|
|
45
|
+
## Configuration
|
|
46
|
+
|
|
47
|
+
Tests are configured in `vitest.config.js`:
|
|
48
|
+
- Environment: Node
|
|
49
|
+
- Globals: enabled
|
|
50
|
+
- Coverage: V8 provider, excludes `src/svg/`
|
|
51
|
+
|
|
52
|
+
## Writing New Tests
|
|
53
|
+
|
|
54
|
+
1. Create test file in `tests/` with `.test.js` extension
|
|
55
|
+
2. Import `describe`, `it`, `expect` from `vitest` (or use globals)
|
|
56
|
+
3. Mock file system operations if needed with `vi.mock('fs')`
|
package/README.md
CHANGED
|
@@ -40,14 +40,14 @@ Or use the `ss-icon` class:
|
|
|
40
40
|
</body>
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
## Preview
|
|
44
|
-
|
|
45
|
-

|
|
46
|
-
|
|
47
43
|
## Contributing
|
|
48
44
|
|
|
49
45
|
Contributions are welcome! Please fork the repository, make your changes, and submit a pull request.
|
|
50
46
|
|
|
47
|
+
## Documentation
|
|
48
|
+
|
|
49
|
+
Full docs at [bookklik-technologies.github.io/senangstart-icons](https://bookklik-technologies.github.io/senangstart-icons/)
|
|
50
|
+
|
|
51
51
|
## License
|
|
52
52
|
|
|
53
|
-
MIT License
|
|
53
|
+
Read [MIT License](LICENSE.md)
|
|
@@ -16,14 +16,13 @@ const iconSidebarItems = icons.map(icon => ({
|
|
|
16
16
|
|
|
17
17
|
// Shared theme config
|
|
18
18
|
const sharedThemeConfig = {
|
|
19
|
-
logo: '
|
|
20
|
-
siteTitle: false,
|
|
19
|
+
logo: '/assets/ss-logo.svg',
|
|
21
20
|
socialLinks: [
|
|
22
21
|
{ icon: 'github', link: 'https://github.com/bookklik-technologies/senangstart-icons' }
|
|
23
22
|
],
|
|
24
23
|
footer: {
|
|
25
|
-
message: '
|
|
26
|
-
copyright:
|
|
24
|
+
message: 'SenangStart Icons v' + pkg.version + ' is part of the <a href="https://senangstart.com/" target="_blank" style="color: var(--vp-c-brand)">SenangStart</a> ecosystem.',
|
|
25
|
+
copyright: `Copyright © ${new Date().getFullYear()} <a href="https://bookklik.com/" target="_blank" style="color: #ff6600">Bookklik Technologies</a>. Released under the MIT License.`
|
|
27
26
|
}
|
|
28
27
|
}
|
|
29
28
|
|
|
@@ -97,10 +96,6 @@ export default defineConfig({
|
|
|
97
96
|
items: iconSidebarItemsMs
|
|
98
97
|
}
|
|
99
98
|
]
|
|
100
|
-
},
|
|
101
|
-
footer: {
|
|
102
|
-
message: 'Dikeluarkan di bawah Lesen MIT.',
|
|
103
|
-
copyright: 'Hakcipta © 2025 Bookklik Technologies'
|
|
104
99
|
}
|
|
105
100
|
}
|
|
106
101
|
}
|
|
@@ -159,13 +154,20 @@ export default defineConfig({
|
|
|
159
154
|
{ icon: 'github', link: 'https://github.com/bookklik-technologies/senangstart-icons' }
|
|
160
155
|
],
|
|
161
156
|
|
|
162
|
-
footer: {
|
|
163
|
-
message: 'Released under the MIT License.',
|
|
164
|
-
copyright: 'Copyright © 2025 Bookklik Technologies'
|
|
165
|
-
},
|
|
166
|
-
|
|
167
157
|
search: {
|
|
168
158
|
provider: 'local'
|
|
169
159
|
}
|
|
160
|
+
},
|
|
161
|
+
|
|
162
|
+
markdown: {
|
|
163
|
+
config: (md) => {
|
|
164
|
+
md.core.ruler.push('replace_version', (state) => {
|
|
165
|
+
state.tokens.forEach((token) => {
|
|
166
|
+
if (token.type === 'fence' && token.content.includes('__PKG_VERSION__')) {
|
|
167
|
+
token.content = token.content.replace(/__PKG_VERSION__/g, pkg.version)
|
|
168
|
+
}
|
|
169
|
+
})
|
|
170
|
+
})
|
|
171
|
+
}
|
|
170
172
|
}
|
|
171
173
|
})
|