@shohojdhara/atomix 0.1.30 → 0.2.1

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 (469) hide show
  1. package/CHANGELOG.md +0 -0
  2. package/LICENSE +0 -0
  3. package/README.md +151 -39
  4. package/dist/atomix.css +13529 -0
  5. package/dist/atomix.min.css +15 -0
  6. package/dist/index.d.ts +6112 -1757
  7. package/dist/index.esm.js +16852 -8364
  8. package/dist/index.esm.js.map +1 -1
  9. package/dist/index.js +16892 -8369
  10. package/dist/index.js.map +1 -1
  11. package/dist/index.min.js +1 -1
  12. package/dist/index.min.js.map +1 -1
  13. package/dist/themes/boomdevs.css +13241 -0
  14. package/dist/themes/boomdevs.min.css +353 -0
  15. package/dist/themes/esrar.css +15374 -0
  16. package/dist/themes/esrar.min.css +189 -0
  17. package/dist/themes/mashroom.css +28079 -0
  18. package/dist/themes/mashroom.min.css +403 -0
  19. package/dist/themes/shaj-default.css +14203 -0
  20. package/dist/themes/shaj-default.min.css +500 -0
  21. package/dist/themes/yabai.css +13711 -0
  22. package/dist/themes/yabai.min.css +189 -0
  23. package/package.json +126 -99
  24. package/src/components/Accordion/Accordion.stories.tsx +271 -0
  25. package/src/components/Accordion/Accordion.tsx +131 -0
  26. package/src/components/Accordion/index.ts +3 -0
  27. package/src/components/AtomixLogo/AtomixLogo.tsx +36 -0
  28. package/src/components/AtomixLogo/index.ts +3 -0
  29. package/src/components/AtomixLogo.tsx +40 -0
  30. package/src/components/Avatar/Avatar.stories.tsx +257 -0
  31. package/src/components/Avatar/Avatar.tsx +68 -0
  32. package/src/components/Avatar/AvatarGroup.tsx +73 -0
  33. package/src/components/Avatar/index.ts +3 -0
  34. package/src/components/Badge/Badge.stories.tsx +371 -0
  35. package/src/components/Badge/Badge.tsx +39 -0
  36. package/src/components/Badge/index.ts +3 -0
  37. package/src/components/Block/Block.stories.tsx +408 -0
  38. package/src/components/Block/Block.tsx +137 -0
  39. package/src/components/Block/index.ts +1 -0
  40. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +106 -0
  41. package/src/components/Breadcrumb/Breadcrumb.tsx +112 -0
  42. package/src/components/Breadcrumb/index.ts +3 -0
  43. package/src/components/Button/Button.stories.tsx +312 -0
  44. package/src/components/Button/Button.tsx +69 -0
  45. package/src/components/Button/index.ts +3 -0
  46. package/src/components/Callout/Callout.stories.tsx +588 -0
  47. package/src/components/Callout/Callout.tsx +78 -0
  48. package/src/components/Callout/index.ts +1 -0
  49. package/src/components/Card/Card.stories.tsx +105 -0
  50. package/src/components/Card/Card.tsx +69 -0
  51. package/src/components/Card/ElevationCard.tsx +47 -0
  52. package/src/components/Card/index.ts +15 -0
  53. package/src/components/Chart/AdvancedChart.tsx +624 -0
  54. package/src/components/Chart/AnimatedChart.tsx +206 -0
  55. package/src/components/Chart/AreaChart.tsx +27 -0
  56. package/src/components/Chart/BarChart.tsx +148 -0
  57. package/src/components/Chart/BubbleChart.tsx +411 -0
  58. package/src/components/Chart/CandlestickChart.tsx +765 -0
  59. package/src/components/Chart/Chart.stories.tsx +527 -0
  60. package/src/components/Chart/Chart.tsx +218 -0
  61. package/src/components/Chart/ChartRenderer.tsx +322 -0
  62. package/src/components/Chart/ChartToolbar.tsx +436 -0
  63. package/src/components/Chart/ChartTooltip.tsx +101 -0
  64. package/src/components/Chart/DonutChart.tsx +370 -0
  65. package/src/components/Chart/FunnelChart.tsx +393 -0
  66. package/src/components/Chart/GaugeChart.tsx +550 -0
  67. package/src/components/Chart/HeatmapChart.tsx +614 -0
  68. package/src/components/Chart/LineChart.tsx +172 -0
  69. package/src/components/Chart/LineChartNew.tsx +167 -0
  70. package/src/components/Chart/MultiAxisChart.tsx +498 -0
  71. package/src/components/Chart/PieChart.tsx +103 -0
  72. package/src/components/Chart/RadarChart.tsx +332 -0
  73. package/src/components/Chart/RealTimeChart.tsx +436 -0
  74. package/src/components/Chart/ScatterChart.tsx +152 -0
  75. package/src/components/Chart/TreemapChart.tsx +574 -0
  76. package/src/components/Chart/WaterfallChart.tsx +450 -0
  77. package/src/components/Chart/index.ts +119 -0
  78. package/src/components/Chart/types.ts +338 -0
  79. package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +44 -0
  80. package/src/components/ColorModeToggle/ColorModeToggle.tsx +85 -0
  81. package/src/components/ColorModeToggle/index.ts +2 -0
  82. package/src/components/Countdown/Countdown.stories.tsx +46 -0
  83. package/src/components/Countdown/Countdown.tsx +90 -0
  84. package/src/components/Countdown/index.ts +2 -0
  85. package/src/components/DataTable/DataTable.stories.tsx +248 -0
  86. package/src/components/DataTable/DataTable.tsx +213 -0
  87. package/src/components/DataTable/index.ts +3 -0
  88. package/src/components/DatePicker/DatePicker.stories.tsx +364 -0
  89. package/src/components/DatePicker/DatePicker.tsx +504 -0
  90. package/src/components/DatePicker/index.ts +4 -0
  91. package/src/components/DatePicker/readme.md +106 -0
  92. package/src/components/DatePicker/types.ts +167 -0
  93. package/src/components/DatePicker/utils.ts +185 -0
  94. package/src/components/Dropdown/Dropdown.stories.tsx +358 -0
  95. package/src/components/Dropdown/Dropdown.tsx +352 -0
  96. package/src/components/Dropdown/index.ts +14 -0
  97. package/src/components/Dropdown/readme.md +151 -0
  98. package/src/components/EdgePanel/EdgePanel.stories.tsx +266 -0
  99. package/src/components/EdgePanel/EdgePanel.tsx +73 -0
  100. package/src/components/EdgePanel/index.ts +1 -0
  101. package/src/components/Form/Checkbox.stories.tsx +76 -0
  102. package/src/components/Form/Checkbox.tsx +69 -0
  103. package/src/components/Form/Form.stories.tsx +497 -0
  104. package/src/components/Form/Form.tsx +46 -0
  105. package/src/components/Form/FormGroup.stories.tsx +162 -0
  106. package/src/components/Form/FormGroup.tsx +53 -0
  107. package/src/components/Form/Input.stories.tsx +106 -0
  108. package/src/components/Form/Input.tsx +87 -0
  109. package/src/components/Form/Radio.stories.tsx +94 -0
  110. package/src/components/Form/Radio.tsx +65 -0
  111. package/src/components/Form/Select.stories.tsx +151 -0
  112. package/src/components/Form/Select.tsx +191 -0
  113. package/src/components/Form/Textarea.stories.tsx +123 -0
  114. package/src/components/Form/Textarea.tsx +78 -0
  115. package/src/components/Form/index.ts +7 -0
  116. package/src/components/Hero/Hero.stories.tsx +295 -0
  117. package/src/components/Hero/Hero.tsx +175 -0
  118. package/src/components/Hero/index.ts +6 -0
  119. package/src/components/Icon/Icon.tsx +87 -0
  120. package/src/components/Icon/index.ts +2 -0
  121. package/src/components/List/List.stories.tsx +122 -0
  122. package/src/components/List/List.tsx +35 -0
  123. package/src/components/List/ListGroup.tsx +35 -0
  124. package/src/components/List/index.ts +2 -0
  125. package/src/components/Messages/Messages.stories.tsx +160 -0
  126. package/src/components/Messages/Messages.tsx +172 -0
  127. package/src/components/Messages/index.ts +3 -0
  128. package/src/components/Modal/Modal.stories.tsx +284 -0
  129. package/src/components/Modal/Modal.tsx +198 -0
  130. package/src/components/Modal/README.md +169 -0
  131. package/src/components/Modal/index.ts +1 -0
  132. package/src/components/Navigation/Menu/MegaMenu.tsx +109 -0
  133. package/src/components/Navigation/Menu/Menu.stories.tsx +339 -0
  134. package/src/components/Navigation/Menu/Menu.tsx +111 -0
  135. package/src/components/Navigation/Nav/Nav.stories.tsx +456 -0
  136. package/src/components/Navigation/Nav/Nav.tsx +51 -0
  137. package/src/components/Navigation/Nav/NavDropdown.tsx +105 -0
  138. package/src/components/Navigation/Nav/NavItem.tsx +168 -0
  139. package/src/components/Navigation/Navbar/Navbar.stories.tsx +569 -0
  140. package/src/components/Navigation/Navbar/Navbar.tsx +150 -0
  141. package/src/components/Navigation/README.md +314 -0
  142. package/src/components/Navigation/SideMenu/SideMenu.README.md +494 -0
  143. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +609 -0
  144. package/src/components/Navigation/SideMenu/SideMenu.tsx +101 -0
  145. package/src/components/Navigation/SideMenu/SideMenuItem.tsx +103 -0
  146. package/src/components/Navigation/SideMenu/SideMenuList.tsx +41 -0
  147. package/src/components/Navigation/index.ts +23 -0
  148. package/src/components/Pagination/Pagination.stories.tsx +188 -0
  149. package/src/components/Pagination/Pagination.tsx +162 -0
  150. package/src/components/Pagination/index.ts +1 -0
  151. package/src/components/PhotoViewer/PhotoViewer.stories.tsx +397 -0
  152. package/src/components/PhotoViewer/PhotoViewer.tsx +246 -0
  153. package/src/components/PhotoViewer/PhotoViewerHeader.tsx +184 -0
  154. package/src/components/PhotoViewer/PhotoViewerImage.tsx +173 -0
  155. package/src/components/PhotoViewer/PhotoViewerInfo.tsx +91 -0
  156. package/src/components/PhotoViewer/PhotoViewerNavigation.tsx +85 -0
  157. package/src/components/PhotoViewer/PhotoViewerThumbnails.tsx +63 -0
  158. package/src/components/PhotoViewer/README.md +358 -0
  159. package/src/components/PhotoViewer/examples/ImageGallery.tsx +187 -0
  160. package/src/components/PhotoViewer/examples/SimpleGallery.tsx +73 -0
  161. package/src/components/PhotoViewer/examples/index.ts +2 -0
  162. package/src/components/PhotoViewer/index.ts +14 -0
  163. package/src/components/Popover/Popover.stories.tsx +143 -0
  164. package/src/components/Popover/Popover.tsx +137 -0
  165. package/src/components/Popover/index.ts +5 -0
  166. package/src/components/Popover/readme.md +120 -0
  167. package/src/components/ProductReview/ProductReview.stories.tsx +88 -0
  168. package/src/components/ProductReview/ProductReview.tsx +169 -0
  169. package/src/components/ProductReview/index.ts +3 -0
  170. package/src/components/Progress/Progress.stories.tsx +75 -0
  171. package/src/components/Progress/Progress.tsx +45 -0
  172. package/src/components/Progress/index.ts +1 -0
  173. package/src/components/Rating/Rating.stories.tsx +109 -0
  174. package/src/components/Rating/Rating.tsx +286 -0
  175. package/src/components/Rating/index.ts +6 -0
  176. package/src/components/River/River.stories.tsx +230 -0
  177. package/src/components/River/River.tsx +134 -0
  178. package/src/components/River/index.ts +2 -0
  179. package/src/components/SectionIntro/SectionIntro.stories.tsx +143 -0
  180. package/src/components/SectionIntro/SectionIntro.tsx +184 -0
  181. package/src/components/SectionIntro/index.ts +3 -0
  182. package/src/components/Slider/Slider.stories.tsx +241 -0
  183. package/src/components/Slider/Slider.tsx +225 -0
  184. package/src/components/Slider/index.ts +24 -0
  185. package/src/components/Spinner/Spinner.stories.tsx +65 -0
  186. package/src/components/Spinner/Spinner.tsx +36 -0
  187. package/src/components/Spinner/index.ts +2 -0
  188. package/src/components/Steps/Steps.stories.tsx +158 -0
  189. package/src/components/Steps/Steps.tsx +115 -0
  190. package/src/components/Steps/index.ts +3 -0
  191. package/src/components/Tab/Tab.stories.tsx +129 -0
  192. package/src/components/Tab/Tab.tsx +111 -0
  193. package/src/components/Tab/index.ts +2 -0
  194. package/src/components/Testimonial/Testimonial.stories.tsx +180 -0
  195. package/src/components/Testimonial/Testimonial.tsx +138 -0
  196. package/src/components/Testimonial/index.ts +3 -0
  197. package/src/components/Todo/Todo.stories.tsx +103 -0
  198. package/src/components/Todo/Todo.tsx +158 -0
  199. package/src/components/Todo/index.ts +1 -0
  200. package/src/components/Toggle/Toggle.stories.tsx +49 -0
  201. package/src/components/Toggle/Toggle.tsx +84 -0
  202. package/src/components/Toggle/index.ts +2 -0
  203. package/src/components/Tooltip/Tooltip.stories.tsx +115 -0
  204. package/src/components/Tooltip/Tooltip.tsx +150 -0
  205. package/src/components/Tooltip/index.ts +3 -0
  206. package/src/components/Upload/Upload.stories.tsx +220 -0
  207. package/src/components/Upload/Upload.tsx +354 -0
  208. package/src/components/Upload/index.ts +3 -0
  209. package/src/components/VideoPlayer/VideoPlayer.stories.tsx +484 -0
  210. package/src/components/VideoPlayer/VideoPlayer.tsx +574 -0
  211. package/src/components/VideoPlayer/index.ts +7 -0
  212. package/src/components/index.ts +111 -0
  213. package/src/layouts/Grid/Container.tsx +58 -0
  214. package/src/layouts/Grid/Grid.stories.tsx +861 -0
  215. package/src/layouts/Grid/Grid.tsx +68 -0
  216. package/src/layouts/Grid/GridCol.tsx +161 -0
  217. package/src/layouts/Grid/README.md +108 -0
  218. package/src/layouts/Grid/Row.tsx +70 -0
  219. package/src/layouts/Grid/index.ts +8 -0
  220. package/src/layouts/MasonryGrid/MasonryGrid.stories.tsx +387 -0
  221. package/src/layouts/MasonryGrid/MasonryGrid.tsx +408 -0
  222. package/src/layouts/MasonryGrid/MasonryGridItem.tsx +44 -0
  223. package/src/layouts/MasonryGrid/README.md +117 -0
  224. package/src/layouts/MasonryGrid/index.ts +4 -0
  225. package/src/layouts/index.ts +7 -0
  226. package/src/lib/README.md +89 -0
  227. package/src/lib/composables/index.ts +63 -0
  228. package/src/lib/composables/useAccordion.ts +129 -0
  229. package/src/lib/composables/useAmbientMode.ts +90 -0
  230. package/src/lib/composables/useBadge.ts +42 -0
  231. package/src/lib/composables/useBarChart.ts +365 -0
  232. package/src/lib/composables/useBlock.ts +56 -0
  233. package/src/lib/composables/useBreadcrumb.ts +81 -0
  234. package/src/lib/composables/useButton.ts +59 -0
  235. package/src/lib/composables/useCallout.ts +55 -0
  236. package/src/lib/composables/useCard.ts +155 -0
  237. package/src/lib/composables/useChart.ts +1082 -0
  238. package/src/lib/composables/useChartAnalytics.ts +505 -0
  239. package/src/lib/composables/useChartData.ts +38 -0
  240. package/src/lib/composables/useChartExport.ts +392 -0
  241. package/src/lib/composables/useChartInteraction.ts +34 -0
  242. package/src/lib/composables/useChartInteractions.ts +123 -0
  243. package/src/lib/composables/useChartPerformance.ts +323 -0
  244. package/src/lib/composables/useChartScale.ts +48 -0
  245. package/src/lib/composables/useChartToolbar.ts +532 -0
  246. package/src/lib/composables/useCheckbox.ts +70 -0
  247. package/src/lib/composables/useDataTable.ts +208 -0
  248. package/src/lib/composables/useDatePicker.ts +564 -0
  249. package/src/lib/composables/useDropdown.ts +272 -0
  250. package/src/lib/composables/useEdgePanel.ts +261 -0
  251. package/src/lib/composables/useForm.ts +62 -0
  252. package/src/lib/composables/useFormGroup.ts +51 -0
  253. package/src/lib/composables/useHero.ts +250 -0
  254. package/src/lib/composables/useInput.ts +58 -0
  255. package/src/lib/composables/useLineChart.ts +319 -0
  256. package/src/lib/composables/useMessages.ts +77 -0
  257. package/src/lib/composables/useModal.ts +110 -0
  258. package/src/lib/composables/useNavbar.ts +288 -0
  259. package/src/lib/composables/usePagination.ts +101 -0
  260. package/src/lib/composables/usePhotoViewer.ts +937 -0
  261. package/src/lib/composables/usePieChart.ts +362 -0
  262. package/src/lib/composables/usePopover.ts +354 -0
  263. package/src/lib/composables/useProgress.ts +74 -0
  264. package/src/lib/composables/useRadio.ts +47 -0
  265. package/src/lib/composables/useRating.ts +174 -0
  266. package/src/lib/composables/useRiver.ts +205 -0
  267. package/src/lib/composables/useSelect.ts +52 -0
  268. package/src/lib/composables/useSideMenu.ts +197 -0
  269. package/src/lib/composables/useSlider.ts +339 -0
  270. package/src/lib/composables/useSpinner.ts +42 -0
  271. package/src/lib/composables/useTextarea.ts +55 -0
  272. package/src/lib/composables/useTodo.ts +141 -0
  273. package/src/lib/composables/useVideoPlayer.ts +398 -0
  274. package/src/lib/constants/components.ts +1433 -0
  275. package/src/lib/constants/index.ts +4 -0
  276. package/src/lib/index.ts +11 -0
  277. package/src/lib/types/components.ts +4750 -0
  278. package/src/lib/types/index.ts +2 -0
  279. package/src/lib/utils/dom.ts +41 -0
  280. package/src/lib/utils/icons.ts +74 -0
  281. package/src/lib/utils/index.ts +55 -0
  282. package/src/lib/utils/useForkRef.test.tsx +64 -0
  283. package/src/lib/utils/useForkRef.ts +36 -0
  284. package/src/lib/utils.test.ts +14 -0
  285. package/src/styles/01-settings/_index.scss +2 -0
  286. package/src/styles/01-settings/_settings.accordion.scss +7 -5
  287. package/src/styles/01-settings/_settings.animations.scss +0 -0
  288. package/src/styles/01-settings/_settings.avatar-group.scss +6 -3
  289. package/src/styles/01-settings/_settings.avatar.scss +2 -2
  290. package/src/styles/01-settings/_settings.badge.scss +15 -9
  291. package/src/styles/01-settings/_settings.block.scss +11 -0
  292. package/src/styles/01-settings/_settings.border-radius.scss +12 -9
  293. package/src/styles/01-settings/_settings.border.scss +4 -1
  294. package/src/styles/01-settings/_settings.box-shadow.scss +1 -1
  295. package/src/styles/01-settings/_settings.breadcrumb.scss +9 -8
  296. package/src/styles/01-settings/_settings.breakpoints.scss +0 -0
  297. package/src/styles/01-settings/_settings.btn-group.scss +4 -1
  298. package/src/styles/01-settings/_settings.button.scss +19 -21
  299. package/src/styles/01-settings/_settings.callout.scss +42 -24
  300. package/src/styles/01-settings/_settings.card.scss +12 -10
  301. package/src/styles/01-settings/_settings.chart.scss +199 -0
  302. package/src/styles/01-settings/_settings.checkbox-group.scss +0 -0
  303. package/src/styles/01-settings/_settings.checkbox.scss +0 -0
  304. package/src/styles/01-settings/_settings.color-mode.scss +0 -0
  305. package/src/styles/01-settings/_settings.colors.scss +20 -0
  306. package/src/styles/01-settings/_settings.config.scss +1 -1
  307. package/src/styles/01-settings/_settings.countdown.scss +0 -0
  308. package/src/styles/01-settings/_settings.data-table.scss +0 -0
  309. package/src/styles/01-settings/_settings.datepicker.scss +0 -0
  310. package/src/styles/01-settings/_settings.dropdown.scss +0 -0
  311. package/src/styles/01-settings/_settings.edge-panel.scss +0 -0
  312. package/src/styles/01-settings/_settings.fonts.scss +1 -1
  313. package/src/styles/01-settings/_settings.form-group.scss +0 -0
  314. package/src/styles/01-settings/_settings.form.scss +0 -0
  315. package/src/styles/01-settings/_settings.grid.scss +3 -3
  316. package/src/styles/01-settings/_settings.hero.scss +1 -1
  317. package/src/styles/01-settings/_settings.input.scss +1 -1
  318. package/src/styles/01-settings/_settings.link.scss +0 -0
  319. package/src/styles/01-settings/_settings.list-group.scss +0 -0
  320. package/src/styles/01-settings/_settings.list.scss +0 -0
  321. package/src/styles/01-settings/_settings.maps.scss +43 -8
  322. package/src/styles/01-settings/_settings.masonry-grid.scss +0 -0
  323. package/src/styles/01-settings/_settings.menu.scss +0 -0
  324. package/src/styles/01-settings/_settings.messages.scss +0 -0
  325. package/src/styles/01-settings/_settings.modal.scss +1 -1
  326. package/src/styles/01-settings/_settings.nav.scss +0 -0
  327. package/src/styles/01-settings/_settings.navbar.scss +0 -0
  328. package/src/styles/01-settings/_settings.pagination.scss +0 -0
  329. package/src/styles/01-settings/_settings.photoviewer.scss +89 -23
  330. package/src/styles/01-settings/_settings.popover.scss +0 -0
  331. package/src/styles/01-settings/_settings.position.scss +0 -0
  332. package/src/styles/01-settings/_settings.progress.scss +0 -0
  333. package/src/styles/01-settings/_settings.rating.scss +0 -0
  334. package/src/styles/01-settings/_settings.river.scss +0 -0
  335. package/src/styles/01-settings/_settings.sectionintro.scss +0 -0
  336. package/src/styles/01-settings/_settings.select.scss +0 -0
  337. package/src/styles/01-settings/_settings.side-menu.scss +0 -0
  338. package/src/styles/01-settings/_settings.skeleton.scss +0 -0
  339. package/src/styles/01-settings/_settings.slider.scss +59 -0
  340. package/src/styles/01-settings/_settings.spacing.scss +11 -3
  341. package/src/styles/01-settings/_settings.spinner.scss +0 -0
  342. package/src/styles/01-settings/_settings.steps.scss +1 -1
  343. package/src/styles/01-settings/_settings.tabs.scss +4 -4
  344. package/src/styles/01-settings/_settings.testimonials.scss +0 -0
  345. package/src/styles/01-settings/_settings.todo.scss +0 -0
  346. package/src/styles/01-settings/_settings.toggle.scss +1 -1
  347. package/src/styles/01-settings/_settings.tooltip.scss +0 -0
  348. package/src/styles/01-settings/_settings.typography.scss +2 -0
  349. package/src/styles/01-settings/_settings.upload.scss +0 -0
  350. package/src/styles/01-settings/_settings.video-player.scss +64 -0
  351. package/src/styles/01-settings/_settings.z-layers.scss +0 -0
  352. package/src/styles/02-tools/_index.scss +1 -0
  353. package/src/styles/02-tools/_tools.animations.scss +82 -0
  354. package/src/styles/02-tools/_tools.border-radius.scss +0 -0
  355. package/src/styles/02-tools/_tools.breakpoints.scss +0 -0
  356. package/src/styles/02-tools/_tools.button.scss +5 -0
  357. package/src/styles/02-tools/_tools.clearfix.scss +0 -0
  358. package/src/styles/02-tools/_tools.color-functions.scss +0 -0
  359. package/src/styles/02-tools/_tools.color-mode.scss +1 -1
  360. package/src/styles/02-tools/_tools.component.scss +479 -0
  361. package/src/styles/02-tools/_tools.event.scss +0 -0
  362. package/src/styles/02-tools/_tools.grid.scss +0 -0
  363. package/src/styles/02-tools/_tools.hidden-visually.scss +0 -0
  364. package/src/styles/02-tools/_tools.hidden.scss +0 -0
  365. package/src/styles/02-tools/_tools.map-loop.scss +0 -0
  366. package/src/styles/02-tools/_tools.media-queries.scss +0 -0
  367. package/src/styles/02-tools/_tools.object-fit.scss +0 -0
  368. package/src/styles/02-tools/_tools.placeholder.scss +0 -0
  369. package/src/styles/02-tools/_tools.rem.scss +5 -1
  370. package/src/styles/02-tools/_tools.size.scss +0 -0
  371. package/src/styles/02-tools/_tools.spacing.scss +0 -0
  372. package/src/styles/02-tools/_tools.to-rgb.scss +0 -0
  373. package/src/styles/02-tools/_tools.transition.scss +0 -0
  374. package/src/styles/02-tools/_tools.utilities.scss +0 -0
  375. package/src/styles/02-tools/_tools.utility-api.scss +23 -2
  376. package/src/styles/03-generic/_generic.fonts.scss +0 -0
  377. package/src/styles/03-generic/_generic.reset.scss +0 -0
  378. package/src/styles/03-generic/_generic.root.scss +5 -1
  379. package/src/styles/03-generic/_generic.selection.scss +0 -0
  380. package/src/styles/03-generic/_index.scss +0 -0
  381. package/src/styles/04-elements/_elements.all.scss +0 -0
  382. package/src/styles/04-elements/_elements.body.scss +0 -0
  383. package/src/styles/04-elements/_elements.heading.scss +0 -0
  384. package/src/styles/04-elements/_elements.html.scss +0 -0
  385. package/src/styles/04-elements/_elements.links.scss +0 -0
  386. package/src/styles/04-elements/_index.scss +0 -0
  387. package/src/styles/05-objects/_index.scss +1 -0
  388. package/src/styles/05-objects/_objects.block.scss +122 -0
  389. package/src/styles/05-objects/_objects.container.scss +14 -10
  390. package/src/styles/05-objects/_objects.grid.scss +0 -0
  391. package/src/styles/05-objects/_objects.masonry-grid.scss +0 -0
  392. package/src/styles/06-components/_components.accordion.scss +3 -1
  393. package/src/styles/06-components/_components.avatar-group.scss +0 -0
  394. package/src/styles/06-components/_components.avatar.scss +0 -0
  395. package/src/styles/06-components/_components.badge.scss +9 -9
  396. package/src/styles/06-components/_components.breadcrumb.scss +0 -0
  397. package/src/styles/06-components/_components.btn-group.scss +0 -0
  398. package/src/styles/06-components/_components.button.scss +0 -0
  399. package/src/styles/06-components/_components.callout.scss +2 -1
  400. package/src/styles/06-components/_components.card.scss +0 -1
  401. package/src/styles/06-components/_components.chart.scss +2102 -0
  402. package/src/styles/06-components/_components.checkbox-group.scss +0 -0
  403. package/src/styles/06-components/_components.checkbox.scss +0 -0
  404. package/src/styles/06-components/_components.color-mode-toggle.scss +0 -0
  405. package/src/styles/06-components/_components.countdown.scss +0 -0
  406. package/src/styles/06-components/_components.data-table.scss +0 -0
  407. package/src/styles/06-components/_components.datepicker.scss +0 -0
  408. package/src/styles/06-components/_components.dropdown.scss +0 -0
  409. package/src/styles/06-components/_components.edge-panel.scss +0 -0
  410. package/src/styles/06-components/_components.form-group.scss +0 -0
  411. package/src/styles/06-components/_components.form.scss +0 -0
  412. package/src/styles/06-components/_components.hero.scss +1 -0
  413. package/src/styles/06-components/_components.icon.scss +2 -2
  414. package/src/styles/06-components/_components.image-gallery.scss +0 -0
  415. package/src/styles/06-components/_components.input.scss +0 -0
  416. package/src/styles/06-components/_components.list-group.scss +0 -0
  417. package/src/styles/06-components/_components.list.scss +0 -0
  418. package/src/styles/06-components/_components.menu.scss +0 -0
  419. package/src/styles/06-components/_components.messages.scss +0 -0
  420. package/src/styles/06-components/_components.modal.scss +3 -0
  421. package/src/styles/06-components/_components.nav.scss +0 -0
  422. package/src/styles/06-components/_components.navbar.scss +0 -0
  423. package/src/styles/06-components/_components.pagination.scss +0 -0
  424. package/src/styles/06-components/_components.photoviewer.scss +603 -545
  425. package/src/styles/06-components/_components.popover.scss +0 -0
  426. package/src/styles/06-components/_components.product-review.scss +0 -0
  427. package/src/styles/06-components/_components.progress.scss +0 -0
  428. package/src/styles/06-components/_components.rating.scss +0 -0
  429. package/src/styles/06-components/_components.river.scss +0 -0
  430. package/src/styles/06-components/_components.sectionintro.scss +0 -0
  431. package/src/styles/06-components/_components.select.scss +0 -0
  432. package/src/styles/06-components/_components.side-menu.scss +0 -0
  433. package/src/styles/06-components/_components.skeleton.scss +0 -0
  434. package/src/styles/06-components/_components.slider.scss +273 -0
  435. package/src/styles/06-components/_components.spinner.scss +0 -0
  436. package/src/styles/06-components/_components.steps.scss +1 -0
  437. package/src/styles/06-components/_components.tabs.scss +0 -0
  438. package/src/styles/06-components/_components.testimonials.scss +0 -0
  439. package/src/styles/06-components/_components.todo.scss +0 -0
  440. package/src/styles/06-components/_components.toggle.scss +0 -0
  441. package/src/styles/06-components/_components.tooltip.scss +4 -9
  442. package/src/styles/06-components/_components.upload.scss +0 -0
  443. package/src/styles/06-components/_components.video-player.scss +623 -0
  444. package/src/styles/06-components/_index.scss +3 -0
  445. package/src/styles/06-components/old.chart.styles.scss +2819 -0
  446. package/src/styles/99-utilities/_index.scss +0 -0
  447. package/src/styles/99-utilities/_utilities.background.scss +0 -0
  448. package/src/styles/99-utilities/_utilities.border.scss +0 -0
  449. package/src/styles/99-utilities/_utilities.clearfix.scss +0 -0
  450. package/src/styles/99-utilities/_utilities.display.scss +0 -0
  451. package/src/styles/99-utilities/_utilities.flex.scss +0 -0
  452. package/src/styles/99-utilities/_utilities.link.scss +0 -0
  453. package/src/styles/99-utilities/_utilities.object-fit.scss +0 -0
  454. package/src/styles/99-utilities/_utilities.opacity.scss +0 -0
  455. package/src/styles/99-utilities/_utilities.overflow.scss +0 -0
  456. package/src/styles/99-utilities/_utilities.position.scss +0 -0
  457. package/src/styles/99-utilities/_utilities.scss +2 -1
  458. package/src/styles/99-utilities/_utilities.shadow.scss +0 -0
  459. package/src/styles/99-utilities/_utilities.sizes.scss +0 -0
  460. package/src/styles/99-utilities/_utilities.spacing.scss +0 -0
  461. package/src/styles/99-utilities/_utilities.text.scss +5 -0
  462. package/src/styles/99-utilities/_utilities.visibility.scss +0 -0
  463. package/src/styles/99-utilities/_utilities.visually-hidden.scss +0 -0
  464. package/src/styles/99-utilities/_utilities.z-index.scss +0 -0
  465. package/src/styles/css-modules.d.ts +0 -0
  466. package/src/styles/index.scss +0 -0
  467. package/dist/index.css +0 -15
  468. package/dist/index.esm.css +0 -15
  469. package/dist/index.min.css +0 -15
