@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,479 @@
1
+ // Component Mixins
2
+ // =============================================================================
3
+
4
+ @use 'sass:color';
5
+ @use '../01-settings/settings.config' as *;
6
+ @use '../01-settings/settings.colors' as colors;
7
+ @use '../01-settings/settings.border-radius' as *;
8
+ @use '../01-settings/settings.box-shadow' as *;
9
+ @use '../01-settings/settings.breakpoints' as *;
10
+ @use 'tools.to-rgb' as *;
11
+
12
+ // Base component mixin
13
+ // Provides common base styles for all components
14
+ @mixin component-base {
15
+ // Reset box model
16
+ box-sizing: border-box;
17
+
18
+ // Default font settings
19
+ font-family: var(--#{$prefix}body-font-family);
20
+ font-size: var(--#{$prefix}body-font-size);
21
+ line-height: var(--#{$prefix}body-line-height);
22
+
23
+ // Default color settings
24
+ color: var(--#{$prefix}body-color);
25
+
26
+ // Default border settings
27
+ border: var(--#{$prefix}border-width) var(--#{$prefix}border-style) transparent;
28
+ border-radius: var(--#{$prefix}border-radius);
29
+
30
+ // Default transition
31
+ transition: all 0.2s ease-in-out;
32
+
33
+ // Default cursor
34
+ cursor: default;
35
+
36
+ // Default outline
37
+ outline: none;
38
+
39
+ // Default position
40
+ position: relative;
41
+
42
+ // Default display
43
+ display: inline-block;
44
+
45
+ // Default text decoration
46
+ text-decoration: none;
47
+
48
+ // Default list style
49
+ list-style: none;
50
+
51
+ // Default margin and padding reset
52
+ margin: 0;
53
+ padding: 0;
54
+ }
55
+
56
+ // Focus ring mixin
57
+ // Provides consistent focus styling for interactive elements
58
+ @mixin focus-ring($color: var(--#{$prefix}focus-border-color), $width: 2px, $offset: 2px) {
59
+ &:focus-visible {
60
+ outline: $width solid $color;
61
+ outline-offset: $offset;
62
+ box-shadow: 0 0 0 $width $color;
63
+ }
64
+ }
65
+
66
+ // Interactive component mixin
67
+ // Provides hover and focus states for interactive components
68
+ @mixin component-interactive(
69
+ $hover-bg: var(--#{$prefix}primary-hover),
70
+ $hover-color: var(--#{$prefix}primary-text-emphasis),
71
+ $active-bg: var(--#{$prefix}primary-7),
72
+ $active-color: var(--#{$prefix}primary-text-emphasis)
73
+ ) {
74
+ cursor: pointer;
75
+
76
+ &:hover {
77
+ background-color: $hover-bg;
78
+ color: $hover-color;
79
+ }
80
+
81
+ &:active {
82
+ background-color: $active-bg;
83
+ color: $active-color;
84
+ }
85
+
86
+ @include focus-ring;
87
+ }
88
+
89
+ // Disabled component mixin
90
+ // Provides consistent disabled state styling
91
+ @mixin component-disabled {
92
+ opacity: 0.6;
93
+ cursor: not-allowed;
94
+ pointer-events: none;
95
+
96
+ &:hover,
97
+ &:focus,
98
+ &:active {
99
+ background-color: inherit;
100
+ color: inherit;
101
+ transform: none;
102
+ }
103
+ }
104
+
105
+ // Loading component mixin
106
+ // Provides consistent loading state styling
107
+ @mixin component-loading {
108
+ pointer-events: none;
109
+ opacity: 0.7;
110
+ position: relative;
111
+
112
+ &::after {
113
+ content: '';
114
+ position: absolute;
115
+ top: 50%;
116
+ left: 50%;
117
+ width: 16px;
118
+ height: 16px;
119
+ margin: -8px 0 0 -8px;
120
+ border: 2px solid var(--#{$prefix}border-primary-subtle);
121
+ border-top: 2px solid var(--#{$prefix}primary-border-subtle);
122
+ border-radius: 50%;
123
+ animation: component-spin 1s linear infinite;
124
+ }
125
+ }
126
+
127
+ // Selected component mixin
128
+ // Provides consistent selected state styling
129
+ @mixin component-selected(
130
+ $bg: var(--#{$prefix}brand-bg-subtle),
131
+ $color: var(--#{$prefix}brand-text-emphasis),
132
+ $border: var(--#{$prefix}brand-border-subtle)
133
+ ) {
134
+ background-color: $bg;
135
+ color: $color;
136
+ border-color: $border;
137
+ }
138
+
139
+ // Active component mixin
140
+ // Provides consistent active state styling
141
+ @mixin component-active(
142
+ $bg: var(--#{$prefix}primary-7),
143
+ $color: var(--#{$prefix}primary-text-emphasis),
144
+ $border: var(--#{$prefix}primary)
145
+ ) {
146
+ background-color: $bg;
147
+ color: $color;
148
+ border-color: $border;
149
+ }
150
+
151
+ // Error component mixin
152
+ // Provides consistent error state styling
153
+ @mixin component-error(
154
+ $bg: var(--#{$prefix}error-bg-subtle),
155
+ $color: var(--#{$prefix}error-text-emphasis),
156
+ $border: var(--#{$prefix}error-border-subtle)
157
+ ) {
158
+ background-color: $bg;
159
+ color: $color;
160
+ border-color: $border;
161
+ }
162
+
163
+ // Success component mixin
164
+ // Provides consistent success state styling
165
+ @mixin component-success(
166
+ $bg: var(--#{$prefix}success-bg-subtle),
167
+ $color: var(--#{$prefix}success-text-emphasis),
168
+ $border: var(--#{$prefix}success-border-subtle)
169
+ ) {
170
+ background-color: $bg;
171
+ color: $color;
172
+ border-color: $border;
173
+ }
174
+
175
+ // Warning component mixin
176
+ // Provides consistent warning state styling
177
+ @mixin component-warning(
178
+ $bg: var(--#{$prefix}warning-bg-subtle),
179
+ $color: var(--#{$prefix}warning-text-emphasis),
180
+ $border: var(--#{$prefix}warning-border-subtle)
181
+ ) {
182
+ background-color: $bg;
183
+ color: $color;
184
+ border-color: $border;
185
+ }
186
+
187
+ // Info component mixin
188
+ // Provides consistent info state styling
189
+ @mixin component-info(
190
+ $bg: var(--#{$prefix}info-bg-subtle),
191
+ $color: var(--#{$prefix}info-text-emphasis),
192
+ $border: var(--#{$prefix}info-border-subtle)
193
+ ) {
194
+ background-color: $bg;
195
+ color: $color;
196
+ border-color: $border;
197
+ }
198
+
199
+ // Responsive component mixin
200
+ // Provides responsive behavior for components
201
+ @mixin component-responsive($breakpoint: 'md') {
202
+ @media (max-width: map-get($grid-breakpoints, $breakpoint)) {
203
+ @content;
204
+ }
205
+ }
206
+
207
+ // Accessibility component mixin
208
+ // Provides accessibility enhancements
209
+ @mixin component-accessibility {
210
+ // High contrast mode support
211
+ @media (prefers-contrast: high) {
212
+ border-width: 2px;
213
+ }
214
+
215
+ // Reduced motion support
216
+ @media (prefers-reduced-motion: reduce) {
217
+ transition: none;
218
+ animation: none;
219
+
220
+ &:hover {
221
+ transform: none;
222
+ }
223
+ }
224
+
225
+ // Focus visible support
226
+ &:focus-visible {
227
+ @include focus-ring;
228
+ }
229
+ }
230
+
231
+ // Component size mixin
232
+ // Provides consistent sizing for components
233
+ @mixin component-size($size: 'md') {
234
+ @if $size == 'sm' {
235
+ font-size: 0.875rem;
236
+ padding: var(--#{$prefix}border-radius-sm) var(--#{$prefix}border-radius);
237
+ } @else if $size == 'md' {
238
+ font-size: var(--#{$prefix}body-font-size);
239
+ padding: var(--#{$prefix}border-radius) calc(var(--#{$prefix}border-radius) + 0.25rem);
240
+ } @else if $size == 'lg' {
241
+ font-size: 1.125rem;
242
+ padding: calc(var(--#{$prefix}border-radius) + 0.125rem)
243
+ calc(var(--#{$prefix}border-radius) + 0.5rem);
244
+ } @else if $size == 'xl' {
245
+ font-size: 1.25rem;
246
+ padding: calc(var(--#{$prefix}border-radius) + 0.25rem)
247
+ calc(var(--#{$prefix}border-radius) + 0.75rem);
248
+ }
249
+ }
250
+
251
+ // Component variant mixin
252
+ // Provides consistent variant styling
253
+ @mixin component-variant($variant: 'primary') {
254
+ @if $variant == 'primary' {
255
+ background-color: var(--#{$prefix}brand-bg-subtle);
256
+ color: var(--#{$prefix}brand-text-emphasis);
257
+ border-color: var(--#{$prefix}brand-border-subtle);
258
+ } @else if $variant == 'secondary' {
259
+ background-color: var(--#{$prefix}secondary-bg-subtle);
260
+ color: var(--#{$prefix}secondary-text-emphasis);
261
+ border-color: var(--#{$prefix}secondary-border-subtle);
262
+ } @else if $variant == 'success' {
263
+ @include component-success;
264
+ } @else if $variant == 'error' {
265
+ @include component-error;
266
+ } @else if $variant == 'warning' {
267
+ @include component-warning;
268
+ } @else if $variant == 'info' {
269
+ @include component-info;
270
+ }
271
+ }
272
+
273
+ // Component animation mixin
274
+ // Provides consistent animations for components
275
+ @mixin component-animation($type: 'fade') {
276
+ @if $type == 'fade' {
277
+ opacity: 0;
278
+ animation: component-fade-in 0.3s ease-in-out forwards;
279
+ } @else if $type == 'slide' {
280
+ transform: translateY(20px);
281
+ opacity: 0;
282
+ animation: component-slide-in 0.3s ease-out forwards;
283
+ } @else if $type == 'scale' {
284
+ transform: scale(0.9);
285
+ opacity: 0;
286
+ animation: component-scale-in 0.2s ease-out forwards;
287
+ }
288
+ }
289
+
290
+ // Component shadow mixin
291
+ // Provides consistent shadow styling
292
+ @mixin component-shadow($level: 'md') {
293
+ @if $level == 'sm' {
294
+ box-shadow: var(--#{$prefix}box-shadow-sm);
295
+ } @else if $level == 'md' {
296
+ box-shadow: var(--#{$prefix}box-shadow);
297
+ } @else if $level == 'lg' {
298
+ box-shadow: var(--#{$prefix}box-shadow-lg);
299
+ } @else if $level == 'xl' {
300
+ box-shadow: var(--#{$prefix}box-shadow-xl);
301
+ }
302
+ }
303
+
304
+ // Component border mixin
305
+ // Provides consistent border styling
306
+ @mixin component-border(
307
+ $style: 'solid',
308
+ $width: var(--#{$prefix}border-width),
309
+ $color: var(--#{$prefix}border-primary-subtle)
310
+ ) {
311
+ border: $width $style $color;
312
+ }
313
+
314
+ // Component radius mixin
315
+ // Provides consistent border radius styling
316
+ @mixin component-radius($radius: 'md') {
317
+ @if $radius == 'sm' {
318
+ border-radius: var(--#{$prefix}border-radius-sm);
319
+ } @else if $radius == 'md' {
320
+ border-radius: var(--#{$prefix}border-radius);
321
+ } @else if $radius == 'lg' {
322
+ border-radius: var(--#{$prefix}border-radius-lg);
323
+ } @else if $radius == 'xl' {
324
+ border-radius: var(--#{$prefix}border-radius-xl);
325
+ } @else if $radius == 'full' {
326
+ border-radius: var(--#{$prefix}border-radius-pill);
327
+ }
328
+ }
329
+
330
+ // Component typography mixin
331
+ // Provides consistent typography styling
332
+ @mixin component-typography($size: 'base', $weight: 'normal', $line-height: 'base') {
333
+ @if $size == 'base' {
334
+ font-size: var(--#{$prefix}body-font-size);
335
+ } @else if $size == 'sm' {
336
+ font-size: 0.875rem;
337
+ } @else if $size == 'lg' {
338
+ font-size: 1.125rem;
339
+ } @else if $size == 'xl' {
340
+ font-size: 1.25rem;
341
+ }
342
+
343
+ @if $weight == 'normal' {
344
+ font-weight: var(--#{$prefix}body-font-weight);
345
+ } @else if $weight == 'medium' {
346
+ font-weight: 500;
347
+ } @else if $weight == 'semibold' {
348
+ font-weight: 600;
349
+ } @else if $weight == 'bold' {
350
+ font-weight: 700;
351
+ }
352
+
353
+ @if $line-height == 'base' {
354
+ line-height: var(--#{$prefix}body-line-height);
355
+ } @else if $line-height == 'tight' {
356
+ line-height: 1.2;
357
+ } @else if $line-height == 'relaxed' {
358
+ line-height: 1.6;
359
+ }
360
+ }
361
+
362
+ // Component spacing mixin
363
+ // Provides consistent spacing styling
364
+ @mixin component-spacing($padding: 'md', $margin: 'none') {
365
+ @if $padding == 'sm' {
366
+ padding: var(--#{$prefix}border-radius-sm);
367
+ } @else if $padding == 'md' {
368
+ padding: var(--#{$prefix}border-radius);
369
+ } @else if $padding == 'lg' {
370
+ padding: calc(var(--#{$prefix}border-radius) + 0.25rem);
371
+ } @else if $padding == 'xl' {
372
+ padding: calc(var(--#{$prefix}border-radius) + 0.5rem);
373
+ }
374
+
375
+ @if $margin != 'none' {
376
+ margin: var(--#{$prefix}border-radius);
377
+ }
378
+ }
379
+
380
+ // Component layout mixin
381
+ // Provides consistent layout styling
382
+ @mixin component-layout($display: 'block', $position: 'relative') {
383
+ display: $display;
384
+ position: $position;
385
+ }
386
+
387
+ // Component flexbox mixin
388
+ // Provides consistent flexbox styling
389
+ @mixin component-flex(
390
+ $direction: 'row',
391
+ $justify: 'flex-start',
392
+ $align: 'stretch',
393
+ $wrap: 'nowrap'
394
+ ) {
395
+ display: flex;
396
+ flex-direction: $direction;
397
+ justify-content: $justify;
398
+ align-items: $align;
399
+ flex-wrap: $wrap;
400
+ }
401
+
402
+ // Component grid mixin
403
+ // Provides consistent grid styling
404
+ @mixin component-grid($columns: 1, $gap: 'md') {
405
+ display: grid;
406
+ grid-template-columns: repeat($columns, 1fr);
407
+ gap: var(--#{$prefix}border-radius);
408
+ }
409
+
410
+ // Component overflow mixin
411
+ // Provides consistent overflow styling
412
+ @mixin component-overflow($overflow: 'visible') {
413
+ overflow: $overflow;
414
+ }
415
+
416
+ // Component z-index mixin
417
+ // Provides consistent z-index styling
418
+ @mixin component-z-index($level: 'base') {
419
+ @if $level == 'base' {
420
+ z-index: 1;
421
+ } @else if $level == 'dropdown' {
422
+ z-index: 1000;
423
+ } @else if $level == 'sticky' {
424
+ z-index: 1020;
425
+ } @else if $level == 'fixed' {
426
+ z-index: 1030;
427
+ } @else if $level == 'modal' {
428
+ z-index: 1050;
429
+ } @else if $level == 'popover' {
430
+ z-index: 1060;
431
+ } @else if $level == 'tooltip' {
432
+ z-index: 1070;
433
+ } @else if $level == 'toast' {
434
+ z-index: 1080;
435
+ }
436
+ }
437
+
438
+ // Component animations
439
+ // =============================================================================
440
+
441
+ @keyframes component-spin {
442
+ 0% {
443
+ transform: rotate(0deg);
444
+ }
445
+ 100% {
446
+ transform: rotate(360deg);
447
+ }
448
+ }
449
+
450
+ @keyframes component-fade-in {
451
+ from {
452
+ opacity: 0;
453
+ }
454
+ to {
455
+ opacity: 1;
456
+ }
457
+ }
458
+
459
+ @keyframes component-slide-in {
460
+ from {
461
+ transform: translateY(20px);
462
+ opacity: 0;
463
+ }
464
+ to {
465
+ transform: translateY(0);
466
+ opacity: 1;
467
+ }
468
+ }
469
+
470
+ @keyframes component-scale-in {
471
+ from {
472
+ transform: scale(0.9);
473
+ opacity: 0;
474
+ }
475
+ to {
476
+ transform: scale(1);
477
+ opacity: 1;
478
+ }
479
+ }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,5 +1,22 @@
1
1
  @use 'sass:math';
2
+ @use 'sass:meta';
2
3
 
3
- @function rem($pixels) {
4
- @return math.div($pixels, 16px) * 1rem;
4
+ @function rem($value) {
5
+ // Handle null values safely, just return null if value is null
6
+ @if $value == null {
7
+ @return null;
8
+ }
9
+
10
+ // If it's not a number, return as it is
11
+ @if meta.type-of($value) != 'number' {
12
+ @return $value;
13
+ }
14
+
15
+ // If the value is in pixels, convert to rem
16
+ @if math.unit($value) == 'px' {
17
+ @return math.div($value, 16px) * 1rem;
18
+ }
19
+
20
+ // Otherwise, return the value as it is (for rem/em/% values)
21
+ @return $value;
5
22
  }
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -3,6 +3,7 @@
3
3
  //
4
4
  // This API is used to generate utility classes from utility maps defined in the 99-utilities folder.
5
5
  // It provides a consistent way to generate utility classes with responsive variants, states, and more.
6
+ // SASS Decimal Interpolation – If you want a more technical name, this focuses on the way decimal values are now processed in SASS with this code base or you can just use integer both will work.
6
7
 
7
8
  @use 'sass:map';
8
9
  @use 'sass:string';
@@ -13,14 +14,14 @@
13
14
 
14
15
  // Default config for utilities
15
16
  $utility-defaults: (
16
- responsive: true,
17
- rfs: false,
18
- print: false,
19
- dark: false,
20
- class: null,
21
- state: null,
22
- local-vars: (),
23
- rtl: true,
17
+ responsive: true,
18
+ rfs: false,
19
+ print: false,
20
+ dark: false,
21
+ class: null,
22
+ state: null,
23
+ local-vars: (),
24
+ rtl: true,
24
25
  ) !default;
25
26
 
26
27
  // Core function to generate utility classes
@@ -37,11 +38,16 @@ $utility-defaults: (
37
38
  $property-class: map.get($utility, class);
38
39
  $property-class: if($property-class, $property-class, list.nth($properties, 1));
39
40
 
41
+ // Handle decimal key case for spacing, only for numbers (integers or floats)
42
+ @if meta.type-of($key) == 'number' and $key % 1 != 0 {
43
+ $key: round($key); // Round to the nearest integer
44
+ }
45
+
40
46
  // Multiple properties are possible, like with borders or shadows
41
47
  $property-class: if(
42
- meta.type-of($property-class) == 'list',
43
- list.nth($property-class, 1),
44
- $property-class
48
+ meta.type-of($property-class) == 'list',
49
+ list.nth($property-class, 1),
50
+ $property-class
45
51
  );
46
52
 
47
53
  // State variants (hover, focus, active, etc.)
@@ -49,7 +55,14 @@ $utility-defaults: (
49
55
  $infix: if($state, if(meta.type-of($state) == 'string', '#{$state}#{$infix}', $infix), $infix);
50
56
 
51
57
  // Don't prefix if value key is null (e.g. with shadow-none utility)
52
- $class-name: if($key, '#{$property-class}-#{$key}#{$infix}', '#{$property-class}#{$infix}');
58
+ // Escape key to ensure valid CSS selector (e.g. 1.5 -> 1\.5)
59
+ $escaped-key: if($key, _escape-key($key), null);
60
+
61
+ $class-name: if(
62
+ $escaped-key,
63
+ '#{$property-class}-#{$escaped-key}#{$infix}',
64
+ '#{$property-class}#{$infix}'
65
+ );
53
66
 
54
67
  @if map.get($utility, class) == null {
55
68
  .#{$class-name} {
@@ -58,7 +71,7 @@ $utility-defaults: (
58
71
  }
59
72
  }
60
73
  } @else {
61
- .#{map.get($utility, class)}#{$infix}#{if($key, '-#{$key}', '')} {
74
+ .#{map.get($utility, class)}#{$infix}#{if($escaped-key, '-#{$escaped-key}', '')} {
62
75
  @each $property in $properties {
63
76
  #{$property}: $value if(map.get($utility, rtl), null, !important);
64
77
  }
@@ -92,9 +105,9 @@ $utility-defaults: (
92
105
  ) {
93
106
  // Set default breakpoint infix generator if not provided
94
107
  $breakpoint-infix-generator: if(
95
- $breakpoint-infix-generator,
96
- $breakpoint-infix-generator,
97
- get-breakpoint-infix
108
+ $breakpoint-infix-generator,
109
+ $breakpoint-infix-generator,
110
+ get-breakpoint-infix
98
111
  );
99
112
 
100
113
  @each $utility, $config in $utilities {
@@ -104,17 +117,17 @@ $utility-defaults: (
104
117
  // Only process if the utility is not explicitly set to false
105
118
  @if map.get($config, generated) != false {
106
119
  $utility-map: (
107
- property: map.get($config, property),
108
- values: map.get($config, values),
109
- class: map.get($config, class),
110
- state: map.get($config, state),
111
- rtl: map.get($config, rtl),
120
+ property: map.get($config, property),
121
+ values: map.get($config, values),
122
+ class: map.get($config, class),
123
+ state: map.get($config, state),
124
+ rtl: map.get($config, rtl),
112
125
  );
113
126
 
114
127
  @include generate-responsive-utilities(
115
- $utility-map,
116
- $breakpoints,
117
- $breakpoint-infix-generator
128
+ $utility-map,
129
+ $breakpoints,
130
+ $breakpoint-infix-generator
118
131
  );
119
132
  }
120
133
  }
@@ -125,6 +138,20 @@ $utility-defaults: (
125
138
  @return if($breakpoint == null, '', '-#{$breakpoint}');
126
139
  }
127
140
 
141
+ // Helper function to escape keys for safe CSS class names
142
+ @function _escape-key($key) {
143
+ $key-str: #{$key};
144
+ $escaped: '';
145
+ $len: string.length($key-str);
146
+
147
+ @for $i from 1 through $len {
148
+ $char: string.slice($key-str, $i, $i);
149
+ $escaped: $escaped + if($char == '.', '\\.', $char);
150
+ }
151
+
152
+ @return $escaped;
153
+ }
154
+
128
155
  // Helper function to create value lists
129
156
  @function zip($keys, $values) {
130
157
  $result: ();
@@ -132,10 +159,10 @@ $utility-defaults: (
132
159
 
133
160
  @each $key in $keys {
134
161
  $result: map.merge(
135
- $result,
136
- (
137
- $key: if($index <= list.length($values), list.nth($values, $index), null),
138
- )
162
+ $result,
163
+ (
164
+ $key: if($index <= list.length($values), list.nth($values, $index), null),
165
+ )
139
166
  );
140
167
  $index: $index + 1;
141
168
  }
File without changes
File without changes