@shohojdhara/atomix 0.1.16 → 0.1.18

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 (525) hide show
  1. package/CONTRIBUTING.md +151 -0
  2. package/NEXTJS_INTEGRATION.md +358 -0
  3. package/README.md +168 -119
  4. package/babel.config.js +58 -0
  5. package/css.d.ts +10 -0
  6. package/dist/css/atomix.css +1 -2
  7. package/dist/js/194.js +1 -2
  8. package/dist/js/244.js +1 -0
  9. package/dist/js/atomix.react.cjs.js +1 -0
  10. package/dist/js/atomix.react.esm.js +1 -2
  11. package/dist/js/atomix.react.umd.js +1 -2
  12. package/dist/js/chunks/cjs/202.9d3b1ef1eaa0d5c8a309.js +1 -0
  13. package/dist/js/chunks/cjs/308.6ea9685ea38ead4120d0.js +1 -0
  14. package/dist/js/chunks/cjs/54.73db6922594e421ba6b1.js +1 -0
  15. package/dist/js/chunks/cjs/619.51feecaadcab819780d4.js +1 -0
  16. package/dist/js/chunks/cjs/690.90f6d11164081cbcbc4d.js +1 -0
  17. package/dist/js/chunks/cjs/894.24877561df336a8dfd14.js +1 -0
  18. package/dist/js/chunks/cjs/897.6c2a71fae95338890de7.js +1 -0
  19. package/dist/js/chunks/esm/{202.ff48d27672233280e021.js → 202.82aa7b3244e53c9edb72.js} +1 -2
  20. package/dist/js/chunks/esm/{308.f873332126eba90e5c62.js → 308.27e1e4005705ae320432.js} +1 -2
  21. package/dist/js/chunks/esm/{54.4db919e5e4e5cc6d7c72.js → 54.ece1fd6964f98d4d994f.js} +1 -2
  22. package/dist/js/chunks/esm/{619.afc5a718eff77fa423b5.js → 619.ebeb0298432a066ac05c.js} +1 -2
  23. package/dist/js/chunks/esm/{690.a9e968c7497d61e56cdc.js → 690.c5f412cc979b55740359.js} +1 -2
  24. package/dist/js/chunks/esm/{894.f1091a4a8758c26d29e4.js → 894.3604ddc9367d75191198.js} +1 -2
  25. package/dist/js/chunks/esm/{897.561a50f7d043d42169da.js → 897.a4aab2fad9401693eb12.js} +1 -2
  26. package/dist/js/chunks/umd/{202.dac7605cc555b6bda542.js → 202.5017dd0403d696bf1644.js} +1 -2
  27. package/dist/js/chunks/umd/{308.6709979849dcbdb90c9b.js → 308.4bc14b9d7b16b6ee0ab8.js} +1 -2
  28. package/dist/js/chunks/umd/{54.403470e1f7d0ef4424a7.js → 54.7fdfb4a031989470a70d.js} +1 -2
  29. package/dist/js/chunks/umd/{619.fa05ea98c10270eb64c5.js → 619.84a0c35ecee695250085.js} +1 -2
  30. package/dist/js/chunks/umd/{690.aa7054d1c53e5402c2d6.js → 690.d7041094a34a4a434be2.js} +1 -2
  31. package/dist/js/chunks/umd/{894.3e1eaf0a2aadf4434390.js → 894.c127ee4e9513c22ee97d.js} +1 -2
  32. package/dist/js/chunks/umd/{897.554ea37be4453698c167.js → 897.26932ac837a39fc91907.js} +1 -2
  33. package/dist/types/components/Badge/index.d.ts +3 -3
  34. package/dist/types/components/{Navbar → Navigation/Menu}/MegaMenu.d.ts +1 -1
  35. package/dist/types/components/{Navbar → Navigation/Menu}/Menu.d.ts +1 -1
  36. package/dist/types/components/Navigation/Nav/Nav.d.ts +20 -0
  37. package/dist/types/components/{Navbar → Navigation/Nav}/NavDropdown.d.ts +1 -1
  38. package/dist/types/components/Navigation/Nav/NavItem.d.ts +33 -0
  39. package/dist/types/components/Navigation/Navbar/Navbar.d.ts +19 -0
  40. package/dist/types/components/Navigation/SideMenu/SideMenu.d.ts +20 -0
  41. package/dist/types/components/Navigation/SideMenu/SideMenuItem.d.ts +30 -0
  42. package/dist/types/components/Navigation/SideMenu/SideMenuList.d.ts +17 -0
  43. package/dist/types/components/Navigation/index.d.ts +10 -0
  44. package/dist/types/components/PhotoViewer/PhotoViewer.d.ts +2 -2
  45. package/dist/types/components/PhotoViewer/PhotoViewerHeader.d.ts +2 -2
  46. package/dist/types/components/Tab/index.d.ts +2 -2
  47. package/dist/types/components/Toggle/index.d.ts +2 -2
  48. package/dist/types/components/Tooltip/index.d.ts +3 -3
  49. package/dist/types/components/index.d.ts +1 -1
  50. package/dist/types/lib/composables/index.d.ts +1 -0
  51. package/dist/types/lib/composables/useDatePicker.d.ts +1 -1
  52. package/dist/types/lib/composables/useDropdown.d.ts +1 -1
  53. package/dist/types/lib/composables/useModal.d.ts +1 -1
  54. package/dist/types/lib/composables/usePhotoViewer.d.ts +1 -1
  55. package/dist/types/lib/composables/useRating.d.ts +1 -1
  56. package/dist/types/lib/composables/useSideMenu.d.ts +28 -0
  57. package/dist/types/lib/constants/components.d.ts +72 -0
  58. package/dist/types/lib/types/components.d.ts +103 -0
  59. package/examples/nextjs-example.tsx +271 -0
  60. package/implementation-guide.md +505 -0
  61. package/next.config.js +69 -0
  62. package/package.json +80 -42
  63. package/postcss.config.js +28 -0
  64. package/src/Introduction.mdx +3 -5
  65. package/src/assets/fonts/HelveticaNeue/stylesheet.css +140 -127
  66. package/src/components/Accordion/Accordion.stories.tsx +58 -45
  67. package/src/components/Accordion/Accordion.tsx +14 -4
  68. package/src/components/Accordion/scripts/accordionInteractions.ts +9 -9
  69. package/src/components/Accordion/scripts/bundle.ts +1 -1
  70. package/src/components/Accordion/scripts/index.ts +3 -3
  71. package/src/components/AtomixLogo.tsx +13 -19
  72. package/src/components/Avatar/Avatar.stories.tsx +24 -21
  73. package/src/components/Avatar/Avatar.tsx +5 -8
  74. package/src/components/Avatar/AvatarGroup.tsx +11 -11
  75. package/src/components/Avatar/index.ts +1 -1
  76. package/src/components/Avatar/scripts/index.ts +66 -71
  77. package/src/components/Badge/Badge.stories.tsx +51 -21
  78. package/src/components/Badge/Badge.tsx +14 -12
  79. package/src/components/Badge/index.ts +3 -3
  80. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +40 -40
  81. package/src/components/Breadcrumb/Breadcrumb.tsx +19 -26
  82. package/src/components/Breadcrumb/index.ts +1 -1
  83. package/src/components/Breadcrumb/scripts/breadcrumb.ts +36 -34
  84. package/src/components/Breadcrumb/scripts/index.ts +1 -1
  85. package/src/components/Breadcrumb/scripts/types.ts +9 -9
  86. package/src/components/Button/Button.stories.tsx +36 -12
  87. package/src/components/Button/Button.tsx +52 -39
  88. package/src/components/Button/index.ts +1 -1
  89. package/src/components/Button/scripts/buttonInteractions.ts +9 -9
  90. package/src/components/Button/scripts/index.ts +1 -1
  91. package/src/components/Callout/Callout.stories.tsx +207 -114
  92. package/src/components/Callout/Callout.tsx +12 -12
  93. package/src/components/Callout/index.ts +1 -1
  94. package/src/components/Callout/scripts/CalloutInteractions.ts +58 -48
  95. package/src/components/Callout/scripts/bundle.ts +2 -2
  96. package/src/components/Callout/scripts/index.ts +19 -15
  97. package/src/components/Card/Card.stories.tsx +2 -2
  98. package/src/components/Card/Card.tsx +49 -72
  99. package/src/components/Card/ElevationCard.tsx +4 -8
  100. package/src/components/Card/index.ts +1 -1
  101. package/src/components/Card/scripts/bundle.ts +7 -7
  102. package/src/components/Card/scripts/cardInteractions.ts +24 -24
  103. package/src/components/Card/scripts/index.ts +25 -26
  104. package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +6 -3
  105. package/src/components/ColorModeToggle/ColorModeToggle.tsx +12 -15
  106. package/src/components/ColorModeToggle/index.ts +1 -1
  107. package/src/components/Countdown/Countdown.stories.tsx +6 -2
  108. package/src/components/Countdown/Countdown.tsx +56 -48
  109. package/src/components/Countdown/index.ts +1 -1
  110. package/src/components/Countdown/scripts/index.ts +33 -28
  111. package/src/components/DataTable/DataTable.stories.tsx +23 -18
  112. package/src/components/DataTable/DataTable.tsx +39 -39
  113. package/src/components/DataTable/index.ts +1 -1
  114. package/src/components/DataTable/scripts/bundle.ts +8 -3
  115. package/src/components/DataTable/scripts/index.ts +182 -164
  116. package/src/components/DatePicker/DatePicker.stories.tsx +136 -148
  117. package/src/components/DatePicker/DatePicker.tsx +461 -420
  118. package/src/components/DatePicker/scripts/bundle.ts +12 -7
  119. package/src/components/DatePicker/scripts/componentInteractions.ts +76 -46
  120. package/src/components/DatePicker/scripts/index.ts +176 -156
  121. package/src/components/DatePicker/types.ts +32 -32
  122. package/src/components/DatePicker/utils.ts +41 -30
  123. package/src/components/Dropdown/Dropdown.stories.tsx +85 -55
  124. package/src/components/Dropdown/Dropdown.tsx +97 -88
  125. package/src/components/Dropdown/index.ts +5 -10
  126. package/src/components/Dropdown/scripts/bundle.ts +10 -10
  127. package/src/components/Dropdown/scripts/componentInteractions.ts +10 -2
  128. package/src/components/Dropdown/scripts/index.ts +122 -117
  129. package/src/components/EdgePanel/EdgePanel.stories.tsx +142 -58
  130. package/src/components/EdgePanel/EdgePanel.tsx +7 -13
  131. package/src/components/EdgePanel/index.ts +1 -1
  132. package/src/components/EdgePanel/scripts/bundle.ts +5 -5
  133. package/src/components/EdgePanel/scripts/edgePanelInteractions.ts +26 -26
  134. package/src/components/EdgePanel/scripts/index.ts +53 -53
  135. package/src/components/Form/Checkbox.stories.tsx +2 -2
  136. package/src/components/Form/Checkbox.tsx +13 -7
  137. package/src/components/Form/Form.stories.tsx +144 -218
  138. package/src/components/Form/Form.tsx +6 -6
  139. package/src/components/Form/FormGroup.stories.tsx +21 -38
  140. package/src/components/Form/FormGroup.tsx +18 -20
  141. package/src/components/Form/Input.stories.tsx +1 -1
  142. package/src/components/Form/Input.tsx +18 -8
  143. package/src/components/Form/Radio.stories.tsx +12 -25
  144. package/src/components/Form/Radio.tsx +11 -6
  145. package/src/components/Form/Select.stories.tsx +6 -6
  146. package/src/components/Form/Select.tsx +31 -33
  147. package/src/components/Form/Textarea.stories.tsx +7 -2
  148. package/src/components/Form/Textarea.tsx +17 -8
  149. package/src/components/Form/index.ts +1 -1
  150. package/src/components/Hero/Hero.stories.tsx +44 -42
  151. package/src/components/Hero/Hero.tsx +28 -38
  152. package/src/components/Hero/index.ts +1 -1
  153. package/src/components/Hero/scripts/bundle.ts +6 -6
  154. package/src/components/Hero/scripts/heroInteractions.ts +24 -29
  155. package/src/components/Hero/scripts/index.ts +16 -17
  156. package/src/components/Icon/Icon.tsx +16 -18
  157. package/src/components/Icon/index.ts +1 -1
  158. package/src/components/List/List.stories.tsx +1 -3
  159. package/src/components/List/List.tsx +6 -10
  160. package/src/components/List/ListGroup.tsx +1 -1
  161. package/src/components/List/index.ts +1 -1
  162. package/src/components/Messages/Messages.stories.tsx +30 -29
  163. package/src/components/Messages/Messages.tsx +60 -55
  164. package/src/components/Messages/index.ts +1 -1
  165. package/src/components/Messages/scripts/bundle.ts +1 -6
  166. package/src/components/Messages/scripts/componentInteractions.ts +32 -37
  167. package/src/components/Messages/scripts/index.ts +61 -55
  168. package/src/components/Modal/Modal.stories.tsx +77 -53
  169. package/src/components/Modal/Modal.tsx +63 -62
  170. package/src/components/Modal/index.ts +1 -1
  171. package/src/components/Modal/scripts/bundle.ts +3 -3
  172. package/src/components/Modal/scripts/index.ts +96 -84
  173. package/src/components/Modal/scripts/modalInteractions.ts +16 -14
  174. package/src/components/{Navbar → Navigation/Menu}/MegaMenu.tsx +50 -59
  175. package/src/components/Navigation/Menu/Menu.stories.tsx +340 -0
  176. package/src/components/Navigation/Menu/Menu.tsx +110 -0
  177. package/src/components/Navigation/Nav/Nav.stories.tsx +458 -0
  178. package/src/components/Navigation/Nav/Nav.tsx +50 -0
  179. package/src/components/Navigation/Nav/NavDropdown.tsx +105 -0
  180. package/src/components/Navigation/Nav/NavItem.tsx +159 -0
  181. package/src/components/{Navbar → Navigation/Navbar}/Navbar.stories.tsx +198 -104
  182. package/src/components/Navigation/Navbar/Navbar.tsx +150 -0
  183. package/src/components/Navigation/README.md +314 -0
  184. package/src/components/Navigation/SideMenu/SideMenu.README.md +494 -0
  185. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +618 -0
  186. package/src/components/Navigation/SideMenu/SideMenu.tsx +101 -0
  187. package/src/components/Navigation/SideMenu/SideMenuItem.tsx +95 -0
  188. package/src/components/Navigation/SideMenu/SideMenuList.tsx +41 -0
  189. package/src/components/Navigation/index.ts +23 -0
  190. package/src/components/Navigation/scripts/NavbarInteractions.ts +171 -0
  191. package/src/components/Navigation/scripts/SideMenu.ts +319 -0
  192. package/src/components/Navigation/scripts/SideMenuBundle.ts +69 -0
  193. package/src/components/Navigation/scripts/SideMenuInteractions.ts +250 -0
  194. package/src/components/Navigation/scripts/bundle.ts +58 -0
  195. package/src/components/Navigation/scripts/index.ts +248 -0
  196. package/src/components/Pagination/Pagination.stories.tsx +34 -33
  197. package/src/components/Pagination/Pagination.tsx +25 -35
  198. package/src/components/Pagination/index.ts +1 -1
  199. package/src/components/Pagination/scripts/index.ts +42 -37
  200. package/src/components/PhotoViewer/PhotoViewer.stories.tsx +48 -48
  201. package/src/components/PhotoViewer/PhotoViewer.tsx +29 -46
  202. package/src/components/PhotoViewer/PhotoViewerHeader.tsx +20 -26
  203. package/src/components/PhotoViewer/PhotoViewerImage.tsx +19 -17
  204. package/src/components/PhotoViewer/PhotoViewerInfo.tsx +13 -5
  205. package/src/components/PhotoViewer/PhotoViewerNavigation.tsx +5 -5
  206. package/src/components/PhotoViewer/PhotoViewerThumbnails.tsx +31 -30
  207. package/src/components/PhotoViewer/examples/ImageGallery.tsx +27 -37
  208. package/src/components/PhotoViewer/examples/SimpleGallery.tsx +19 -13
  209. package/src/components/PhotoViewer/examples/index.ts +1 -1
  210. package/src/components/PhotoViewer/index.ts +1 -1
  211. package/src/components/PhotoViewer/scripts/PhotoViewerInteractions.ts +43 -33
  212. package/src/components/PhotoViewer/scripts/bundle.ts +14 -14
  213. package/src/components/PhotoViewer/scripts/index.ts +173 -129
  214. package/src/components/Popover/Popover.stories.tsx +11 -12
  215. package/src/components/Popover/Popover.tsx +36 -36
  216. package/src/components/Popover/index.ts +1 -1
  217. package/src/components/Popover/scripts/bundle.ts +1 -1
  218. package/src/components/Popover/scripts/componentInteractions.ts +34 -46
  219. package/src/components/Popover/scripts/index.ts +64 -53
  220. package/src/components/ProductReview/ProductReview.stories.tsx +10 -8
  221. package/src/components/ProductReview/ProductReview.tsx +28 -32
  222. package/src/components/ProductReview/scripts/componentInteractions.ts +20 -20
  223. package/src/components/Progress/Progress.tsx +36 -34
  224. package/src/components/Progress/scripts/bundle.ts +7 -2
  225. package/src/components/Progress/scripts/componentInteractions.ts +29 -23
  226. package/src/components/Progress/scripts/index.ts +45 -39
  227. package/src/components/Rating/Rating.stories.tsx +3 -16
  228. package/src/components/Rating/Rating.tsx +250 -231
  229. package/src/components/Rating/scripts/bundle.ts +11 -6
  230. package/src/components/Rating/scripts/index.ts +85 -80
  231. package/src/components/Rating/scripts/ratingInteractions.ts +27 -24
  232. package/src/components/River/River.stories.tsx +70 -24
  233. package/src/components/River/River.tsx +28 -38
  234. package/src/components/River/index.ts +1 -1
  235. package/src/components/River/scripts/index.ts +11 -12
  236. package/src/components/SectionIntro/SectionIntro.stories.tsx +12 -9
  237. package/src/components/SectionIntro/SectionIntro.tsx +25 -31
  238. package/src/components/SectionIntro/scripts/componentInteractions.ts +1 -1
  239. package/src/components/SectionIntro/scripts/index.ts +30 -16
  240. package/src/components/Spinner/Spinner.stories.tsx +5 -7
  241. package/src/components/Spinner/Spinner.tsx +11 -6
  242. package/src/components/Spinner/index.ts +2 -2
  243. package/src/components/Steps/Steps.stories.tsx +44 -48
  244. package/src/components/Steps/Steps.tsx +20 -20
  245. package/src/components/Steps/index.ts +1 -1
  246. package/src/components/Steps/scripts/index.ts +9 -9
  247. package/src/components/Tab/Tab.stories.tsx +14 -6
  248. package/src/components/Tab/Tab.tsx +16 -18
  249. package/src/components/Tab/index.ts +2 -2
  250. package/src/components/Tab/scripts/index.ts +13 -13
  251. package/src/components/Testimonial/Testimonial.stories.tsx +54 -51
  252. package/src/components/Testimonial/Testimonial.tsx +18 -19
  253. package/src/components/Testimonial/index.ts +1 -1
  254. package/src/components/Testimonial/scripts/index.ts +19 -8
  255. package/src/components/Todo/Todo.stories.tsx +7 -24
  256. package/src/components/Todo/Todo.tsx +35 -46
  257. package/src/components/Todo/index.ts +1 -1
  258. package/src/components/Todo/scripts/bundle.ts +1 -1
  259. package/src/components/Todo/scripts/index.ts +99 -81
  260. package/src/components/Todo/scripts/todoInteractions.ts +12 -12
  261. package/src/components/Todo/scripts/types.ts +3 -3
  262. package/src/components/Toggle/Toggle.stories.tsx +2 -2
  263. package/src/components/Toggle/Toggle.tsx +18 -18
  264. package/src/components/Toggle/index.ts +2 -2
  265. package/src/components/Toggle/scripts/bundle.ts +7 -2
  266. package/src/components/Toggle/scripts/index.ts +14 -10
  267. package/src/components/Toggle/scripts/toggleInteractions.ts +11 -14
  268. package/src/components/Tooltip/Tooltip.stories.tsx +13 -6
  269. package/src/components/Tooltip/Tooltip.tsx +25 -15
  270. package/src/components/Tooltip/index.ts +3 -3
  271. package/src/components/Tooltip/scripts/bundle.ts +0 -1
  272. package/src/components/Tooltip/scripts/index.ts +44 -41
  273. package/src/components/Tooltip/scripts/tooltipInteractions.ts +22 -22
  274. package/src/components/Upload/Upload.stories.tsx +28 -34
  275. package/src/components/Upload/Upload.tsx +86 -71
  276. package/src/components/Upload/index.ts +1 -1
  277. package/src/components/Upload/scripts/index.ts +58 -43
  278. package/src/components/index.ts +5 -6
  279. package/src/design-tokens/BoxShadow/BoxShadow.stories.tsx +13 -10
  280. package/src/design-tokens/Colors/colors.scss +10 -7
  281. package/src/design-tokens/Colors/colors.stories.tsx +46 -59
  282. package/src/design-tokens/Spacing/Spacing.scss +7 -5
  283. package/src/design-tokens/Spacing/Spacing.stories.tsx +19 -18
  284. package/src/design-tokens/Typography/Typography.scss +88 -25
  285. package/src/design-tokens/Typography/Typography.stories.tsx +22 -25
  286. package/src/docs/implementation-guide.mdx +2 -2
  287. package/src/htmlComponentsEntry.ts +23 -23
  288. package/src/index.ts +1 -1
  289. package/src/layouts/Grid/Container.tsx +6 -10
  290. package/src/layouts/Grid/Grid.stories.tsx +72 -34
  291. package/src/layouts/Grid/Grid.tsx +6 -13
  292. package/src/layouts/Grid/GridCol.tsx +29 -26
  293. package/src/layouts/Grid/Row.tsx +6 -13
  294. package/src/layouts/MasonryGrid/MasonryGrid.stories.tsx +79 -72
  295. package/src/layouts/MasonryGrid/MasonryGrid.tsx +23 -25
  296. package/src/layouts/MasonryGrid/MasonryGridItem.tsx +4 -12
  297. package/src/layouts/index.ts +3 -4
  298. package/src/lib/composables/index.ts +3 -3
  299. package/src/lib/composables/useAccordion.ts +15 -6
  300. package/src/lib/composables/useBadge.ts +3 -3
  301. package/src/lib/composables/useBreadcrumb.ts +6 -12
  302. package/src/lib/composables/useButton.ts +3 -3
  303. package/src/lib/composables/useCallout.ts +3 -3
  304. package/src/lib/composables/useCard.ts +50 -28
  305. package/src/lib/composables/useCheckbox.ts +7 -7
  306. package/src/lib/composables/useDataTable.ts +61 -57
  307. package/src/lib/composables/useDatePicker.ts +255 -231
  308. package/src/lib/composables/useDropdown.ts +90 -75
  309. package/src/lib/composables/useEdgePanel.ts +50 -47
  310. package/src/lib/composables/useForm.ts +4 -7
  311. package/src/lib/composables/useFormGroup.ts +11 -12
  312. package/src/lib/composables/useHero.ts +36 -38
  313. package/src/lib/composables/useInput.ts +9 -10
  314. package/src/lib/composables/useMessages.ts +12 -14
  315. package/src/lib/composables/useModal.ts +37 -34
  316. package/src/lib/composables/useNavbar.ts +33 -22
  317. package/src/lib/composables/usePagination.ts +3 -10
  318. package/src/lib/composables/usePhotoViewer.ts +625 -578
  319. package/src/lib/composables/usePopover.ts +68 -62
  320. package/src/lib/composables/useProgress.ts +9 -12
  321. package/src/lib/composables/useRadio.ts +4 -4
  322. package/src/lib/composables/useRating.ts +82 -70
  323. package/src/lib/composables/useRiver.ts +28 -31
  324. package/src/lib/composables/useSelect.ts +7 -8
  325. package/src/lib/composables/useSideMenu.ts +197 -0
  326. package/src/lib/composables/useSpinner.ts +3 -3
  327. package/src/lib/composables/useTextarea.ts +8 -9
  328. package/src/lib/composables/useTodo.ts +14 -18
  329. package/src/lib/constants/components.ts +191 -118
  330. package/src/lib/constants/index.ts +1 -1
  331. package/src/lib/types/components.ts +454 -324
  332. package/src/lib/utils/dom.ts +2 -6
  333. package/src/lib/utils/icons.ts +20 -12
  334. package/src/lib/utils/index.ts +2 -2
  335. package/src/lib/utils/useForkRef.ts +1 -2
  336. package/src/styles/01-settings/_index.scss +59 -59
  337. package/src/styles/01-settings/_settings.accordion.scss +21 -21
  338. package/src/styles/01-settings/_settings.animations.scss +2 -2
  339. package/src/styles/01-settings/_settings.avatar-group.scss +14 -14
  340. package/src/styles/01-settings/_settings.avatar.scss +31 -31
  341. package/src/styles/01-settings/_settings.badge.scss +11 -11
  342. package/src/styles/01-settings/_settings.border-radius.scss +10 -9
  343. package/src/styles/01-settings/_settings.border.scss +7 -7
  344. package/src/styles/01-settings/_settings.box-shadow.scss +24 -12
  345. package/src/styles/01-settings/_settings.breadcrumb.scss +18 -18
  346. package/src/styles/01-settings/_settings.btn-group.scss +1 -1
  347. package/src/styles/01-settings/_settings.button.scss +63 -49
  348. package/src/styles/01-settings/_settings.callout.scss +27 -7
  349. package/src/styles/01-settings/_settings.card.scss +27 -30
  350. package/src/styles/01-settings/_settings.checkbox-group.scss +2 -3
  351. package/src/styles/01-settings/_settings.checkbox.scss +17 -18
  352. package/src/styles/01-settings/_settings.color-mode.scss +1 -1
  353. package/src/styles/01-settings/_settings.colors.scss +197 -214
  354. package/src/styles/01-settings/_settings.config.scss +1 -3
  355. package/src/styles/01-settings/_settings.countdown.scss +14 -14
  356. package/src/styles/01-settings/_settings.data-table.scss +6 -6
  357. package/src/styles/01-settings/_settings.datepicker.scss +40 -42
  358. package/src/styles/01-settings/_settings.dropdown.scss +30 -30
  359. package/src/styles/01-settings/_settings.edge-panel.scss +16 -16
  360. package/src/styles/01-settings/_settings.fonts.scss +14 -12
  361. package/src/styles/01-settings/_settings.form-group.scss +10 -10
  362. package/src/styles/01-settings/_settings.form.scss +3 -3
  363. package/src/styles/01-settings/_settings.grid.scss +1 -1
  364. package/src/styles/01-settings/_settings.hero.scss +23 -23
  365. package/src/styles/01-settings/_settings.input.scss +32 -32
  366. package/src/styles/01-settings/_settings.link.scss +6 -6
  367. package/src/styles/01-settings/_settings.list-group.scss +12 -12
  368. package/src/styles/01-settings/_settings.list.scss +2 -2
  369. package/src/styles/01-settings/_settings.maps.scss +183 -188
  370. package/src/styles/01-settings/_settings.masonry-grid.scss +2 -2
  371. package/src/styles/01-settings/_settings.menu.scss +35 -38
  372. package/src/styles/01-settings/_settings.messages.scss +71 -77
  373. package/src/styles/01-settings/_settings.modal.scss +24 -24
  374. package/src/styles/01-settings/_settings.nav.scss +15 -15
  375. package/src/styles/01-settings/_settings.navbar.scss +39 -12
  376. package/src/styles/01-settings/_settings.pagination.scss +21 -21
  377. package/src/styles/01-settings/_settings.photoviewer.scss +1 -1
  378. package/src/styles/01-settings/_settings.popover.scss +3 -3
  379. package/src/styles/01-settings/_settings.position.scss +2 -2
  380. package/src/styles/01-settings/_settings.progress.scss +15 -18
  381. package/src/styles/01-settings/_settings.rating.scss +7 -7
  382. package/src/styles/01-settings/_settings.river.scss +25 -25
  383. package/src/styles/01-settings/_settings.sectionintro.scss +15 -16
  384. package/src/styles/01-settings/_settings.select.scss +31 -31
  385. package/src/styles/01-settings/_settings.side-menu.scss +64 -16
  386. package/src/styles/01-settings/_settings.skeleton.scss +12 -12
  387. package/src/styles/01-settings/_settings.spacing.scss +62 -33
  388. package/src/styles/01-settings/_settings.spinner.scss +10 -10
  389. package/src/styles/01-settings/_settings.steps.scss +22 -22
  390. package/src/styles/01-settings/_settings.tabs.scss +25 -25
  391. package/src/styles/01-settings/_settings.testimonials.scss +17 -19
  392. package/src/styles/01-settings/_settings.todo.scss +1 -1
  393. package/src/styles/01-settings/_settings.toggle.scss +26 -26
  394. package/src/styles/01-settings/_settings.tooltip.scss +15 -15
  395. package/src/styles/01-settings/_settings.typography.scss +65 -48
  396. package/src/styles/01-settings/_settings.upload.scss +70 -77
  397. package/src/styles/01-settings/_settings.z-layers.scss +1 -1
  398. package/src/styles/02-tools/_index.scss +19 -19
  399. package/src/styles/02-tools/_tools.animations.scss +4 -4
  400. package/src/styles/02-tools/_tools.border-radius.scss +4 -5
  401. package/src/styles/02-tools/_tools.breakpoints.scss +33 -34
  402. package/src/styles/02-tools/_tools.button.scss +49 -25
  403. package/src/styles/02-tools/_tools.color-mode.scss +11 -11
  404. package/src/styles/02-tools/_tools.event.scss +1 -1
  405. package/src/styles/02-tools/_tools.hidden-visually.scss +1 -1
  406. package/src/styles/02-tools/_tools.hidden.scss +1 -1
  407. package/src/styles/02-tools/_tools.map-loop.scss +9 -9
  408. package/src/styles/02-tools/_tools.media-queries.scss +5 -3
  409. package/src/styles/02-tools/_tools.object-fit.scss +3 -3
  410. package/src/styles/02-tools/_tools.placeholder.scss +0 -1
  411. package/src/styles/02-tools/_tools.rem.scss +1 -1
  412. package/src/styles/02-tools/_tools.spacing.scss +8 -34
  413. package/src/styles/02-tools/_tools.to-rgb.scss +3 -3
  414. package/src/styles/02-tools/_tools.transition.scss +1 -1
  415. package/src/styles/02-tools/_tools.utility-api.scss +29 -14
  416. package/src/styles/03-generic/_generic.fonts.scss +0 -1
  417. package/src/styles/03-generic/_generic.reset.scss +13 -8
  418. package/src/styles/03-generic/_generic.root.scss +5 -5
  419. package/src/styles/03-generic/_index.scss +4 -4
  420. package/src/styles/04-elements/_elements.all.scss +2 -2
  421. package/src/styles/04-elements/_elements.body.scss +1 -2
  422. package/src/styles/04-elements/_elements.heading.scss +37 -21
  423. package/src/styles/04-elements/_elements.links.scss +0 -1
  424. package/src/styles/04-elements/_index.scss +5 -5
  425. package/src/styles/05-objects/_index.scss +3 -3
  426. package/src/styles/05-objects/_objects.container.scss +5 -4
  427. package/src/styles/05-objects/_objects.grid.scss +12 -12
  428. package/src/styles/05-objects/_objects.masonry-grid.scss +80 -74
  429. package/src/styles/06-components/_components.accordion.scss +12 -6
  430. package/src/styles/06-components/_components.avatar-group.scss +9 -8
  431. package/src/styles/06-components/_components.avatar.scss +78 -77
  432. package/src/styles/06-components/_components.badge.scss +48 -48
  433. package/src/styles/06-components/_components.breadcrumb.scss +57 -58
  434. package/src/styles/06-components/_components.btn-group.scss +22 -22
  435. package/src/styles/06-components/_components.button.scss +118 -110
  436. package/src/styles/06-components/_components.callout.scss +21 -15
  437. package/src/styles/06-components/_components.card.scss +6 -10
  438. package/src/styles/06-components/_components.checkbox-group.scss +9 -10
  439. package/src/styles/06-components/_components.checkbox.scss +10 -17
  440. package/src/styles/06-components/_components.color-mode-toggle.scss +6 -6
  441. package/src/styles/06-components/_components.countdown.scss +53 -54
  442. package/src/styles/06-components/_components.data-table.scss +40 -36
  443. package/src/styles/06-components/_components.datepicker.scss +95 -73
  444. package/src/styles/06-components/_components.dropdown.scss +15 -9
  445. package/src/styles/06-components/_components.edge-panel.scss +87 -46
  446. package/src/styles/06-components/_components.form-group.scss +5 -4
  447. package/src/styles/06-components/_components.hero.scss +128 -132
  448. package/src/styles/06-components/_components.icon.scss +16 -16
  449. package/src/styles/06-components/_components.image-gallery.scss +9 -7
  450. package/src/styles/06-components/_components.input.scss +18 -16
  451. package/src/styles/06-components/_components.list-group.scss +52 -51
  452. package/src/styles/06-components/_components.list.scss +15 -15
  453. package/src/styles/06-components/_components.menu.scss +225 -220
  454. package/src/styles/06-components/_components.messages.scss +45 -32
  455. package/src/styles/06-components/_components.modal.scss +0 -1
  456. package/src/styles/06-components/_components.nav.scss +56 -11
  457. package/src/styles/06-components/_components.navbar.scss +278 -202
  458. package/src/styles/06-components/_components.pagination.scss +7 -6
  459. package/src/styles/06-components/_components.photoviewer.scss +121 -116
  460. package/src/styles/06-components/_components.popover.scss +10 -10
  461. package/src/styles/06-components/_components.product-review.scss +3 -3
  462. package/src/styles/06-components/_components.progress.scss +32 -35
  463. package/src/styles/06-components/_components.rating.scss +9 -8
  464. package/src/styles/06-components/_components.river.scss +4 -2
  465. package/src/styles/06-components/_components.sectionintro.scss +19 -26
  466. package/src/styles/06-components/_components.select.scss +7 -8
  467. package/src/styles/06-components/_components.side-menu.scss +154 -28
  468. package/src/styles/06-components/_components.skeleton.scss +0 -1
  469. package/src/styles/06-components/_components.spinner.scss +2 -4
  470. package/src/styles/06-components/_components.steps.scss +76 -77
  471. package/src/styles/06-components/_components.tabs.scss +17 -12
  472. package/src/styles/06-components/_components.testimonials.scss +49 -52
  473. package/src/styles/06-components/_components.todo.scss +26 -26
  474. package/src/styles/06-components/_components.tooltip.scss +114 -115
  475. package/src/styles/06-components/_components.upload.scss +8 -18
  476. package/src/styles/06-components/_index.scss +48 -48
  477. package/src/styles/99-utilities/_index.scss +18 -18
  478. package/src/styles/99-utilities/_utilities.background.scss +13 -13
  479. package/src/styles/99-utilities/_utilities.border.scss +30 -30
  480. package/src/styles/99-utilities/_utilities.clearfix.scss +1 -1
  481. package/src/styles/99-utilities/_utilities.display.scss +5 -4
  482. package/src/styles/99-utilities/_utilities.flex.scss +19 -19
  483. package/src/styles/99-utilities/_utilities.link.scss +52 -35
  484. package/src/styles/99-utilities/_utilities.object-fit.scss +3 -3
  485. package/src/styles/99-utilities/_utilities.opacity.scss +6 -6
  486. package/src/styles/99-utilities/_utilities.overflow.scss +4 -4
  487. package/src/styles/99-utilities/_utilities.position.scss +8 -8
  488. package/src/styles/99-utilities/_utilities.shadow.scss +13 -13
  489. package/src/styles/99-utilities/_utilities.sizes.scss +17 -17
  490. package/src/styles/99-utilities/_utilities.spacing.scss +72 -37
  491. package/src/styles/99-utilities/_utilities.text.scss +15 -15
  492. package/src/styles/99-utilities/_utilities.visibility.scss +8 -8
  493. package/src/styles/99-utilities/_utilities.visually-hidden.scss +1 -1
  494. package/src/styles/99-utilities/_utilities.z-index.scss +2 -2
  495. package/tsconfig.json +74 -0
  496. package/webpack.config.js +463 -0
  497. package/NPM_PUBLISHING.md +0 -221
  498. package/dist/css/atomix.css.map +0 -1
  499. package/dist/js/194.js.map +0 -1
  500. package/dist/js/atomix.react.esm.js.map +0 -1
  501. package/dist/js/atomix.react.umd.js.map +0 -1
  502. package/dist/js/chunks/esm/202.ff48d27672233280e021.js.map +0 -1
  503. package/dist/js/chunks/esm/308.f873332126eba90e5c62.js.map +0 -1
  504. package/dist/js/chunks/esm/54.4db919e5e4e5cc6d7c72.js.map +0 -1
  505. package/dist/js/chunks/esm/619.afc5a718eff77fa423b5.js.map +0 -1
  506. package/dist/js/chunks/esm/690.a9e968c7497d61e56cdc.js.map +0 -1
  507. package/dist/js/chunks/esm/894.f1091a4a8758c26d29e4.js.map +0 -1
  508. package/dist/js/chunks/esm/897.561a50f7d043d42169da.js.map +0 -1
  509. package/dist/js/chunks/umd/202.dac7605cc555b6bda542.js.map +0 -1
  510. package/dist/js/chunks/umd/308.6709979849dcbdb90c9b.js.map +0 -1
  511. package/dist/js/chunks/umd/54.403470e1f7d0ef4424a7.js.map +0 -1
  512. package/dist/js/chunks/umd/619.fa05ea98c10270eb64c5.js.map +0 -1
  513. package/dist/js/chunks/umd/690.aa7054d1c53e5402c2d6.js.map +0 -1
  514. package/dist/js/chunks/umd/894.3e1eaf0a2aadf4434390.js.map +0 -1
  515. package/dist/js/chunks/umd/897.554ea37be4453698c167.js.map +0 -1
  516. package/dist/types/components/Navbar/Nav.d.ts +0 -5
  517. package/dist/types/components/Navbar/NavItem.d.ts +0 -5
  518. package/dist/types/components/Navbar/Navbar.d.ts +0 -5
  519. package/dist/types/components/Navbar/index.d.ts +0 -6
  520. package/src/components/Navbar/Menu.tsx +0 -122
  521. package/src/components/Navbar/Nav.tsx +0 -35
  522. package/src/components/Navbar/NavDropdown.tsx +0 -108
  523. package/src/components/Navbar/NavItem.tsx +0 -128
  524. package/src/components/Navbar/Navbar.tsx +0 -124
  525. package/src/components/Navbar/index.ts +0 -6