@@ -0,0 +1,494 @@
1
+ # SideMenu Component
2
+
3
+ The SideMenu component provides a collapsible navigation menu with title and menu items. It automatically collapses on mobile devices and can be toggled via a header button. The component follows the Atomix design system guidelines and includes both React and vanilla JavaScript implementations.
4
+
5
+ ## Features
6
+
7
+ - **Responsive Design**: Automatically collapses on mobile devices
8
+ - **Collapsible**: Can be toggled open/closed with smooth animations
9
+ - **Accessibility**: Full keyboard navigation and screen reader support
10
+ - **Active States**: Support for active menu items
11
+ - **Icon Support**: Menu items can include Phosphor icons via the Atomix Icon component
12
+ - **Vanilla JS Support**: Complete vanilla JavaScript implementation available
13
+
14
+ ## React Usage
15
+
16
+ ### Basic SideMenu
17
+
18
+ ```tsx
19
+ import { SideMenu, SideMenuList, SideMenuItem } from '@atomix/components';
20
+
21
+ <SideMenu title="Navigation">
22
+ <SideMenuList>
23
+ <SideMenuItem href="/" active>Home</SideMenuItem>
24
+ <SideMenuItem href="/about">About</SideMenuItem>
25
+ <SideMenuItem href="/contact">Contact</SideMenuItem>
26
+ </SideMenuList>
27
+ </SideMenu>
28
+ ```
29
+
30
+ ### With Icons
31
+
32
+ ```tsx
33
+ import { SideMenu, SideMenuList, SideMenuItem, Icon } from '@atomix/components';
34
+
35
+ <SideMenu title="Main Menu">
36
+ <SideMenuList>
37
+ <SideMenuItem href="/" icon={<Icon name="House" size="sm" />} active>
38
+ Home
39
+ </SideMenuItem>
40
+ <SideMenuItem href="/about" icon={<Icon name="Info" size="sm" />}>
41
+ About
42
+ </SideMenuItem>
43
+ <SideMenuItem href="/settings" icon={<Icon name="Gear" size="sm" />}>
44
+ Settings
45
+ </SideMenuItem>
46
+ </SideMenuList>
47
+ </SideMenu>
48
+ ```
49
+
50
+ ### Multiple Menu Lists
51
+
52
+ ```tsx
53
+ <SideMenu title="Dashboard">
54
+ <SideMenuList>
55
+ <SideMenuItem href="/dashboard" icon={<Icon name="ChartBar" size="sm" />} active>
56
+ Dashboard
57
+ </SideMenuItem>
58
+ <SideMenuItem href="/analytics" icon={<Icon name="TrendUp" size="sm" />}>
59
+ Analytics
60
+ </SideMenuItem>
61
+ </SideMenuList>
62
+
63
+ <SideMenuList>
64
+ <SideMenuItem href="/users" icon={<Icon name="Users" size="sm" />}>
65
+ Users
66
+ </SideMenuItem>
67
+ <SideMenuItem href="/settings" icon={<Icon name="Gear" size="sm" />}>
68
+ Settings
69
+ </SideMenuItem>
70
+ </SideMenuList>
71
+ </SideMenu>
72
+ ```
73
+
74
+ ### Button Items (No Navigation)
75
+
76
+ ```tsx
77
+ <SideMenu title="Actions">
78
+ <SideMenuList>
79
+ <SideMenuItem onClick={() => handleCreate()} icon={<Icon name="Plus" size="sm" />}>
80
+ Create New
81
+ </SideMenuItem>
82
+ <SideMenuItem onClick={() => handleExport()} icon={<Icon name="Export" size="sm" />}>
83
+ Export Data
84
+ </SideMenuItem>
85
+ <SideMenuItem onClick={() => handleSettings()} icon={<Icon name="Gear" size="sm" />}>
86
+ Settings
87
+ </SideMenuItem>
88
+ </SideMenuList>
89
+ </SideMenu>
90
+ ```
91
+
92
+ ### Controlled SideMenu
93
+
94
+ ```tsx
95
+ import { useState } from 'react';
96
+ import { SideMenu, SideMenuList, SideMenuItem, Icon } from '@atomix/components';
97
+
98
+ function MyComponent() {
99
+ const [isOpen, setIsOpen] = useState(false);
100
+
101
+ return (
102
+ <SideMenu
103
+ title="Controlled Menu"
104
+ isOpen={isOpen}
105
+ onToggle={setIsOpen}
106
+ >
107
+ <SideMenuList>
108
+ <SideMenuItem href="/" icon={<Icon name="House" size="sm" />} active>
109
+ Home
110
+ </SideMenuItem>
111
+ <SideMenuItem href="/about" icon={<Icon name="Info" size="sm" />}>
112
+ About
113
+ </SideMenuItem>
114
+ </SideMenuList>
115
+ </SideMenu>
116
+ );
117
+ }
118
+ ```
119
+
120
+ ### Custom Toggle Icon
121
+
122
+ ```tsx
123
+ <SideMenu
124
+ title="Custom Menu"
125
+ toggleIcon={<Icon name="CaretDown" size="xs" />}
126
+ >
127
+ <SideMenuList>
128
+ <SideMenuItem href="/dashboard" active>Dashboard</SideMenuItem>
129
+ <SideMenuItem href="/profile">Profile</SideMenuItem>
130
+ <SideMenuItem href="/settings">Settings</SideMenuItem>
131
+ </SideMenuList>
132
+ </SideMenu>
133
+ ```
134
+
135
+ ### Non-Collapsible Menu
136
+
137
+ ```tsx
138
+ <SideMenu title="Quick Links" collapsible={false}>
139
+ <SideMenuList>
140
+ <SideMenuItem href="/dashboard" icon={<Icon name="ChartBar" size="sm" />} active>
141
+ Dashboard
142
+ </SideMenuItem>
143
+ <SideMenuItem href="/profile" icon={<Icon name="User" size="sm" />}>
144
+ Profile
145
+ </SideMenuItem>
146
+ <SideMenuItem href="/settings" icon={<Icon name="Gear" size="sm" />}>
147
+ Settings
148
+ </SideMenuItem>
149
+ </SideMenuList>
150
+ </SideMenu>
151
+ ```
152
+
153
+ ## Vanilla JavaScript Usage
154
+
155
+ ### HTML Structure
156
+
157
+ ```html
158
+ <div class="c-side-menu" data-side-menu data-collapsible="true" data-auto-open="true">
159
+ <!-- Toggler (shown on mobile) -->
160
+ <div class="c-side-menu__toggler">
161
+ <span class="c-side-menu__title">Navigation</span>
162
+ <span class="c-side-menu__toggler-icon">
163
+ <svg class="c-icon" width="16" height="16" viewBox="0 0 256 256">
164
+ <!-- Phosphor CaretRight icon SVG content -->
165
+ </svg>
166
+ </span>
167
+ </div>
168
+
169
+ <!-- Collapsible Content -->
170
+ <div class="c-side-menu__wrapper">
171
+ <div class="c-side-menu__inner">
172
+ <!-- Menu Lists -->
173
+ <ul class="c-side-menu__list">
174
+ <li class="c-side-menu__item">
175
+ <a href="/" class="c-side-menu__link is-active">
176
+ <span class="c-side-menu__link-icon">
177
+ <svg class="c-icon" width="20" height="20" viewBox="0 0 256 256">
178
+ <!-- Phosphor House icon SVG content -->
179
+ </svg>
180
+ </span>
181
+ <span class="c-side-menu__link-text">Home</span>
182
+ </a>
183
+ </li>
184
+ <li class="c-side-menu__item">
185
+ <a href="/about" class="c-side-menu__link">
186
+ <span class="c-side-menu__link-icon">
187
+ <svg class="c-icon" width="20" height="20" viewBox="0 0 256 256">
188
+ <!-- Phosphor Info icon SVG content -->
189
+ </svg>
190
+ </span>
191
+ <span class="c-side-menu__link-text">About</span>
192
+ </a>
193
+ </li>
194
+ </ul>
195
+ </div>
196
+ </div>
197
+ </div>
198
+ ```
199
+
200
+ ### JavaScript Initialization
201
+
202
+ #### Automatic Initialization (Recommended)
203
+
204
+ The side menu will automatically initialize when the DOM is ready if you include the bundle:
205
+
206
+ ```html
207
+ <script src="path/to/atomix-sidemenu.js"></script>
208
+ ```
209
+
210
+ #### Manual Initialization
211
+
212
+ ```javascript
213
+ // Initialize all side menus with data attributes
214
+ const sideMenus = Atomix.SideMenu.init();
215
+
216
+ // Initialize a specific side menu
217
+ const sideMenu = new Atomix.SideMenu.SideMenu('.my-side-menu', {
218
+ collapsible: true,
219
+ autoOpen: true,
220
+ keyboard: true
221
+ });
222
+
223
+ // Or using the create helper
224
+ const sideMenu = Atomix.SideMenu.create('.my-side-menu', {
225
+ collapsible: true,
226
+ autoOpen: true
227
+ });
228
+ ```
229
+
230
+ #### Programmatic Control
231
+
232
+ ```javascript
233
+ // Get side menu instance
234
+ const sideMenu = Atomix.SideMenu.get('.my-side-menu');
235
+
236
+ // Control the side menu
237
+ sideMenu.open();
238
+ sideMenu.close();
239
+ sideMenu.toggle();
240
+
241
+ // Check state
242
+ console.log(sideMenu.isOpened()); // true/false
243
+
244
+ // Set active menu item
245
+ sideMenu.setActiveItem('[href="/about"]');
246
+
247
+ // Update options
248
+ sideMenu.updateOptions({ autoOpen: false });
249
+
250
+ // Clean up
251
+ sideMenu.destroy();
252
+ ```
253
+
254
+ #### Event Handling
255
+
256
+ ```javascript
257
+ // Listen for side menu events
258
+ document.querySelector('.c-side-menu').addEventListener('sidemenu:opened', (event) => {
259
+ console.log('Side menu opened', event.detail);
260
+ });
261
+
262
+ document.querySelector('.c-side-menu').addEventListener('sidemenu:closed', (event) => {
263
+ console.log('Side menu closed', event.detail);
264
+ });
265
+ ```
266
+
267
+ #### Utility Functions
268
+
269
+ ```javascript
270
+ // Set active item by href across all side menus
271
+ Atomix.SideMenu.setActiveByHref('/dashboard');
272
+
273
+ // Set active item by text content
274
+ Atomix.SideMenu.setActiveByText('Dashboard');
275
+
276
+ // Auto-set active based on current URL
277
+ Atomix.SideMenu.autoSetActiveFromURL();
278
+
279
+ // Control all side menus
280
+ Atomix.SideMenu.openAll();
281
+ Atomix.SideMenu.closeAll();
282
+ Atomix.SideMenu.toggleAll();
283
+
284
+ // Get all instances
285
+ const allSideMenus = Atomix.SideMenu.getAllInstances();
286
+ ```
287
+
288
+ ## Configuration Options
289
+
290
+ ### React Props
291
+
292
+ #### SideMenu Props
293
+
294
+ | Prop | Type | Default | Description |
295
+ |------|------|---------|-------------|
296
+ | `title` | `ReactNode` | - | Menu title displayed at the top |
297
+ | `children` | `ReactNode` | - | Menu content (typically SideMenuList components) |
298
+ | `isOpen` | `boolean` | - | Whether the menu is open (for controlled component) |
299
+ | `onToggle` | `(isOpen: boolean) => void` | - | Callback when menu open state changes |
300
+ | `collapsible` | `boolean` | `true` | Whether the menu is collapsible on mobile |
301
+ | `toggleIcon` | `ReactNode` | `<Icon name="CaretRight" size="xs" />` | Custom toggle icon |
302
+ | `className` | `string` | - | Additional CSS classes |
303
+ | `disabled` | `boolean` | `false` | Whether the menu is disabled |
304
+ | `id` | `string` | - | ID for the menu (used for accessibility) |
305
+
306
+ #### SideMenuList Props
307
+
308
+ | Prop | Type | Default | Description |
309
+ |------|------|---------|-------------|
310
+ | `children` | `ReactNode` | - | List items (typically SideMenuItem components) |
311
+ | `className` | `string` | - | Additional CSS classes |
312
+
313
+ #### SideMenuItem Props
314
+
315
+ | Prop | Type | Default | Description |
316
+ |------|------|---------|-------------|
317
+ | `children` | `ReactNode` | - | Item content |
318
+ | `href` | `string` | - | Item href (renders as link) |
319
+ | `onClick` | `(event: React.MouseEvent) => void` | - | Item click handler (renders as button if no href) |
320
+ | `active` | `boolean` | `false` | Whether this item is active/current |
321
+ | `icon` | `ReactNode` | - | Optional icon for the item (use Icon component) |
322
+ | `target` | `string` | - | Link target attribute |
323
+ | `rel` | `string` | - | Link rel attribute |
324
+ | `className` | `string` | - | Additional CSS classes |
325
+ | `disabled` | `boolean` | `false` | Whether the item is disabled |
326
+
327
+ ### Vanilla JS Options
328
+
329
+ | Option | Type | Default | Description |
330
+ |--------|------|---------|-------------|
331
+ | `collapsible` | `boolean` | `true` | Whether side menu is collapsible |
332
+ | `open` | `boolean` | `false` | Initial open state |
333
+ | `title` | `string` | `''` | Menu title |
334
+ | `toggleIcon` | `string` | `'▶'` | Toggle icon character (use SVG for icons) |
335
+ | `keyboard` | `boolean` | `true` | Enable keyboard support |
336
+ | `autoOpen` | `boolean` | `true` | Auto-open on desktop |
337
+
338
+ ### Data Attributes
339
+
340
+ | Attribute | Type | Description |
341
+ |-----------|------|-------------|
342
+ | `data-side-menu` | - | Marks element for auto-initialization |
343
+ | `data-collapsible` | `boolean` | Whether side menu is collapsible |
344
+ | `data-open` | `boolean` | Initial open state |
345
+ | `data-title` | `string` | Menu title |
346
+ | `data-keyboard` | `boolean` | Enable keyboard support |
347
+ | `data-auto-open` | `boolean` | Auto-open on desktop |
348
+
349
+ ## Available Icons
350
+
351
+ The SideMenu component uses the Atomix Icon component, which provides access to all Phosphor Icons. Here are some commonly used icons for navigation:
352
+
353
+ ### Navigation Icons
354
+ - `House` - Home/Dashboard
355
+ - `User` - Profile/Account
356
+ - `Gear` - Settings
357
+ - `Info` - About/Information
358
+ - `Envelope` - Contact/Messages
359
+ - `Question` - Help/Support
360
+
361
+ ### Action Icons
362
+ - `Plus` - Add/Create
363
+ - `Export` - Export/Download
364
+ - `Upload` - Upload/Import
365
+ - `SignOut` - Logout
366
+ - `Bell` - Notifications
367
+
368
+ ### Content Icons
369
+ - `Article` - Articles/Blog
370
+ - `Image` - Media/Gallery
371
+ - `FileText` - Documents/Reports
372
+ - `ChartBar` - Analytics/Charts
373
+ - `Users` - User Management
374
+
375
+ ### E-commerce Icons
376
+ - `ShoppingCart` - Shopping Cart
377
+ - `Package` - Orders/Products
378
+ - `Heart` - Wishlist/Favorites
379
+ - `CreditCard` - Payment/Billing
380
+
381
+ For a complete list of available icons, see the [Phosphor Icons documentation](https://phosphoricons.com/).
382
+
383
+ ## CSS Classes
384
+
385
+ ### Base Classes
386
+
387
+ - `.c-side-menu` - Base side menu class
388
+ - `.c-side-menu__wrapper` - Collapsible content wrapper
389
+ - `.c-side-menu__inner` - Inner content container
390
+ - `.c-side-menu__title` - Menu title element
391
+ - `.c-side-menu__toggler` - Mobile toggle button
392
+ - `.c-side-menu__toggler-icon` - Toggle button icon
393
+ - `.c-side-menu__list` - Menu list container
394
+ - `.c-side-menu__item` - Menu item wrapper
395
+ - `.c-side-menu__link` - Menu item link/button
396
+ - `.c-side-menu__link-icon` - Menu item icon
397
+ - `.c-side-menu__link-text` - Menu item text
398
+
399
+ ### State Classes
400
+
401
+ - `.is-open` - Open state
402
+ - `.is-active` - Active menu item
403
+ - `.is-disabled` - Disabled state
404
+
405
+ ## Accessibility
406
+
407
+ The SideMenu component follows WCAG guidelines and includes:
408
+
409
+ - **Keyboard Navigation**: Full keyboard support with Tab, Enter, and Space keys
410
+ - **Screen Reader Support**: Proper ARIA attributes and labels
411
+ - **Focus Management**: Logical focus order and visible focus indicators
412
+ - **Semantic HTML**: Uses proper navigation landmarks and list structures
413
+
414
+ ### ARIA Attributes
415
+
416
+ - `aria-expanded` - Toggle button state
417
+ - `aria-controls` - Associates toggle with collapsible content
418
+ - `aria-hidden` - Hides collapsed content from screen readers
419
+ - `aria-current="page"` - Indicates current page link
420
+ - `aria-disabled` - Indicates disabled state
421
+
422
+ ## Browser Support
423
+
424
+ - Chrome 60+
425
+ - Firefox 60+
426
+ - Safari 12+
427
+ - Edge 79+
428
+ - iOS Safari 12+
429
+ - Android Chrome 60+
430
+
431
+ ## Examples
432
+
433
+ ### E-commerce Navigation
434
+
435
+ ```tsx
436
+ <SideMenu title="Shop Categories">
437
+ <SideMenuList>
438
+ <SideMenuItem href="/electronics" icon={<Icon name="DeviceMobile" size="sm" />} active>
439
+ Electronics
440
+ </SideMenuItem>
441
+ <SideMenuItem href="/clothing" icon={<Icon name="TShirt" size="sm" />}>
442
+ Clothing
443
+ </SideMenuItem>
444
+ <SideMenuItem href="/home-garden" icon={<Icon name="House" size="sm" />}>
445
+ Home & Garden
446
+ </SideMenuItem>
447
+ </SideMenuList>
448
+
449
+ <SideMenuList>
450
+ <SideMenuItem href="/account" icon={<Icon name="User" size="sm" />}>
451
+ My Account
452
+ </SideMenuItem>
453
+ <SideMenuItem href="/orders" icon={<Icon name="Package" size="sm" />}>
454
+ Order History
455
+ </SideMenuItem>
456
+ <SideMenuItem href="/wishlist" icon={<Icon name="Heart" size="sm" />}>
457
+ Wishlist
458
+ </SideMenuItem>
459
+ </SideMenuList>
460
+ </SideMenu>
461
+ ```
462
+
463
+ ### Admin Dashboard
464
+
465
+ ```tsx
466
+ <SideMenu title="Admin Panel">
467
+ <SideMenuList>
468
+ <SideMenuItem href="/dashboard" icon={<Icon name="ChartBar" size="sm" />} active>
469
+ Dashboard
470
+ </SideMenuItem>
471
+ </SideMenuList>
472
+
473
+ <SideMenuList>
474
+ <SideMenuItem href="/users" icon={<Icon name="Users" size="sm" />}>
475
+ User Management
476
+ </SideMenuItem>
477
+ <SideMenuItem href="/content" icon={<Icon name="Article" size="sm" />}>
478
+ Content Management
479
+ </SideMenuItem>
480
+ <SideMenuItem href="/analytics" icon={<Icon name="TrendUp" size="sm" />}>
481
+ Analytics
482
+ </SideMenuItem>
483
+ </SideMenuList>
484
+
485
+ <SideMenuList>
486
+ <SideMenuItem href="/settings" icon={<Icon name="Gear" size="sm" />}>
487
+ Settings
488
+ </SideMenuItem>
489
+ <SideMenuItem onClick={handleLogout} icon={<Icon name="SignOut" size="sm" />}>
490
+ Logout
491
+ </SideMenuItem>
492
+ </SideMenuList>
493
+ </SideMenu>
494
+ ```