@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
@@ -8,7 +8,7 @@ export type Size = 'sm' | 'md' | 'lg';
8
8
  /**
9
9
  * Theme color variants
10
10
  */
11
- export type ThemeColor =
11
+ export type ThemeColor =
12
12
  | 'primary'
13
13
  | 'secondary'
14
14
  | 'tertiary'
@@ -24,10 +24,7 @@ export type ThemeColor =
24
24
  /**
25
25
  * Component variant including theme colors and outline variants
26
26
  */
27
- export type Variant =
28
- | ThemeColor
29
- | `outline-${ThemeColor}`
30
- | 'link';
27
+ export type Variant = ThemeColor | `outline-${ThemeColor}` | 'link';
31
28
 
32
29
  /**
33
30
  * Base component properties interface
@@ -37,7 +34,7 @@ export interface BaseComponentProps {
37
34
  * Additional CSS class names
38
35
  */
39
36
  className?: string;
40
-
37
+
41
38
  /**
42
39
  * Component disabled state
43
40
  */
@@ -47,7 +44,7 @@ export interface BaseComponentProps {
47
44
  /**
48
45
  * CSS class state modifiers
49
46
  */
50
- export type StateModifier =
47
+ export type StateModifier =
51
48
  | 'is-open'
52
49
  | 'is-closed'
53
50
  | 'is-active'
@@ -72,22 +69,22 @@ export interface ListProps extends BaseComponentProps {
72
69
  * List items
73
70
  */
74
71
  items?: ReactNode[];
75
-
72
+
76
73
  /**
77
74
  * List variant
78
75
  */
79
76
  variant?: listvariant;
80
-
77
+
81
78
  /**
82
79
  * List size
83
80
  */
84
81
  size?: Size;
85
-
82
+
86
83
  /**
87
84
  * Whether the list is ordered
88
85
  */
89
86
  ordered?: boolean;
90
-
87
+
91
88
  /**
92
89
  * Whether to display list items inline
93
90
  */
@@ -102,12 +99,12 @@ export interface ListGroupProps extends BaseComponentProps {
102
99
  * List group children
103
100
  */
104
101
  children?: ReactNode;
105
-
102
+
106
103
  /**
107
104
  * List group variant
108
105
  */
109
106
  variant?: Variant;
110
-
107
+
111
108
  /**
112
109
  * List group size
113
110
  */
@@ -122,32 +119,32 @@ export interface ButtonProps extends BaseComponentProps {
122
119
  * Button contents
123
120
  */
124
121
  label: string;
125
-
122
+
126
123
  /**
127
124
  * Optional click handler
128
125
  */
129
126
  onClick?: () => void;
130
-
127
+
131
128
  /**
132
129
  * Button variant
133
130
  */
134
131
  variant?: Variant;
135
-
132
+
136
133
  /**
137
134
  * Button size
138
135
  */
139
136
  size?: Size;
140
-
137
+
141
138
  /**
142
139
  * Optional icon
143
140
  */
144
141
  icon?: ReactNode;
145
-
142
+
146
143
  /**
147
144
  * Icon only button
148
145
  */
149
146
  iconOnly?: boolean;
150
-
147
+
151
148
  /**
152
149
  * Make button fully rounded (pill shape)
153
150
  */
@@ -162,17 +159,17 @@ export interface BadgeProps extends BaseComponentProps {
162
159
  * Badge text content
163
160
  */
164
161
  label: string;
165
-
162
+
166
163
  /**
167
164
  * Badge color variant
168
165
  */
169
166
  variant?: ThemeColor;
170
-
167
+
171
168
  /**
172
169
  * Badge size
173
170
  */
174
171
  size?: Size;
175
-
172
+
176
173
  /**
177
174
  * Optional icon
178
175
  */
@@ -187,37 +184,37 @@ export interface CalloutProps extends BaseComponentProps {
187
184
  * Callout title
188
185
  */
189
186
  title?: ReactNode;
190
-
187
+
191
188
  /**
192
189
  * Callout content
193
190
  */
194
191
  children?: ReactNode;
195
-
192
+
196
193
  /**
197
194
  * Optional icon
198
195
  */
199
196
  icon?: ReactNode;
200
-
197
+
201
198
  /**
202
199
  * Callout variant
203
200
  */
204
201
  variant?: ThemeColor;
205
-
202
+
206
203
  /**
207
204
  * Optional close handler
208
205
  */
209
206
  onClose?: () => void;
210
-
207
+
211
208
  /**
212
209
  * Optional action buttons
213
210
  */
214
211
  actions?: ReactNode;
215
-
212
+
216
213
  /**
217
214
  * Display in one line mode
218
215
  */
219
216
  oneLine?: boolean;
220
-
217
+
221
218
  /**
222
219
  * Display as toast notification
223
220
  */
@@ -232,22 +229,22 @@ export interface AccordionProps extends BaseComponentProps {
232
229
  * Title of the accordion
233
230
  */
234
231
  title: string;
235
-
232
+
236
233
  /**
237
234
  * Content to be shown when accordion is expanded
238
235
  */
239
236
  children: ReactNode;
240
-
237
+
241
238
  /**
242
239
  * Whether the accordion is initially open
243
240
  */
244
241
  defaultOpen?: boolean;
245
-
242
+
246
243
  /**
247
244
  * Position of the icon (right or left)
248
245
  */
249
246
  iconPosition?: IconPosition;
250
-
247
+
251
248
  /**
252
249
  * Custom icon for the accordion
253
250
  */
@@ -262,7 +259,7 @@ export interface AccordionState {
262
259
  * Whether the accordion is open
263
260
  */
264
261
  isOpen: boolean;
265
-
262
+
266
263
  /**
267
264
  * Current panel height CSS value
268
265
  */
@@ -291,57 +288,57 @@ export interface HeroProps extends BaseComponentProps {
291
288
  * Hero title
292
289
  */
293
290
  title: string;
294
-
291
+
295
292
  /**
296
293
  * Hero subtitle
297
294
  */
298
295
  subtitle?: string;
299
-
296
+
300
297
  /**
301
298
  * Hero text content
302
299
  */
303
300
  text?: string;
304
-
301
+
305
302
  /**
306
303
  * Image source for the hero
307
304
  */
308
305
  imageSrc?: string;
309
-
306
+
310
307
  /**
311
308
  * Image alt text
312
309
  */
313
310
  imageAlt?: string;
314
-
311
+
315
312
  /**
316
313
  * Content alignment
317
314
  */
318
315
  alignment?: HeroAlignment;
319
-
316
+
320
317
  /**
321
318
  * Background image source
322
319
  */
323
320
  backgroundImageSrc?: string;
324
-
321
+
325
322
  /**
326
323
  * Whether to show the background overlay
327
324
  */
328
325
  showOverlay?: boolean;
329
-
326
+
330
327
  /**
331
328
  * Whether the hero should take full viewport height
332
329
  */
333
330
  fullViewportHeight?: boolean;
334
-
331
+
335
332
  /**
336
333
  * Actions to display in the hero
337
334
  */
338
335
  actions?: ReactNode;
339
-
336
+
340
337
  /**
341
338
  * Custom grid column size for image (default is 7)
342
339
  */
343
340
  imageColSize?: number;
344
-
341
+
345
342
  /**
346
343
  * Custom grid column size for content (default is 5)
347
344
  */
@@ -351,22 +348,22 @@ export interface HeroProps extends BaseComponentProps {
351
348
  * Custom width for the hero content (overrides the default CSS variable)
352
349
  */
353
350
  contentWidth?: string;
354
-
351
+
355
352
  /**
356
353
  * Enable parallax effect on background image
357
354
  */
358
355
  parallax?: boolean;
359
-
356
+
360
357
  /**
361
358
  * Parallax effect intensity (0-1)
362
359
  */
363
360
  parallaxIntensity?: number;
364
-
361
+
365
362
  /**
366
363
  * Video background URL
367
364
  */
368
365
  videoBackground?: string;
369
-
366
+
370
367
  /**
371
368
  * Video background options
372
369
  */
@@ -375,17 +372,17 @@ export interface HeroProps extends BaseComponentProps {
375
372
  * Whether the video should autoplay
376
373
  */
377
374
  autoplay?: boolean;
378
-
375
+
379
376
  /**
380
377
  * Whether the video should loop
381
378
  */
382
379
  loop?: boolean;
383
-
380
+
384
381
  /**
385
382
  * Whether the video should be muted
386
383
  */
387
384
  muted?: boolean;
388
-
385
+
389
386
  /**
390
387
  * Poster image URL for the video
391
388
  */
@@ -401,12 +398,12 @@ export interface SpinnerProps extends BaseComponentProps {
401
398
  * Spinner color variant
402
399
  */
403
400
  variant?: ThemeColor;
404
-
401
+
405
402
  /**
406
403
  * Spinner size
407
404
  */
408
405
  size?: Size;
409
-
406
+
410
407
  /**
411
408
  * Whether the spinner should be displayed fullscreen
412
409
  */
@@ -423,6 +420,11 @@ export type NavbarPosition = 'static' | 'fixed' | 'fixed-bottom';
423
420
  */
424
421
  export type NavAlignment = 'start' | 'center' | 'end';
425
422
 
423
+ /**
424
+ * Nav variant options
425
+ */
426
+ export type NavVariant = 'default' | 'float-top-center' | 'float-bottom-center';
427
+
426
428
  /**
427
429
  * Navbar component properties
428
430
  */
@@ -431,41 +433,66 @@ export interface NavbarProps extends BaseComponentProps {
431
433
  * Brand/logo component or text
432
434
  */
433
435
  brand?: ReactNode;
434
-
436
+
435
437
  /**
436
438
  * Navbar navigation items
437
439
  */
438
440
  children?: ReactNode;
439
-
441
+
440
442
  /**
441
443
  * Optional variant/color scheme
442
444
  */
443
445
  variant?: ThemeColor;
444
-
446
+
445
447
  /**
446
448
  * Navbar position
447
449
  */
448
450
  position?: NavbarPosition;
449
-
451
+
450
452
  /**
451
453
  * Container max width (default is from settings)
452
454
  */
453
455
  containerWidth?: string;
454
-
456
+
455
457
  /**
456
458
  * Whether to collapse navbar on mobile
457
459
  */
458
460
  collapsible?: boolean;
459
-
461
+
460
462
  /**
461
463
  * Whether navbar is expanded (for controlled component)
462
464
  */
463
465
  expanded?: boolean;
464
-
466
+
465
467
  /**
466
468
  * Callback when expansion state changes
467
469
  */
468
470
  onToggle?: (expanded: boolean) => void;
471
+
472
+ /**
473
+ * Whether to show backdrop when expanded on mobile
474
+ */
475
+ backdrop?: boolean;
476
+
477
+ /**
478
+ * Whether to close navbar when clicking outside
479
+ */
480
+ closeOnOutsideClick?: boolean;
481
+
482
+ /**
483
+ * Whether to close navbar on escape key press
484
+ */
485
+ closeOnEscape?: boolean;
486
+
487
+ /**
488
+ * Custom aria-label for the navigation
489
+ */
490
+ ariaLabel?: string;
491
+
492
+ /**
493
+ * ID for the navbar (used for accessibility)
494
+ */
495
+ id?: string;
469
496
  }
470
497
 
471
498
  /**
@@ -476,11 +503,16 @@ export interface NavProps extends BaseComponentProps {
476
503
  * Navigation items
477
504
  */
478
505
  children: ReactNode;
479
-
506
+
480
507
  /**
481
508
  * Alignment of nav items
482
509
  */
483
510
  alignment?: NavAlignment;
511
+
512
+ /**
513
+ * Nav variant (including float variants)
514
+ */
515
+ variant?: NavVariant;
484
516
  }
485
517
 
486
518
  /**
@@ -491,32 +523,32 @@ export interface NavItemProps extends BaseComponentProps {
491
523
  * Item content
492
524
  */
493
525
  children: ReactNode;
494
-
526
+
495
527
  /**
496
528
  * Whether this item has a dropdown
497
529
  */
498
530
  dropdown?: boolean;
499
-
531
+
500
532
  /**
501
533
  * Whether this item has a mega menu
502
534
  */
503
535
  megaMenu?: boolean;
504
-
536
+
505
537
  /**
506
538
  * Whether this item is active
507
539
  */
508
540
  active?: boolean;
509
-
541
+
510
542
  /**
511
543
  * Optional href for link items
512
544
  */
513
545
  href?: string;
514
-
546
+
515
547
  /**
516
548
  * Optional click handler
517
549
  */
518
550
  onClick?: () => void;
519
-
551
+
520
552
  /**
521
553
  * Whether dropdown/mega menu is expanded
522
554
  */
@@ -531,17 +563,17 @@ export interface NavDropdownProps extends BaseComponentProps {
531
563
  * Dropdown title/trigger content
532
564
  */
533
565
  title: ReactNode;
534
-
566
+
535
567
  /**
536
568
  * Dropdown menu items
537
569
  */
538
570
  children: ReactNode;
539
-
571
+
540
572
  /**
541
573
  * Dropdown alignment
542
574
  */
543
575
  alignment?: 'start' | 'center' | 'end';
544
-
576
+
545
577
  /**
546
578
  * Whether it's a mega menu (full width)
547
579
  */
@@ -566,22 +598,22 @@ export interface MenuItemProps extends BaseComponentProps {
566
598
  * Item content
567
599
  */
568
600
  children: ReactNode;
569
-
601
+
570
602
  /**
571
603
  * Item href
572
604
  */
573
605
  href?: string;
574
-
606
+
575
607
  /**
576
608
  * Item icon
577
609
  */
578
610
  icon?: ReactNode;
579
-
611
+
580
612
  /**
581
613
  * Whether item is active
582
614
  */
583
615
  active?: boolean;
584
-
616
+
585
617
  /**
586
618
  * Item click handler
587
619
  */
@@ -606,17 +638,17 @@ export interface MegaMenuColumnProps extends BaseComponentProps {
606
638
  * Column title
607
639
  */
608
640
  title?: ReactNode;
609
-
641
+
610
642
  /**
611
643
  * Column icon
612
644
  */
613
645
  icon?: ReactNode;
614
-
646
+
615
647
  /**
616
648
  * Column content
617
649
  */
618
650
  children: ReactNode;
619
-
651
+
620
652
  /**
621
653
  * Column width (auto by default)
622
654
  */
@@ -631,18 +663,108 @@ export interface MegaMenuLinkProps extends BaseComponentProps {
631
663
  * Link href
632
664
  */
633
665
  href: string;
634
-
666
+
635
667
  /**
636
668
  * Link content
637
669
  */
638
670
  children: ReactNode;
639
-
671
+
640
672
  /**
641
673
  * Link click handler
642
674
  */
643
675
  onClick?: () => void;
644
676
  }
645
677
 
678
+ /**
679
+ * SideMenu component properties
680
+ */
681
+ export interface SideMenuProps extends BaseComponentProps {
682
+ /**
683
+ * Menu title displayed at the top
684
+ */
685
+ title?: ReactNode;
686
+
687
+ /**
688
+ * Menu content (typically SideMenuList components)
689
+ */
690
+ children: ReactNode;
691
+
692
+ /**
693
+ * Whether the menu is open (for controlled component)
694
+ */
695
+ isOpen?: boolean;
696
+
697
+ /**
698
+ * Callback when menu open state changes
699
+ */
700
+ onToggle?: (isOpen: boolean) => void;
701
+
702
+ /**
703
+ * Whether the menu is collapsible on mobile
704
+ */
705
+ collapsible?: boolean;
706
+
707
+ /**
708
+ * Custom toggle icon
709
+ */
710
+ toggleIcon?: ReactNode;
711
+
712
+ /**
713
+ * ID for the menu (used for accessibility)
714
+ */
715
+ id?: string;
716
+ }
717
+
718
+ /**
719
+ * SideMenuList component properties
720
+ */
721
+ export interface SideMenuListProps extends BaseComponentProps {
722
+ /**
723
+ * List items (typically SideMenuItem components)
724
+ */
725
+ children: ReactNode;
726
+ }
727
+
728
+ /**
729
+ * SideMenuItem component properties
730
+ */
731
+ export interface SideMenuItemProps extends BaseComponentProps {
732
+ /**
733
+ * Item content
734
+ */
735
+ children: ReactNode;
736
+
737
+ /**
738
+ * Item href (renders as link)
739
+ */
740
+ href?: string;
741
+
742
+ /**
743
+ * Item click handler (renders as button if no href)
744
+ */
745
+ onClick?: (event: React.MouseEvent) => void;
746
+
747
+ /**
748
+ * Whether this item is active/current
749
+ */
750
+ active?: boolean;
751
+
752
+ /**
753
+ * Optional icon for the item
754
+ */
755
+ icon?: ReactNode;
756
+
757
+ /**
758
+ * Link target attribute
759
+ */
760
+ target?: string;
761
+
762
+ /**
763
+ * Link rel attribute
764
+ */
765
+ rel?: string;
766
+ }
767
+
646
768
  /**
647
769
  * EdgePanel position options
648
770
  */
@@ -661,42 +783,42 @@ export interface EdgePanelProps extends BaseComponentProps {
661
783
  * Panel title
662
784
  */
663
785
  title?: ReactNode;
664
-
786
+
665
787
  /**
666
788
  * Panel content
667
789
  */
668
790
  children: ReactNode;
669
-
791
+
670
792
  /**
671
793
  * Panel position
672
794
  */
673
795
  position?: EdgePanelPosition;
674
-
796
+
675
797
  /**
676
798
  * Animation mode
677
799
  */
678
800
  mode?: EdgePanelMode;
679
-
801
+
680
802
  /**
681
803
  * Whether the panel is open
682
804
  */
683
805
  isOpen?: boolean;
684
-
806
+
685
807
  /**
686
808
  * Open/close callback
687
809
  */
688
810
  onOpenChange?: (open: boolean) => void;
689
-
811
+
690
812
  /**
691
813
  * Show backdrop
692
814
  */
693
815
  backdrop?: boolean;
694
-
816
+
695
817
  /**
696
818
  * Close when clicking backdrop
697
819
  */
698
820
  closeOnBackdropClick?: boolean;
699
-
821
+
700
822
  /**
701
823
  * Close when pressing escape key
702
824
  */
@@ -711,27 +833,27 @@ export interface DataTableColumn {
711
833
  * Unique identifier for the column
712
834
  */
713
835
  key: string;
714
-
836
+
715
837
  /**
716
838
  * Display title for the column
717
839
  */
718
840
  title: string;
719
-
841
+
720
842
  /**
721
843
  * Whether the column is sortable
722
844
  */
723
845
  sortable?: boolean;
724
-
846
+
725
847
  /**
726
848
  * Whether the column is filterable
727
849
  */
728
850
  filterable?: boolean;
729
-
851
+
730
852
  /**
731
853
  * Custom render function for the cell
732
854
  */
733
855
  render?: (value: any, row: any) => React.ReactNode;
734
-
856
+
735
857
  /**
736
858
  * Width of the column (CSS value)
737
859
  */
@@ -746,7 +868,7 @@ export interface SortConfig {
746
868
  * Column key to sort by
747
869
  */
748
870
  key: string;
749
-
871
+
750
872
  /**
751
873
  * Sort direction
752
874
  */
@@ -761,62 +883,62 @@ export interface DataTableProps extends BaseComponentProps {
761
883
  * Data array to display in the table
762
884
  */
763
885
  data: any[];
764
-
886
+
765
887
  /**
766
888
  * Column definitions
767
889
  */
768
890
  columns: DataTableColumn[];
769
-
891
+
770
892
  /**
771
893
  * Whether the table is sortable
772
894
  */
773
895
  sortable?: boolean;
774
-
896
+
775
897
  /**
776
898
  * Whether the table is filterable
777
899
  */
778
900
  filterable?: boolean;
779
-
901
+
780
902
  /**
781
903
  * Whether the table is paginated
782
904
  */
783
905
  paginated?: boolean;
784
-
906
+
785
907
  /**
786
908
  * Number of rows per page
787
909
  */
788
910
  pageSize?: number;
789
-
911
+
790
912
  /**
791
913
  * Whether to show alternating row colors
792
914
  */
793
915
  striped?: boolean;
794
-
916
+
795
917
  /**
796
918
  * Whether to show borders around cells
797
919
  */
798
920
  bordered?: boolean;
799
-
921
+
800
922
  /**
801
923
  * Whether to use compact styling
802
924
  */
803
925
  dense?: boolean;
804
-
926
+
805
927
  /**
806
928
  * Whether the table is in loading state
807
929
  */
808
930
  loading?: boolean;
809
-
931
+
810
932
  /**
811
933
  * Message to display when there is no data
812
934
  */
813
935
  emptyMessage?: string;
814
-
936
+
815
937
  /**
816
938
  * Callback when a row is clicked
817
939
  */
818
940
  onRowClick?: (row: any) => void;
819
-
941
+
820
942
  /**
821
943
  * Callback when sorting changes
822
944
  */
@@ -831,32 +953,32 @@ export interface PaginationProps extends BaseComponentProps {
831
953
  * Current active page
832
954
  */
833
955
  currentPage: number;
834
-
956
+
835
957
  /**
836
958
  * Total number of pages
837
959
  */
838
960
  totalPages: number;
839
-
961
+
840
962
  /**
841
963
  * Callback function when page changes
842
964
  */
843
965
  onPageChange: (page: number) => void;
844
-
966
+
845
967
  /**
846
968
  * Number of page links to show before and after current page
847
969
  */
848
970
  siblingCount?: number;
849
-
971
+
850
972
  /**
851
973
  * Whether to show first/last page buttons
852
974
  */
853
975
  showFirstLastButtons?: boolean;
854
-
976
+
855
977
  /**
856
978
  * Whether to show previous/next page buttons
857
979
  */
858
980
  showPrevNextButtons?: boolean;
859
-
981
+
860
982
  /**
861
983
  * Custom class for the pagination container
862
984
  */
@@ -881,12 +1003,12 @@ export interface TodoItem {
881
1003
  * Unique identifier for the todo
882
1004
  */
883
1005
  id: string;
884
-
1006
+
885
1007
  /**
886
1008
  * Todo item text
887
1009
  */
888
1010
  text: string;
889
-
1011
+
890
1012
  /**
891
1013
  * Whether the todo is completed
892
1014
  */
@@ -901,37 +1023,37 @@ export interface TodoProps extends BaseComponentProps {
901
1023
  * List of todo items
902
1024
  */
903
1025
  items: TodoItem[];
904
-
1026
+
905
1027
  /**
906
1028
  * Callback when a todo item is added
907
1029
  */
908
1030
  onAddTodo?: (text: string) => void;
909
-
1031
+
910
1032
  /**
911
1033
  * Callback when a todo item is toggled
912
1034
  */
913
1035
  onToggleTodo?: (id: string) => void;
914
-
1036
+
915
1037
  /**
916
1038
  * Callback when a todo item is deleted
917
1039
  */
918
1040
  onDeleteTodo?: (id: string) => void;
919
-
1041
+
920
1042
  /**
921
1043
  * Title of the todo list
922
1044
  */
923
1045
  title?: string;
924
-
1046
+
925
1047
  /**
926
1048
  * Size variant for the todo component
927
1049
  */
928
1050
  size?: Size;
929
-
1051
+
930
1052
  /**
931
1053
  * Placeholder text for the new todo input
932
1054
  */
933
1055
  placeholder?: string;
934
-
1056
+
935
1057
  /**
936
1058
  * Whether to show the completed todos
937
1059
  */
@@ -946,37 +1068,37 @@ export interface FormProps extends BaseComponentProps {
946
1068
  * Form content
947
1069
  */
948
1070
  children: ReactNode;
949
-
1071
+
950
1072
  /**
951
1073
  * Form submit handler
952
1074
  */
953
1075
  onSubmit?: (event: React.FormEvent<HTMLFormElement>) => void;
954
-
1076
+
955
1077
  /**
956
1078
  * Form reset handler
957
1079
  */
958
1080
  onReset?: (event: React.FormEvent<HTMLFormElement>) => void;
959
-
1081
+
960
1082
  /**
961
1083
  * Form ID
962
1084
  */
963
1085
  id?: string;
964
-
1086
+
965
1087
  /**
966
1088
  * Form method
967
1089
  */
968
1090
  method?: 'get' | 'post';
969
-
1091
+
970
1092
  /**
971
1093
  * Form encoding type
972
1094
  */
973
1095
  encType?: string;
974
-
1096
+
975
1097
  /**
976
1098
  * Whether to disable HTML5 validation
977
1099
  */
978
1100
  noValidate?: boolean;
979
-
1101
+
980
1102
  /**
981
1103
  * Form autocomplete setting
982
1104
  */
@@ -991,37 +1113,37 @@ export interface FormGroupProps extends BaseComponentProps {
991
1113
  * Form control content
992
1114
  */
993
1115
  children: ReactNode;
994
-
1116
+
995
1117
  /**
996
1118
  * Label text
997
1119
  */
998
1120
  label?: string;
999
-
1121
+
1000
1122
  /**
1001
1123
  * Helper text displayed below the input
1002
1124
  */
1003
1125
  helperText?: ReactNode;
1004
-
1126
+
1005
1127
  /**
1006
1128
  * ID of the form control this label is for
1007
1129
  */
1008
1130
  htmlFor?: string;
1009
-
1131
+
1010
1132
  /**
1011
1133
  * Whether the field is required
1012
1134
  */
1013
1135
  required?: boolean;
1014
-
1136
+
1015
1137
  /**
1016
1138
  * Whether the field is invalid
1017
1139
  */
1018
1140
  invalid?: boolean;
1019
-
1141
+
1020
1142
  /**
1021
1143
  * Whether the field is valid
1022
1144
  */
1023
1145
  valid?: boolean;
1024
-
1146
+
1025
1147
  /**
1026
1148
  * Size variant
1027
1149
  */
@@ -1036,117 +1158,117 @@ export interface InputProps extends BaseComponentProps {
1036
1158
  * Input type
1037
1159
  */
1038
1160
  type?: string;
1039
-
1161
+
1040
1162
  /**
1041
1163
  * Input value
1042
1164
  */
1043
1165
  value?: string | number;
1044
-
1166
+
1045
1167
  /**
1046
1168
  * Change handler
1047
1169
  */
1048
1170
  onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
1049
-
1171
+
1050
1172
  /**
1051
1173
  * Blur handler
1052
1174
  */
1053
1175
  onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;
1054
-
1176
+
1055
1177
  /**
1056
1178
  * Focus handler
1057
1179
  */
1058
1180
  onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;
1059
-
1181
+
1060
1182
  /**
1061
1183
  * Placeholder text
1062
1184
  */
1063
1185
  placeholder?: string;
1064
-
1186
+
1065
1187
  /**
1066
1188
  * Whether the input is required
1067
1189
  */
1068
1190
  required?: boolean;
1069
-
1191
+
1070
1192
  /**
1071
1193
  * Whether the input is read-only
1072
1194
  */
1073
1195
  readOnly?: boolean;
1074
-
1196
+
1075
1197
  /**
1076
1198
  * Input ID
1077
1199
  */
1078
1200
  id?: string;
1079
-
1201
+
1080
1202
  /**
1081
1203
  * Input name
1082
1204
  */
1083
1205
  name?: string;
1084
-
1206
+
1085
1207
  /**
1086
1208
  * Autocomplete attribute
1087
1209
  */
1088
1210
  autoComplete?: string;
1089
-
1211
+
1090
1212
  /**
1091
1213
  * Whether the input should receive focus on render
1092
1214
  */
1093
1215
  autoFocus?: boolean;
1094
-
1216
+
1095
1217
  /**
1096
1218
  * Size variant
1097
1219
  */
1098
1220
  size?: Size;
1099
-
1221
+
1100
1222
  /**
1101
1223
  * Color variant
1102
1224
  */
1103
1225
  variant?: ThemeColor;
1104
-
1226
+
1105
1227
  /**
1106
1228
  * Whether the input is invalid
1107
1229
  */
1108
1230
  invalid?: boolean;
1109
-
1231
+
1110
1232
  /**
1111
1233
  * Whether the input is valid
1112
1234
  */
1113
1235
  valid?: boolean;
1114
-
1236
+
1115
1237
  /**
1116
1238
  * Maximum length
1117
1239
  */
1118
1240
  maxLength?: number;
1119
-
1241
+
1120
1242
  /**
1121
1243
  * Minimum length
1122
1244
  */
1123
1245
  minLength?: number;
1124
-
1246
+
1125
1247
  /**
1126
1248
  * Input pattern
1127
1249
  */
1128
1250
  pattern?: string;
1129
-
1251
+
1130
1252
  /**
1131
1253
  * Minimum value (for number inputs)
1132
1254
  */
1133
1255
  min?: number | string;
1134
-
1256
+
1135
1257
  /**
1136
1258
  * Maximum value (for number inputs)
1137
1259
  */
1138
1260
  max?: number | string;
1139
-
1261
+
1140
1262
  /**
1141
1263
  * Step value (for number inputs)
1142
1264
  */
1143
1265
  step?: number | string;
1144
-
1266
+
1145
1267
  /**
1146
1268
  * Accessible label (if no visible label)
1147
1269
  */
1148
1270
  ariaLabel?: string;
1149
-
1271
+
1150
1272
  /**
1151
1273
  * ID of element that describes this input
1152
1274
  */
@@ -1161,12 +1283,12 @@ export interface SelectOption {
1161
1283
  * Option value
1162
1284
  */
1163
1285
  value: string;
1164
-
1286
+
1165
1287
  /**
1166
1288
  * Option display label
1167
1289
  */
1168
1290
  label: string;
1169
-
1291
+
1170
1292
  /**
1171
1293
  * Whether the option is disabled
1172
1294
  */
@@ -1181,72 +1303,72 @@ export interface SelectProps extends BaseComponentProps {
1181
1303
  * Select options
1182
1304
  */
1183
1305
  options: SelectOption[];
1184
-
1306
+
1185
1307
  /**
1186
1308
  * Selected value(s)
1187
1309
  */
1188
1310
  value?: string | string[];
1189
-
1311
+
1190
1312
  /**
1191
1313
  * Change handler
1192
1314
  */
1193
1315
  onChange?: (event: React.ChangeEvent<HTMLSelectElement>) => void;
1194
-
1316
+
1195
1317
  /**
1196
1318
  * Blur handler
1197
1319
  */
1198
1320
  onBlur?: (event: React.FocusEvent<HTMLSelectElement>) => void;
1199
-
1321
+
1200
1322
  /**
1201
1323
  * Focus handler
1202
1324
  */
1203
1325
  onFocus?: (event: React.FocusEvent<HTMLSelectElement>) => void;
1204
-
1326
+
1205
1327
  /**
1206
1328
  * Placeholder text
1207
1329
  */
1208
1330
  placeholder?: string;
1209
-
1331
+
1210
1332
  /**
1211
1333
  * Whether the select is required
1212
1334
  */
1213
1335
  required?: boolean;
1214
-
1336
+
1215
1337
  /**
1216
1338
  * Select ID
1217
1339
  */
1218
1340
  id?: string;
1219
-
1341
+
1220
1342
  /**
1221
1343
  * Select name
1222
1344
  */
1223
1345
  name?: string;
1224
-
1346
+
1225
1347
  /**
1226
1348
  * Size variant
1227
1349
  */
1228
1350
  size?: Size;
1229
-
1351
+
1230
1352
  /**
1231
1353
  * Whether the select is invalid
1232
1354
  */
1233
1355
  invalid?: boolean;
1234
-
1356
+
1235
1357
  /**
1236
1358
  * Whether the select is valid
1237
1359
  */
1238
1360
  valid?: boolean;
1239
-
1361
+
1240
1362
  /**
1241
1363
  * Whether multiple options can be selected
1242
1364
  */
1243
1365
  multiple?: boolean;
1244
-
1366
+
1245
1367
  /**
1246
1368
  * Accessible label (if no visible label)
1247
1369
  */
1248
1370
  ariaLabel?: string;
1249
-
1371
+
1250
1372
  /**
1251
1373
  * ID of element that describes this select
1252
1374
  */
@@ -1261,57 +1383,57 @@ export interface CheckboxProps extends BaseComponentProps {
1261
1383
  * Checkbox label
1262
1384
  */
1263
1385
  label?: ReactNode;
1264
-
1386
+
1265
1387
  /**
1266
1388
  * Whether the checkbox is checked
1267
1389
  */
1268
1390
  checked?: boolean;
1269
-
1391
+
1270
1392
  /**
1271
1393
  * Change handler
1272
1394
  */
1273
1395
  onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
1274
-
1396
+
1275
1397
  /**
1276
1398
  * Whether the checkbox is required
1277
1399
  */
1278
1400
  required?: boolean;
1279
-
1401
+
1280
1402
  /**
1281
1403
  * Checkbox ID
1282
1404
  */
1283
1405
  id?: string;
1284
-
1406
+
1285
1407
  /**
1286
1408
  * Checkbox name
1287
1409
  */
1288
1410
  name?: string;
1289
-
1411
+
1290
1412
  /**
1291
1413
  * Checkbox value
1292
1414
  */
1293
1415
  value?: string;
1294
-
1416
+
1295
1417
  /**
1296
1418
  * Whether the checkbox is invalid
1297
1419
  */
1298
1420
  invalid?: boolean;
1299
-
1421
+
1300
1422
  /**
1301
1423
  * Whether the checkbox is valid
1302
1424
  */
1303
1425
  valid?: boolean;
1304
-
1426
+
1305
1427
  /**
1306
1428
  * Whether the checkbox is in indeterminate state
1307
1429
  */
1308
1430
  indeterminate?: boolean;
1309
-
1431
+
1310
1432
  /**
1311
1433
  * Accessible label (if no visible label)
1312
1434
  */
1313
1435
  ariaLabel?: string;
1314
-
1436
+
1315
1437
  /**
1316
1438
  * ID of element that describes this checkbox
1317
1439
  */
@@ -1326,52 +1448,52 @@ export interface RadioProps extends BaseComponentProps {
1326
1448
  * Radio label
1327
1449
  */
1328
1450
  label?: ReactNode;
1329
-
1451
+
1330
1452
  /**
1331
1453
  * Whether the radio is checked
1332
1454
  */
1333
1455
  checked?: boolean;
1334
-
1456
+
1335
1457
  /**
1336
1458
  * Change handler
1337
1459
  */
1338
1460
  onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
1339
-
1461
+
1340
1462
  /**
1341
1463
  * Whether the radio is required
1342
1464
  */
1343
1465
  required?: boolean;
1344
-
1466
+
1345
1467
  /**
1346
1468
  * Radio ID
1347
1469
  */
1348
1470
  id?: string;
1349
-
1471
+
1350
1472
  /**
1351
1473
  * Radio name
1352
1474
  */
1353
1475
  name?: string;
1354
-
1476
+
1355
1477
  /**
1356
1478
  * Radio value
1357
1479
  */
1358
1480
  value?: string;
1359
-
1481
+
1360
1482
  /**
1361
1483
  * Whether the radio is invalid
1362
1484
  */
1363
1485
  invalid?: boolean;
1364
-
1486
+
1365
1487
  /**
1366
1488
  * Whether the radio is valid
1367
1489
  */
1368
1490
  valid?: boolean;
1369
-
1491
+
1370
1492
  /**
1371
1493
  * Accessible label (if no visible label)
1372
1494
  */
1373
1495
  ariaLabel?: string;
1374
-
1496
+
1375
1497
  /**
1376
1498
  * ID of element that describes this radio
1377
1499
  */
@@ -1386,97 +1508,97 @@ export interface TextareaProps extends BaseComponentProps {
1386
1508
  * Textarea value
1387
1509
  */
1388
1510
  value?: string;
1389
-
1511
+
1390
1512
  /**
1391
1513
  * Change handler
1392
1514
  */
1393
1515
  onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;
1394
-
1516
+
1395
1517
  /**
1396
1518
  * Blur handler
1397
1519
  */
1398
1520
  onBlur?: (event: React.FocusEvent<HTMLTextAreaElement>) => void;
1399
-
1521
+
1400
1522
  /**
1401
1523
  * Focus handler
1402
1524
  */
1403
1525
  onFocus?: (event: React.FocusEvent<HTMLTextAreaElement>) => void;
1404
-
1526
+
1405
1527
  /**
1406
1528
  * Placeholder text
1407
1529
  */
1408
1530
  placeholder?: string;
1409
-
1531
+
1410
1532
  /**
1411
1533
  * Whether the textarea is required
1412
1534
  */
1413
1535
  required?: boolean;
1414
-
1536
+
1415
1537
  /**
1416
1538
  * Whether the textarea is read-only
1417
1539
  */
1418
1540
  readOnly?: boolean;
1419
-
1541
+
1420
1542
  /**
1421
1543
  * Textarea ID
1422
1544
  */
1423
1545
  id?: string;
1424
-
1546
+
1425
1547
  /**
1426
1548
  * Textarea name
1427
1549
  */
1428
1550
  name?: string;
1429
-
1551
+
1430
1552
  /**
1431
1553
  * Number of rows
1432
1554
  */
1433
1555
  rows?: number;
1434
-
1556
+
1435
1557
  /**
1436
1558
  * Number of columns
1437
1559
  */
1438
1560
  cols?: number;
1439
-
1561
+
1440
1562
  /**
1441
1563
  * Maximum length
1442
1564
  */
1443
1565
  maxLength?: number;
1444
-
1566
+
1445
1567
  /**
1446
1568
  * Minimum length
1447
1569
  */
1448
1570
  minLength?: number;
1449
-
1571
+
1450
1572
  /**
1451
1573
  * Size variant
1452
1574
  */
1453
1575
  size?: Size;
1454
-
1576
+
1455
1577
  /**
1456
1578
  * Color variant
1457
1579
  */
1458
1580
  variant?: ThemeColor;
1459
-
1581
+
1460
1582
  /**
1461
1583
  * Whether the textarea is invalid
1462
1584
  */
1463
1585
  invalid?: boolean;
1464
-
1586
+
1465
1587
  /**
1466
1588
  * Whether the textarea is valid
1467
1589
  */
1468
1590
  valid?: boolean;
1469
-
1591
+
1470
1592
  /**
1471
1593
  * Whether the textarea should receive focus on render
1472
1594
  */
1473
1595
  autoFocus?: boolean;
1474
-
1596
+
1475
1597
  /**
1476
1598
  * Accessible label (if no visible label)
1477
1599
  */
1478
1600
  ariaLabel?: string;
1479
-
1601
+
1480
1602
  /**
1481
1603
  * ID of element that describes this textarea
1482
1604
  */
@@ -1561,52 +1683,52 @@ export interface ModalProps extends Omit<React.HTMLAttributes<HTMLDivElement>, '
1561
1683
  * Whether the modal is open
1562
1684
  */
1563
1685
  isOpen?: boolean;
1564
-
1686
+
1565
1687
  /**
1566
1688
  * Callback when the modal's open state changes
1567
1689
  */
1568
1690
  onOpenChange?: (isOpen: boolean) => void;
1569
-
1691
+
1570
1692
  /**
1571
1693
  * Callback when the modal is opened
1572
1694
  */
1573
1695
  onOpen?: () => void;
1574
-
1696
+
1575
1697
  /**
1576
1698
  * Callback when the modal is closed
1577
1699
  */
1578
1700
  onClose?: () => void;
1579
-
1701
+
1580
1702
  /**
1581
1703
  * Modal title displayed in the header
1582
1704
  */
1583
1705
  title?: React.ReactNode;
1584
-
1706
+
1585
1707
  /**
1586
1708
  * Modal subtitle displayed below the title
1587
1709
  */
1588
1710
  subtitle?: React.ReactNode;
1589
-
1711
+
1590
1712
  /**
1591
1713
  * Modal size
1592
1714
  */
1593
1715
  size?: 'sm' | 'md' | 'lg' | 'xl';
1594
-
1716
+
1595
1717
  /**
1596
1718
  * Whether to close when backdrop is clicked
1597
1719
  */
1598
1720
  backdrop?: boolean;
1599
-
1721
+
1600
1722
  /**
1601
1723
  * Whether to close when the escape key is pressed
1602
1724
  */
1603
1725
  keyboard?: boolean;
1604
-
1726
+
1605
1727
  /**
1606
1728
  * Whether to show the close button
1607
1729
  */
1608
1730
  closeButton?: boolean;
1609
-
1731
+
1610
1732
  /**
1611
1733
  * Content for the modal footer
1612
1734
  */
@@ -1621,22 +1743,22 @@ export interface BreadcrumbItem {
1621
1743
  * Item label text
1622
1744
  */
1623
1745
  label: string;
1624
-
1746
+
1625
1747
  /**
1626
1748
  * Optional URL for the breadcrumb item
1627
1749
  */
1628
1750
  href?: string;
1629
-
1751
+
1630
1752
  /**
1631
1753
  * Whether this item is active/current
1632
1754
  */
1633
1755
  active?: boolean;
1634
-
1756
+
1635
1757
  /**
1636
1758
  * Icon name from Phosphor Icons
1637
1759
  */
1638
1760
  icon?: string;
1639
-
1761
+
1640
1762
  /**
1641
1763
  * Optional click handler
1642
1764
  */
@@ -1651,17 +1773,17 @@ export interface BreadcrumbOptions {
1651
1773
  * Array of breadcrumb items
1652
1774
  */
1653
1775
  items?: BreadcrumbItem[];
1654
-
1776
+
1655
1777
  /**
1656
1778
  * Divider character or string between items
1657
1779
  */
1658
1780
  divider?: string;
1659
-
1781
+
1660
1782
  /**
1661
1783
  * Additional CSS class names
1662
1784
  */
1663
1785
  className?: string;
1664
-
1786
+
1665
1787
  /**
1666
1788
  * Accessible label for the breadcrumb navigation
1667
1789
  */
@@ -1676,7 +1798,7 @@ export interface BreadcrumbInstance {
1676
1798
  * Update the breadcrumb with new options
1677
1799
  */
1678
1800
  update: (options: Partial<BreadcrumbOptions>) => void;
1679
-
1801
+
1680
1802
  /**
1681
1803
  * Destroy the breadcrumb component
1682
1804
  */
@@ -1691,17 +1813,17 @@ export interface MessageItem {
1691
1813
  * Unique identifier for the message
1692
1814
  */
1693
1815
  id: string;
1694
-
1816
+
1695
1817
  /**
1696
1818
  * Message text content
1697
1819
  */
1698
1820
  text?: string;
1699
-
1821
+
1700
1822
  /**
1701
1823
  * Image URL for image messages
1702
1824
  */
1703
1825
  image?: string;
1704
-
1826
+
1705
1827
  /**
1706
1828
  * File information for file messages
1707
1829
  */
@@ -1710,18 +1832,18 @@ export interface MessageItem {
1710
1832
  * File name
1711
1833
  */
1712
1834
  name: string;
1713
-
1835
+
1714
1836
  /**
1715
1837
  * File size (formatted string)
1716
1838
  */
1717
1839
  size: string;
1718
1840
  };
1719
-
1841
+
1720
1842
  /**
1721
1843
  * Message timestamp
1722
1844
  */
1723
1845
  time: string;
1724
-
1846
+
1725
1847
  /**
1726
1848
  * Whether the message is from the current user
1727
1849
  */
@@ -1736,37 +1858,37 @@ export interface MessagesProps extends BaseComponentProps {
1736
1858
  * Array of message items to display
1737
1859
  */
1738
1860
  messages: MessageItem[];
1739
-
1861
+
1740
1862
  /**
1741
1863
  * Avatar image URL for the other person
1742
1864
  */
1743
1865
  otherAvatar?: string;
1744
-
1866
+
1745
1867
  /**
1746
1868
  * Avatar image URL for the current user
1747
1869
  */
1748
1870
  selfAvatar?: string;
1749
-
1871
+
1750
1872
  /**
1751
1873
  * Name of the other person
1752
1874
  */
1753
1875
  otherName?: string;
1754
-
1876
+
1755
1877
  /**
1756
1878
  * Custom width for the messages container
1757
1879
  */
1758
1880
  width?: string;
1759
-
1881
+
1760
1882
  /**
1761
1883
  * Callback when a new message is sent
1762
1884
  */
1763
1885
  onSendMessage?: (text: string) => void;
1764
-
1886
+
1765
1887
  /**
1766
1888
  * Placeholder text for the input field
1767
1889
  */
1768
1890
  placeholder?: string;
1769
-
1891
+
1770
1892
  /**
1771
1893
  * Maximum height for the messages body
1772
1894
  */
@@ -1786,12 +1908,12 @@ export interface PopoverTriggerProps {
1786
1908
  * The element that will trigger the popover
1787
1909
  */
1788
1910
  children: ReactNode;
1789
-
1911
+
1790
1912
  /**
1791
1913
  * How the popover is triggered
1792
1914
  */
1793
1915
  trigger?: 'hover' | 'click';
1794
-
1916
+
1795
1917
  /**
1796
1918
  * Popover reference passed from PopoverContext
1797
1919
  */
@@ -1803,62 +1925,62 @@ export interface PopoverProps {
1803
1925
  * Content to be displayed in the popover
1804
1926
  */
1805
1927
  content: ReactNode;
1806
-
1928
+
1807
1929
  /**
1808
1930
  * The position of the popover relative to the trigger
1809
1931
  */
1810
1932
  position?: 'top' | 'bottom' | 'left' | 'right' | 'auto';
1811
-
1933
+
1812
1934
  /**
1813
1935
  * How the popover is triggered
1814
1936
  */
1815
1937
  trigger?: 'hover' | 'click';
1816
-
1938
+
1817
1939
  /**
1818
1940
  * Additional CSS class for the popover
1819
1941
  */
1820
1942
  className?: string;
1821
-
1943
+
1822
1944
  /**
1823
1945
  * Delay before showing the popover (in milliseconds)
1824
1946
  */
1825
1947
  delay?: number;
1826
-
1948
+
1827
1949
  /**
1828
1950
  * Offset from the trigger element (in pixels)
1829
1951
  */
1830
1952
  offset?: number;
1831
-
1953
+
1832
1954
  /**
1833
1955
  * Whether the popover should be open initially
1834
1956
  */
1835
1957
  defaultOpen?: boolean;
1836
-
1958
+
1837
1959
  /**
1838
1960
  * Controlled state of the popover
1839
1961
  */
1840
1962
  isOpen?: boolean;
1841
-
1963
+
1842
1964
  /**
1843
1965
  * Callback when the popover open state changes
1844
1966
  */
1845
1967
  onOpenChange?: (isOpen: boolean) => void;
1846
-
1968
+
1847
1969
  /**
1848
1970
  * Whether to close the popover when clicking outside
1849
1971
  */
1850
1972
  closeOnClickOutside?: boolean;
1851
-
1973
+
1852
1974
  /**
1853
1975
  * Whether to close the popover when pressing escape key
1854
1976
  */
1855
1977
  closeOnEscape?: boolean;
1856
-
1978
+
1857
1979
  /**
1858
1980
  * Optional ID for the popover
1859
1981
  */
1860
1982
  id?: string;
1861
-
1983
+
1862
1984
  /**
1863
1985
  * Children content (removed in favor of using PopoverTrigger)
1864
1986
  */
@@ -1873,7 +1995,15 @@ export type DropdownTrigger = 'click' | 'hover';
1873
1995
  /**
1874
1996
  * The placement of the dropdown menu
1875
1997
  */
1876
- export type DropdownPlacement = 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end';
1998
+ export type DropdownPlacement =
1999
+ | 'bottom-start'
2000
+ | 'bottom-end'
2001
+ | 'top-start'
2002
+ | 'top-end'
2003
+ | 'left-start'
2004
+ | 'left-end'
2005
+ | 'right-start'
2006
+ | 'right-end';
1877
2007
 
1878
2008
  /**
1879
2009
  * Dropdown component properties
@@ -1883,57 +2013,57 @@ export interface DropdownProps extends BaseComponentProps {
1883
2013
  * Dropdown trigger element
1884
2014
  */
1885
2015
  children: ReactNode;
1886
-
2016
+
1887
2017
  /**
1888
2018
  * Dropdown menu content
1889
2019
  */
1890
2020
  menu: ReactNode;
1891
-
2021
+
1892
2022
  /**
1893
2023
  * How the dropdown is triggered
1894
2024
  */
1895
2025
  trigger?: DropdownTrigger;
1896
-
2026
+
1897
2027
  /**
1898
2028
  * The placement of the dropdown menu
1899
2029
  */
1900
2030
  placement?: DropdownPlacement;
1901
-
2031
+
1902
2032
  /**
1903
2033
  * Whether the dropdown is initially open
1904
2034
  */
1905
2035
  defaultOpen?: boolean;
1906
-
2036
+
1907
2037
  /**
1908
2038
  * Controlled state of the dropdown
1909
2039
  */
1910
2040
  isOpen?: boolean;
1911
-
2041
+
1912
2042
  /**
1913
2043
  * Callback when the dropdown open state changes
1914
2044
  */
1915
2045
  onOpenChange?: (isOpen: boolean) => void;
1916
-
2046
+
1917
2047
  /**
1918
2048
  * Offset from the trigger element (in pixels)
1919
2049
  */
1920
2050
  offset?: number;
1921
-
2051
+
1922
2052
  /**
1923
2053
  * Whether the dropdown should be closed when clicking outside
1924
2054
  */
1925
2055
  closeOnClickOutside?: boolean;
1926
-
2056
+
1927
2057
  /**
1928
2058
  * Whether the dropdown should be closed when pressing escape key
1929
2059
  */
1930
2060
  closeOnEscape?: boolean;
1931
-
2061
+
1932
2062
  /**
1933
2063
  * Max height for the dropdown menu
1934
2064
  */
1935
2065
  maxHeight?: string;
1936
-
2066
+
1937
2067
  /**
1938
2068
  * Min width for the dropdown menu
1939
2069
  */
@@ -1943,7 +2073,7 @@ export interface DropdownProps extends BaseComponentProps {
1943
2073
  * Color variant for the dropdown trigger
1944
2074
  */
1945
2075
  variant?: ThemeColor;
1946
-
2076
+
1947
2077
  /**
1948
2078
  * Optional ID for the dropdown
1949
2079
  */
@@ -1958,27 +2088,27 @@ export interface DropdownItemProps extends BaseComponentProps {
1958
2088
  * Item content
1959
2089
  */
1960
2090
  children: ReactNode;
1961
-
2091
+
1962
2092
  /**
1963
2093
  * Item href
1964
2094
  */
1965
2095
  href?: string;
1966
-
2096
+
1967
2097
  /**
1968
2098
  * Whether item is active
1969
2099
  */
1970
2100
  active?: boolean;
1971
-
2101
+
1972
2102
  /**
1973
2103
  * Whether item is disabled
1974
2104
  */
1975
2105
  disabled?: boolean;
1976
-
2106
+
1977
2107
  /**
1978
2108
  * Item icon
1979
2109
  */
1980
2110
  icon?: ReactNode;
1981
-
2111
+
1982
2112
  /**
1983
2113
  * Item click handler
1984
2114
  */
@@ -2003,7 +2133,7 @@ export interface DropdownHeaderProps {
2003
2133
  * Header content
2004
2134
  */
2005
2135
  children: ReactNode;
2006
-
2136
+
2007
2137
  /**
2008
2138
  * Additional CSS class names
2009
2139
  */
@@ -2018,17 +2148,17 @@ export interface ProgressProps extends BaseComponentProps {
2018
2148
  * Progress value (0-100)
2019
2149
  */
2020
2150
  value: number;
2021
-
2151
+
2022
2152
  /**
2023
2153
  * Progress bar color variant
2024
2154
  */
2025
2155
  variant?: ThemeColor;
2026
-
2156
+
2027
2157
  /**
2028
2158
  * Progress bar size
2029
2159
  */
2030
2160
  size?: Size;
2031
-
2161
+
2032
2162
  /**
2033
2163
  * Accessible label for screen readers
2034
2164
  */
@@ -2043,52 +2173,52 @@ export interface RatingProps extends BaseComponentProps {
2043
2173
  * The rating value (0-5)
2044
2174
  */
2045
2175
  value?: number;
2046
-
2176
+
2047
2177
  /**
2048
2178
  * Default value for uncontrolled mode
2049
2179
  */
2050
2180
  defaultValue?: number;
2051
-
2181
+
2052
2182
  /**
2053
2183
  * Maximum possible rating value
2054
2184
  */
2055
2185
  maxValue?: number;
2056
-
2186
+
2057
2187
  /**
2058
2188
  * Whether to allow half-star ratings
2059
2189
  */
2060
2190
  allowHalf?: boolean;
2061
-
2191
+
2062
2192
  /**
2063
2193
  * Whether the rating is read-only
2064
2194
  */
2065
2195
  readOnly?: boolean;
2066
-
2196
+
2067
2197
  /**
2068
2198
  * Size variant
2069
2199
  */
2070
2200
  size?: Size;
2071
-
2201
+
2072
2202
  /**
2073
2203
  * Color theme
2074
2204
  */
2075
2205
  color?: ThemeColor;
2076
-
2206
+
2077
2207
  /**
2078
2208
  * Optional callback when rating changes
2079
2209
  */
2080
2210
  onChange?: (value: number) => void;
2081
-
2211
+
2082
2212
  /**
2083
2213
  * Optional label for the rating component (for accessibility)
2084
2214
  */
2085
2215
  label?: string;
2086
-
2216
+
2087
2217
  /**
2088
2218
  * ID for the rating component (for accessibility)
2089
2219
  */
2090
2220
  id?: string;
2091
-
2221
+
2092
2222
  /**
2093
2223
  * Whether to use the vanilla JS implementation
2094
2224
  */
@@ -2164,67 +2294,67 @@ export interface PhotoViewerProps extends BaseComponentProps {
2164
2294
  /**
2165
2295
  * Card component props
2166
2296
  */
2167
- export interface CardProps extends BaseComponentProps{
2297
+ export interface CardProps extends BaseComponentProps {
2168
2298
  /**
2169
2299
  * Card header content
2170
2300
  */
2171
2301
  header?: ReactNode;
2172
-
2302
+
2173
2303
  /**
2174
2304
  * Card image source URL
2175
2305
  */
2176
2306
  image?: string;
2177
-
2307
+
2178
2308
  /**
2179
2309
  * Alternative text for the image
2180
2310
  */
2181
2311
  imageAlt?: string;
2182
-
2312
+
2183
2313
  /**
2184
2314
  * Card title
2185
2315
  */
2186
2316
  title?: ReactNode;
2187
-
2317
+
2188
2318
  /**
2189
2319
  * Card text content
2190
2320
  */
2191
2321
  text?: ReactNode;
2192
-
2322
+
2193
2323
  /**
2194
2324
  * Card actions (buttons, links, etc.)
2195
2325
  */
2196
2326
  actions?: ReactNode;
2197
-
2327
+
2198
2328
  /**
2199
2329
  * Card icon
2200
2330
  */
2201
2331
  icon?: ReactNode;
2202
-
2332
+
2203
2333
  /**
2204
2334
  * Card footer content
2205
2335
  */
2206
2336
  footer?: ReactNode;
2207
-
2337
+
2208
2338
  /**
2209
2339
  * Row layout (horizontal card)
2210
2340
  */
2211
2341
  row?: boolean;
2212
-
2342
+
2213
2343
  /**
2214
2344
  * Flat style (no padding on image container)
2215
2345
  */
2216
2346
  flat?: boolean;
2217
-
2347
+
2218
2348
  /**
2219
2349
  * Active state
2220
2350
  */
2221
2351
  active?: boolean;
2222
-
2352
+
2223
2353
  /**
2224
2354
  * Card content (body)
2225
2355
  */
2226
2356
  children?: ReactNode;
2227
-
2357
+
2228
2358
  /**
2229
2359
  * Optional click handler
2230
2360
  */
@@ -2249,32 +2379,32 @@ export interface UseCardOptions {
2249
2379
  * Enable elevation effect on hover
2250
2380
  */
2251
2381
  elevationEffect?: boolean;
2252
-
2382
+
2253
2383
  /**
2254
2384
  * CSS class for elevation effect
2255
2385
  */
2256
2386
  elevationClass?: string;
2257
-
2387
+
2258
2388
  /**
2259
2389
  * Enable flip effect
2260
2390
  */
2261
2391
  flipEffect?: boolean;
2262
-
2392
+
2263
2393
  /**
2264
2394
  * Trigger for flip effect: 'click' or 'hover'
2265
2395
  */
2266
2396
  flipTrigger?: 'click' | 'hover';
2267
-
2397
+
2268
2398
  /**
2269
2399
  * Make card focusable and add focus effect
2270
2400
  */
2271
2401
  focusEffect?: boolean;
2272
-
2402
+
2273
2403
  /**
2274
2404
  * Make card clickable
2275
2405
  */
2276
2406
  clickable?: boolean;
2277
-
2407
+
2278
2408
  /**
2279
2409
  * Click handler for clickable card
2280
2410
  */
@@ -2289,67 +2419,67 @@ export interface UseCardReturn {
2289
2419
  * Reference to the card element
2290
2420
  */
2291
2421
  cardRef: React.RefObject<HTMLDivElement>;
2292
-
2422
+
2293
2423
  /**
2294
2424
  * Reference to the front side of a flip card
2295
2425
  */
2296
2426
  frontRef: React.RefObject<HTMLDivElement>;
2297
-
2427
+
2298
2428
  /**
2299
2429
  * Reference to the back side of a flip card
2300
2430
  */
2301
2431
  backRef: React.RefObject<HTMLDivElement>;
2302
-
2432
+
2303
2433
  /**
2304
2434
  * Whether the card is flipped
2305
2435
  */
2306
2436
  isFlipped: boolean;
2307
-
2437
+
2308
2438
  /**
2309
2439
  * Whether the card is elevated
2310
2440
  */
2311
2441
  isElevated: boolean;
2312
-
2442
+
2313
2443
  /**
2314
2444
  * Whether the card is focused
2315
2445
  */
2316
2446
  isFocused: boolean;
2317
-
2447
+
2318
2448
  /**
2319
2449
  * Whether the card is hovered
2320
2450
  */
2321
2451
  isHovered: boolean;
2322
-
2452
+
2323
2453
  /**
2324
2454
  * Click event handler
2325
2455
  */
2326
2456
  handleClick: (event: React.MouseEvent) => void;
2327
-
2457
+
2328
2458
  /**
2329
2459
  * Keyboard event handler
2330
2460
  */
2331
2461
  handleKeyDown: (event: React.KeyboardEvent) => void;
2332
-
2462
+
2333
2463
  /**
2334
2464
  * Mouse enter event handler
2335
2465
  */
2336
2466
  handleMouseEnter: () => void;
2337
-
2467
+
2338
2468
  /**
2339
2469
  * Mouse leave event handler
2340
2470
  */
2341
2471
  handleMouseLeave: () => void;
2342
-
2472
+
2343
2473
  /**
2344
2474
  * Focus event handler
2345
2475
  */
2346
2476
  handleFocus: () => void;
2347
-
2477
+
2348
2478
  /**
2349
2479
  * Blur event handler
2350
2480
  */
2351
2481
  handleBlur: () => void;
2352
-
2482
+
2353
2483
  /**
2354
2484
  * Get all card props combined
2355
2485
  */
@@ -2365,4 +2495,4 @@ export interface UseCardReturn {
2365
2495
  onClick: (event: React.MouseEvent) => void;
2366
2496
  onKeyDown: (event: React.KeyboardEvent) => void;
2367
2497
  };
2368
- }
2498
+ }