@shohojdhara/atomix 0.1.30 → 0.2.2

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 (481) hide show
  1. package/CHANGELOG.md +0 -0
  2. package/LICENSE +0 -0
  3. package/README.md +128 -43
  4. package/dist/atomix.css +15025 -0
  5. package/dist/atomix.min.css +15 -0
  6. package/dist/index.d.ts +6459 -1748
  7. package/dist/index.esm.js +17559 -8364
  8. package/dist/index.esm.js.map +1 -1
  9. package/dist/index.js +17603 -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 +14677 -0
  14. package/dist/themes/boomdevs.min.css +405 -0
  15. package/dist/themes/esrar.css +16870 -0
  16. package/dist/themes/esrar.min.css +189 -0
  17. package/dist/themes/mashroom.css +29578 -0
  18. package/dist/themes/mashroom.min.css +403 -0
  19. package/dist/themes/shaj-default.css +15702 -0
  20. package/dist/themes/shaj-default.min.css +500 -0
  21. package/dist/themes/yabai.css +15207 -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/Footer/Footer.stories.tsx +388 -0
  102. package/src/components/Footer/Footer.tsx +197 -0
  103. package/src/components/Footer/FooterLink.tsx +72 -0
  104. package/src/components/Footer/FooterSection.tsx +87 -0
  105. package/src/components/Footer/FooterSocialLink.tsx +117 -0
  106. package/src/components/Footer/README.md +261 -0
  107. package/src/components/Footer/index.ts +13 -0
  108. package/src/components/Form/Checkbox.stories.tsx +76 -0
  109. package/src/components/Form/Checkbox.tsx +69 -0
  110. package/src/components/Form/Form.stories.tsx +497 -0
  111. package/src/components/Form/Form.tsx +46 -0
  112. package/src/components/Form/FormGroup.stories.tsx +162 -0
  113. package/src/components/Form/FormGroup.tsx +53 -0
  114. package/src/components/Form/Input.stories.tsx +106 -0
  115. package/src/components/Form/Input.tsx +87 -0
  116. package/src/components/Form/Radio.stories.tsx +94 -0
  117. package/src/components/Form/Radio.tsx +65 -0
  118. package/src/components/Form/Select.stories.tsx +151 -0
  119. package/src/components/Form/Select.tsx +191 -0
  120. package/src/components/Form/Textarea.stories.tsx +123 -0
  121. package/src/components/Form/Textarea.tsx +78 -0
  122. package/src/components/Form/index.ts +7 -0
  123. package/src/components/Hero/Hero.stories.tsx +295 -0
  124. package/src/components/Hero/Hero.tsx +175 -0
  125. package/src/components/Hero/index.ts +6 -0
  126. package/src/components/Icon/Icon.tsx +87 -0
  127. package/src/components/Icon/index.ts +2 -0
  128. package/src/components/List/List.stories.tsx +122 -0
  129. package/src/components/List/List.tsx +35 -0
  130. package/src/components/List/ListGroup.tsx +35 -0
  131. package/src/components/List/index.ts +2 -0
  132. package/src/components/Messages/Messages.stories.tsx +160 -0
  133. package/src/components/Messages/Messages.tsx +172 -0
  134. package/src/components/Messages/index.ts +3 -0
  135. package/src/components/Modal/Modal.stories.tsx +284 -0
  136. package/src/components/Modal/Modal.tsx +198 -0
  137. package/src/components/Modal/README.md +169 -0
  138. package/src/components/Modal/index.ts +1 -0
  139. package/src/components/Navigation/Menu/MegaMenu.tsx +109 -0
  140. package/src/components/Navigation/Menu/Menu.stories.tsx +339 -0
  141. package/src/components/Navigation/Menu/Menu.tsx +111 -0
  142. package/src/components/Navigation/Nav/Nav.stories.tsx +456 -0
  143. package/src/components/Navigation/Nav/Nav.tsx +51 -0
  144. package/src/components/Navigation/Nav/NavDropdown.tsx +105 -0
  145. package/src/components/Navigation/Nav/NavItem.tsx +168 -0
  146. package/src/components/Navigation/Navbar/Navbar.stories.tsx +569 -0
  147. package/src/components/Navigation/Navbar/Navbar.tsx +150 -0
  148. package/src/components/Navigation/README.md +314 -0
  149. package/src/components/Navigation/SideMenu/SideMenu.README.md +494 -0
  150. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +609 -0
  151. package/src/components/Navigation/SideMenu/SideMenu.tsx +101 -0
  152. package/src/components/Navigation/SideMenu/SideMenuItem.tsx +103 -0
  153. package/src/components/Navigation/SideMenu/SideMenuList.tsx +41 -0
  154. package/src/components/Navigation/index.ts +23 -0
  155. package/src/components/Pagination/Pagination.stories.tsx +188 -0
  156. package/src/components/Pagination/Pagination.tsx +162 -0
  157. package/src/components/Pagination/index.ts +1 -0
  158. package/src/components/PhotoViewer/PhotoViewer.stories.tsx +397 -0
  159. package/src/components/PhotoViewer/PhotoViewer.tsx +246 -0
  160. package/src/components/PhotoViewer/PhotoViewerHeader.tsx +184 -0
  161. package/src/components/PhotoViewer/PhotoViewerImage.tsx +173 -0
  162. package/src/components/PhotoViewer/PhotoViewerInfo.tsx +91 -0
  163. package/src/components/PhotoViewer/PhotoViewerNavigation.tsx +85 -0
  164. package/src/components/PhotoViewer/PhotoViewerThumbnails.tsx +63 -0
  165. package/src/components/PhotoViewer/README.md +358 -0
  166. package/src/components/PhotoViewer/examples/ImageGallery.tsx +187 -0
  167. package/src/components/PhotoViewer/examples/SimpleGallery.tsx +73 -0
  168. package/src/components/PhotoViewer/examples/index.ts +2 -0
  169. package/src/components/PhotoViewer/index.ts +14 -0
  170. package/src/components/Popover/Popover.stories.tsx +143 -0
  171. package/src/components/Popover/Popover.tsx +137 -0
  172. package/src/components/Popover/index.ts +5 -0
  173. package/src/components/Popover/readme.md +120 -0
  174. package/src/components/ProductReview/ProductReview.stories.tsx +88 -0
  175. package/src/components/ProductReview/ProductReview.tsx +169 -0
  176. package/src/components/ProductReview/index.ts +3 -0
  177. package/src/components/Progress/Progress.stories.tsx +75 -0
  178. package/src/components/Progress/Progress.tsx +45 -0
  179. package/src/components/Progress/index.ts +1 -0
  180. package/src/components/Rating/Rating.stories.tsx +109 -0
  181. package/src/components/Rating/Rating.tsx +286 -0
  182. package/src/components/Rating/index.ts +6 -0
  183. package/src/components/River/River.stories.tsx +230 -0
  184. package/src/components/River/River.tsx +134 -0
  185. package/src/components/River/index.ts +2 -0
  186. package/src/components/SectionIntro/SectionIntro.stories.tsx +143 -0
  187. package/src/components/SectionIntro/SectionIntro.tsx +182 -0
  188. package/src/components/SectionIntro/index.ts +3 -0
  189. package/src/components/Slider/Slider.stories.tsx +825 -0
  190. package/src/components/Slider/Slider.tsx +227 -0
  191. package/src/components/Slider/index.ts +24 -0
  192. package/src/components/Spinner/Spinner.stories.tsx +65 -0
  193. package/src/components/Spinner/Spinner.tsx +36 -0
  194. package/src/components/Spinner/index.ts +2 -0
  195. package/src/components/Steps/Steps.stories.tsx +158 -0
  196. package/src/components/Steps/Steps.tsx +115 -0
  197. package/src/components/Steps/index.ts +3 -0
  198. package/src/components/Tab/Tab.stories.tsx +129 -0
  199. package/src/components/Tab/Tab.tsx +111 -0
  200. package/src/components/Tab/index.ts +2 -0
  201. package/src/components/Testimonial/Testimonial.stories.tsx +180 -0
  202. package/src/components/Testimonial/Testimonial.tsx +138 -0
  203. package/src/components/Testimonial/index.ts +3 -0
  204. package/src/components/Todo/Todo.stories.tsx +103 -0
  205. package/src/components/Todo/Todo.tsx +158 -0
  206. package/src/components/Todo/index.ts +1 -0
  207. package/src/components/Toggle/Toggle.stories.tsx +49 -0
  208. package/src/components/Toggle/Toggle.tsx +84 -0
  209. package/src/components/Toggle/index.ts +2 -0
  210. package/src/components/Tooltip/Tooltip.stories.tsx +115 -0
  211. package/src/components/Tooltip/Tooltip.tsx +150 -0
  212. package/src/components/Tooltip/index.ts +3 -0
  213. package/src/components/Upload/Upload.stories.tsx +220 -0
  214. package/src/components/Upload/Upload.tsx +354 -0
  215. package/src/components/Upload/index.ts +3 -0
  216. package/src/components/VideoPlayer/VideoPlayer.stories.tsx +484 -0
  217. package/src/components/VideoPlayer/VideoPlayer.tsx +574 -0
  218. package/src/components/VideoPlayer/index.ts +7 -0
  219. package/src/components/index.ts +124 -0
  220. package/src/layouts/Grid/Container.tsx +58 -0
  221. package/src/layouts/Grid/Grid.stories.tsx +928 -0
  222. package/src/layouts/Grid/Grid.tsx +68 -0
  223. package/src/layouts/Grid/GridCol.tsx +161 -0
  224. package/src/layouts/Grid/README.md +108 -0
  225. package/src/layouts/Grid/Row.tsx +70 -0
  226. package/src/layouts/Grid/index.ts +8 -0
  227. package/src/layouts/MasonryGrid/MasonryGrid.stories.tsx +387 -0
  228. package/src/layouts/MasonryGrid/MasonryGrid.tsx +408 -0
  229. package/src/layouts/MasonryGrid/MasonryGridItem.tsx +44 -0
  230. package/src/layouts/MasonryGrid/README.md +117 -0
  231. package/src/layouts/MasonryGrid/index.ts +4 -0
  232. package/src/layouts/index.ts +7 -0
  233. package/src/lib/README.md +89 -0
  234. package/src/lib/composables/index.ts +63 -0
  235. package/src/lib/composables/useAccordion.ts +129 -0
  236. package/src/lib/composables/useAmbientMode.ts +90 -0
  237. package/src/lib/composables/useBadge.ts +42 -0
  238. package/src/lib/composables/useBarChart.ts +365 -0
  239. package/src/lib/composables/useBlock.ts +56 -0
  240. package/src/lib/composables/useBreadcrumb.ts +81 -0
  241. package/src/lib/composables/useButton.ts +59 -0
  242. package/src/lib/composables/useCallout.ts +55 -0
  243. package/src/lib/composables/useCard.ts +155 -0
  244. package/src/lib/composables/useChart.ts +1082 -0
  245. package/src/lib/composables/useChartAnalytics.ts +505 -0
  246. package/src/lib/composables/useChartData.ts +38 -0
  247. package/src/lib/composables/useChartExport.ts +392 -0
  248. package/src/lib/composables/useChartInteraction.ts +34 -0
  249. package/src/lib/composables/useChartInteractions.ts +123 -0
  250. package/src/lib/composables/useChartPerformance.ts +323 -0
  251. package/src/lib/composables/useChartScale.ts +48 -0
  252. package/src/lib/composables/useChartToolbar.ts +532 -0
  253. package/src/lib/composables/useCheckbox.ts +70 -0
  254. package/src/lib/composables/useDataTable.ts +208 -0
  255. package/src/lib/composables/useDatePicker.ts +564 -0
  256. package/src/lib/composables/useDropdown.ts +272 -0
  257. package/src/lib/composables/useEdgePanel.ts +261 -0
  258. package/src/lib/composables/useFooter.ts +85 -0
  259. package/src/lib/composables/useForm.ts +62 -0
  260. package/src/lib/composables/useFormGroup.ts +51 -0
  261. package/src/lib/composables/useHero.ts +250 -0
  262. package/src/lib/composables/useInput.ts +58 -0
  263. package/src/lib/composables/useLineChart.ts +319 -0
  264. package/src/lib/composables/useMessages.ts +77 -0
  265. package/src/lib/composables/useModal.ts +110 -0
  266. package/src/lib/composables/useNavbar.ts +288 -0
  267. package/src/lib/composables/usePagination.ts +101 -0
  268. package/src/lib/composables/usePhotoViewer.ts +937 -0
  269. package/src/lib/composables/usePieChart.ts +362 -0
  270. package/src/lib/composables/usePopover.ts +354 -0
  271. package/src/lib/composables/useProgress.ts +74 -0
  272. package/src/lib/composables/useRadio.ts +47 -0
  273. package/src/lib/composables/useRating.ts +174 -0
  274. package/src/lib/composables/useRiver.ts +205 -0
  275. package/src/lib/composables/useSelect.ts +52 -0
  276. package/src/lib/composables/useSideMenu.ts +197 -0
  277. package/src/lib/composables/useSlider.ts +526 -0
  278. package/src/lib/composables/useSpinner.ts +42 -0
  279. package/src/lib/composables/useTextarea.ts +55 -0
  280. package/src/lib/composables/useTodo.ts +141 -0
  281. package/src/lib/composables/useVideoPlayer.ts +398 -0
  282. package/src/lib/constants/components.ts +1518 -0
  283. package/src/lib/constants/index.ts +4 -0
  284. package/src/lib/index.ts +11 -0
  285. package/src/lib/types/components.ts +5020 -0
  286. package/src/lib/types/index.ts +2 -0
  287. package/src/lib/utils/dom.ts +41 -0
  288. package/src/lib/utils/icons.ts +74 -0
  289. package/src/lib/utils/index.ts +55 -0
  290. package/src/lib/utils/useForkRef.test.tsx +64 -0
  291. package/src/lib/utils/useForkRef.ts +36 -0
  292. package/src/lib/utils.test.ts +14 -0
  293. package/src/styles/01-settings/_index.scss +3 -0
  294. package/src/styles/01-settings/_settings.accordion.scss +22 -19
  295. package/src/styles/01-settings/_settings.animations.scss +5 -5
  296. package/src/styles/01-settings/_settings.avatar-group.scss +7 -4
  297. package/src/styles/01-settings/_settings.avatar.scss +19 -20
  298. package/src/styles/01-settings/_settings.background.scss +9 -0
  299. package/src/styles/01-settings/_settings.badge.scss +15 -9
  300. package/src/styles/01-settings/_settings.block.scss +11 -0
  301. package/src/styles/01-settings/_settings.border-radius.scss +12 -9
  302. package/src/styles/01-settings/_settings.border.scss +4 -1
  303. package/src/styles/01-settings/_settings.box-shadow.scss +1 -1
  304. package/src/styles/01-settings/_settings.breadcrumb.scss +16 -9
  305. package/src/styles/01-settings/_settings.breakpoints.scss +0 -0
  306. package/src/styles/01-settings/_settings.btn-group.scss +4 -1
  307. package/src/styles/01-settings/_settings.button.scss +19 -21
  308. package/src/styles/01-settings/_settings.callout.scss +42 -24
  309. package/src/styles/01-settings/_settings.card.scss +13 -11
  310. package/src/styles/01-settings/_settings.chart.scss +199 -0
  311. package/src/styles/01-settings/_settings.checkbox-group.scss +5 -2
  312. package/src/styles/01-settings/_settings.checkbox.scss +10 -4
  313. package/src/styles/01-settings/_settings.color-mode.scss +0 -0
  314. package/src/styles/01-settings/_settings.colors.scss +20 -0
  315. package/src/styles/01-settings/_settings.config.scss +1 -1
  316. package/src/styles/01-settings/_settings.countdown.scss +6 -4
  317. package/src/styles/01-settings/_settings.data-table.scss +0 -0
  318. package/src/styles/01-settings/_settings.datepicker.scss +0 -0
  319. package/src/styles/01-settings/_settings.dropdown.scss +9 -7
  320. package/src/styles/01-settings/_settings.edge-panel.scss +3 -2
  321. package/src/styles/01-settings/_settings.fonts.scss +1 -1
  322. package/src/styles/01-settings/_settings.footer.scss +125 -0
  323. package/src/styles/01-settings/_settings.form-group.scss +3 -1
  324. package/src/styles/01-settings/_settings.form.scss +4 -2
  325. package/src/styles/01-settings/_settings.grid.scss +3 -3
  326. package/src/styles/01-settings/_settings.hero.scss +10 -8
  327. package/src/styles/01-settings/_settings.input.scss +9 -7
  328. package/src/styles/01-settings/_settings.link.scss +0 -0
  329. package/src/styles/01-settings/_settings.list-group.scss +4 -2
  330. package/src/styles/01-settings/_settings.list.scss +4 -2
  331. package/src/styles/01-settings/_settings.maps.scss +43 -8
  332. package/src/styles/01-settings/_settings.masonry-grid.scss +0 -0
  333. package/src/styles/01-settings/_settings.menu.scss +10 -8
  334. package/src/styles/01-settings/_settings.messages.scss +19 -17
  335. package/src/styles/01-settings/_settings.modal.scss +7 -5
  336. package/src/styles/01-settings/_settings.nav.scss +6 -4
  337. package/src/styles/01-settings/_settings.navbar.scss +8 -5
  338. package/src/styles/01-settings/_settings.pagination.scss +5 -3
  339. package/src/styles/01-settings/_settings.photoviewer.scss +89 -23
  340. package/src/styles/01-settings/_settings.popover.scss +6 -4
  341. package/src/styles/01-settings/_settings.position.scss +0 -0
  342. package/src/styles/01-settings/_settings.progress.scss +0 -0
  343. package/src/styles/01-settings/_settings.rating.scss +5 -3
  344. package/src/styles/01-settings/_settings.river.scss +8 -6
  345. package/src/styles/01-settings/_settings.sectionintro.scss +8 -6
  346. package/src/styles/01-settings/_settings.select.scss +7 -5
  347. package/src/styles/01-settings/_settings.side-menu.scss +15 -13
  348. package/src/styles/01-settings/_settings.skeleton.scss +0 -0
  349. package/src/styles/01-settings/_settings.slider.scss +59 -0
  350. package/src/styles/01-settings/_settings.spacing.scss +15 -3
  351. package/src/styles/01-settings/_settings.spinner.scss +0 -0
  352. package/src/styles/01-settings/_settings.steps.scss +8 -6
  353. package/src/styles/01-settings/_settings.tabs.scss +11 -9
  354. package/src/styles/01-settings/_settings.testimonials.scss +6 -4
  355. package/src/styles/01-settings/_settings.todo.scss +0 -0
  356. package/src/styles/01-settings/_settings.toggle.scss +4 -2
  357. package/src/styles/01-settings/_settings.tooltip.scss +5 -3
  358. package/src/styles/01-settings/_settings.typography.scss +2 -0
  359. package/src/styles/01-settings/_settings.upload.scss +22 -20
  360. package/src/styles/01-settings/_settings.video-player.scss +64 -0
  361. package/src/styles/01-settings/_settings.z-layers.scss +0 -0
  362. package/src/styles/02-tools/_index.scss +1 -0
  363. package/src/styles/02-tools/_tools.animations.scss +82 -0
  364. package/src/styles/02-tools/_tools.background.scss +85 -0
  365. package/src/styles/02-tools/_tools.border-radius.scss +0 -0
  366. package/src/styles/02-tools/_tools.breakpoints.scss +0 -0
  367. package/src/styles/02-tools/_tools.button.scss +5 -0
  368. package/src/styles/02-tools/_tools.clearfix.scss +0 -0
  369. package/src/styles/02-tools/_tools.color-functions.scss +0 -0
  370. package/src/styles/02-tools/_tools.color-mode.scss +1 -1
  371. package/src/styles/02-tools/_tools.component.scss +479 -0
  372. package/src/styles/02-tools/_tools.event.scss +0 -0
  373. package/src/styles/02-tools/_tools.grid.scss +0 -0
  374. package/src/styles/02-tools/_tools.hidden-visually.scss +0 -0
  375. package/src/styles/02-tools/_tools.hidden.scss +0 -0
  376. package/src/styles/02-tools/_tools.map-loop.scss +0 -0
  377. package/src/styles/02-tools/_tools.media-queries.scss +0 -0
  378. package/src/styles/02-tools/_tools.object-fit.scss +0 -0
  379. package/src/styles/02-tools/_tools.placeholder.scss +0 -0
  380. package/src/styles/02-tools/_tools.rem.scss +19 -2
  381. package/src/styles/02-tools/_tools.size.scss +0 -0
  382. package/src/styles/02-tools/_tools.spacing.scss +0 -0
  383. package/src/styles/02-tools/_tools.to-rgb.scss +0 -0
  384. package/src/styles/02-tools/_tools.transition.scss +0 -0
  385. package/src/styles/02-tools/_tools.utilities.scss +0 -0
  386. package/src/styles/02-tools/_tools.utility-api.scss +55 -28
  387. package/src/styles/03-generic/_generic.fonts.scss +0 -0
  388. package/src/styles/03-generic/_generic.reset.scss +0 -0
  389. package/src/styles/03-generic/_generic.root.scss +19 -3
  390. package/src/styles/03-generic/_generic.selection.scss +0 -0
  391. package/src/styles/03-generic/_index.scss +0 -0
  392. package/src/styles/04-elements/_elements.all.scss +0 -0
  393. package/src/styles/04-elements/_elements.body.scss +24 -0
  394. package/src/styles/04-elements/_elements.heading.scss +0 -0
  395. package/src/styles/04-elements/_elements.html.scss +0 -0
  396. package/src/styles/04-elements/_elements.links.scss +0 -0
  397. package/src/styles/04-elements/_index.scss +0 -0
  398. package/src/styles/05-objects/_index.scss +1 -0
  399. package/src/styles/05-objects/_objects.block.scss +122 -0
  400. package/src/styles/05-objects/_objects.container.scss +14 -10
  401. package/src/styles/05-objects/_objects.grid.scss +0 -0
  402. package/src/styles/05-objects/_objects.masonry-grid.scss +0 -0
  403. package/src/styles/06-components/_components.accordion.scss +10 -4
  404. package/src/styles/06-components/_components.avatar-group.scss +2 -1
  405. package/src/styles/06-components/_components.avatar.scss +2 -1
  406. package/src/styles/06-components/_components.badge.scss +11 -10
  407. package/src/styles/06-components/_components.breadcrumb.scss +2 -1
  408. package/src/styles/06-components/_components.btn-group.scss +0 -0
  409. package/src/styles/06-components/_components.button.scss +4 -3
  410. package/src/styles/06-components/_components.callout.scss +5 -3
  411. package/src/styles/06-components/_components.card.scss +4 -3
  412. package/src/styles/06-components/_components.chart.scss +2103 -0
  413. package/src/styles/06-components/_components.checkbox-group.scss +0 -0
  414. package/src/styles/06-components/_components.checkbox.scss +2 -1
  415. package/src/styles/06-components/_components.color-mode-toggle.scss +3 -2
  416. package/src/styles/06-components/_components.countdown.scss +2 -1
  417. package/src/styles/06-components/_components.data-table.scss +7 -6
  418. package/src/styles/06-components/_components.datepicker.scss +2 -1
  419. package/src/styles/06-components/_components.dropdown.scss +4 -3
  420. package/src/styles/06-components/_components.edge-panel.scss +4 -3
  421. package/src/styles/06-components/_components.footer.scss +825 -0
  422. package/src/styles/06-components/_components.form-group.scss +1 -0
  423. package/src/styles/06-components/_components.form.scss +0 -0
  424. package/src/styles/06-components/_components.hero.scss +4 -2
  425. package/src/styles/06-components/_components.icon.scss +2 -2
  426. package/src/styles/06-components/_components.image-gallery.scss +1 -0
  427. package/src/styles/06-components/_components.input.scss +2 -1
  428. package/src/styles/06-components/_components.list-group.scss +3 -2
  429. package/src/styles/06-components/_components.list.scss +2 -1
  430. package/src/styles/06-components/_components.menu.scss +5 -4
  431. package/src/styles/06-components/_components.messages.scss +8 -7
  432. package/src/styles/06-components/_components.modal.scss +6 -2
  433. package/src/styles/06-components/_components.nav.scss +6 -5
  434. package/src/styles/06-components/_components.navbar.scss +4 -3
  435. package/src/styles/06-components/_components.pagination.scss +2 -1
  436. package/src/styles/06-components/_components.photoviewer.scss +604 -545
  437. package/src/styles/06-components/_components.popover.scss +3 -2
  438. package/src/styles/06-components/_components.product-review.scss +3 -2
  439. package/src/styles/06-components/_components.progress.scss +3 -2
  440. package/src/styles/06-components/_components.rating.scss +0 -0
  441. package/src/styles/06-components/_components.river.scss +3 -2
  442. package/src/styles/06-components/_components.sectionintro.scss +2 -1
  443. package/src/styles/06-components/_components.select.scss +5 -4
  444. package/src/styles/06-components/_components.side-menu.scss +8 -7
  445. package/src/styles/06-components/_components.skeleton.scss +3 -2
  446. package/src/styles/06-components/_components.slider.scss +274 -0
  447. package/src/styles/06-components/_components.spinner.scss +1 -0
  448. package/src/styles/06-components/_components.steps.scss +4 -2
  449. package/src/styles/06-components/_components.tabs.scss +4 -3
  450. package/src/styles/06-components/_components.testimonials.scss +2 -1
  451. package/src/styles/06-components/_components.todo.scss +3 -2
  452. package/src/styles/06-components/_components.toggle.scss +5 -4
  453. package/src/styles/06-components/_components.tooltip.scss +7 -11
  454. package/src/styles/06-components/_components.upload.scss +4 -3
  455. package/src/styles/06-components/_components.video-player.scss +624 -0
  456. package/src/styles/06-components/_index.scss +4 -0
  457. package/src/styles/06-components/old.chart.styles.scss +2819 -0
  458. package/src/styles/99-utilities/_index.scss +0 -0
  459. package/src/styles/99-utilities/_utilities.background.scss +0 -0
  460. package/src/styles/99-utilities/_utilities.border.scss +0 -0
  461. package/src/styles/99-utilities/_utilities.clearfix.scss +0 -0
  462. package/src/styles/99-utilities/_utilities.display.scss +0 -0
  463. package/src/styles/99-utilities/_utilities.flex.scss +0 -0
  464. package/src/styles/99-utilities/_utilities.link.scss +0 -0
  465. package/src/styles/99-utilities/_utilities.object-fit.scss +0 -0
  466. package/src/styles/99-utilities/_utilities.opacity.scss +0 -0
  467. package/src/styles/99-utilities/_utilities.overflow.scss +0 -0
  468. package/src/styles/99-utilities/_utilities.position.scss +0 -0
  469. package/src/styles/99-utilities/_utilities.scss +2 -1
  470. package/src/styles/99-utilities/_utilities.shadow.scss +0 -0
  471. package/src/styles/99-utilities/_utilities.sizes.scss +0 -0
  472. package/src/styles/99-utilities/_utilities.spacing.scss +0 -0
  473. package/src/styles/99-utilities/_utilities.text.scss +5 -0
  474. package/src/styles/99-utilities/_utilities.visibility.scss +0 -0
  475. package/src/styles/99-utilities/_utilities.visually-hidden.scss +0 -0
  476. package/src/styles/99-utilities/_utilities.z-index.scss +0 -0
  477. package/src/styles/css-modules.d.ts +0 -0
  478. package/src/styles/index.scss +0 -0
  479. package/dist/index.css +0 -15
  480. package/dist/index.esm.css +0 -15
  481. package/dist/index.min.css +0 -15
