@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.
Files changed (527) hide show
  1. package/.github/workflows/deploy-docs.yml +61 -0
  2. package/dist/senangstart-icon.min.js +1 -1
  3. package/dist/senangstart-icon.min.js.map +1 -1
  4. package/dist/senangstart.min.css +1 -1
  5. package/dist/senangstart.min.css.map +1 -1
  6. package/docs/.vitepress/config.mjs +171 -0
  7. package/docs/.vitepress/theme/custom.css +64 -0
  8. package/docs/.vitepress/theme/index.js +4 -0
  9. package/docs/guide/configuration.md +125 -0
  10. package/docs/guide/getting-started.md +34 -0
  11. package/docs/guide/installation.md +54 -0
  12. package/docs/guide/styling.md +156 -0
  13. package/docs/guide/usage.md +103 -0
  14. package/docs/icons/alert.md +59 -0
  15. package/docs/icons/align-bottom-object.md +59 -0
  16. package/docs/icons/align-center-object.md +59 -0
  17. package/docs/icons/align-left-object.md +59 -0
  18. package/docs/icons/align-middle-object.md +59 -0
  19. package/docs/icons/align-right-object.md +59 -0
  20. package/docs/icons/align-top-object.md +59 -0
  21. package/docs/icons/ar.md +59 -0
  22. package/docs/icons/archive-box.md +59 -0
  23. package/docs/icons/arrow-down.md +59 -0
  24. package/docs/icons/arrow-left-arrow-right.md +59 -0
  25. package/docs/icons/arrow-left-on-rectangle.md +59 -0
  26. package/docs/icons/arrow-left-right.md +59 -0
  27. package/docs/icons/arrow-left.md +59 -0
  28. package/docs/icons/arrow-long-down.md +59 -0
  29. package/docs/icons/arrow-long-left.md +59 -0
  30. package/docs/icons/arrow-long-right.md +59 -0
  31. package/docs/icons/arrow-long-up.md +59 -0
  32. package/docs/icons/arrow-path.md +59 -0
  33. package/docs/icons/arrow-right-on-rectangle.md +59 -0
  34. package/docs/icons/arrow-right.md +59 -0
  35. package/docs/icons/arrow-rotate-ccw.md +59 -0
  36. package/docs/icons/arrow-rotate-cw.md +59 -0
  37. package/docs/icons/arrow-top-right-on-square.md +59 -0
  38. package/docs/icons/arrow-up-arrow-down.md +59 -0
  39. package/docs/icons/arrow-up-down-left-right.md +59 -0
  40. package/docs/icons/arrow-up-down.md +59 -0
  41. package/docs/icons/arrow-up.md +59 -0
  42. package/docs/icons/banknotes.md +59 -0
  43. package/docs/icons/bars-3.md +59 -0
  44. package/docs/icons/basket.md +59 -0
  45. package/docs/icons/battery-0.md +59 -0
  46. package/docs/icons/battery-10.md +59 -0
  47. package/docs/icons/battery-100.md +59 -0
  48. package/docs/icons/battery-50.md +59 -0
  49. package/docs/icons/bell-alert.md +59 -0
  50. package/docs/icons/bell.md +59 -0
  51. package/docs/icons/bolt.md +59 -0
  52. package/docs/icons/book-close.md +59 -0
  53. package/docs/icons/book-open.md +59 -0
  54. package/docs/icons/book-stacked.md +59 -0
  55. package/docs/icons/bookmark.md +59 -0
  56. package/docs/icons/briefcase.md +59 -0
  57. package/docs/icons/brush.md +59 -0
  58. package/docs/icons/cake.md +59 -0
  59. package/docs/icons/calendar-approve.md +59 -0
  60. package/docs/icons/calendar-days.md +59 -0
  61. package/docs/icons/calendar-minus.md +59 -0
  62. package/docs/icons/calendar-plus.md +59 -0
  63. package/docs/icons/calendar-reject.md +59 -0
  64. package/docs/icons/calendar.md +59 -0
  65. package/docs/icons/camera.md +59 -0
  66. package/docs/icons/carousel.md +59 -0
  67. package/docs/icons/chart-bar.md +59 -0
  68. package/docs/icons/chart-line.md +59 -0
  69. package/docs/icons/chart-pie.md +59 -0
  70. package/docs/icons/chat-bubble-left-ellipsis.md +59 -0
  71. package/docs/icons/chat-bubble-left-right.md +59 -0
  72. package/docs/icons/chat-bubble-left.md +59 -0
  73. package/docs/icons/chat-bubble-right-ellipsis.md +59 -0
  74. package/docs/icons/chat-bubble-right.md +59 -0
  75. package/docs/icons/chatbot.md +59 -0
  76. package/docs/icons/check.md +59 -0
  77. package/docs/icons/chevron-double-down.md +59 -0
  78. package/docs/icons/chevron-double-left.md +59 -0
  79. package/docs/icons/chevron-double-right.md +59 -0
  80. package/docs/icons/chevron-double-up.md +59 -0
  81. package/docs/icons/chevron-down.md +59 -0
  82. package/docs/icons/chevron-left.md +59 -0
  83. package/docs/icons/chevron-right.md +59 -0
  84. package/docs/icons/chevron-up.md +59 -0
  85. package/docs/icons/circle.md +59 -0
  86. package/docs/icons/clipboard-document-check.md +59 -0
  87. package/docs/icons/clipboard.md +59 -0
  88. package/docs/icons/clock.md +59 -0
  89. package/docs/icons/cloud.md +59 -0
  90. package/docs/icons/code.md +59 -0
  91. package/docs/icons/cog-6-tooth.md +59 -0
  92. package/docs/icons/compress.md +59 -0
  93. package/docs/icons/computer-code.md +59 -0
  94. package/docs/icons/computer-desktop.md +59 -0
  95. package/docs/icons/computer-laptop.md +59 -0
  96. package/docs/icons/cone.md +59 -0
  97. package/docs/icons/console.md +59 -0
  98. package/docs/icons/container.md +59 -0
  99. package/docs/icons/contrast.md +59 -0
  100. package/docs/icons/controller.md +59 -0
  101. package/docs/icons/credit-card.md +59 -0
  102. package/docs/icons/crop.md +59 -0
  103. package/docs/icons/crosshair.md +59 -0
  104. package/docs/icons/cube.md +59 -0
  105. package/docs/icons/currency-dollar.md +59 -0
  106. package/docs/icons/currency-euro.md +59 -0
  107. package/docs/icons/currency-pound.md +59 -0
  108. package/docs/icons/currency-ringgit.md +59 -0
  109. package/docs/icons/currency-yen.md +59 -0
  110. package/docs/icons/cursor.md +59 -0
  111. package/docs/icons/cylinder-half.md +59 -0
  112. package/docs/icons/cylinder.md +59 -0
  113. package/docs/icons/device-phone-mobile.md +59 -0
  114. package/docs/icons/device-tablet.md +59 -0
  115. package/docs/icons/diamond.md +59 -0
  116. package/docs/icons/document-duplicate.md +59 -0
  117. package/docs/icons/document-text.md +59 -0
  118. package/docs/icons/document.md +59 -0
  119. package/docs/icons/dodecahedron.md +59 -0
  120. package/docs/icons/double-tick.md +59 -0
  121. package/docs/icons/draw-curve.md +59 -0
  122. package/docs/icons/draw-line.md +59 -0
  123. package/docs/icons/envelope-open.md +59 -0
  124. package/docs/icons/envelope.md +59 -0
  125. package/docs/icons/eraser.md +59 -0
  126. package/docs/icons/exclamation-circle.md +59 -0
  127. package/docs/icons/exclamation-triangle.md +59 -0
  128. package/docs/icons/expand.md +59 -0
  129. package/docs/icons/eye-slash.md +59 -0
  130. package/docs/icons/eye.md +59 -0
  131. package/docs/icons/flag.md +59 -0
  132. package/docs/icons/flip-horizontal.md +59 -0
  133. package/docs/icons/flip-vertical.md +59 -0
  134. package/docs/icons/focus.md +59 -0
  135. package/docs/icons/folder-minus.md +59 -0
  136. package/docs/icons/folder-open.md +59 -0
  137. package/docs/icons/folder-plus.md +59 -0
  138. package/docs/icons/folder.md +59 -0
  139. package/docs/icons/font.md +59 -0
  140. package/docs/icons/game.md +59 -0
  141. package/docs/icons/gift.md +59 -0
  142. package/docs/icons/globe-alt.md +59 -0
  143. package/docs/icons/gradient.md +59 -0
  144. package/docs/icons/grid.md +59 -0
  145. package/docs/icons/group-object.md +59 -0
  146. package/docs/icons/hand-grab.md +59 -0
  147. package/docs/icons/hand-thumb-down.md +59 -0
  148. package/docs/icons/hand-thumb-up.md +59 -0
  149. package/docs/icons/hand.md +59 -0
  150. package/docs/icons/heart-extruded.md +59 -0
  151. package/docs/icons/heart.md +59 -0
  152. package/docs/icons/hexagon.md +59 -0
  153. package/docs/icons/home.md +59 -0
  154. package/docs/icons/horizontal-3-dots.md +59 -0
  155. package/docs/icons/hourglass-0.md +59 -0
  156. package/docs/icons/hourglass-100.md +59 -0
  157. package/docs/icons/hourglass-50.md +59 -0
  158. package/docs/icons/hourglass-80.md +59 -0
  159. package/docs/icons/icosahedron.md +59 -0
  160. package/docs/icons/inbox.md +59 -0
  161. package/docs/icons/index.md +1295 -0
  162. package/docs/icons/information-circle.md +59 -0
  163. package/docs/icons/key.md +59 -0
  164. package/docs/icons/layer-stacks.md +59 -0
  165. package/docs/icons/layout.md +59 -0
  166. package/docs/icons/light-bulb.md +59 -0
  167. package/docs/icons/lock-closed.md +59 -0
  168. package/docs/icons/lock-open.md +59 -0
  169. package/docs/icons/magic-wand.md +59 -0
  170. package/docs/icons/magnifying-glass-focus.md +59 -0
  171. package/docs/icons/magnifying-glass-minus.md +59 -0
  172. package/docs/icons/magnifying-glass-plus.md +59 -0
  173. package/docs/icons/magnifying-glass.md +59 -0
  174. package/docs/icons/map-pin.md +59 -0
  175. package/docs/icons/map.md +59 -0
  176. package/docs/icons/marquee.md +59 -0
  177. package/docs/icons/maximize.md +59 -0
  178. package/docs/icons/medal.md +59 -0
  179. package/docs/icons/microphone-mute.md +59 -0
  180. package/docs/icons/microphone.md +59 -0
  181. package/docs/icons/minimize.md +59 -0
  182. package/docs/icons/minus.md +59 -0
  183. package/docs/icons/moon.md +59 -0
  184. package/docs/icons/musical-note.md +59 -0
  185. package/docs/icons/octahedron.md +59 -0
  186. package/docs/icons/panorama.md +59 -0
  187. package/docs/icons/paper-clip.md +59 -0
  188. package/docs/icons/pause-circle.md +59 -0
  189. package/docs/icons/pause.md +59 -0
  190. package/docs/icons/pencil.md +59 -0
  191. package/docs/icons/phone-x-mark.md +59 -0
  192. package/docs/icons/phone.md +59 -0
  193. package/docs/icons/photo.md +59 -0
  194. package/docs/icons/plane.md +59 -0
  195. package/docs/icons/play-circle.md +59 -0
  196. package/docs/icons/play.md +59 -0
  197. package/docs/icons/plus.md +59 -0
  198. package/docs/icons/polygon.md +59 -0
  199. package/docs/icons/presentation-chart-line.md +59 -0
  200. package/docs/icons/presentation-media.md +59 -0
  201. package/docs/icons/pyramid.md +59 -0
  202. package/docs/icons/qr-code.md +59 -0
  203. package/docs/icons/question-mark-circle.md +59 -0
  204. package/docs/icons/rectangle.md +59 -0
  205. package/docs/icons/reel.md +59 -0
  206. package/docs/icons/robot.md +59 -0
  207. package/docs/icons/roof.md +59 -0
  208. package/docs/icons/rotate-add.md +59 -0
  209. package/docs/icons/rotate-minus.md +59 -0
  210. package/docs/icons/save.md +59 -0
  211. package/docs/icons/scissor.md +59 -0
  212. package/docs/icons/shapes.md +59 -0
  213. package/docs/icons/shield-check.md +59 -0
  214. package/docs/icons/shield-exclamation.md +59 -0
  215. package/docs/icons/shopping-bag.md +59 -0
  216. package/docs/icons/shopping-cart.md +59 -0
  217. package/docs/icons/sliders-horizontal.md +59 -0
  218. package/docs/icons/sliders-vertical.md +59 -0
  219. package/docs/icons/sparkles.md +59 -0
  220. package/docs/icons/speaker-wave.md +59 -0
  221. package/docs/icons/speaker-x-mark.md +59 -0
  222. package/docs/icons/sphere-half.md +59 -0
  223. package/docs/icons/sphere.md +59 -0
  224. package/docs/icons/square.md +59 -0
  225. package/docs/icons/star.md +59 -0
  226. package/docs/icons/stop-circle.md +59 -0
  227. package/docs/icons/stop.md +59 -0
  228. package/docs/icons/sun.md +59 -0
  229. package/docs/icons/table.md +59 -0
  230. package/docs/icons/tabs.md +59 -0
  231. package/docs/icons/tetrahedron.md +59 -0
  232. package/docs/icons/text-align-center.md +59 -0
  233. package/docs/icons/text-align-justify.md +59 -0
  234. package/docs/icons/text-align-left.md +59 -0
  235. package/docs/icons/text-align-right.md +59 -0
  236. package/docs/icons/text.md +59 -0
  237. package/docs/icons/thunder.md +59 -0
  238. package/docs/icons/tic-tac-toe.md +59 -0
  239. package/docs/icons/time-reset.md +59 -0
  240. package/docs/icons/torus-knot.md +59 -0
  241. package/docs/icons/torus.md +59 -0
  242. package/docs/icons/trash.md +59 -0
  243. package/docs/icons/trophy.md +59 -0
  244. package/docs/icons/truck.md +59 -0
  245. package/docs/icons/tube.md +59 -0
  246. package/docs/icons/ungroup-object.md +59 -0
  247. package/docs/icons/user-circle.md +59 -0
  248. package/docs/icons/user-group.md +59 -0
  249. package/docs/icons/user-minus.md +59 -0
  250. package/docs/icons/user-plus.md +59 -0
  251. package/docs/icons/user.md +59 -0
  252. package/docs/icons/users.md +59 -0
  253. package/docs/icons/vertical-3-dots.md +59 -0
  254. package/docs/icons/video-camera.md +59 -0
  255. package/docs/icons/vr.md +59 -0
  256. package/docs/icons/wedge.md +59 -0
  257. package/docs/icons/whiteboard.md +59 -0
  258. package/docs/icons/wifi.md +59 -0
  259. package/docs/icons/window.md +59 -0
  260. package/docs/icons/x-mark.md +59 -0
  261. package/docs/index.md +48 -0
  262. package/docs/ms/guide/configuration.md +125 -0
  263. package/docs/ms/guide/getting-started.md +34 -0
  264. package/docs/ms/guide/installation.md +54 -0
  265. package/docs/ms/guide/styling.md +156 -0
  266. package/docs/ms/guide/usage.md +103 -0
  267. package/docs/ms/icons/alert.md +59 -0
  268. package/docs/ms/icons/align-bottom-object.md +59 -0
  269. package/docs/ms/icons/align-center-object.md +59 -0
  270. package/docs/ms/icons/align-left-object.md +59 -0
  271. package/docs/ms/icons/align-middle-object.md +59 -0
  272. package/docs/ms/icons/align-right-object.md +59 -0
  273. package/docs/ms/icons/align-top-object.md +59 -0
  274. package/docs/ms/icons/ar.md +59 -0
  275. package/docs/ms/icons/archive-box.md +59 -0
  276. package/docs/ms/icons/arrow-down.md +59 -0
  277. package/docs/ms/icons/arrow-left-arrow-right.md +59 -0
  278. package/docs/ms/icons/arrow-left-on-rectangle.md +59 -0
  279. package/docs/ms/icons/arrow-left-right.md +59 -0
  280. package/docs/ms/icons/arrow-left.md +59 -0
  281. package/docs/ms/icons/arrow-long-down.md +59 -0
  282. package/docs/ms/icons/arrow-long-left.md +59 -0
  283. package/docs/ms/icons/arrow-long-right.md +59 -0
  284. package/docs/ms/icons/arrow-long-up.md +59 -0
  285. package/docs/ms/icons/arrow-path.md +59 -0
  286. package/docs/ms/icons/arrow-right-on-rectangle.md +59 -0
  287. package/docs/ms/icons/arrow-right.md +59 -0
  288. package/docs/ms/icons/arrow-rotate-ccw.md +59 -0
  289. package/docs/ms/icons/arrow-rotate-cw.md +59 -0
  290. package/docs/ms/icons/arrow-top-right-on-square.md +59 -0
  291. package/docs/ms/icons/arrow-up-arrow-down.md +59 -0
  292. package/docs/ms/icons/arrow-up-down-left-right.md +59 -0
  293. package/docs/ms/icons/arrow-up-down.md +59 -0
  294. package/docs/ms/icons/arrow-up.md +59 -0
  295. package/docs/ms/icons/banknotes.md +59 -0
  296. package/docs/ms/icons/bars-3.md +59 -0
  297. package/docs/ms/icons/basket.md +59 -0
  298. package/docs/ms/icons/battery-0.md +59 -0
  299. package/docs/ms/icons/battery-10.md +59 -0
  300. package/docs/ms/icons/battery-100.md +59 -0
  301. package/docs/ms/icons/battery-50.md +59 -0
  302. package/docs/ms/icons/bell-alert.md +59 -0
  303. package/docs/ms/icons/bell.md +59 -0
  304. package/docs/ms/icons/bolt.md +59 -0
  305. package/docs/ms/icons/book-close.md +59 -0
  306. package/docs/ms/icons/book-open.md +59 -0
  307. package/docs/ms/icons/book-stacked.md +59 -0
  308. package/docs/ms/icons/bookmark.md +59 -0
  309. package/docs/ms/icons/briefcase.md +59 -0
  310. package/docs/ms/icons/brush.md +59 -0
  311. package/docs/ms/icons/cake.md +59 -0
  312. package/docs/ms/icons/calendar-approve.md +59 -0
  313. package/docs/ms/icons/calendar-days.md +59 -0
  314. package/docs/ms/icons/calendar-minus.md +59 -0
  315. package/docs/ms/icons/calendar-plus.md +59 -0
  316. package/docs/ms/icons/calendar-reject.md +59 -0
  317. package/docs/ms/icons/calendar.md +59 -0
  318. package/docs/ms/icons/camera.md +59 -0
  319. package/docs/ms/icons/carousel.md +59 -0
  320. package/docs/ms/icons/chart-bar.md +59 -0
  321. package/docs/ms/icons/chart-line.md +59 -0
  322. package/docs/ms/icons/chart-pie.md +59 -0
  323. package/docs/ms/icons/chat-bubble-left-ellipsis.md +59 -0
  324. package/docs/ms/icons/chat-bubble-left-right.md +59 -0
  325. package/docs/ms/icons/chat-bubble-left.md +59 -0
  326. package/docs/ms/icons/chat-bubble-right-ellipsis.md +59 -0
  327. package/docs/ms/icons/chat-bubble-right.md +59 -0
  328. package/docs/ms/icons/chatbot.md +59 -0
  329. package/docs/ms/icons/check.md +59 -0
  330. package/docs/ms/icons/chevron-double-down.md +59 -0
  331. package/docs/ms/icons/chevron-double-left.md +59 -0
  332. package/docs/ms/icons/chevron-double-right.md +59 -0
  333. package/docs/ms/icons/chevron-double-up.md +59 -0
  334. package/docs/ms/icons/chevron-down.md +59 -0
  335. package/docs/ms/icons/chevron-left.md +59 -0
  336. package/docs/ms/icons/chevron-right.md +59 -0
  337. package/docs/ms/icons/chevron-up.md +59 -0
  338. package/docs/ms/icons/circle.md +59 -0
  339. package/docs/ms/icons/clipboard-document-check.md +59 -0
  340. package/docs/ms/icons/clipboard.md +59 -0
  341. package/docs/ms/icons/clock.md +59 -0
  342. package/docs/ms/icons/cloud.md +59 -0
  343. package/docs/ms/icons/code.md +59 -0
  344. package/docs/ms/icons/cog-6-tooth.md +59 -0
  345. package/docs/ms/icons/compress.md +59 -0
  346. package/docs/ms/icons/computer-code.md +59 -0
  347. package/docs/ms/icons/computer-desktop.md +59 -0
  348. package/docs/ms/icons/computer-laptop.md +59 -0
  349. package/docs/ms/icons/cone.md +59 -0
  350. package/docs/ms/icons/console.md +59 -0
  351. package/docs/ms/icons/container.md +59 -0
  352. package/docs/ms/icons/contrast.md +59 -0
  353. package/docs/ms/icons/controller.md +59 -0
  354. package/docs/ms/icons/credit-card.md +59 -0
  355. package/docs/ms/icons/crop.md +59 -0
  356. package/docs/ms/icons/crosshair.md +59 -0
  357. package/docs/ms/icons/cube.md +59 -0
  358. package/docs/ms/icons/currency-dollar.md +59 -0
  359. package/docs/ms/icons/currency-euro.md +59 -0
  360. package/docs/ms/icons/currency-pound.md +59 -0
  361. package/docs/ms/icons/currency-ringgit.md +59 -0
  362. package/docs/ms/icons/currency-yen.md +59 -0
  363. package/docs/ms/icons/cursor.md +59 -0
  364. package/docs/ms/icons/cylinder-half.md +59 -0
  365. package/docs/ms/icons/cylinder.md +59 -0
  366. package/docs/ms/icons/device-phone-mobile.md +59 -0
  367. package/docs/ms/icons/device-tablet.md +59 -0
  368. package/docs/ms/icons/diamond.md +59 -0
  369. package/docs/ms/icons/document-duplicate.md +59 -0
  370. package/docs/ms/icons/document-text.md +59 -0
  371. package/docs/ms/icons/document.md +59 -0
  372. package/docs/ms/icons/dodecahedron.md +59 -0
  373. package/docs/ms/icons/double-tick.md +59 -0
  374. package/docs/ms/icons/draw-curve.md +59 -0
  375. package/docs/ms/icons/draw-line.md +59 -0
  376. package/docs/ms/icons/envelope-open.md +59 -0
  377. package/docs/ms/icons/envelope.md +59 -0
  378. package/docs/ms/icons/eraser.md +59 -0
  379. package/docs/ms/icons/exclamation-circle.md +59 -0
  380. package/docs/ms/icons/exclamation-triangle.md +59 -0
  381. package/docs/ms/icons/expand.md +59 -0
  382. package/docs/ms/icons/eye-slash.md +59 -0
  383. package/docs/ms/icons/eye.md +59 -0
  384. package/docs/ms/icons/flag.md +59 -0
  385. package/docs/ms/icons/flip-horizontal.md +59 -0
  386. package/docs/ms/icons/flip-vertical.md +59 -0
  387. package/docs/ms/icons/focus.md +59 -0
  388. package/docs/ms/icons/folder-minus.md +59 -0
  389. package/docs/ms/icons/folder-open.md +59 -0
  390. package/docs/ms/icons/folder-plus.md +59 -0
  391. package/docs/ms/icons/folder.md +59 -0
  392. package/docs/ms/icons/font.md +59 -0
  393. package/docs/ms/icons/game.md +59 -0
  394. package/docs/ms/icons/gift.md +59 -0
  395. package/docs/ms/icons/globe-alt.md +59 -0
  396. package/docs/ms/icons/gradient.md +59 -0
  397. package/docs/ms/icons/grid.md +59 -0
  398. package/docs/ms/icons/group-object.md +59 -0
  399. package/docs/ms/icons/hand-grab.md +59 -0
  400. package/docs/ms/icons/hand-thumb-down.md +59 -0
  401. package/docs/ms/icons/hand-thumb-up.md +59 -0
  402. package/docs/ms/icons/hand.md +59 -0
  403. package/docs/ms/icons/heart-extruded.md +59 -0
  404. package/docs/ms/icons/heart.md +59 -0
  405. package/docs/ms/icons/hexagon.md +59 -0
  406. package/docs/ms/icons/home.md +59 -0
  407. package/docs/ms/icons/horizontal-3-dots.md +59 -0
  408. package/docs/ms/icons/hourglass-0.md +59 -0
  409. package/docs/ms/icons/hourglass-100.md +59 -0
  410. package/docs/ms/icons/hourglass-50.md +59 -0
  411. package/docs/ms/icons/hourglass-80.md +59 -0
  412. package/docs/ms/icons/icosahedron.md +59 -0
  413. package/docs/ms/icons/inbox.md +59 -0
  414. package/docs/ms/icons/index.md +1295 -0
  415. package/docs/ms/icons/information-circle.md +59 -0
  416. package/docs/ms/icons/key.md +59 -0
  417. package/docs/ms/icons/layer-stacks.md +59 -0
  418. package/docs/ms/icons/layout.md +59 -0
  419. package/docs/ms/icons/light-bulb.md +59 -0
  420. package/docs/ms/icons/lock-closed.md +59 -0
  421. package/docs/ms/icons/lock-open.md +59 -0
  422. package/docs/ms/icons/magic-wand.md +59 -0
  423. package/docs/ms/icons/magnifying-glass-focus.md +59 -0
  424. package/docs/ms/icons/magnifying-glass-minus.md +59 -0
  425. package/docs/ms/icons/magnifying-glass-plus.md +59 -0
  426. package/docs/ms/icons/magnifying-glass.md +59 -0
  427. package/docs/ms/icons/map-pin.md +59 -0
  428. package/docs/ms/icons/map.md +59 -0
  429. package/docs/ms/icons/marquee.md +59 -0
  430. package/docs/ms/icons/maximize.md +59 -0
  431. package/docs/ms/icons/medal.md +59 -0
  432. package/docs/ms/icons/microphone-mute.md +59 -0
  433. package/docs/ms/icons/microphone.md +59 -0
  434. package/docs/ms/icons/minimize.md +59 -0
  435. package/docs/ms/icons/minus.md +59 -0
  436. package/docs/ms/icons/moon.md +59 -0
  437. package/docs/ms/icons/musical-note.md +59 -0
  438. package/docs/ms/icons/octahedron.md +59 -0
  439. package/docs/ms/icons/panorama.md +59 -0
  440. package/docs/ms/icons/paper-clip.md +59 -0
  441. package/docs/ms/icons/pause-circle.md +59 -0
  442. package/docs/ms/icons/pause.md +59 -0
  443. package/docs/ms/icons/pencil.md +59 -0
  444. package/docs/ms/icons/phone-x-mark.md +59 -0
  445. package/docs/ms/icons/phone.md +59 -0
  446. package/docs/ms/icons/photo.md +59 -0
  447. package/docs/ms/icons/plane.md +59 -0
  448. package/docs/ms/icons/play-circle.md +59 -0
  449. package/docs/ms/icons/play.md +59 -0
  450. package/docs/ms/icons/plus.md +59 -0
  451. package/docs/ms/icons/polygon.md +59 -0
  452. package/docs/ms/icons/presentation-chart-line.md +59 -0
  453. package/docs/ms/icons/presentation-media.md +59 -0
  454. package/docs/ms/icons/pyramid.md +59 -0
  455. package/docs/ms/icons/qr-code.md +59 -0
  456. package/docs/ms/icons/question-mark-circle.md +59 -0
  457. package/docs/ms/icons/rectangle.md +59 -0
  458. package/docs/ms/icons/reel.md +59 -0
  459. package/docs/ms/icons/robot.md +59 -0
  460. package/docs/ms/icons/roof.md +59 -0
  461. package/docs/ms/icons/rotate-add.md +59 -0
  462. package/docs/ms/icons/rotate-minus.md +59 -0
  463. package/docs/ms/icons/save.md +59 -0
  464. package/docs/ms/icons/scissor.md +59 -0
  465. package/docs/ms/icons/shapes.md +59 -0
  466. package/docs/ms/icons/shield-check.md +59 -0
  467. package/docs/ms/icons/shield-exclamation.md +59 -0
  468. package/docs/ms/icons/shopping-bag.md +59 -0
  469. package/docs/ms/icons/shopping-cart.md +59 -0
  470. package/docs/ms/icons/sliders-horizontal.md +59 -0
  471. package/docs/ms/icons/sliders-vertical.md +59 -0
  472. package/docs/ms/icons/sparkles.md +59 -0
  473. package/docs/ms/icons/speaker-wave.md +59 -0
  474. package/docs/ms/icons/speaker-x-mark.md +59 -0
  475. package/docs/ms/icons/sphere-half.md +59 -0
  476. package/docs/ms/icons/sphere.md +59 -0
  477. package/docs/ms/icons/square.md +59 -0
  478. package/docs/ms/icons/star.md +59 -0
  479. package/docs/ms/icons/stop-circle.md +59 -0
  480. package/docs/ms/icons/stop.md +59 -0
  481. package/docs/ms/icons/sun.md +59 -0
  482. package/docs/ms/icons/table.md +59 -0
  483. package/docs/ms/icons/tabs.md +59 -0
  484. package/docs/ms/icons/tetrahedron.md +59 -0
  485. package/docs/ms/icons/text-align-center.md +59 -0
  486. package/docs/ms/icons/text-align-justify.md +59 -0
  487. package/docs/ms/icons/text-align-left.md +59 -0
  488. package/docs/ms/icons/text-align-right.md +59 -0
  489. package/docs/ms/icons/text.md +59 -0
  490. package/docs/ms/icons/thunder.md +59 -0
  491. package/docs/ms/icons/tic-tac-toe.md +59 -0
  492. package/docs/ms/icons/time-reset.md +59 -0
  493. package/docs/ms/icons/torus-knot.md +59 -0
  494. package/docs/ms/icons/torus.md +59 -0
  495. package/docs/ms/icons/trash.md +59 -0
  496. package/docs/ms/icons/trophy.md +59 -0
  497. package/docs/ms/icons/truck.md +59 -0
  498. package/docs/ms/icons/tube.md +59 -0
  499. package/docs/ms/icons/ungroup-object.md +59 -0
  500. package/docs/ms/icons/user-circle.md +59 -0
  501. package/docs/ms/icons/user-group.md +59 -0
  502. package/docs/ms/icons/user-minus.md +59 -0
  503. package/docs/ms/icons/user-plus.md +59 -0
  504. package/docs/ms/icons/user.md +59 -0
  505. package/docs/ms/icons/users.md +59 -0
  506. package/docs/ms/icons/vertical-3-dots.md +59 -0
  507. package/docs/ms/icons/video-camera.md +59 -0
  508. package/docs/ms/icons/vr.md +59 -0
  509. package/docs/ms/icons/wedge.md +59 -0
  510. package/docs/ms/icons/whiteboard.md +59 -0
  511. package/docs/ms/icons/wifi.md +59 -0
  512. package/docs/ms/icons/window.md +59 -0
  513. package/docs/ms/icons/x-mark.md +59 -0
  514. package/docs/ms/index.md +48 -0
  515. package/package.json +13 -3
  516. package/scripts/build-icon-docs.js +331 -0
  517. package/scripts/build.js +40 -0
  518. package/src/icons.css +20 -0
  519. package/src/icons.json +30 -0
  520. package/test-results.json +11 -0
  521. package/tests/build-css.test.js +134 -0
  522. package/tests/build-icon-docs.test.js +132 -0
  523. package/tests/build-pipeline.test.js +138 -0
  524. package/tests/build-svgs.test.js +102 -0
  525. package/tests/ss-icon.test.js +178 -0
  526. package/tests/ss-loader.test.js +156 -0
  527. package/vitest.config.js +15 -0
@@ -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.6",
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": "npm run build:svg && npm run build:css && webpack --mode production",
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": "echo \"Error: no test specified\" && exit 1"
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`);
@@ -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 : The 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.
4
+ At line:1 char:1
5
+ + npx vitest run tests/build-pipeline.test.js --reporter=json 2>&1 | Ou ...
6
+ + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7
+ + CategoryInfo : NotSpecified: (The CJS bu...e details.: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"}]}