@@ -36,7 +36,7 @@ export const useDropdown = ({
36
36
  onOpenChange,
37
37
  closeOnClickOutside = true,
38
38
  closeOnEscape = true,
39
- id
39
+ id,
40
40
  }: UseDropdownProps): UseDropdownReturn => {
41
41
  // Generate unique ID for the dropdown menu
42
42
  const uniqueId = useRef(`dropdown-${id || Math.random().toString(36).substring(2, 9)}`);
@@ -48,15 +48,18 @@ export const useDropdown = ({
48
48
  const isOpen = controlledIsOpen !== undefined ? controlledIsOpen : uncontrolledIsOpen;
49
49
 
50
50
  // Callback to update open state with notification to parent
51
- const setIsOpen = useCallback((nextIsOpen: boolean) => {
52
- if (controlledIsOpen === undefined) {
53
- setUncontrolledIsOpen(nextIsOpen);
54
- }
51
+ const setIsOpen = useCallback(
52
+ (nextIsOpen: boolean) => {
53
+ if (controlledIsOpen === undefined) {
54
+ setUncontrolledIsOpen(nextIsOpen);
55
+ }
55
56
 
56
- if (onOpenChange) {
57
- onOpenChange(nextIsOpen);
58
- }
59
- }, [controlledIsOpen, onOpenChange]);
57
+ if (onOpenChange) {
58
+ onOpenChange(nextIsOpen);
59
+ }
60
+ },
61
+ [controlledIsOpen, onOpenChange]
62
+ );
60
63
 
61
64
  // Refs for trigger and dropdown menu elements
62
65
  const triggerRef = useRef<HTMLElement>(null);
@@ -105,78 +108,90 @@ export const useDropdown = ({
105
108
  }, [isOpen, closeOnEscape, setIsOpen]);
106
109
 
107
110
  // Helper function to get the flipped placement if needed
108
- const getFlippedPlacement = useCallback((
109
- placement: DropdownPlacement,
110
- triggerRect: DOMRect,
111
- menuRect: DOMRect,
112
- offset: number
113
- ): DropdownPlacement => {
114
- const viewportWidth = window.innerWidth;
115
- const viewportHeight = window.innerHeight;
116
-
117
- // Start with the requested placement
118
- let newPlacement = placement;
119
-
120
- // Flip vertical placement if needed
121
- if (placement.startsWith('bottom') && triggerRect.bottom + menuRect.height + offset > viewportHeight) {
122
- newPlacement = placement.replace('bottom', 'top') as DropdownPlacement;
123
- } else if (placement.startsWith('top') && triggerRect.top - menuRect.height - offset < 0) {
124
- newPlacement = placement.replace('top', 'bottom') as DropdownPlacement;
125
- }
111
+ const getFlippedPlacement = useCallback(
112
+ (
113
+ placement: DropdownPlacement,
114
+ triggerRect: DOMRect,
115
+ menuRect: DOMRect,
116
+ offset: number
117
+ ): DropdownPlacement => {
118
+ const viewportWidth = window.innerWidth;
119
+ const viewportHeight = window.innerHeight;
120
+
121
+ // Start with the requested placement
122
+ let newPlacement = placement;
123
+
124
+ // Flip vertical placement if needed
125
+ if (
126
+ placement.startsWith('bottom') &&
127
+ triggerRect.bottom + menuRect.height + offset > viewportHeight
128
+ ) {
129
+ newPlacement = placement.replace('bottom', 'top') as DropdownPlacement;
130
+ } else if (placement.startsWith('top') && triggerRect.top - menuRect.height - offset < 0) {
131
+ newPlacement = placement.replace('top', 'bottom') as DropdownPlacement;
132
+ }
126
133
 
127
- // Flip horizontal placement if needed
128
- if (placement.startsWith('left') && triggerRect.left - menuRect.width - offset < 0) {
129
- newPlacement = placement.replace('left', 'right') as DropdownPlacement;
130
- } else if (placement.startsWith('right') && triggerRect.right + menuRect.width + offset > viewportWidth) {
131
- newPlacement = placement.replace('right', 'left') as DropdownPlacement;
132
- }
134
+ // Flip horizontal placement if needed
135
+ if (placement.startsWith('left') && triggerRect.left - menuRect.width - offset < 0) {
136
+ newPlacement = placement.replace('left', 'right') as DropdownPlacement;
137
+ } else if (
138
+ placement.startsWith('right') &&
139
+ triggerRect.right + menuRect.width + offset > viewportWidth
140
+ ) {
141
+ newPlacement = placement.replace('right', 'left') as DropdownPlacement;
142
+ }
133
143
 
134
- // Adjust alignment for top/bottom placements
135
- if ((newPlacement.startsWith('top') || newPlacement.startsWith('bottom'))) {
136
- if (newPlacement.endsWith('start') && triggerRect.left + menuRect.width > viewportWidth) {
137
- newPlacement = newPlacement.replace('start', 'end') as DropdownPlacement;
138
- } else if (newPlacement.endsWith('end') && triggerRect.right - menuRect.width < 0) {
139
- newPlacement = newPlacement.replace('end', 'start') as DropdownPlacement;
144
+ // Adjust alignment for top/bottom placements
145
+ if (newPlacement.startsWith('top') || newPlacement.startsWith('bottom')) {
146
+ if (newPlacement.endsWith('start') && triggerRect.left + menuRect.width > viewportWidth) {
147
+ newPlacement = newPlacement.replace('start', 'end') as DropdownPlacement;
148
+ } else if (newPlacement.endsWith('end') && triggerRect.right - menuRect.width < 0) {
149
+ newPlacement = newPlacement.replace('end', 'start') as DropdownPlacement;
150
+ }
140
151
  }
141
- }
142
152
 
143
- return newPlacement;
144
- }, []);
153
+ return newPlacement;
154
+ },
155
+ []
156
+ );
145
157
 
146
158
  // Helper function to calculate position based on placement
147
- const calculatePosition = useCallback((
148
- placement: DropdownPlacement,
149
- triggerRect: DOMRect,
150
- menuRect: DOMRect,
151
- offset: number
152
- ): { top: number; left: number } => {
153
- let top = 0;
154
- let left = 0;
155
-
156
- // Vertical positioning
157
- if (placement.startsWith('bottom')) {
158
- top = triggerRect.height + offset;
159
- } else if (placement.startsWith('top')) {
160
- top = -menuRect.height - offset;
161
- } else if (placement.startsWith('left') || placement.startsWith('right')) {
162
- top = (triggerRect.height / 2) - (menuRect.height / 2);
163
- }
159
+ const calculatePosition = useCallback(
160
+ (
161
+ placement: DropdownPlacement,
162
+ triggerRect: DOMRect,
163
+ menuRect: DOMRect,
164
+ offset: number
165
+ ): { top: number; left: number } => {
166
+ let top = 0;
167
+ let left = 0;
168
+
169
+ // Vertical positioning
170
+ if (placement.startsWith('bottom')) {
171
+ top = triggerRect.height + offset;
172
+ } else if (placement.startsWith('top')) {
173
+ top = -menuRect.height - offset;
174
+ } else if (placement.startsWith('left') || placement.startsWith('right')) {
175
+ top = triggerRect.height / 2 - menuRect.height / 2;
176
+ }
164
177
 
165
- // Horizontal positioning
166
- if (placement.startsWith('left')) {
167
- left = -menuRect.width - offset;
168
- } else if (placement.startsWith('right')) {
169
- left = triggerRect.width + offset;
170
- } else if (placement.endsWith('start')) {
171
- left = 0;
172
- } else if (placement.endsWith('end')) {
173
- left = triggerRect.width - menuRect.width;
174
- } else {
175
- left = (triggerRect.width / 2) - (menuRect.width / 2);
176
- }
178
+ // Horizontal positioning
179
+ if (placement.startsWith('left')) {
180
+ left = -menuRect.width - offset;
181
+ } else if (placement.startsWith('right')) {
182
+ left = triggerRect.width + offset;
183
+ } else if (placement.endsWith('start')) {
184
+ left = 0;
185
+ } else if (placement.endsWith('end')) {
186
+ left = triggerRect.width - menuRect.width;
187
+ } else {
188
+ left = triggerRect.width / 2 - menuRect.width / 2;
189
+ }
177
190
 
178
- return { top, left };
179
- }, []);
191
+ return { top, left };
192
+ },
193
+ []
194
+ );
180
195
 
181
196
  // Calculate and update dropdown position
182
197
  const updatePosition = useCallback(() => {
@@ -252,6 +267,6 @@ export const useDropdown = ({
252
267
  menuRef,
253
268
  dropdownId: uniqueId.current,
254
269
  currentPlacement,
255
- updatePosition
270
+ updatePosition,
256
271
  };
257
- };
272
+ };
@@ -16,7 +16,7 @@ export function useEdgePanel(initialProps?: Partial<EdgePanelProps>) {
16
16
  backdrop: true,
17
17
  closeOnBackdropClick: true,
18
18
  closeOnEscape: true,
19
- ...initialProps
19
+ ...initialProps,
20
20
  };
21
21
 
22
22
  const [isOpen, setIsOpen] = useState(defaultProps.isOpen || false);
@@ -29,29 +29,26 @@ export function useEdgePanel(initialProps?: Partial<EdgePanelProps>) {
29
29
  * @returns Class string
30
30
  */
31
31
  const generateEdgePanelClass = (props: Partial<EdgePanelProps>): string => {
32
- const {
33
- position = defaultProps.position,
34
- className = '',
35
- isOpen: propIsOpen,
36
- } = props;
32
+ const { position = defaultProps.position, className = '', isOpen: propIsOpen } = props;
37
33
 
38
34
  const baseClass = EDGE_PANEL.CLASSES.BASE;
39
35
  const positionClass = position ? `${baseClass}--${position}` : '';
40
36
  const openClass = (propIsOpen ?? isOpen) ? EDGE_PANEL.CLASSES.IS_OPEN : '';
41
-
37
+
42
38
  return `${baseClass} ${positionClass} ${openClass} ${className}`.trim();
43
39
  };
44
-
40
+
45
41
  /**
46
42
  * Adjust body padding in push mode
47
43
  */
48
44
  const adjustBodyPadding = useCallback(() => {
49
45
  if (!containerRef.current || defaultProps.mode !== 'push') return;
50
-
46
+
51
47
  const { position } = defaultProps;
52
- const size = position === 'top' || position === 'bottom'
53
- ? containerRef.current.clientHeight
54
- : containerRef.current.clientWidth;
48
+ const size =
49
+ position === 'top' || position === 'bottom'
50
+ ? containerRef.current.clientHeight
51
+ : containerRef.current.clientWidth;
55
52
 
56
53
  // Map position to CSS padding property
57
54
  let paddingProperty: string;
@@ -66,19 +63,19 @@ export function useEdgePanel(initialProps?: Partial<EdgePanelProps>) {
66
63
  // For top/bottom, capitalize first letter
67
64
  paddingProperty = `padding${position!.charAt(0).toUpperCase() + position!.slice(1)}`;
68
65
  }
69
-
66
+
70
67
  document.body.style[paddingProperty as any] = `${size}px`;
71
68
  document.body.classList.add('is-pushed');
72
69
  }, [defaultProps.mode, defaultProps.position]);
73
-
70
+
74
71
  /**
75
72
  * Reset body padding
76
73
  */
77
74
  const resetBodyPadding = useCallback(() => {
78
75
  if (defaultProps.mode !== 'push') return;
79
-
76
+
80
77
  const { position } = defaultProps;
81
-
78
+
82
79
  // Map position to CSS padding property
83
80
  let paddingProperty: string;
84
81
  switch (position) {
@@ -92,7 +89,7 @@ export function useEdgePanel(initialProps?: Partial<EdgePanelProps>) {
92
89
  // For top/bottom, capitalize first letter
93
90
  paddingProperty = `padding${position!.charAt(0).toUpperCase() + position!.slice(1)}`;
94
91
  }
95
-
92
+
96
93
  document.body.style[paddingProperty as any] = '';
97
94
  document.body.classList.remove('is-pushed');
98
95
  }, [defaultProps.mode, defaultProps.position]);
@@ -103,18 +100,18 @@ export function useEdgePanel(initialProps?: Partial<EdgePanelProps>) {
103
100
  const openPanel = useCallback(() => {
104
101
  setIsOpen(true);
105
102
  document.body.classList.add('is-edgepanel-open');
106
-
103
+
107
104
  if (containerRef.current) {
108
105
  const { mode } = defaultProps;
109
-
106
+
110
107
  // Only add animation if not in 'none' mode
111
108
  if (mode !== 'none') {
112
109
  // Add animation class first
113
110
  containerRef.current.classList.add('is-animating');
114
-
111
+
115
112
  // Force a reflow before starting the animation
116
113
  void containerRef.current.offsetHeight;
117
-
114
+
118
115
  // Remove animation class after animation completes
119
116
  const container = containerRef.current;
120
117
  setTimeout(() => {
@@ -123,16 +120,16 @@ export function useEdgePanel(initialProps?: Partial<EdgePanelProps>) {
123
120
  }
124
121
  }, EDGE_PANEL.ANIMATION_DURATION);
125
122
  }
126
-
123
+
127
124
  // Then set transform
128
125
  containerRef.current.style.transform = 'translate(0)';
129
-
126
+
130
127
  // If push mode, adjust body padding
131
128
  if (defaultProps.mode === 'push') {
132
129
  adjustBodyPadding();
133
130
  }
134
131
  }
135
-
132
+
136
133
  if (defaultProps.onOpenChange) {
137
134
  defaultProps.onOpenChange(true);
138
135
  }
@@ -144,37 +141,37 @@ export function useEdgePanel(initialProps?: Partial<EdgePanelProps>) {
144
141
  const closePanel = useCallback(() => {
145
142
  if (containerRef.current) {
146
143
  const { position, mode } = defaultProps;
147
-
144
+
148
145
  // Only add animation if not in 'none' mode
149
146
  if (mode !== 'none') {
150
147
  // Add animation class first
151
148
  containerRef.current.classList.add('is-animating-out');
152
-
149
+
153
150
  // Capture container for setTimeout
154
151
  const container = containerRef.current;
155
-
152
+
156
153
  setTimeout(() => {
157
154
  if (container) {
158
155
  container.classList.remove('is-animating-out');
159
156
  }
160
157
  }, EDGE_PANEL.ANIMATION_DURATION);
161
158
  }
162
-
159
+
163
160
  // Then set transform
164
161
  containerRef.current.style.transform = position ? EDGE_PANEL.TRANSFORM_VALUES[position] : '';
165
-
162
+
166
163
  // Reset body padding if push mode
167
164
  if (defaultProps.mode === 'push') {
168
165
  resetBodyPadding();
169
166
  }
170
-
167
+
171
168
  // Wait for animation to complete before hiding
172
169
  const hideDelay = mode === 'none' ? 0 : EDGE_PANEL.ANIMATION_DURATION;
173
-
170
+
174
171
  setTimeout(() => {
175
172
  setIsOpen(false);
176
173
  document.body.classList.remove('is-edgepanel-open');
177
-
174
+
178
175
  if (defaultProps.onOpenChange) {
179
176
  defaultProps.onOpenChange(false);
180
177
  }
@@ -182,7 +179,7 @@ export function useEdgePanel(initialProps?: Partial<EdgePanelProps>) {
182
179
  } else {
183
180
  setIsOpen(false);
184
181
  document.body.classList.remove('is-edgepanel-open');
185
-
182
+
186
183
  if (defaultProps.onOpenChange) {
187
184
  defaultProps.onOpenChange(false);
188
185
  }
@@ -192,20 +189,26 @@ export function useEdgePanel(initialProps?: Partial<EdgePanelProps>) {
192
189
  /**
193
190
  * Handle Escape key press
194
191
  */
195
- const handleEscapeKey = useCallback((event: KeyboardEvent) => {
196
- if (defaultProps.closeOnEscape && event.key === 'Escape' && isOpen) {
197
- closePanel();
198
- }
199
- }, [closePanel, defaultProps.closeOnEscape, isOpen]);
192
+ const handleEscapeKey = useCallback(
193
+ (event: KeyboardEvent) => {
194
+ if (defaultProps.closeOnEscape && event.key === 'Escape' && isOpen) {
195
+ closePanel();
196
+ }
197
+ },
198
+ [closePanel, defaultProps.closeOnEscape, isOpen]
199
+ );
200
200
 
201
201
  /**
202
202
  * Handle backdrop click
203
203
  */
204
- const handleBackdropClick = useCallback((event: React.MouseEvent<HTMLDivElement>) => {
205
- if (defaultProps.closeOnBackdropClick && event.target === event.currentTarget) {
206
- closePanel();
207
- }
208
- }, [closePanel, defaultProps.closeOnBackdropClick]);
204
+ const handleBackdropClick = useCallback(
205
+ (event: React.MouseEvent<HTMLDivElement>) => {
206
+ if (defaultProps.closeOnBackdropClick && event.target === event.currentTarget) {
207
+ closePanel();
208
+ }
209
+ },
210
+ [closePanel, defaultProps.closeOnBackdropClick]
211
+ );
209
212
 
210
213
  /**
211
214
  * Set up event listeners for keyboard events
@@ -214,7 +217,7 @@ export function useEdgePanel(initialProps?: Partial<EdgePanelProps>) {
214
217
  if (isOpen && defaultProps.closeOnEscape) {
215
218
  document.addEventListener('keydown', handleEscapeKey);
216
219
  }
217
-
220
+
218
221
  return () => {
219
222
  document.removeEventListener('keydown', handleEscapeKey);
220
223
  };
@@ -226,7 +229,7 @@ export function useEdgePanel(initialProps?: Partial<EdgePanelProps>) {
226
229
  useEffect(() => {
227
230
  if (containerRef.current) {
228
231
  const { position, mode } = defaultProps;
229
-
232
+
230
233
  if (!isOpen && (mode === 'slide' || mode === 'push') && position) {
231
234
  containerRef.current.style.transform = EDGE_PANEL.TRANSFORM_VALUES[position];
232
235
  }
@@ -253,6 +256,6 @@ export function useEdgePanel(initialProps?: Partial<EdgePanelProps>) {
253
256
  generateEdgePanelClass,
254
257
  openPanel,
255
258
  closePanel,
256
- handleBackdropClick
259
+ handleBackdropClick,
257
260
  };
258
- }
261
+ }
@@ -10,7 +10,7 @@ export function useForm(initialProps?: Partial<FormProps>) {
10
10
  // Default form properties
11
11
  const defaultProps: Partial<FormProps> = {
12
12
  disabled: false,
13
- ...initialProps
13
+ ...initialProps,
14
14
  };
15
15
 
16
16
  /**
@@ -19,13 +19,10 @@ export function useForm(initialProps?: Partial<FormProps>) {
19
19
  * @returns Class string
20
20
  */
21
21
  const generateFormClass = (props: Partial<FormProps>): string => {
22
- const {
23
- disabled = defaultProps.disabled,
24
- className = '',
25
- } = props;
22
+ const { disabled = defaultProps.disabled, className = '' } = props;
26
23
 
27
24
  const disabledClass = disabled ? FORM.CLASSES.DISABLED : '';
28
-
25
+
29
26
  return `${FORM.CLASSES.BASE} ${disabledClass} ${className}`.trim();
30
27
  };
31
28
 
@@ -62,4 +59,4 @@ export function useForm(initialProps?: Partial<FormProps>) {
62
59
  handleSubmit,
63
60
  handleReset,
64
61
  };
65
- }
62
+ }
@@ -13,7 +13,7 @@ export function useFormGroup(initialProps?: Partial<FormGroupProps>) {
13
13
  disabled: false,
14
14
  invalid: false,
15
15
  valid: false,
16
- ...initialProps
16
+ ...initialProps,
17
17
  };
18
18
 
19
19
  /**
@@ -30,18 +30,17 @@ export function useFormGroup(initialProps?: Partial<FormGroupProps>) {
30
30
  className = '',
31
31
  } = props;
32
32
 
33
- const sizeClass = size === 'md' ? '' : (
34
- size === 'sm' ? FORM_GROUP.CLASSES.SMALL : FORM_GROUP.CLASSES.LARGE
35
- );
36
-
37
- const validationClass = invalid
38
- ? FORM_GROUP.CLASSES.INVALID
39
- : valid
40
- ? FORM_GROUP.CLASSES.VALID
33
+ const sizeClass =
34
+ size === 'md' ? '' : size === 'sm' ? FORM_GROUP.CLASSES.SMALL : FORM_GROUP.CLASSES.LARGE;
35
+
36
+ const validationClass = invalid
37
+ ? FORM_GROUP.CLASSES.INVALID
38
+ : valid
39
+ ? FORM_GROUP.CLASSES.VALID
41
40
  : '';
42
-
41
+
43
42
  const disabledClass = disabled ? FORM_GROUP.CLASSES.DISABLED : '';
44
-
43
+
45
44
  return `${FORM_GROUP.CLASSES.BASE} ${sizeClass} ${validationClass} ${disabledClass} ${className}`.trim();
46
45
  };
47
46
 
@@ -49,4 +48,4 @@ export function useFormGroup(initialProps?: Partial<FormGroupProps>) {
49
48
  defaultProps,
50
49
  generateFormGroupClass,
51
50
  };
52
- }
51
+ }