@@ -0,0 +1,387 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import React, { useEffect, useState } from 'react';
3
+ import { default as Card, default as ElevationCard } from '../../components/Card/Card';
4
+ import { MasonryGrid } from './MasonryGrid';
5
+ import { MasonryGridItem } from './MasonryGridItem';
6
+
7
+ const meta: Meta<typeof MasonryGrid> = {
8
+ title: 'Layouts/MasonryGrid',
9
+ component: MasonryGrid,
10
+ parameters: {
11
+ layout: 'fullscreen',
12
+ },
13
+ decorators: [
14
+ Story => (
15
+ <div style={{ padding: '1rem' }}>
16
+ <Story />
17
+ </div>
18
+ ),
19
+ ],
20
+ };
21
+
22
+ export default meta;
23
+ type Story = StoryObj<typeof MasonryGrid>;
24
+
25
+ // Helper function to get placeholder images with different aspect ratios
26
+ const getPlaceholderImage = (index: number, width = 600, height?: number) => {
27
+ // Create different heights for variety if not specified
28
+ const heights = [300, 400, 500, 350, 450, 550, 320, 420];
29
+ const imgHeight = height || heights[index % heights.length];
30
+
31
+ // Use different image IDs for variety
32
+ const imageId = (index % 30) + 10; // Use IDs between 10-40 for variety
33
+
34
+ // Use Picsum Photos which is more reliable
35
+ return `https://picsum.photos/id/${imageId}/${width}/${imgHeight}`;
36
+ };
37
+
38
+ // Card with image component for masonry grid
39
+ const CardWithImage: React.FC<{
40
+ index: number;
41
+ title?: string;
42
+ text?: string;
43
+ useElevation?: boolean;
44
+ width?: number;
45
+ height?: number;
46
+ }> = ({ index, title, text, useElevation = false, width, height }) => {
47
+ const CardComponent = useElevation ? ElevationCard : Card;
48
+ const imageUrl = getPlaceholderImage(index, width, height);
49
+
50
+ // Generate random content if not provided
51
+ const cardTitle = title || `Card Title ${index + 1}`;
52
+ const cardText =
53
+ text ||
54
+ (index % 2 === 0
55
+ ? 'This is a short description for this card item.'
56
+ : 'This is a longer description that takes up more space to demonstrate how the masonry layout handles different content heights effectively.');
57
+
58
+ return (
59
+ <CardComponent
60
+ image={imageUrl}
61
+ imageAlt={`Image ${index + 1}`}
62
+ title={cardTitle}
63
+ text={cardText}
64
+ className="u-h-100"
65
+ actions={
66
+ <React.Fragment>
67
+ <button className="c-btn c-btn--primary c-btn--sm">View</button>
68
+ <button className="c-btn c-btn--outline-primary c-btn--sm">More</button>
69
+ </React.Fragment>
70
+ }
71
+ />
72
+ );
73
+ };
74
+
75
+ /**
76
+ * Basic masonry grid layout with responsive columns
77
+ */
78
+ export const BasicMasonryGrid: Story = {
79
+ render: () => (
80
+ <div>
81
+ <h3 className="u-mb-4">Basic Masonry Grid</h3>
82
+ <p className="u-mb-4">
83
+ Items are automatically positioned in the optimal location based on available vertical
84
+ space.
85
+ </p>
86
+
87
+ <MasonryGrid xs={1} sm={2} md={3} lg={4}>
88
+ {Array.from({ length: 8 }).map((_, index) => (
89
+ <MasonryGridItem key={index}>
90
+ <CardWithImage index={index} />
91
+ </MasonryGridItem>
92
+ ))}
93
+ </MasonryGrid>
94
+ </div>
95
+ ),
96
+ };
97
+
98
+ /**
99
+ * Masonry grid with custom gap
100
+ */
101
+ export const CustomGap: Story = {
102
+ render: () => (
103
+ <div>
104
+ <h3 className="u-mb-4">Custom Gap (24px)</h3>
105
+ <p className="u-mb-4">The gap between items can be customized.</p>
106
+
107
+ <MasonryGrid xs={1} sm={2} md={3} lg={4} gap={24}>
108
+ {Array.from({ length: 6 }).map((_, index) => (
109
+ <MasonryGridItem key={index}>
110
+ <CardWithImage index={index + 10} title={`Card with Gap ${index + 1}`} />
111
+ </MasonryGridItem>
112
+ ))}
113
+ </MasonryGrid>
114
+ </div>
115
+ ),
116
+ };
117
+
118
+ /**
119
+ * Masonry grid with dynamic loading
120
+ */
121
+ export const DynamicLoading: Story = {
122
+ render: () => {
123
+ // This component demonstrates how the masonry grid handles dynamically loaded content
124
+ const DynamicLoadingExample = () => {
125
+ const [items, setItems] = useState<number[]>([]);
126
+ const [loading, setLoading] = useState(true);
127
+
128
+ useEffect(() => {
129
+ // Simulate loading items in batches
130
+ const loadItems = () => {
131
+ setLoading(true);
132
+
133
+ // Initial set of items
134
+ setTimeout(() => {
135
+ setItems([0, 1, 2, 3, 4, 5]);
136
+ setLoading(false);
137
+ }, 1000);
138
+
139
+ // Add more items after a delay
140
+ setTimeout(() => {
141
+ setItems(prev => [...prev, 6, 7, 8, 9, 10, 11]);
142
+ }, 3000);
143
+ };
144
+
145
+ loadItems();
146
+ }, []);
147
+
148
+ return (
149
+ <div>
150
+ <h3 className="u-mb-4">Dynamic Loading</h3>
151
+ <p className="u-mb-4">The masonry grid recalculates positions as new items are added.</p>
152
+
153
+ {loading && (
154
+ <div className="u-p-4 u-mb-4 u-bg-brand-subtle u-border u-rounded u-text-center">
155
+ <div className="u-spinner u-spinner-primary u-mb-3"></div>
156
+ <p className="u-m-0">Loading initial items...</p>
157
+ </div>
158
+ )}
159
+
160
+ <MasonryGrid xs={1} sm={2} md={3} lg={4}>
161
+ {items.map(index => (
162
+ <MasonryGridItem key={index}>
163
+ <CardWithImage
164
+ index={index + 20}
165
+ useElevation={true}
166
+ title={`Dynamic Card ${index + 1}`}
167
+ />
168
+ </MasonryGridItem>
169
+ ))}
170
+ </MasonryGrid>
171
+ </div>
172
+ );
173
+ };
174
+
175
+ return <DynamicLoadingExample />;
176
+ },
177
+ };
178
+
179
+ /**
180
+ * Masonry grid with custom column configuration
181
+ */
182
+ export const CustomColumns: Story = {
183
+ render: () => (
184
+ <div>
185
+ <h3 className="u-mb-4">Custom Column Configuration</h3>
186
+ <p className="u-mb-4">Different column counts can be specified for each breakpoint.</p>
187
+
188
+ <MasonryGrid xs={1} sm={2} md={2} lg={3} xl={4} xxl={5}>
189
+ {Array.from({ length: 10 }).map((_, index) => (
190
+ <MasonryGridItem key={index}>
191
+ <CardWithImage
192
+ index={index + 30}
193
+ title={`Column Config ${index + 1}`}
194
+ text={
195
+ index % 2 === 0
196
+ ? undefined
197
+ : 'This card demonstrates the custom column configuration across different breakpoints.'
198
+ }
199
+ />
200
+ </MasonryGridItem>
201
+ ))}
202
+ </MasonryGrid>
203
+ </div>
204
+ ),
205
+ };
206
+
207
+ /**
208
+ * Masonry grid with elevation card content
209
+ */
210
+ export const WithElevationCards: Story = {
211
+ render: () => (
212
+ <div>
213
+ <h3 className="u-mb-4">Elevation Cards in Masonry Layout</h3>
214
+ <p className="u-mb-4">
215
+ The masonry grid works well with elevation card components that have hover effects.
216
+ </p>
217
+
218
+ <MasonryGrid xs={1} sm={2} md={3} lg={4}>
219
+ {Array.from({ length: 8 }).map((_, index) => (
220
+ <MasonryGridItem key={index}>
221
+ <CardWithImage
222
+ index={index + 40}
223
+ useElevation={true}
224
+ title={`Elevation Card ${index + 1}`}
225
+ text={
226
+ index % 2 === 0
227
+ ? 'Hover over this card to see the elevation effect.'
228
+ : 'This card demonstrates the elevation effect when hovered. The masonry layout handles different content heights automatically.'
229
+ }
230
+ />
231
+ </MasonryGridItem>
232
+ ))}
233
+ </MasonryGrid>
234
+ </div>
235
+ ),
236
+ };
237
+
238
+ /**
239
+ * Masonry grid with animation disabled
240
+ */
241
+ export const NoAnimation: Story = {
242
+ render: () => (
243
+ <div>
244
+ <h3 className="u-mb-4">No Animation</h3>
245
+ <p className="u-mb-4">The animation can be disabled for immediate positioning.</p>
246
+
247
+ <MasonryGrid xs={1} sm={2} md={3} lg={4} animate={false}>
248
+ {Array.from({ length: 6 }).map((_, index) => (
249
+ <MasonryGridItem key={index}>
250
+ <CardWithImage index={index + 50} title={`No Animation ${index + 1}`} />
251
+ </MasonryGridItem>
252
+ ))}
253
+ </MasonryGrid>
254
+ </div>
255
+ ),
256
+ };
257
+
258
+ /**
259
+ * Masonry grid with progressive image loading
260
+ */
261
+ export const ProgressiveImageLoading: Story = {
262
+ render: () => {
263
+ const [loadedCount, setLoadedCount] = useState(0);
264
+ const [totalCount, setTotalCount] = useState(0);
265
+ const [layoutComplete, setLayoutComplete] = useState(false);
266
+
267
+ return (
268
+ <div>
269
+ <h3 className="u-mb-4">Progressive Image Loading</h3>
270
+ <p className="u-mb-4">
271
+ The grid shows items immediately and updates positions as each image loads.
272
+ </p>
273
+
274
+ <div className="u-bg-brand-subtle u-p-3 u-rounded u-mb-4">
275
+ <h4 className="u-mb-2">Loading Progress</h4>
276
+ {totalCount > 0 && (
277
+ <div className="u-mb-2">
278
+ <div className="u-d-flex u-justify-content-between u-mb-1">
279
+ <span>
280
+ Loading images: {loadedCount} of {totalCount}
281
+ </span>
282
+ <span>{Math.round((loadedCount / totalCount) * 100)}%</span>
283
+ </div>
284
+ <div className="u-progress u-mb-2" style={{ height: '8px' }}>
285
+ <div
286
+ className="u-progress-bar u-bg-primary"
287
+ style={{ width: `${(loadedCount / totalCount) * 100}%` }}
288
+ ></div>
289
+ </div>
290
+ {layoutComplete && (
291
+ <div className="u-text-success">
292
+ <span>✓ All images loaded and layout complete!</span>
293
+ </div>
294
+ )}
295
+ </div>
296
+ )}
297
+ </div>
298
+
299
+ <MasonryGrid
300
+ xs={1}
301
+ sm={2}
302
+ md={3}
303
+ lg={4}
304
+ gap={16}
305
+ imagesLoaded={true}
306
+ onLayoutComplete={() => setLayoutComplete(true)}
307
+ onImageLoad={(loaded, total) => {
308
+ setLoadedCount(loaded);
309
+ setTotalCount(total);
310
+ }}
311
+ >
312
+ {Array.from({ length: 8 }).map((_, index) => (
313
+ <MasonryGridItem key={index}>
314
+ <CardWithImage
315
+ index={index + 70}
316
+ title={`Progressive Loading ${index + 1}`}
317
+ text="This card's image loads independently and updates the layout as it loads."
318
+ // Use different sized images to demonstrate the progressive loading
319
+ height={200 + (index % 3) * 100}
320
+ width={400 + (index % 2) * 100}
321
+ />
322
+ </MasonryGridItem>
323
+ ))}
324
+ </MasonryGrid>
325
+ </div>
326
+ );
327
+ },
328
+ };
329
+
330
+ /**
331
+ * Masonry grid with mixed content
332
+ */
333
+ export const MixedContent: Story = {
334
+ render: () => (
335
+ <div>
336
+ <h3 className="u-mb-4">Mixed Content Types</h3>
337
+ <p className="u-mb-4">
338
+ The masonry grid can handle various content types with different heights.
339
+ </p>
340
+
341
+ <MasonryGrid xs={1} sm={2} md={3} lg={4}>
342
+ <MasonryGridItem>
343
+ <Card
344
+ title="Text Only Card"
345
+ text="This card contains only text content with no image."
346
+ className="u-h-100"
347
+ actions={<button className="u-btn u-btn-primary u-btn-sm u-mt-3">Action</button>}
348
+ />
349
+ </MasonryGridItem>
350
+
351
+ <MasonryGridItem>
352
+ <CardWithImage index={60} useElevation={true} />
353
+ </MasonryGridItem>
354
+
355
+ <MasonryGridItem>
356
+ <div className="u-p-4 u-border u-rounded u-bg-brand-subtle u-h-100">
357
+ <h4 className="u-mb-3">Custom Content</h4>
358
+ <p>This is a custom content block using utility classes.</p>
359
+ <div className="u-d-flex u-justify-content-between u-mt-3">
360
+ <span className="u-badge u-badge-primary">New</span>
361
+ <span className="u-badge u-badge-secondary">Featured</span>
362
+ </div>
363
+ </div>
364
+ </MasonryGridItem>
365
+
366
+ <MasonryGridItem>
367
+ <CardWithImage index={61} />
368
+ </MasonryGridItem>
369
+
370
+ <MasonryGridItem>
371
+ <div className="u-p-0 u-border u-rounded u-overflow-hidden u-shadow-sm">
372
+ <img src="https://picsum.photos/id/15/600/400" alt="Nature" className="u-w-100" />
373
+ </div>
374
+ </MasonryGridItem>
375
+
376
+ <MasonryGridItem>
377
+ <Card
378
+ title="Card with Icon"
379
+ text="This card includes an icon and uses utility classes for styling."
380
+ className="u-h-100"
381
+ icon={<span className="u-icon u-icon-lg u-text-primary">★</span>}
382
+ />
383
+ </MasonryGridItem>
384
+ </MasonryGrid>
385
+ </div>
386
+ ),
387
+ };