@bookklik/senangstart-icons 1.0.6 → 1.0.8
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/.github/workflows/deploy-docs.yml +61 -0
- package/dist/senangstart-icon.min.js +1 -1
- package/dist/senangstart-icon.min.js.map +1 -1
- package/dist/senangstart.min.css +1 -1
- package/dist/senangstart.min.css.map +1 -1
- package/docs/.vitepress/config.mjs +171 -0
- package/docs/.vitepress/theme/custom.css +64 -0
- package/docs/.vitepress/theme/index.js +4 -0
- package/docs/guide/configuration.md +125 -0
- package/docs/guide/getting-started.md +34 -0
- package/docs/guide/installation.md +54 -0
- package/docs/guide/styling.md +156 -0
- package/docs/guide/usage.md +103 -0
- package/docs/icons/alert.md +59 -0
- package/docs/icons/align-bottom-object.md +59 -0
- package/docs/icons/align-center-object.md +59 -0
- package/docs/icons/align-left-object.md +59 -0
- package/docs/icons/align-middle-object.md +59 -0
- package/docs/icons/align-right-object.md +59 -0
- package/docs/icons/align-top-object.md +59 -0
- package/docs/icons/ar.md +59 -0
- package/docs/icons/archive-box.md +59 -0
- package/docs/icons/arrow-down.md +59 -0
- package/docs/icons/arrow-left-arrow-right.md +59 -0
- package/docs/icons/arrow-left-on-rectangle.md +59 -0
- package/docs/icons/arrow-left-right.md +59 -0
- package/docs/icons/arrow-left.md +59 -0
- package/docs/icons/arrow-long-down.md +59 -0
- package/docs/icons/arrow-long-left.md +59 -0
- package/docs/icons/arrow-long-right.md +59 -0
- package/docs/icons/arrow-long-up.md +59 -0
- package/docs/icons/arrow-path.md +59 -0
- package/docs/icons/arrow-right-on-rectangle.md +59 -0
- package/docs/icons/arrow-right.md +59 -0
- package/docs/icons/arrow-rotate-ccw.md +59 -0
- package/docs/icons/arrow-rotate-cw.md +59 -0
- package/docs/icons/arrow-top-right-on-square.md +59 -0
- package/docs/icons/arrow-up-arrow-down.md +59 -0
- package/docs/icons/arrow-up-down-left-right.md +59 -0
- package/docs/icons/arrow-up-down.md +59 -0
- package/docs/icons/arrow-up.md +59 -0
- package/docs/icons/banknotes.md +59 -0
- package/docs/icons/bars-3.md +59 -0
- package/docs/icons/basket.md +59 -0
- package/docs/icons/battery-0.md +59 -0
- package/docs/icons/battery-10.md +59 -0
- package/docs/icons/battery-100.md +59 -0
- package/docs/icons/battery-50.md +59 -0
- package/docs/icons/bell-alert.md +59 -0
- package/docs/icons/bell.md +59 -0
- package/docs/icons/bolt.md +59 -0
- package/docs/icons/book-close.md +59 -0
- package/docs/icons/book-open.md +59 -0
- package/docs/icons/book-stacked.md +59 -0
- package/docs/icons/bookmark.md +59 -0
- package/docs/icons/briefcase.md +59 -0
- package/docs/icons/brush.md +59 -0
- package/docs/icons/cake.md +59 -0
- package/docs/icons/calendar-approve.md +59 -0
- package/docs/icons/calendar-days.md +59 -0
- package/docs/icons/calendar-minus.md +59 -0
- package/docs/icons/calendar-plus.md +59 -0
- package/docs/icons/calendar-reject.md +59 -0
- package/docs/icons/calendar.md +59 -0
- package/docs/icons/camera.md +59 -0
- package/docs/icons/carousel.md +59 -0
- package/docs/icons/chart-bar.md +59 -0
- package/docs/icons/chart-line.md +59 -0
- package/docs/icons/chart-pie.md +59 -0
- package/docs/icons/chat-bubble-left-ellipsis.md +59 -0
- package/docs/icons/chat-bubble-left-right.md +59 -0
- package/docs/icons/chat-bubble-left.md +59 -0
- package/docs/icons/chat-bubble-right-ellipsis.md +59 -0
- package/docs/icons/chat-bubble-right.md +59 -0
- package/docs/icons/chatbot.md +59 -0
- package/docs/icons/check.md +59 -0
- package/docs/icons/chevron-double-down.md +59 -0
- package/docs/icons/chevron-double-left.md +59 -0
- package/docs/icons/chevron-double-right.md +59 -0
- package/docs/icons/chevron-double-up.md +59 -0
- package/docs/icons/chevron-down.md +59 -0
- package/docs/icons/chevron-left.md +59 -0
- package/docs/icons/chevron-right.md +59 -0
- package/docs/icons/chevron-up.md +59 -0
- package/docs/icons/circle.md +59 -0
- package/docs/icons/clipboard-document-check.md +59 -0
- package/docs/icons/clipboard.md +59 -0
- package/docs/icons/clock.md +59 -0
- package/docs/icons/cloud.md +59 -0
- package/docs/icons/code.md +59 -0
- package/docs/icons/cog-6-tooth.md +59 -0
- package/docs/icons/compress.md +59 -0
- package/docs/icons/computer-code.md +59 -0
- package/docs/icons/computer-desktop.md +59 -0
- package/docs/icons/computer-laptop.md +59 -0
- package/docs/icons/cone.md +59 -0
- package/docs/icons/console.md +59 -0
- package/docs/icons/container.md +59 -0
- package/docs/icons/contrast.md +59 -0
- package/docs/icons/controller.md +59 -0
- package/docs/icons/credit-card.md +59 -0
- package/docs/icons/crop.md +59 -0
- package/docs/icons/crosshair.md +59 -0
- package/docs/icons/cube.md +59 -0
- package/docs/icons/currency-dollar.md +59 -0
- package/docs/icons/currency-euro.md +59 -0
- package/docs/icons/currency-pound.md +59 -0
- package/docs/icons/currency-ringgit.md +59 -0
- package/docs/icons/currency-yen.md +59 -0
- package/docs/icons/cursor.md +59 -0
- package/docs/icons/cylinder-half.md +59 -0
- package/docs/icons/cylinder.md +59 -0
- package/docs/icons/device-phone-mobile.md +59 -0
- package/docs/icons/device-tablet.md +59 -0
- package/docs/icons/diamond.md +59 -0
- package/docs/icons/document-duplicate.md +59 -0
- package/docs/icons/document-text.md +59 -0
- package/docs/icons/document.md +59 -0
- package/docs/icons/dodecahedron.md +59 -0
- package/docs/icons/double-tick.md +59 -0
- package/docs/icons/draw-curve.md +59 -0
- package/docs/icons/draw-line.md +59 -0
- package/docs/icons/envelope-open.md +59 -0
- package/docs/icons/envelope.md +59 -0
- package/docs/icons/eraser.md +59 -0
- package/docs/icons/exclamation-circle.md +59 -0
- package/docs/icons/exclamation-triangle.md +59 -0
- package/docs/icons/expand.md +59 -0
- package/docs/icons/eye-slash.md +59 -0
- package/docs/icons/eye.md +59 -0
- package/docs/icons/flag.md +59 -0
- package/docs/icons/flip-horizontal.md +59 -0
- package/docs/icons/flip-vertical.md +59 -0
- package/docs/icons/focus.md +59 -0
- package/docs/icons/folder-minus.md +59 -0
- package/docs/icons/folder-open.md +59 -0
- package/docs/icons/folder-plus.md +59 -0
- package/docs/icons/folder.md +59 -0
- package/docs/icons/font.md +59 -0
- package/docs/icons/game.md +59 -0
- package/docs/icons/gift.md +59 -0
- package/docs/icons/globe-alt.md +59 -0
- package/docs/icons/gradient.md +59 -0
- package/docs/icons/grid.md +59 -0
- package/docs/icons/group-object.md +59 -0
- package/docs/icons/hand-grab.md +59 -0
- package/docs/icons/hand-thumb-down.md +59 -0
- package/docs/icons/hand-thumb-up.md +59 -0
- package/docs/icons/hand.md +59 -0
- package/docs/icons/heart-extruded.md +59 -0
- package/docs/icons/heart.md +59 -0
- package/docs/icons/hexagon.md +59 -0
- package/docs/icons/home.md +59 -0
- package/docs/icons/horizontal-3-dots.md +59 -0
- package/docs/icons/hourglass-0.md +59 -0
- package/docs/icons/hourglass-100.md +59 -0
- package/docs/icons/hourglass-50.md +59 -0
- package/docs/icons/hourglass-80.md +59 -0
- package/docs/icons/icosahedron.md +59 -0
- package/docs/icons/inbox.md +59 -0
- package/docs/icons/index.md +1295 -0
- package/docs/icons/information-circle.md +59 -0
- package/docs/icons/key.md +59 -0
- package/docs/icons/layer-stacks.md +59 -0
- package/docs/icons/layout.md +59 -0
- package/docs/icons/light-bulb.md +59 -0
- package/docs/icons/lock-closed.md +59 -0
- package/docs/icons/lock-open.md +59 -0
- package/docs/icons/magic-wand.md +59 -0
- package/docs/icons/magnifying-glass-focus.md +59 -0
- package/docs/icons/magnifying-glass-minus.md +59 -0
- package/docs/icons/magnifying-glass-plus.md +59 -0
- package/docs/icons/magnifying-glass.md +59 -0
- package/docs/icons/map-pin.md +59 -0
- package/docs/icons/map.md +59 -0
- package/docs/icons/marquee.md +59 -0
- package/docs/icons/maximize.md +59 -0
- package/docs/icons/medal.md +59 -0
- package/docs/icons/microphone-mute.md +59 -0
- package/docs/icons/microphone.md +59 -0
- package/docs/icons/minimize.md +59 -0
- package/docs/icons/minus.md +59 -0
- package/docs/icons/moon.md +59 -0
- package/docs/icons/musical-note.md +59 -0
- package/docs/icons/octahedron.md +59 -0
- package/docs/icons/panorama.md +59 -0
- package/docs/icons/paper-clip.md +59 -0
- package/docs/icons/pause-circle.md +59 -0
- package/docs/icons/pause.md +59 -0
- package/docs/icons/pencil.md +59 -0
- package/docs/icons/phone-x-mark.md +59 -0
- package/docs/icons/phone.md +59 -0
- package/docs/icons/photo.md +59 -0
- package/docs/icons/plane.md +59 -0
- package/docs/icons/play-circle.md +59 -0
- package/docs/icons/play.md +59 -0
- package/docs/icons/plus.md +59 -0
- package/docs/icons/polygon.md +59 -0
- package/docs/icons/presentation-chart-line.md +59 -0
- package/docs/icons/presentation-media.md +59 -0
- package/docs/icons/pyramid.md +59 -0
- package/docs/icons/qr-code.md +59 -0
- package/docs/icons/question-mark-circle.md +59 -0
- package/docs/icons/rectangle.md +59 -0
- package/docs/icons/reel.md +59 -0
- package/docs/icons/robot.md +59 -0
- package/docs/icons/roof.md +59 -0
- package/docs/icons/rotate-add.md +59 -0
- package/docs/icons/rotate-minus.md +59 -0
- package/docs/icons/save.md +59 -0
- package/docs/icons/scissor.md +59 -0
- package/docs/icons/shapes.md +59 -0
- package/docs/icons/shield-check.md +59 -0
- package/docs/icons/shield-exclamation.md +59 -0
- package/docs/icons/shopping-bag.md +59 -0
- package/docs/icons/shopping-cart.md +59 -0
- package/docs/icons/sliders-horizontal.md +59 -0
- package/docs/icons/sliders-vertical.md +59 -0
- package/docs/icons/sparkles.md +59 -0
- package/docs/icons/speaker-wave.md +59 -0
- package/docs/icons/speaker-x-mark.md +59 -0
- package/docs/icons/sphere-half.md +59 -0
- package/docs/icons/sphere.md +59 -0
- package/docs/icons/square.md +59 -0
- package/docs/icons/star.md +59 -0
- package/docs/icons/stop-circle.md +59 -0
- package/docs/icons/stop.md +59 -0
- package/docs/icons/sun.md +59 -0
- package/docs/icons/table.md +59 -0
- package/docs/icons/tabs.md +59 -0
- package/docs/icons/tetrahedron.md +59 -0
- package/docs/icons/text-align-center.md +59 -0
- package/docs/icons/text-align-justify.md +59 -0
- package/docs/icons/text-align-left.md +59 -0
- package/docs/icons/text-align-right.md +59 -0
- package/docs/icons/text.md +59 -0
- package/docs/icons/thunder.md +59 -0
- package/docs/icons/tic-tac-toe.md +59 -0
- package/docs/icons/time-reset.md +59 -0
- package/docs/icons/torus-knot.md +59 -0
- package/docs/icons/torus.md +59 -0
- package/docs/icons/trash.md +59 -0
- package/docs/icons/trophy.md +59 -0
- package/docs/icons/truck.md +59 -0
- package/docs/icons/tube.md +59 -0
- package/docs/icons/ungroup-object.md +59 -0
- package/docs/icons/user-circle.md +59 -0
- package/docs/icons/user-group.md +59 -0
- package/docs/icons/user-minus.md +59 -0
- package/docs/icons/user-plus.md +59 -0
- package/docs/icons/user.md +59 -0
- package/docs/icons/users.md +59 -0
- package/docs/icons/vertical-3-dots.md +59 -0
- package/docs/icons/video-camera.md +59 -0
- package/docs/icons/vr.md +59 -0
- package/docs/icons/wedge.md +59 -0
- package/docs/icons/whiteboard.md +59 -0
- package/docs/icons/wifi.md +59 -0
- package/docs/icons/window.md +59 -0
- package/docs/icons/x-mark.md +59 -0
- package/docs/index.md +48 -0
- package/docs/ms/guide/configuration.md +125 -0
- package/docs/ms/guide/getting-started.md +34 -0
- package/docs/ms/guide/installation.md +54 -0
- package/docs/ms/guide/styling.md +156 -0
- package/docs/ms/guide/usage.md +103 -0
- package/docs/ms/icons/alert.md +59 -0
- package/docs/ms/icons/align-bottom-object.md +59 -0
- package/docs/ms/icons/align-center-object.md +59 -0
- package/docs/ms/icons/align-left-object.md +59 -0
- package/docs/ms/icons/align-middle-object.md +59 -0
- package/docs/ms/icons/align-right-object.md +59 -0
- package/docs/ms/icons/align-top-object.md +59 -0
- package/docs/ms/icons/ar.md +59 -0
- package/docs/ms/icons/archive-box.md +59 -0
- package/docs/ms/icons/arrow-down.md +59 -0
- package/docs/ms/icons/arrow-left-arrow-right.md +59 -0
- package/docs/ms/icons/arrow-left-on-rectangle.md +59 -0
- package/docs/ms/icons/arrow-left-right.md +59 -0
- package/docs/ms/icons/arrow-left.md +59 -0
- package/docs/ms/icons/arrow-long-down.md +59 -0
- package/docs/ms/icons/arrow-long-left.md +59 -0
- package/docs/ms/icons/arrow-long-right.md +59 -0
- package/docs/ms/icons/arrow-long-up.md +59 -0
- package/docs/ms/icons/arrow-path.md +59 -0
- package/docs/ms/icons/arrow-right-on-rectangle.md +59 -0
- package/docs/ms/icons/arrow-right.md +59 -0
- package/docs/ms/icons/arrow-rotate-ccw.md +59 -0
- package/docs/ms/icons/arrow-rotate-cw.md +59 -0
- package/docs/ms/icons/arrow-top-right-on-square.md +59 -0
- package/docs/ms/icons/arrow-up-arrow-down.md +59 -0
- package/docs/ms/icons/arrow-up-down-left-right.md +59 -0
- package/docs/ms/icons/arrow-up-down.md +59 -0
- package/docs/ms/icons/arrow-up.md +59 -0
- package/docs/ms/icons/banknotes.md +59 -0
- package/docs/ms/icons/bars-3.md +59 -0
- package/docs/ms/icons/basket.md +59 -0
- package/docs/ms/icons/battery-0.md +59 -0
- package/docs/ms/icons/battery-10.md +59 -0
- package/docs/ms/icons/battery-100.md +59 -0
- package/docs/ms/icons/battery-50.md +59 -0
- package/docs/ms/icons/bell-alert.md +59 -0
- package/docs/ms/icons/bell.md +59 -0
- package/docs/ms/icons/bolt.md +59 -0
- package/docs/ms/icons/book-close.md +59 -0
- package/docs/ms/icons/book-open.md +59 -0
- package/docs/ms/icons/book-stacked.md +59 -0
- package/docs/ms/icons/bookmark.md +59 -0
- package/docs/ms/icons/briefcase.md +59 -0
- package/docs/ms/icons/brush.md +59 -0
- package/docs/ms/icons/cake.md +59 -0
- package/docs/ms/icons/calendar-approve.md +59 -0
- package/docs/ms/icons/calendar-days.md +59 -0
- package/docs/ms/icons/calendar-minus.md +59 -0
- package/docs/ms/icons/calendar-plus.md +59 -0
- package/docs/ms/icons/calendar-reject.md +59 -0
- package/docs/ms/icons/calendar.md +59 -0
- package/docs/ms/icons/camera.md +59 -0
- package/docs/ms/icons/carousel.md +59 -0
- package/docs/ms/icons/chart-bar.md +59 -0
- package/docs/ms/icons/chart-line.md +59 -0
- package/docs/ms/icons/chart-pie.md +59 -0
- package/docs/ms/icons/chat-bubble-left-ellipsis.md +59 -0
- package/docs/ms/icons/chat-bubble-left-right.md +59 -0
- package/docs/ms/icons/chat-bubble-left.md +59 -0
- package/docs/ms/icons/chat-bubble-right-ellipsis.md +59 -0
- package/docs/ms/icons/chat-bubble-right.md +59 -0
- package/docs/ms/icons/chatbot.md +59 -0
- package/docs/ms/icons/check.md +59 -0
- package/docs/ms/icons/chevron-double-down.md +59 -0
- package/docs/ms/icons/chevron-double-left.md +59 -0
- package/docs/ms/icons/chevron-double-right.md +59 -0
- package/docs/ms/icons/chevron-double-up.md +59 -0
- package/docs/ms/icons/chevron-down.md +59 -0
- package/docs/ms/icons/chevron-left.md +59 -0
- package/docs/ms/icons/chevron-right.md +59 -0
- package/docs/ms/icons/chevron-up.md +59 -0
- package/docs/ms/icons/circle.md +59 -0
- package/docs/ms/icons/clipboard-document-check.md +59 -0
- package/docs/ms/icons/clipboard.md +59 -0
- package/docs/ms/icons/clock.md +59 -0
- package/docs/ms/icons/cloud.md +59 -0
- package/docs/ms/icons/code.md +59 -0
- package/docs/ms/icons/cog-6-tooth.md +59 -0
- package/docs/ms/icons/compress.md +59 -0
- package/docs/ms/icons/computer-code.md +59 -0
- package/docs/ms/icons/computer-desktop.md +59 -0
- package/docs/ms/icons/computer-laptop.md +59 -0
- package/docs/ms/icons/cone.md +59 -0
- package/docs/ms/icons/console.md +59 -0
- package/docs/ms/icons/container.md +59 -0
- package/docs/ms/icons/contrast.md +59 -0
- package/docs/ms/icons/controller.md +59 -0
- package/docs/ms/icons/credit-card.md +59 -0
- package/docs/ms/icons/crop.md +59 -0
- package/docs/ms/icons/crosshair.md +59 -0
- package/docs/ms/icons/cube.md +59 -0
- package/docs/ms/icons/currency-dollar.md +59 -0
- package/docs/ms/icons/currency-euro.md +59 -0
- package/docs/ms/icons/currency-pound.md +59 -0
- package/docs/ms/icons/currency-ringgit.md +59 -0
- package/docs/ms/icons/currency-yen.md +59 -0
- package/docs/ms/icons/cursor.md +59 -0
- package/docs/ms/icons/cylinder-half.md +59 -0
- package/docs/ms/icons/cylinder.md +59 -0
- package/docs/ms/icons/device-phone-mobile.md +59 -0
- package/docs/ms/icons/device-tablet.md +59 -0
- package/docs/ms/icons/diamond.md +59 -0
- package/docs/ms/icons/document-duplicate.md +59 -0
- package/docs/ms/icons/document-text.md +59 -0
- package/docs/ms/icons/document.md +59 -0
- package/docs/ms/icons/dodecahedron.md +59 -0
- package/docs/ms/icons/double-tick.md +59 -0
- package/docs/ms/icons/draw-curve.md +59 -0
- package/docs/ms/icons/draw-line.md +59 -0
- package/docs/ms/icons/envelope-open.md +59 -0
- package/docs/ms/icons/envelope.md +59 -0
- package/docs/ms/icons/eraser.md +59 -0
- package/docs/ms/icons/exclamation-circle.md +59 -0
- package/docs/ms/icons/exclamation-triangle.md +59 -0
- package/docs/ms/icons/expand.md +59 -0
- package/docs/ms/icons/eye-slash.md +59 -0
- package/docs/ms/icons/eye.md +59 -0
- package/docs/ms/icons/flag.md +59 -0
- package/docs/ms/icons/flip-horizontal.md +59 -0
- package/docs/ms/icons/flip-vertical.md +59 -0
- package/docs/ms/icons/focus.md +59 -0
- package/docs/ms/icons/folder-minus.md +59 -0
- package/docs/ms/icons/folder-open.md +59 -0
- package/docs/ms/icons/folder-plus.md +59 -0
- package/docs/ms/icons/folder.md +59 -0
- package/docs/ms/icons/font.md +59 -0
- package/docs/ms/icons/game.md +59 -0
- package/docs/ms/icons/gift.md +59 -0
- package/docs/ms/icons/globe-alt.md +59 -0
- package/docs/ms/icons/gradient.md +59 -0
- package/docs/ms/icons/grid.md +59 -0
- package/docs/ms/icons/group-object.md +59 -0
- package/docs/ms/icons/hand-grab.md +59 -0
- package/docs/ms/icons/hand-thumb-down.md +59 -0
- package/docs/ms/icons/hand-thumb-up.md +59 -0
- package/docs/ms/icons/hand.md +59 -0
- package/docs/ms/icons/heart-extruded.md +59 -0
- package/docs/ms/icons/heart.md +59 -0
- package/docs/ms/icons/hexagon.md +59 -0
- package/docs/ms/icons/home.md +59 -0
- package/docs/ms/icons/horizontal-3-dots.md +59 -0
- package/docs/ms/icons/hourglass-0.md +59 -0
- package/docs/ms/icons/hourglass-100.md +59 -0
- package/docs/ms/icons/hourglass-50.md +59 -0
- package/docs/ms/icons/hourglass-80.md +59 -0
- package/docs/ms/icons/icosahedron.md +59 -0
- package/docs/ms/icons/inbox.md +59 -0
- package/docs/ms/icons/index.md +1295 -0
- package/docs/ms/icons/information-circle.md +59 -0
- package/docs/ms/icons/key.md +59 -0
- package/docs/ms/icons/layer-stacks.md +59 -0
- package/docs/ms/icons/layout.md +59 -0
- package/docs/ms/icons/light-bulb.md +59 -0
- package/docs/ms/icons/lock-closed.md +59 -0
- package/docs/ms/icons/lock-open.md +59 -0
- package/docs/ms/icons/magic-wand.md +59 -0
- package/docs/ms/icons/magnifying-glass-focus.md +59 -0
- package/docs/ms/icons/magnifying-glass-minus.md +59 -0
- package/docs/ms/icons/magnifying-glass-plus.md +59 -0
- package/docs/ms/icons/magnifying-glass.md +59 -0
- package/docs/ms/icons/map-pin.md +59 -0
- package/docs/ms/icons/map.md +59 -0
- package/docs/ms/icons/marquee.md +59 -0
- package/docs/ms/icons/maximize.md +59 -0
- package/docs/ms/icons/medal.md +59 -0
- package/docs/ms/icons/microphone-mute.md +59 -0
- package/docs/ms/icons/microphone.md +59 -0
- package/docs/ms/icons/minimize.md +59 -0
- package/docs/ms/icons/minus.md +59 -0
- package/docs/ms/icons/moon.md +59 -0
- package/docs/ms/icons/musical-note.md +59 -0
- package/docs/ms/icons/octahedron.md +59 -0
- package/docs/ms/icons/panorama.md +59 -0
- package/docs/ms/icons/paper-clip.md +59 -0
- package/docs/ms/icons/pause-circle.md +59 -0
- package/docs/ms/icons/pause.md +59 -0
- package/docs/ms/icons/pencil.md +59 -0
- package/docs/ms/icons/phone-x-mark.md +59 -0
- package/docs/ms/icons/phone.md +59 -0
- package/docs/ms/icons/photo.md +59 -0
- package/docs/ms/icons/plane.md +59 -0
- package/docs/ms/icons/play-circle.md +59 -0
- package/docs/ms/icons/play.md +59 -0
- package/docs/ms/icons/plus.md +59 -0
- package/docs/ms/icons/polygon.md +59 -0
- package/docs/ms/icons/presentation-chart-line.md +59 -0
- package/docs/ms/icons/presentation-media.md +59 -0
- package/docs/ms/icons/pyramid.md +59 -0
- package/docs/ms/icons/qr-code.md +59 -0
- package/docs/ms/icons/question-mark-circle.md +59 -0
- package/docs/ms/icons/rectangle.md +59 -0
- package/docs/ms/icons/reel.md +59 -0
- package/docs/ms/icons/robot.md +59 -0
- package/docs/ms/icons/roof.md +59 -0
- package/docs/ms/icons/rotate-add.md +59 -0
- package/docs/ms/icons/rotate-minus.md +59 -0
- package/docs/ms/icons/save.md +59 -0
- package/docs/ms/icons/scissor.md +59 -0
- package/docs/ms/icons/shapes.md +59 -0
- package/docs/ms/icons/shield-check.md +59 -0
- package/docs/ms/icons/shield-exclamation.md +59 -0
- package/docs/ms/icons/shopping-bag.md +59 -0
- package/docs/ms/icons/shopping-cart.md +59 -0
- package/docs/ms/icons/sliders-horizontal.md +59 -0
- package/docs/ms/icons/sliders-vertical.md +59 -0
- package/docs/ms/icons/sparkles.md +59 -0
- package/docs/ms/icons/speaker-wave.md +59 -0
- package/docs/ms/icons/speaker-x-mark.md +59 -0
- package/docs/ms/icons/sphere-half.md +59 -0
- package/docs/ms/icons/sphere.md +59 -0
- package/docs/ms/icons/square.md +59 -0
- package/docs/ms/icons/star.md +59 -0
- package/docs/ms/icons/stop-circle.md +59 -0
- package/docs/ms/icons/stop.md +59 -0
- package/docs/ms/icons/sun.md +59 -0
- package/docs/ms/icons/table.md +59 -0
- package/docs/ms/icons/tabs.md +59 -0
- package/docs/ms/icons/tetrahedron.md +59 -0
- package/docs/ms/icons/text-align-center.md +59 -0
- package/docs/ms/icons/text-align-justify.md +59 -0
- package/docs/ms/icons/text-align-left.md +59 -0
- package/docs/ms/icons/text-align-right.md +59 -0
- package/docs/ms/icons/text.md +59 -0
- package/docs/ms/icons/thunder.md +59 -0
- package/docs/ms/icons/tic-tac-toe.md +59 -0
- package/docs/ms/icons/time-reset.md +59 -0
- package/docs/ms/icons/torus-knot.md +59 -0
- package/docs/ms/icons/torus.md +59 -0
- package/docs/ms/icons/trash.md +59 -0
- package/docs/ms/icons/trophy.md +59 -0
- package/docs/ms/icons/truck.md +59 -0
- package/docs/ms/icons/tube.md +59 -0
- package/docs/ms/icons/ungroup-object.md +59 -0
- package/docs/ms/icons/user-circle.md +59 -0
- package/docs/ms/icons/user-group.md +59 -0
- package/docs/ms/icons/user-minus.md +59 -0
- package/docs/ms/icons/user-plus.md +59 -0
- package/docs/ms/icons/user.md +59 -0
- package/docs/ms/icons/users.md +59 -0
- package/docs/ms/icons/vertical-3-dots.md +59 -0
- package/docs/ms/icons/video-camera.md +59 -0
- package/docs/ms/icons/vr.md +59 -0
- package/docs/ms/icons/wedge.md +59 -0
- package/docs/ms/icons/whiteboard.md +59 -0
- package/docs/ms/icons/wifi.md +59 -0
- package/docs/ms/icons/window.md +59 -0
- package/docs/ms/icons/x-mark.md +59 -0
- package/docs/ms/index.md +48 -0
- package/package.json +13 -3
- package/scripts/build-icon-docs.js +331 -0
- package/scripts/build.js +40 -0
- package/src/icons.css +20 -0
- package/src/icons.json +30 -0
- package/test-results.json +11 -0
- package/tests/build-css.test.js +134 -0
- package/tests/build-icon-docs.test.js +132 -0
- package/tests/build-pipeline.test.js +138 -0
- package/tests/build-svgs.test.js +102 -0
- package/tests/ss-icon.test.js +178 -0
- package/tests/ss-loader.test.js +156 -0
- package/vitest.config.js +15 -0
package/docs/ms/index.md
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: home
|
|
3
|
+
|
|
4
|
+
hero:
|
|
5
|
+
name: "SenangStart Icons"
|
|
6
|
+
text: "Ikon cantik untuk projek web moden"
|
|
7
|
+
tagline: Pustaka ikon terkurasi, boleh disesuaikan, dan mudah digunakan
|
|
8
|
+
actions:
|
|
9
|
+
- theme: brand
|
|
10
|
+
text: Bermula
|
|
11
|
+
link: /ms/guide/getting-started
|
|
12
|
+
- theme: alt
|
|
13
|
+
text: Lihat Ikon
|
|
14
|
+
link: /ms/icons/
|
|
15
|
+
image:
|
|
16
|
+
src: https://senangstart.com/img/use_senangstart.svg
|
|
17
|
+
alt: SenangStart Icons
|
|
18
|
+
|
|
19
|
+
features:
|
|
20
|
+
- icon: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m21.64 3.64-1.28-1.28a1.21 1.21 0 00-1.72 0L2.36 18.64a1.21 1.21 0 000 1.72l1.28 1.28a1.2 1.2 0 001.72 0L21.64 5.36a1.2 1.2 0 000-1.72M10.5 10.5l3 3M5 6v4M19 15v4M10 3v2M7 8H3M21 17h-4M11 4H9"></path></svg>
|
|
21
|
+
title: Boleh Disesuaikan
|
|
22
|
+
details: Mudah menyesuaikan warna, saiz, dan gaya untuk memadankan sistem reka bentuk anda.
|
|
23
|
+
- icon: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M9 3h5L12 8 18 8 8.5 22l3.5-10h-6l2-9z"></path></svg>
|
|
24
|
+
title: Ringan
|
|
25
|
+
details: Ikon SVG yang dioptimumkan, pantas dimuatkan dan mesra prestasi.
|
|
26
|
+
- icon: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M9.90 5.32 L9.14 2.94 A9.5 9.5 0 0 1 14.86 2.94 L14.10 5.32 A7 7 0 0 1 16.73 6.84 L18.42 5.00 A9.5 9.5 0 0 1 21.27 9.94 L18.83 10.48 A7 7 0 0 1 18.83 13.52 L21.27 14.06 A9.5 9.5 0 0 1 18.42 19.00 L16.73 17.16 A7 7 0 0 1 14.10 18.68 L14.86 21.06 A9.5 9.5 0 0 1 9.14 21.06 L9.90 18.68 A7 7 0 0 1 7.27 17.16 L5.58 19.00 A9.5 9.5 0 0 1 2.73 14.06 L5.17 13.52 A7 7 0 0 1 5.17 10.48 L2.73 9.94 A9.5 9.5 0 0 1 5.58 5.00 L7.27 6.84 A7 7 0 0 1 9.90 5.32 Z M14.5 12 A2.5 2.5 0 1 0 9.5 12 A2.5 2.5 0 1 0 14.5 12 Z"></path></svg>
|
|
27
|
+
title: Integrasi Mudah
|
|
28
|
+
details: API mudah dengan pelbagai cara penggunaan - Web Components, CDN, atau npm.
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Mula Pantas
|
|
32
|
+
|
|
33
|
+
Tambah SenangStart Icons ke projek anda:
|
|
34
|
+
|
|
35
|
+
```html
|
|
36
|
+
<!-- CDN -->
|
|
37
|
+
<script src="https://unpkg.com/@bookklik/senangstart-icons/dist/senangstart-icon.min.js"></script>
|
|
38
|
+
|
|
39
|
+
<!-- Gunakan ikon -->
|
|
40
|
+
<ss-icon name="home"></ss-icon>
|
|
41
|
+
<ss-icon name="search" size="24"></ss-icon>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Atau pasang melalui npm:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npm install @bookklik/senangstart-icons
|
|
48
|
+
```
|
package/package.json
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bookklik/senangstart-icons",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"description": "Curated Starter icons designed for web projects.",
|
|
5
5
|
"main": "dist/senangstart-icon.min.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build:svg": "node scripts/build-svgs.js",
|
|
8
|
+
"build:icon-docs": "node scripts/build-icon-docs.js",
|
|
8
9
|
"build:css": "node scripts/build-css.js",
|
|
9
|
-
"build": "
|
|
10
|
+
"build": "node scripts/build.js",
|
|
10
11
|
"build:watch": "npm run build:svg && npm run build:css && webpack --mode production --watch",
|
|
11
12
|
"dev": "npm run build:svg && npm run build:css && webpack --mode development --watch",
|
|
12
|
-
"test": "
|
|
13
|
+
"test": "vitest run",
|
|
14
|
+
"test:watch": "vitest",
|
|
15
|
+
"test:coverage": "vitest run --coverage",
|
|
16
|
+
"docs:dev": "vitepress dev docs",
|
|
17
|
+
"docs:build": "vitepress build docs",
|
|
18
|
+
"docs:preview": "vitepress preview docs"
|
|
13
19
|
},
|
|
14
20
|
"keywords": [
|
|
15
21
|
"icons",
|
|
@@ -21,11 +27,15 @@
|
|
|
21
27
|
"devDependencies": {
|
|
22
28
|
"@babel/core": "^7.23.0",
|
|
23
29
|
"@babel/preset-env": "^7.23.0",
|
|
30
|
+
"@vitest/coverage-v8": "^3.2.4",
|
|
24
31
|
"babel-loader": "^9.1.3",
|
|
25
32
|
"css-loader": "^6.8.1",
|
|
26
33
|
"css-minimizer-webpack-plugin": "^5.0.1",
|
|
34
|
+
"jsdom": "^26.1.0",
|
|
27
35
|
"mini-css-extract-plugin": "^2.7.6",
|
|
28
36
|
"terser-webpack-plugin": "^5.3.9",
|
|
37
|
+
"vitepress": "^1.6.4",
|
|
38
|
+
"vitest": "^3.2.4",
|
|
29
39
|
"webpack": "^5.89.0",
|
|
30
40
|
"webpack-cli": "^5.1.4"
|
|
31
41
|
}
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const path = require('path');
|
|
3
|
+
|
|
4
|
+
// Paths
|
|
5
|
+
const iconsJsonPath = path.join(__dirname, '..', 'src', 'icons.json');
|
|
6
|
+
const docsIconsDir = path.join(__dirname, '..', 'docs', 'icons');
|
|
7
|
+
const docsIconsDirMs = path.join(__dirname, '..', 'docs', 'ms', 'icons');
|
|
8
|
+
const indexPath = path.join(docsIconsDir, 'index.md');
|
|
9
|
+
const indexPathMs = path.join(docsIconsDirMs, 'index.md');
|
|
10
|
+
|
|
11
|
+
// Read icons.json
|
|
12
|
+
const icons = JSON.parse(fs.readFileSync(iconsJsonPath, 'utf8'));
|
|
13
|
+
|
|
14
|
+
// Ensure docs/icons directories exist
|
|
15
|
+
fs.mkdirSync(docsIconsDir, { recursive: true });
|
|
16
|
+
fs.mkdirSync(docsIconsDirMs, { recursive: true });
|
|
17
|
+
|
|
18
|
+
console.log(`📝 Generating documentation for ${icons.length} icons...\n`);
|
|
19
|
+
|
|
20
|
+
// Generate markdown for each icon
|
|
21
|
+
const iconLinks = [];
|
|
22
|
+
|
|
23
|
+
icons.forEach((icon, index) => {
|
|
24
|
+
const { name, slug, src, tags } = icon;
|
|
25
|
+
|
|
26
|
+
// Create SVG preview (stroke-based icon)
|
|
27
|
+
const svgPreview = `<svg xmlns="http://www.w3.org/2000/svg" width="96" height="96" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="${src}"></path></svg>`;
|
|
28
|
+
|
|
29
|
+
// Generate English markdown content
|
|
30
|
+
const markdownEn = `---
|
|
31
|
+
title: ${name}
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
# ${name}
|
|
35
|
+
|
|
36
|
+
<div style="display: flex; justify-content: center; padding: 2rem; background: var(--vp-c-bg-soft); border-radius: 8px; margin: 1rem 0;">
|
|
37
|
+
${svgPreview}
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
## Usage
|
|
41
|
+
|
|
42
|
+
\`\`\`html
|
|
43
|
+
<ss-icon name="${slug}"></ss-icon>
|
|
44
|
+
\`\`\`
|
|
45
|
+
|
|
46
|
+
### With custom size
|
|
47
|
+
|
|
48
|
+
\`\`\`html
|
|
49
|
+
<ss-icon name="${slug}" size="32"></ss-icon>
|
|
50
|
+
\`\`\`
|
|
51
|
+
|
|
52
|
+
### With custom color
|
|
53
|
+
|
|
54
|
+
\`\`\`html
|
|
55
|
+
<ss-icon name="${slug}" color="#3b82f6"></ss-icon>
|
|
56
|
+
\`\`\`
|
|
57
|
+
|
|
58
|
+
### With custom stroke width
|
|
59
|
+
|
|
60
|
+
\`\`\`html
|
|
61
|
+
<ss-icon name="${slug}" stroke="2"></ss-icon>
|
|
62
|
+
\`\`\`
|
|
63
|
+
|
|
64
|
+
## Icon Details
|
|
65
|
+
|
|
66
|
+
| Property | Value |
|
|
67
|
+
|----------|-------|
|
|
68
|
+
| **Name** | ${name} |
|
|
69
|
+
| **Slug** | \`${slug}\` |
|
|
70
|
+
| **Tags** | ${tags.map(t => `\`${t}\``).join(', ')} |
|
|
71
|
+
|
|
72
|
+
## SVG Path
|
|
73
|
+
|
|
74
|
+
\`\`\`
|
|
75
|
+
${src}
|
|
76
|
+
\`\`\`
|
|
77
|
+
|
|
78
|
+
## Raw SVG
|
|
79
|
+
|
|
80
|
+
\`\`\`html
|
|
81
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
82
|
+
<path d="${src}"></path>
|
|
83
|
+
</svg>
|
|
84
|
+
\`\`\`
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
[← Back to Icon Library](/icons/)
|
|
89
|
+
`;
|
|
90
|
+
|
|
91
|
+
// Generate Malay markdown content
|
|
92
|
+
const markdownMs = `---
|
|
93
|
+
title: ${name}
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
# ${name}
|
|
97
|
+
|
|
98
|
+
<div style="display: flex; justify-content: center; padding: 2rem; background: var(--vp-c-bg-soft); border-radius: 8px; margin: 1rem 0;">
|
|
99
|
+
${svgPreview}
|
|
100
|
+
</div>
|
|
101
|
+
|
|
102
|
+
## Penggunaan
|
|
103
|
+
|
|
104
|
+
\`\`\`html
|
|
105
|
+
<ss-icon name="${slug}"></ss-icon>
|
|
106
|
+
\`\`\`
|
|
107
|
+
|
|
108
|
+
### Dengan saiz tersuai
|
|
109
|
+
|
|
110
|
+
\`\`\`html
|
|
111
|
+
<ss-icon name="${slug}" size="32"></ss-icon>
|
|
112
|
+
\`\`\`
|
|
113
|
+
|
|
114
|
+
### Dengan warna tersuai
|
|
115
|
+
|
|
116
|
+
\`\`\`html
|
|
117
|
+
<ss-icon name="${slug}" color="#3b82f6"></ss-icon>
|
|
118
|
+
\`\`\`
|
|
119
|
+
|
|
120
|
+
### Dengan lebar garisan tersuai
|
|
121
|
+
|
|
122
|
+
\`\`\`html
|
|
123
|
+
<ss-icon name="${slug}" stroke="2"></ss-icon>
|
|
124
|
+
\`\`\`
|
|
125
|
+
|
|
126
|
+
## Butiran Ikon
|
|
127
|
+
|
|
128
|
+
| Ciri | Nilai |
|
|
129
|
+
|------|-------|
|
|
130
|
+
| **Nama** | ${name} |
|
|
131
|
+
| **Slug** | \`${slug}\` |
|
|
132
|
+
| **Tag** | ${tags.map(t => `\`${t}\``).join(', ')} |
|
|
133
|
+
|
|
134
|
+
## Laluan SVG
|
|
135
|
+
|
|
136
|
+
\`\`\`
|
|
137
|
+
${src}
|
|
138
|
+
\`\`\`
|
|
139
|
+
|
|
140
|
+
## SVG Mentah
|
|
141
|
+
|
|
142
|
+
\`\`\`html
|
|
143
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
144
|
+
<path d="${src}"></path>
|
|
145
|
+
</svg>
|
|
146
|
+
\`\`\`
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
[← Kembali ke Pustaka Ikon](/ms/icons/)
|
|
151
|
+
`;
|
|
152
|
+
|
|
153
|
+
// Write individual icon markdown files (English)
|
|
154
|
+
const iconFilePath = path.join(docsIconsDir, `${slug}.md`);
|
|
155
|
+
fs.writeFileSync(iconFilePath, markdownEn);
|
|
156
|
+
|
|
157
|
+
// Write individual icon markdown files (Malay)
|
|
158
|
+
const iconFilePathMs = path.join(docsIconsDirMs, `${slug}.md`);
|
|
159
|
+
fs.writeFileSync(iconFilePathMs, markdownMs);
|
|
160
|
+
|
|
161
|
+
// Add to links array
|
|
162
|
+
iconLinks.push({
|
|
163
|
+
name,
|
|
164
|
+
slug,
|
|
165
|
+
tags
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
// Progress indicator
|
|
169
|
+
if ((index + 1) % 50 === 0 || index === icons.length - 1) {
|
|
170
|
+
console.log(` ✓ Generated ${index + 1}/${icons.length} icon docs (EN + MS)`);
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
// Generate English index.md with links to all icons
|
|
175
|
+
const indexMarkdownEn = `---
|
|
176
|
+
title: Icon Library
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
# Icon Library
|
|
180
|
+
|
|
181
|
+
Browse all **${icons.length}** available icons in SenangStart Icons.
|
|
182
|
+
|
|
183
|
+
## Usage
|
|
184
|
+
|
|
185
|
+
Once you find the icon you need, use it like this:
|
|
186
|
+
|
|
187
|
+
\`\`\`html
|
|
188
|
+
<ss-icon name="icon-name"></ss-icon>
|
|
189
|
+
\`\`\`
|
|
190
|
+
|
|
191
|
+
## All Icons
|
|
192
|
+
|
|
193
|
+
<div class="icon-grid">
|
|
194
|
+
|
|
195
|
+
${iconLinks.map(icon => {
|
|
196
|
+
return `<a href="./${icon.slug}" class="icon-card" title="${icon.tags.join(', ')}">
|
|
197
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="${icons.find(i => i.slug === icon.slug).src}"></path></svg>
|
|
198
|
+
<span>${icon.name}</span>
|
|
199
|
+
</a>`;
|
|
200
|
+
}).join('\n\n')}
|
|
201
|
+
|
|
202
|
+
</div>
|
|
203
|
+
|
|
204
|
+
<style>
|
|
205
|
+
.icon-grid {
|
|
206
|
+
display: grid;
|
|
207
|
+
grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
|
|
208
|
+
gap: 1rem;
|
|
209
|
+
margin-top: 1rem;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
.icon-card {
|
|
213
|
+
display: flex;
|
|
214
|
+
flex-direction: column;
|
|
215
|
+
align-items: center;
|
|
216
|
+
justify-content: center;
|
|
217
|
+
padding: 1rem;
|
|
218
|
+
background: var(--vp-c-bg-soft);
|
|
219
|
+
border-radius: 8px;
|
|
220
|
+
text-decoration: none;
|
|
221
|
+
color: var(--vp-c-text-1) !important;
|
|
222
|
+
transition: all 0.2s ease;
|
|
223
|
+
text-align: center;
|
|
224
|
+
aspect-ratio: 1/1;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.icon-card:hover {
|
|
228
|
+
background: var(--vp-c-bg-soft-up);
|
|
229
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.icon-card svg {
|
|
233
|
+
margin-bottom: 0.5rem;
|
|
234
|
+
width: 3rem;
|
|
235
|
+
height: 3rem;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.icon-card span {
|
|
239
|
+
font-size: 0.8rem;
|
|
240
|
+
word-break: break-word;
|
|
241
|
+
overflow: hidden;
|
|
242
|
+
display: -webkit-box;
|
|
243
|
+
-webkit-box-orient: vertical;
|
|
244
|
+
-webkit-line-clamp: 1;
|
|
245
|
+
}
|
|
246
|
+
</style>
|
|
247
|
+
`;
|
|
248
|
+
|
|
249
|
+
// Generate Malay index.md with links to all icons
|
|
250
|
+
const indexMarkdownMs = `---
|
|
251
|
+
title: Pustaka Ikon
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
# Pustaka Ikon
|
|
255
|
+
|
|
256
|
+
Layari semua **${icons.length}** ikon yang tersedia dalam SenangStart Icons.
|
|
257
|
+
|
|
258
|
+
## Penggunaan
|
|
259
|
+
|
|
260
|
+
Setelah anda menemui ikon yang diperlukan, gunakannya seperti ini:
|
|
261
|
+
|
|
262
|
+
\`\`\`html
|
|
263
|
+
<ss-icon name="nama-ikon"></ss-icon>
|
|
264
|
+
\`\`\`
|
|
265
|
+
|
|
266
|
+
## Semua Ikon
|
|
267
|
+
|
|
268
|
+
<div class="icon-grid">
|
|
269
|
+
|
|
270
|
+
${iconLinks.map(icon => {
|
|
271
|
+
return `<a href="./${icon.slug}" class="icon-card" title="${icon.tags.join(', ')}">
|
|
272
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="${icons.find(i => i.slug === icon.slug).src}"></path></svg>
|
|
273
|
+
<span>${icon.name}</span>
|
|
274
|
+
</a>`;
|
|
275
|
+
}).join('\n\n')}
|
|
276
|
+
|
|
277
|
+
</div>
|
|
278
|
+
|
|
279
|
+
<style>
|
|
280
|
+
.icon-grid {
|
|
281
|
+
display: grid;
|
|
282
|
+
grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
|
|
283
|
+
gap: 1rem;
|
|
284
|
+
margin-top: 1rem;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.icon-card {
|
|
288
|
+
display: flex;
|
|
289
|
+
flex-direction: column;
|
|
290
|
+
align-items: center;
|
|
291
|
+
justify-content: center;
|
|
292
|
+
padding: 1rem;
|
|
293
|
+
background: var(--vp-c-bg-soft);
|
|
294
|
+
border-radius: 8px;
|
|
295
|
+
text-decoration: none;
|
|
296
|
+
color: var(--vp-c-text-1) !important;
|
|
297
|
+
transition: all 0.2s ease;
|
|
298
|
+
text-align: center;
|
|
299
|
+
aspect-ratio: 1/1;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
.icon-card:hover {
|
|
303
|
+
background: var(--vp-c-bg-soft-up);
|
|
304
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
.icon-card svg {
|
|
308
|
+
margin-bottom: 0.5rem;
|
|
309
|
+
width: 3rem;
|
|
310
|
+
height: 3rem;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
.icon-card span {
|
|
314
|
+
font-size: 0.8rem;
|
|
315
|
+
word-break: break-word;
|
|
316
|
+
overflow: hidden;
|
|
317
|
+
display: -webkit-box;
|
|
318
|
+
-webkit-box-orient: vertical;
|
|
319
|
+
-webkit-line-clamp: 1;
|
|
320
|
+
}
|
|
321
|
+
</style>
|
|
322
|
+
`;
|
|
323
|
+
|
|
324
|
+
fs.writeFileSync(indexPath, indexMarkdownEn);
|
|
325
|
+
fs.writeFileSync(indexPathMs, indexMarkdownMs);
|
|
326
|
+
|
|
327
|
+
console.log(`\n✅ Icon documentation generated successfully!`);
|
|
328
|
+
console.log(` - ${icons.length} English icon pages created`);
|
|
329
|
+
console.log(` - ${icons.length} Malay icon pages created`);
|
|
330
|
+
console.log(` - English index at docs/icons/index.md`);
|
|
331
|
+
console.log(` - Malay index at docs/ms/icons/index.md`);
|
package/scripts/build.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const { execSync } = require('child_process');
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
const path = require('path');
|
|
4
|
+
|
|
5
|
+
// Helper function to recursively copy a directory
|
|
6
|
+
function copyDir(src, dest) {
|
|
7
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
8
|
+
const entries = fs.readdirSync(src);
|
|
9
|
+
|
|
10
|
+
for (const entry of entries) {
|
|
11
|
+
const srcPath = path.join(src, entry);
|
|
12
|
+
const destPath = path.join(dest, entry);
|
|
13
|
+
|
|
14
|
+
if (fs.statSync(srcPath).isDirectory()) {
|
|
15
|
+
copyDir(srcPath, destPath);
|
|
16
|
+
} else {
|
|
17
|
+
fs.copyFileSync(srcPath, destPath);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
console.log('🔨 Building SenangStart Icons...\n');
|
|
23
|
+
|
|
24
|
+
// Step 1: Build SVGs
|
|
25
|
+
console.log('📦 Step 1: Building SVGs...');
|
|
26
|
+
execSync('node scripts/build-svgs.js', { stdio: 'inherit' });
|
|
27
|
+
|
|
28
|
+
// Step 2: Build CSS
|
|
29
|
+
console.log('\n🎨 Step 2: Building CSS...');
|
|
30
|
+
execSync('node scripts/build-css.js', { stdio: 'inherit' });
|
|
31
|
+
|
|
32
|
+
// Step 3: Run Generate Icon Docs
|
|
33
|
+
console.log('\n⚙️ Step 3: Running Generate Icon Docs...');
|
|
34
|
+
execSync('node scripts/build-icon-docs.js', { stdio: 'inherit' });
|
|
35
|
+
|
|
36
|
+
// Step 4: Run Webpack
|
|
37
|
+
console.log('\n⚙️ Step 4: Running Webpack...');
|
|
38
|
+
execSync('npx webpack --mode production', { stdio: 'inherit' });
|
|
39
|
+
|
|
40
|
+
console.log('\n✅ Build complete! Files copied to docs/public/');
|
package/src/icons.css
CHANGED
|
@@ -139,6 +139,16 @@
|
|
|
139
139
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.75 12a8.25 8.25 0 108.25-8.25c-2.3 0-4.5 1-6 2.5L3.75 8.5m0-4.5v4.5h4.5'/%3E%3C/svg%3E");
|
|
140
140
|
}
|
|
141
141
|
|
|
142
|
+
.ss-rotate-add {
|
|
143
|
+
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.25 12a8.25 8.25 0 11-8.25-8.25c2.3 0 4.5 1 6 2.5L20.25 8.5m0-4.5v4.5h-4.5m-6.75 3.5L15 12m-3 3L12 9'/%3E%3C/svg%3E");
|
|
144
|
+
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.25 12a8.25 8.25 0 11-8.25-8.25c2.3 0 4.5 1 6 2.5L20.25 8.5m0-4.5v4.5h-4.5m-6.75 3.5L15 12m-3 3L12 9'/%3E%3C/svg%3E");
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.ss-rotate-minus {
|
|
148
|
+
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.75 12a8.25 8.25 0 108.25-8.25c-2.3 0-4.5 1-6 2.5L3.75 8.5m0-4.5v4.5h4.5m.75 3.5L15 12'/%3E%3C/svg%3E");
|
|
149
|
+
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.75 12a8.25 8.25 0 108.25-8.25c-2.3 0-4.5 1-6 2.5L3.75 8.5m0-4.5v4.5h4.5m.75 3.5L15 12'/%3E%3C/svg%3E");
|
|
150
|
+
}
|
|
151
|
+
|
|
142
152
|
.ss-arrow-top-right-on-square {
|
|
143
153
|
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25'/%3E%3C/svg%3E");
|
|
144
154
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25'/%3E%3C/svg%3E");
|
|
@@ -879,6 +889,16 @@
|
|
|
879
889
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h12M6 21h12M18 8v8a2 2 0 01-2 2H8a2 2 0 01-2-2V8a2 2 0 012-2h8a2 2 0 012 2ZM3 6 3 18M21 6 21 18'/%3E%3C/svg%3E");
|
|
880
890
|
}
|
|
881
891
|
|
|
892
|
+
.ss-flip-horizontal {
|
|
893
|
+
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 3L12 21M8 20 8 4 3 20 8 20M16 4 16 20 21 20 16 4'/%3E%3C/svg%3E");
|
|
894
|
+
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 3L12 21M8 20 8 4 3 20 8 20M16 4 16 20 21 20 16 4'/%3E%3C/svg%3E");
|
|
895
|
+
}
|
|
896
|
+
|
|
897
|
+
.ss-flip-vertical {
|
|
898
|
+
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21 12L3 12m1-4L20 8 4 3 4 8M20 16 4 16 4 21 20 16'/%3E%3C/svg%3E");
|
|
899
|
+
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21 12L3 12m1-4L20 8 4 3 4 8M20 16 4 16 4 21 20 16'/%3E%3C/svg%3E");
|
|
900
|
+
}
|
|
901
|
+
|
|
882
902
|
.ss-grid {
|
|
883
903
|
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3v18M15 3v18M3 9h18M3 15h18M3 21h18M3 3h18M3 3v18M21 3v18'/%3E%3C/svg%3E");
|
|
884
904
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3v18M15 3v18M3 9h18M3 15h18M3 21h18M3 3h18M3 3v18M21 3v18'/%3E%3C/svg%3E");
|
package/src/icons.json
CHANGED
|
@@ -347,6 +347,24 @@
|
|
|
347
347
|
"arrow-rotate-ccw"
|
|
348
348
|
]
|
|
349
349
|
},
|
|
350
|
+
{
|
|
351
|
+
"name": "Rotate Add",
|
|
352
|
+
"slug": "rotate-add",
|
|
353
|
+
"src": "M20.25 12a8.25 8.25 0 11-8.25-8.25c2.3 0 4.5 1 6 2.5L20.25 8.5m0-4.5v4.5h-4.5m-6.75 3.5L15 12m-3 3L12 9",
|
|
354
|
+
"tags": [
|
|
355
|
+
"rotate",
|
|
356
|
+
"arrow-rotate-add"
|
|
357
|
+
]
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"name": "Rotate Minus",
|
|
361
|
+
"slug": "rotate-minus",
|
|
362
|
+
"src": "M3.75 12a8.25 8.25 0 108.25-8.25c-2.3 0-4.5 1-6 2.5L3.75 8.5m0-4.5v4.5h4.5m.75 3.5L15 12",
|
|
363
|
+
"tags": [
|
|
364
|
+
"rotate",
|
|
365
|
+
"rotate-minus"
|
|
366
|
+
]
|
|
367
|
+
},
|
|
350
368
|
{
|
|
351
369
|
"name": "Arrow Top Right On Square",
|
|
352
370
|
"slug": "arrow-top-right-on-square",
|
|
@@ -1903,6 +1921,18 @@
|
|
|
1903
1921
|
"src": "M6 3h12M6 21h12M18 8v8a2 2 0 01-2 2H8a2 2 0 01-2-2V8a2 2 0 012-2h8a2 2 0 012 2ZM3 6 3 18M21 6 21 18",
|
|
1904
1922
|
"tags": ["container", "box", "center", "layout", "design"]
|
|
1905
1923
|
},
|
|
1924
|
+
{
|
|
1925
|
+
"name": "Flip Horizontal",
|
|
1926
|
+
"slug": "flip-horizontal",
|
|
1927
|
+
"src": "m12 3L12 21M8 20 8 4 3 20 8 20M16 4 16 20 21 20 16 4",
|
|
1928
|
+
"tags": ["flip", "horizontal", "flip-horizontal", "design"]
|
|
1929
|
+
},
|
|
1930
|
+
{
|
|
1931
|
+
"name": "Flip Vertical",
|
|
1932
|
+
"slug": "flip-vertical",
|
|
1933
|
+
"src": "m21 12L3 12m1-4L20 8 4 3 4 8M20 16 4 16 4 21 20 16",
|
|
1934
|
+
"tags": ["flip", "vertical", "flip-vertical", "design"]
|
|
1935
|
+
},
|
|
1906
1936
|
{
|
|
1907
1937
|
"name": "Grid",
|
|
1908
1938
|
"slug": "grid",
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
npx : [33mThe CJS build of Vite's Node API is deprecated. See
|
|
2
|
+
https://vite.dev/guide/troubleshooting.html#vite-cjs-node-api-deprecated for more
|
|
3
|
+
details.[39m
|
|
4
|
+
At line:1 char:1
|
|
5
|
+
+ npx vitest run tests/build-pipeline.test.js --reporter=json 2>&1 | Ou ...
|
|
6
|
+
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
7
|
+
+ CategoryInfo : NotSpecified: ([33mThe CJS bu...e details.[39m:String
|
|
8
|
+
) [], RemoteException
|
|
9
|
+
+ FullyQualifiedErrorId : NativeCommandError
|
|
10
|
+
|
|
11
|
+
{"numTotalTestSuites":9,"numPassedTestSuites":6,"numFailedTestSuites":3,"numPendingTestSuites":0,"numTotalTests":14,"numPassedTests":13,"numFailedTests":1,"numPendingTests":0,"numTodoTests":0,"snapshot":{"added":0,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":0,"total":0,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0,"didUpdate":false},"startTime":1768184278421,"success":false,"testResults":[{"assertionResults":[{"ancestorTitles":["Build Pipeline Integration","Source files"],"fullName":"Build Pipeline Integration Source files should have icons.json","status":"passed","title":"should have icons.json","duration":1.2354001998901367,"failureMessages":[],"meta":{}},{"ancestorTitles":["Build Pipeline Integration","Source files"],"fullName":"Build Pipeline Integration Source files should have all required source files","status":"passed","title":"should have all required source files","duration":0.46810007095336914,"failureMessages":[],"meta":{}},{"ancestorTitles":["Build Pipeline Integration","Generated SVG files"],"fullName":"Build Pipeline Integration Generated SVG files should have svg directory","status":"passed","title":"should have svg directory","duration":0.37180042266845703,"failureMessages":[],"meta":{}},{"ancestorTitles":["Build Pipeline Integration","Generated SVG files"],"fullName":"Build Pipeline Integration Generated SVG files should have SVG file for each icon in icons.json","status":"passed","title":"should have SVG file for each icon in icons.json","duration":21.953199863433838,"failureMessages":[],"meta":{}},{"ancestorTitles":["Build Pipeline Integration","Generated SVG files"],"fullName":"Build Pipeline Integration Generated SVG files should have index.js exporting all icons","status":"passed","title":"should have index.js exporting all icons","duration":0.5628995895385742,"failureMessages":[],"meta":{}},{"ancestorTitles":["Build Pipeline Integration","Generated CSS"],"fullName":"Build Pipeline Integration Generated CSS should have icons.css file","status":"passed","title":"should have icons.css file","duration":0.21340036392211914,"failureMessages":[],"meta":{}},{"ancestorTitles":["Build Pipeline Integration","Generated CSS"],"fullName":"Build Pipeline Integration Generated CSS should have CSS class for each icon","status":"passed","title":"should have CSS class for each icon","duration":9.665900230407715,"failureMessages":[],"meta":{}},{"ancestorTitles":["Build Pipeline Integration","Documentation files"],"fullName":"Build Pipeline Integration Documentation files should have docs directory structure","status":"passed","title":"should have docs directory structure","duration":0.31890010833740234,"failureMessages":[],"meta":{}},{"ancestorTitles":["Build Pipeline Integration","Documentation files"],"fullName":"Build Pipeline Integration Documentation files should have documentation for each icon","status":"passed","title":"should have documentation for each icon","duration":44.08650016784668,"failureMessages":[],"meta":{}},{"ancestorTitles":["Build Pipeline Integration","Icon data consistency"],"fullName":"Build Pipeline Integration Icon data consistency should have matching icon counts across all generated files","status":"failed","title":"should have matching icon counts across all generated files","duration":8.33899974822998,"failureMessages":["AssertionError: expected 248 to be 246 // Object.is equality\n at C:\\wamp64\\www\\senangstart-icons\\tests\\build-pipeline.test.js:93:31\n at file:///C:/wamp64/www/senangstart-icons/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11\n at file:///C:/wamp64/www/senangstart-icons/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26\n at file:///C:/wamp64/www/senangstart-icons/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20\n at new Promise (<anonymous>)\n at runWithTimeout (file:///C:/wamp64/www/senangstart-icons/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10)\n at runTest (file:///C:/wamp64/www/senangstart-icons/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12)\n at processTicksAndRejections (node:internal/process/task_queues:95:5)\n at runSuite (file:///C:/wamp64/www/senangstart-icons/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8)\n at runSuite (file:///C:/wamp64/www/senangstart-icons/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8)"],"meta":{}},{"ancestorTitles":["Build Pipeline Integration","Icon data consistency"],"fullName":"Build Pipeline Integration Icon data consistency should have valid SVG path data in icons.json","status":"passed","title":"should have valid SVG path data in icons.json","duration":9.310800075531006,"failureMessages":[],"meta":{}},{"ancestorTitles":["Build Pipeline Integration","Icon data consistency"],"fullName":"Build Pipeline Integration Icon data consistency should have normalized slugs (lowercase, hyphenated)","status":"passed","title":"should have normalized slugs (lowercase, hyphenated)","duration":7.935400009155273,"failureMessages":[],"meta":{}},{"ancestorTitles":["Build Pipeline Integration","Build scripts"],"fullName":"Build Pipeline Integration Build scripts should have all build scripts","status":"passed","title":"should have all build scripts","duration":0.5515999794006348,"failureMessages":[],"meta":{}},{"ancestorTitles":["Build Pipeline Integration","Webpack configuration"],"fullName":"Build Pipeline Integration Webpack configuration should have webpack.config.js","status":"passed","title":"should have webpack.config.js","duration":0.3931999206542969,"failureMessages":[],"meta":{}}],"startTime":1768184278865,"endTime":1768184278972.3933,"status":"failed","message":"","name":"C:/wamp64/www/senangstart-icons/tests/build-pipeline.test.js"}]}
|