@shohojdhara/atomix 0.1.17 → 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 (704) 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 -1
  7. package/dist/js/244.js +1 -0
  8. package/dist/js/atomix.react.cjs.js +1 -0
  9. package/dist/js/atomix.react.esm.js +1 -1
  10. package/dist/js/atomix.react.umd.js +1 -1
  11. package/dist/js/chunks/cjs/202.9d3b1ef1eaa0d5c8a309.js +1 -0
  12. package/dist/js/chunks/cjs/308.6ea9685ea38ead4120d0.js +1 -0
  13. package/dist/js/chunks/cjs/54.73db6922594e421ba6b1.js +1 -0
  14. package/dist/js/chunks/cjs/619.51feecaadcab819780d4.js +1 -0
  15. package/dist/js/chunks/cjs/690.90f6d11164081cbcbc4d.js +1 -0
  16. package/dist/js/chunks/cjs/894.24877561df336a8dfd14.js +1 -0
  17. package/dist/js/chunks/cjs/897.6c2a71fae95338890de7.js +1 -0
  18. package/dist/types/components/{Navbar → Navigation/Menu}/MegaMenu.d.ts +1 -1
  19. package/dist/types/components/{Navbar → Navigation/Menu}/Menu.d.ts +1 -1
  20. package/dist/types/components/Navigation/Nav/Nav.d.ts +20 -0
  21. package/dist/types/components/{Navbar → Navigation/Nav}/NavDropdown.d.ts +1 -1
  22. package/dist/types/components/Navigation/Nav/NavItem.d.ts +33 -0
  23. package/dist/types/components/Navigation/Navbar/Navbar.d.ts +19 -0
  24. package/dist/types/components/Navigation/SideMenu/SideMenu.d.ts +20 -0
  25. package/dist/types/components/Navigation/SideMenu/SideMenuItem.d.ts +30 -0
  26. package/dist/types/components/Navigation/SideMenu/SideMenuList.d.ts +17 -0
  27. package/dist/types/components/Navigation/index.d.ts +10 -0
  28. package/dist/types/components/index.d.ts +1 -1
  29. package/dist/types/lib/composables/index.d.ts +1 -0
  30. package/dist/types/lib/composables/useSideMenu.d.ts +28 -0
  31. package/dist/types/lib/constants/components.d.ts +72 -0
  32. package/dist/types/lib/types/components.d.ts +103 -0
  33. package/examples/nextjs-example.tsx +271 -0
  34. package/implementation-guide.md +505 -0
  35. package/next.config.js +69 -0
  36. package/package.json +26 -5
  37. package/postcss.config.js +28 -0
  38. package/src/Introduction.mdx +44 -0
  39. package/src/assets/fonts/BigCaslon/BigCaslon-Alternatives.eot +0 -0
  40. package/src/assets/fonts/BigCaslon/BigCaslon-Alternatives.ttf +0 -0
  41. package/src/assets/fonts/BigCaslon/BigCaslon-Alternatives.woff +0 -0
  42. package/src/assets/fonts/BigCaslon/BigCaslon-Alternatives.woff2 +0 -0
  43. package/src/assets/fonts/BigCaslon/BigCaslon-Expert.eot +0 -0
  44. package/src/assets/fonts/BigCaslon/BigCaslon-Expert.ttf +0 -0
  45. package/src/assets/fonts/BigCaslon/BigCaslon-Expert.woff +0 -0
  46. package/src/assets/fonts/BigCaslon/BigCaslon-Expert.woff2 +0 -0
  47. package/src/assets/fonts/BigCaslon/BigCaslon-ItalicSwash.eot +0 -0
  48. package/src/assets/fonts/BigCaslon/BigCaslon-ItalicSwash.ttf +0 -0
  49. package/src/assets/fonts/BigCaslon/BigCaslon-ItalicSwash.woff +0 -0
  50. package/src/assets/fonts/BigCaslon/BigCaslon-ItalicSwash.woff2 +0 -0
  51. package/src/assets/fonts/BigCaslon/BigCaslon-SmallCaps.eot +0 -0
  52. package/src/assets/fonts/BigCaslon/BigCaslon-SmallCaps.ttf +0 -0
  53. package/src/assets/fonts/BigCaslon/BigCaslon-SmallCaps.woff +0 -0
  54. package/src/assets/fonts/BigCaslon/BigCaslon-SmallCaps.woff2 +0 -0
  55. package/src/assets/fonts/BigCaslon/BigCaslonFB-Black.eot +0 -0
  56. package/src/assets/fonts/BigCaslon/BigCaslonFB-Black.ttf +0 -0
  57. package/src/assets/fonts/BigCaslon/BigCaslonFB-Black.woff +0 -0
  58. package/src/assets/fonts/BigCaslon/BigCaslonFB-Black.woff2 +0 -0
  59. package/src/assets/fonts/BigCaslon/BigCaslonFB-BlackItalic.eot +0 -0
  60. package/src/assets/fonts/BigCaslon/BigCaslonFB-BlackItalic.ttf +0 -0
  61. package/src/assets/fonts/BigCaslon/BigCaslonFB-BlackItalic.woff +0 -0
  62. package/src/assets/fonts/BigCaslon/BigCaslonFB-BlackItalic.woff2 +0 -0
  63. package/src/assets/fonts/BigCaslon/BigCaslonFB-Bold.eot +0 -0
  64. package/src/assets/fonts/BigCaslon/BigCaslonFB-Bold.ttf +0 -0
  65. package/src/assets/fonts/BigCaslon/BigCaslonFB-Bold.woff +0 -0
  66. package/src/assets/fonts/BigCaslon/BigCaslonFB-Bold.woff2 +0 -0
  67. package/src/assets/fonts/BigCaslon/BigCaslonFB-BoldItalic.eot +0 -0
  68. package/src/assets/fonts/BigCaslon/BigCaslonFB-BoldItalic.ttf +0 -0
  69. package/src/assets/fonts/BigCaslon/BigCaslonFB-BoldItalic.woff +0 -0
  70. package/src/assets/fonts/BigCaslon/BigCaslonFB-BoldItalic.woff2 +0 -0
  71. package/src/assets/fonts/BigCaslon/BigCaslonFB-Italic.eot +0 -0
  72. package/src/assets/fonts/BigCaslon/BigCaslonFB-Italic.ttf +0 -0
  73. package/src/assets/fonts/BigCaslon/BigCaslonFB-Italic.woff +0 -0
  74. package/src/assets/fonts/BigCaslon/BigCaslonFB-Italic.woff2 +0 -0
  75. package/src/assets/fonts/BigCaslon/BigCaslonFB-Regular.eot +0 -0
  76. package/src/assets/fonts/BigCaslon/BigCaslonFB-Regular.ttf +0 -0
  77. package/src/assets/fonts/BigCaslon/BigCaslonFB-Regular.woff +0 -0
  78. package/src/assets/fonts/BigCaslon/BigCaslonFB-Regular.woff2 +0 -0
  79. package/src/assets/fonts/FilsonPro/FilsonPro-Black.eot +0 -0
  80. package/src/assets/fonts/FilsonPro/FilsonPro-Black.ttf +0 -0
  81. package/src/assets/fonts/FilsonPro/FilsonPro-Black.woff +0 -0
  82. package/src/assets/fonts/FilsonPro/FilsonPro-Black.woff2 +0 -0
  83. package/src/assets/fonts/FilsonPro/FilsonPro-BlackItalic.eot +0 -0
  84. package/src/assets/fonts/FilsonPro/FilsonPro-BlackItalic.ttf +0 -0
  85. package/src/assets/fonts/FilsonPro/FilsonPro-BlackItalic.woff +0 -0
  86. package/src/assets/fonts/FilsonPro/FilsonPro-BlackItalic.woff2 +0 -0
  87. package/src/assets/fonts/FilsonPro/FilsonPro-Bold.eot +0 -0
  88. package/src/assets/fonts/FilsonPro/FilsonPro-Bold.ttf +0 -0
  89. package/src/assets/fonts/FilsonPro/FilsonPro-Bold.woff +0 -0
  90. package/src/assets/fonts/FilsonPro/FilsonPro-Bold.woff2 +0 -0
  91. package/src/assets/fonts/FilsonPro/FilsonPro-BoldItalic.eot +0 -0
  92. package/src/assets/fonts/FilsonPro/FilsonPro-BoldItalic.ttf +0 -0
  93. package/src/assets/fonts/FilsonPro/FilsonPro-BoldItalic.woff +0 -0
  94. package/src/assets/fonts/FilsonPro/FilsonPro-BoldItalic.woff2 +0 -0
  95. package/src/assets/fonts/FilsonPro/FilsonPro-Book.eot +0 -0
  96. package/src/assets/fonts/FilsonPro/FilsonPro-Book.ttf +0 -0
  97. package/src/assets/fonts/FilsonPro/FilsonPro-Book.woff +0 -0
  98. package/src/assets/fonts/FilsonPro/FilsonPro-Book.woff2 +0 -0
  99. package/src/assets/fonts/FilsonPro/FilsonPro-BookItalic.eot +0 -0
  100. package/src/assets/fonts/FilsonPro/FilsonPro-BookItalic.ttf +0 -0
  101. package/src/assets/fonts/FilsonPro/FilsonPro-BookItalic.woff +0 -0
  102. package/src/assets/fonts/FilsonPro/FilsonPro-BookItalic.woff2 +0 -0
  103. package/src/assets/fonts/FilsonPro/FilsonPro-Heavy.eot +0 -0
  104. package/src/assets/fonts/FilsonPro/FilsonPro-Heavy.ttf +0 -0
  105. package/src/assets/fonts/FilsonPro/FilsonPro-Heavy.woff +0 -0
  106. package/src/assets/fonts/FilsonPro/FilsonPro-Heavy.woff2 +0 -0
  107. package/src/assets/fonts/FilsonPro/FilsonPro-HeavyItalic.eot +0 -0
  108. package/src/assets/fonts/FilsonPro/FilsonPro-HeavyItalic.ttf +0 -0
  109. package/src/assets/fonts/FilsonPro/FilsonPro-HeavyItalic.woff +0 -0
  110. package/src/assets/fonts/FilsonPro/FilsonPro-HeavyItalic.woff2 +0 -0
  111. package/src/assets/fonts/FilsonPro/FilsonPro-Light.eot +0 -0
  112. package/src/assets/fonts/FilsonPro/FilsonPro-Light.ttf +0 -0
  113. package/src/assets/fonts/FilsonPro/FilsonPro-Light.woff +0 -0
  114. package/src/assets/fonts/FilsonPro/FilsonPro-Light.woff2 +0 -0
  115. package/src/assets/fonts/FilsonPro/FilsonPro-LightItalic.eot +0 -0
  116. package/src/assets/fonts/FilsonPro/FilsonPro-LightItalic.ttf +0 -0
  117. package/src/assets/fonts/FilsonPro/FilsonPro-LightItalic.woff +0 -0
  118. package/src/assets/fonts/FilsonPro/FilsonPro-LightItalic.woff2 +0 -0
  119. package/src/assets/fonts/FilsonPro/FilsonPro-Medium.eot +0 -0
  120. package/src/assets/fonts/FilsonPro/FilsonPro-Medium.ttf +0 -0
  121. package/src/assets/fonts/FilsonPro/FilsonPro-Medium.woff +0 -0
  122. package/src/assets/fonts/FilsonPro/FilsonPro-Medium.woff2 +0 -0
  123. package/src/assets/fonts/FilsonPro/FilsonPro-MediumItalic.eot +0 -0
  124. package/src/assets/fonts/FilsonPro/FilsonPro-MediumItalic.ttf +0 -0
  125. package/src/assets/fonts/FilsonPro/FilsonPro-MediumItalic.woff +0 -0
  126. package/src/assets/fonts/FilsonPro/FilsonPro-MediumItalic.woff2 +0 -0
  127. package/src/assets/fonts/FilsonPro/FilsonPro-Regular.eot +0 -0
  128. package/src/assets/fonts/FilsonPro/FilsonPro-Regular.ttf +0 -0
  129. package/src/assets/fonts/FilsonPro/FilsonPro-Regular.woff +0 -0
  130. package/src/assets/fonts/FilsonPro/FilsonPro-Regular.woff2 +0 -0
  131. package/src/assets/fonts/FilsonPro/FilsonPro-RegularItalic.eot +0 -0
  132. package/src/assets/fonts/FilsonPro/FilsonPro-RegularItalic.ttf +0 -0
  133. package/src/assets/fonts/FilsonPro/FilsonPro-RegularItalic.woff +0 -0
  134. package/src/assets/fonts/FilsonPro/FilsonPro-RegularItalic.woff2 +0 -0
  135. package/src/assets/fonts/FilsonPro/FilsonPro-Thin.eot +0 -0
  136. package/src/assets/fonts/FilsonPro/FilsonPro-Thin.ttf +0 -0
  137. package/src/assets/fonts/FilsonPro/FilsonPro-Thin.woff +0 -0
  138. package/src/assets/fonts/FilsonPro/FilsonPro-Thin.woff2 +0 -0
  139. package/src/assets/fonts/FilsonPro/FilsonPro-ThinItalic.eot +0 -0
  140. package/src/assets/fonts/FilsonPro/FilsonPro-ThinItalic.ttf +0 -0
  141. package/src/assets/fonts/FilsonPro/FilsonPro-ThinItalic.woff +0 -0
  142. package/src/assets/fonts/FilsonPro/FilsonPro-ThinItalic.woff2 +0 -0
  143. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Bold.eot +0 -0
  144. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Bold.ttf +0 -0
  145. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Bold.woff +0 -0
  146. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Bold.woff2 +0 -0
  147. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-BoldItalic.eot +0 -0
  148. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-BoldItalic.ttf +0 -0
  149. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-BoldItalic.woff +0 -0
  150. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-BoldItalic.woff2 +0 -0
  151. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-CondensedBlack.eot +0 -0
  152. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-CondensedBlack.ttf +0 -0
  153. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-CondensedBlack.woff +0 -0
  154. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-CondensedBlack.woff2 +0 -0
  155. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-CondensedBold.eot +0 -0
  156. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-CondensedBold.ttf +0 -0
  157. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-CondensedBold.woff +0 -0
  158. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-CondensedBold.woff2 +0 -0
  159. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Italic.eot +0 -0
  160. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Italic.ttf +0 -0
  161. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Italic.woff +0 -0
  162. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Italic.woff2 +0 -0
  163. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Light.eot +0 -0
  164. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Light.ttf +0 -0
  165. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Light.woff +0 -0
  166. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Light.woff2 +0 -0
  167. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-LightItalic.eot +0 -0
  168. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-LightItalic.ttf +0 -0
  169. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-LightItalic.woff +0 -0
  170. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-LightItalic.woff2 +0 -0
  171. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Medium.eot +0 -0
  172. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Medium.ttf +0 -0
  173. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Medium.woff +0 -0
  174. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Medium.woff2 +0 -0
  175. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-MediumItalic.eot +0 -0
  176. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-MediumItalic.ttf +0 -0
  177. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-MediumItalic.woff +0 -0
  178. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-MediumItalic.woff2 +0 -0
  179. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Thin.eot +0 -0
  180. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Thin.ttf +0 -0
  181. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Thin.woff +0 -0
  182. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Thin.woff2 +0 -0
  183. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-ThinItalic.eot +0 -0
  184. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-ThinItalic.ttf +0 -0
  185. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-ThinItalic.woff +0 -0
  186. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-ThinItalic.woff2 +0 -0
  187. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-UltraLight.eot +0 -0
  188. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-UltraLight.ttf +0 -0
  189. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-UltraLight.woff +0 -0
  190. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-UltraLight.woff2 +0 -0
  191. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-UltraLightItalic.eot +0 -0
  192. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-UltraLightItalic.ttf +0 -0
  193. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-UltraLightItalic.woff +0 -0
  194. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-UltraLightItalic.woff2 +0 -0
  195. package/src/assets/fonts/HelveticaNeue/HelveticaNeue.eot +0 -0
  196. package/src/assets/fonts/HelveticaNeue/HelveticaNeue.ttf +0 -0
  197. package/src/assets/fonts/HelveticaNeue/HelveticaNeue.woff +0 -0
  198. package/src/assets/fonts/HelveticaNeue/HelveticaNeue.woff2 +0 -0
  199. package/src/assets/fonts/HelveticaNeue/demo.html +569 -0
  200. package/src/assets/fonts/HelveticaNeue/stylesheet.css +181 -0
  201. package/src/assets/fonts/Lato/Lato-Black.eot +0 -0
  202. package/src/assets/fonts/Lato/Lato-Black.ttf +0 -0
  203. package/src/assets/fonts/Lato/Lato-Black.woff +0 -0
  204. package/src/assets/fonts/Lato/Lato-Black.woff2 +0 -0
  205. package/src/assets/fonts/Lato/Lato-Bold.eot +0 -0
  206. package/src/assets/fonts/Lato/Lato-Bold.ttf +0 -0
  207. package/src/assets/fonts/Lato/Lato-Bold.woff +0 -0
  208. package/src/assets/fonts/Lato/Lato-Bold.woff2 +0 -0
  209. package/src/assets/fonts/Lato/Lato-Light.eot +0 -0
  210. package/src/assets/fonts/Lato/Lato-Light.ttf +0 -0
  211. package/src/assets/fonts/Lato/Lato-Light.woff +0 -0
  212. package/src/assets/fonts/Lato/Lato-Light.woff2 +0 -0
  213. package/src/assets/fonts/Lato/Lato-Regular.eot +0 -0
  214. package/src/assets/fonts/Lato/Lato-Regular.ttf +0 -0
  215. package/src/assets/fonts/Lato/Lato-Regular.woff +0 -0
  216. package/src/assets/fonts/Lato/Lato-Regular.woff2 +0 -0
  217. package/src/assets/fonts/Lux-Icons.woff2 +0 -0
  218. package/src/assets/fonts/MaterialIcons-Regular.eot +0 -0
  219. package/src/assets/fonts/MaterialIcons-Regular.ttf +0 -0
  220. package/src/assets/fonts/MaterialIcons-Regular.woff +0 -0
  221. package/src/assets/fonts/MaterialIcons-Regular.woff2 +0 -0
  222. package/src/assets/fonts/OpenSans-Regular.ttf +0 -0
  223. package/src/assets/fonts/Roboto-Regular.ttf +0 -0
  224. package/src/assets/images/logo-transparent.png +0 -0
  225. package/src/assets/svgs/atomix-logo.svg +9 -0
  226. package/src/components/Accordion/Accordion.stories.tsx +271 -0
  227. package/src/components/Accordion/Accordion.tsx +131 -0
  228. package/src/components/Accordion/index.ts +3 -0
  229. package/src/components/Accordion/scripts/accordionInteractions.ts +70 -0
  230. package/src/components/Accordion/scripts/bundle.ts +24 -0
  231. package/src/components/Accordion/scripts/constants.ts +11 -0
  232. package/src/components/Accordion/scripts/index.ts +212 -0
  233. package/src/components/AtomixLogo/AtomixLogo.tsx +36 -0
  234. package/src/components/AtomixLogo/index.ts +3 -0
  235. package/src/components/AtomixLogo.tsx +40 -0
  236. package/src/components/Avatar/Avatar.stories.tsx +263 -0
  237. package/src/components/Avatar/Avatar.tsx +68 -0
  238. package/src/components/Avatar/AvatarGroup.tsx +73 -0
  239. package/src/components/Avatar/index.ts +3 -0
  240. package/src/components/Avatar/scripts/index.ts +497 -0
  241. package/src/components/Badge/Badge.stories.tsx +374 -0
  242. package/src/components/Badge/Badge.tsx +39 -0
  243. package/src/components/Badge/index.ts +3 -0
  244. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +108 -0
  245. package/src/components/Breadcrumb/Breadcrumb.tsx +98 -0
  246. package/src/components/Breadcrumb/index.ts +3 -0
  247. package/src/components/Breadcrumb/scripts/breadcrumb.ts +208 -0
  248. package/src/components/Breadcrumb/scripts/demo.html +246 -0
  249. package/src/components/Breadcrumb/scripts/index.ts +5 -0
  250. package/src/components/Breadcrumb/scripts/types.ts +69 -0
  251. package/src/components/Button/Button.stories.tsx +313 -0
  252. package/src/components/Button/Button.tsx +70 -0
  253. package/src/components/Button/index.ts +3 -0
  254. package/src/components/Button/scripts/buttonInteractions.ts +73 -0
  255. package/src/components/Button/scripts/index.ts +1 -0
  256. package/src/components/Callout/Callout.stories.tsx +595 -0
  257. package/src/components/Callout/Callout.tsx +78 -0
  258. package/src/components/Callout/index.ts +1 -0
  259. package/src/components/Callout/scripts/CalloutInteractions.ts +350 -0
  260. package/src/components/Callout/scripts/bundle.ts +18 -0
  261. package/src/components/Callout/scripts/index.ts +130 -0
  262. package/src/components/Card/Card.stories.tsx +107 -0
  263. package/src/components/Card/Card.tsx +69 -0
  264. package/src/components/Card/ElevationCard.tsx +47 -0
  265. package/src/components/Card/index.ts +15 -0
  266. package/src/components/Card/scripts/bundle.ts +30 -0
  267. package/src/components/Card/scripts/cardInteractions.ts +171 -0
  268. package/src/components/Card/scripts/demo.html +322 -0
  269. package/src/components/Card/scripts/index.ts +318 -0
  270. package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +46 -0
  271. package/src/components/ColorModeToggle/ColorModeToggle.tsx +85 -0
  272. package/src/components/ColorModeToggle/index.ts +2 -0
  273. package/src/components/Countdown/Countdown.stories.tsx +47 -0
  274. package/src/components/Countdown/Countdown.tsx +90 -0
  275. package/src/components/Countdown/index.ts +2 -0
  276. package/src/components/Countdown/scripts/index.ts +238 -0
  277. package/src/components/DataTable/DataTable.stories.tsx +249 -0
  278. package/src/components/DataTable/DataTable.tsx +213 -0
  279. package/src/components/DataTable/index.ts +3 -0
  280. package/src/components/DataTable/scripts/bundle.ts +20 -0
  281. package/src/components/DataTable/scripts/index.ts +781 -0
  282. package/src/components/DatePicker/DatePicker.stories.tsx +365 -0
  283. package/src/components/DatePicker/DatePicker.tsx +504 -0
  284. package/src/components/DatePicker/index.ts +4 -0
  285. package/src/components/DatePicker/readme.md +106 -0
  286. package/src/components/DatePicker/scripts/bundle.ts +39 -0
  287. package/src/components/DatePicker/scripts/componentInteractions.ts +230 -0
  288. package/src/components/DatePicker/scripts/index.ts +907 -0
  289. package/src/components/DatePicker/types.ts +167 -0
  290. package/src/components/DatePicker/utils.ts +163 -0
  291. package/src/components/Dropdown/Dropdown.stories.tsx +359 -0
  292. package/src/components/Dropdown/Dropdown.tsx +342 -0
  293. package/src/components/Dropdown/index.ts +14 -0
  294. package/src/components/Dropdown/readme.md +151 -0
  295. package/src/components/Dropdown/scripts/bundle.ts +24 -0
  296. package/src/components/Dropdown/scripts/componentInteractions.ts +39 -0
  297. package/src/components/Dropdown/scripts/index.ts +612 -0
  298. package/src/components/EdgePanel/EdgePanel.stories.tsx +267 -0
  299. package/src/components/EdgePanel/EdgePanel.tsx +73 -0
  300. package/src/components/EdgePanel/index.ts +1 -0
  301. package/src/components/EdgePanel/scripts/bundle.ts +30 -0
  302. package/src/components/EdgePanel/scripts/edgePanelInteractions.ts +206 -0
  303. package/src/components/EdgePanel/scripts/index.ts +415 -0
  304. package/src/components/Form/Checkbox.stories.tsx +77 -0
  305. package/src/components/Form/Checkbox.tsx +69 -0
  306. package/src/components/Form/Form.stories.tsx +491 -0
  307. package/src/components/Form/Form.tsx +46 -0
  308. package/src/components/Form/FormGroup.stories.tsx +163 -0
  309. package/src/components/Form/FormGroup.tsx +53 -0
  310. package/src/components/Form/Input.stories.tsx +107 -0
  311. package/src/components/Form/Input.tsx +87 -0
  312. package/src/components/Form/Radio.stories.tsx +95 -0
  313. package/src/components/Form/Radio.tsx +65 -0
  314. package/src/components/Form/Select.stories.tsx +152 -0
  315. package/src/components/Form/Select.tsx +191 -0
  316. package/src/components/Form/Textarea.stories.tsx +124 -0
  317. package/src/components/Form/Textarea.tsx +78 -0
  318. package/src/components/Form/index.ts +7 -0
  319. package/src/components/Hero/Hero.stories.tsx +297 -0
  320. package/src/components/Hero/Hero.tsx +175 -0
  321. package/src/components/Hero/index.ts +6 -0
  322. package/src/components/Hero/scripts/bundle.ts +33 -0
  323. package/src/components/Hero/scripts/heroInteractions.ts +130 -0
  324. package/src/components/Hero/scripts/index.ts +144 -0
  325. package/src/components/Icon/Icon.tsx +87 -0
  326. package/src/components/Icon/index.ts +2 -0
  327. package/src/components/List/List.stories.tsx +123 -0
  328. package/src/components/List/List.tsx +35 -0
  329. package/src/components/List/ListGroup.tsx +34 -0
  330. package/src/components/List/index.ts +2 -0
  331. package/src/components/Messages/Messages.stories.tsx +161 -0
  332. package/src/components/Messages/Messages.tsx +172 -0
  333. package/src/components/Messages/index.ts +3 -0
  334. package/src/components/Messages/scripts/bundle.ts +47 -0
  335. package/src/components/Messages/scripts/componentInteractions.ts +132 -0
  336. package/src/components/Messages/scripts/index.ts +378 -0
  337. package/src/components/Modal/Modal.stories.tsx +288 -0
  338. package/src/components/Modal/Modal.tsx +198 -0
  339. package/src/components/Modal/README.md +169 -0
  340. package/src/components/Modal/index.ts +1 -0
  341. package/src/components/Modal/scripts/bundle.ts +23 -0
  342. package/src/components/Modal/scripts/index.ts +374 -0
  343. package/src/components/Modal/scripts/modalInteractions.ts +141 -0
  344. package/src/components/Navigation/Menu/MegaMenu.tsx +107 -0
  345. package/src/components/Navigation/Menu/Menu.stories.tsx +340 -0
  346. package/src/components/Navigation/Menu/Menu.tsx +110 -0
  347. package/src/components/Navigation/Nav/Nav.stories.tsx +458 -0
  348. package/src/components/Navigation/Nav/Nav.tsx +50 -0
  349. package/src/components/Navigation/Nav/NavDropdown.tsx +105 -0
  350. package/src/components/Navigation/Nav/NavItem.tsx +159 -0
  351. package/src/components/Navigation/Navbar/Navbar.stories.tsx +552 -0
  352. package/src/components/Navigation/Navbar/Navbar.tsx +150 -0
  353. package/src/components/Navigation/README.md +314 -0
  354. package/src/components/Navigation/SideMenu/SideMenu.README.md +494 -0
  355. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +618 -0
  356. package/src/components/Navigation/SideMenu/SideMenu.tsx +101 -0
  357. package/src/components/Navigation/SideMenu/SideMenuItem.tsx +95 -0
  358. package/src/components/Navigation/SideMenu/SideMenuList.tsx +41 -0
  359. package/src/components/Navigation/index.ts +23 -0
  360. package/src/components/Navigation/scripts/NavbarInteractions.ts +171 -0
  361. package/src/components/Navigation/scripts/SideMenu.ts +319 -0
  362. package/src/components/Navigation/scripts/SideMenuBundle.ts +69 -0
  363. package/src/components/Navigation/scripts/SideMenuInteractions.ts +250 -0
  364. package/src/components/Navigation/scripts/bundle.ts +58 -0
  365. package/src/components/Navigation/scripts/index.ts +248 -0
  366. package/src/components/Pagination/Pagination.stories.tsx +194 -0
  367. package/src/components/Pagination/Pagination.tsx +162 -0
  368. package/src/components/Pagination/index.ts +1 -0
  369. package/src/components/Pagination/scripts/bundle.ts +15 -0
  370. package/src/components/Pagination/scripts/index.ts +315 -0
  371. package/src/components/PhotoViewer/PhotoViewer.stories.tsx +160 -0
  372. package/src/components/PhotoViewer/PhotoViewer.tsx +246 -0
  373. package/src/components/PhotoViewer/PhotoViewerHeader.tsx +177 -0
  374. package/src/components/PhotoViewer/PhotoViewerImage.tsx +173 -0
  375. package/src/components/PhotoViewer/PhotoViewerInfo.tsx +65 -0
  376. package/src/components/PhotoViewer/PhotoViewerNavigation.tsx +82 -0
  377. package/src/components/PhotoViewer/PhotoViewerThumbnails.tsx +53 -0
  378. package/src/components/PhotoViewer/README.md +358 -0
  379. package/src/components/PhotoViewer/examples/ImageGallery.tsx +190 -0
  380. package/src/components/PhotoViewer/examples/SimpleGallery.tsx +77 -0
  381. package/src/components/PhotoViewer/examples/index.ts +2 -0
  382. package/src/components/PhotoViewer/index.ts +14 -0
  383. package/src/components/PhotoViewer/scripts/PhotoViewerInteractions.ts +253 -0
  384. package/src/components/PhotoViewer/scripts/bundle.ts +81 -0
  385. package/src/components/PhotoViewer/scripts/index.ts +947 -0
  386. package/src/components/Popover/Popover.stories.tsx +143 -0
  387. package/src/components/Popover/Popover.tsx +137 -0
  388. package/src/components/Popover/index.ts +5 -0
  389. package/src/components/Popover/readme.md +120 -0
  390. package/src/components/Popover/scripts/bundle.ts +12 -0
  391. package/src/components/Popover/scripts/componentInteractions.ts +299 -0
  392. package/src/components/Popover/scripts/index.ts +342 -0
  393. package/src/components/ProductReview/ProductReview.stories.tsx +88 -0
  394. package/src/components/ProductReview/ProductReview.tsx +169 -0
  395. package/src/components/ProductReview/index.ts +3 -0
  396. package/src/components/ProductReview/scripts/bundle.ts +3 -0
  397. package/src/components/ProductReview/scripts/componentInteractions.ts +129 -0
  398. package/src/components/ProductReview/scripts/index.ts +3 -0
  399. package/src/components/Progress/Progress.stories.tsx +75 -0
  400. package/src/components/Progress/Progress.tsx +45 -0
  401. package/src/components/Progress/index.ts +1 -0
  402. package/src/components/Progress/scripts/bundle.ts +17 -0
  403. package/src/components/Progress/scripts/componentInteractions.ts +101 -0
  404. package/src/components/Progress/scripts/index.ts +184 -0
  405. package/src/components/Rating/Rating.stories.tsx +109 -0
  406. package/src/components/Rating/Rating.tsx +286 -0
  407. package/src/components/Rating/index.ts +6 -0
  408. package/src/components/Rating/scripts/bundle.ts +39 -0
  409. package/src/components/Rating/scripts/index.d.ts +12 -0
  410. package/src/components/Rating/scripts/index.ts +336 -0
  411. package/src/components/Rating/scripts/ratingInteractions.ts +160 -0
  412. package/src/components/River/River.stories.tsx +230 -0
  413. package/src/components/River/River.tsx +162 -0
  414. package/src/components/River/examples.html +223 -0
  415. package/src/components/River/index.ts +2 -0
  416. package/src/components/River/scripts/index.ts +137 -0
  417. package/src/components/SectionIntro/SectionIntro.stories.tsx +145 -0
  418. package/src/components/SectionIntro/SectionIntro.tsx +197 -0
  419. package/src/components/SectionIntro/index.ts +3 -0
  420. package/src/components/SectionIntro/scripts/bundle.ts +9 -0
  421. package/src/components/SectionIntro/scripts/componentInteractions.ts +37 -0
  422. package/src/components/SectionIntro/scripts/index.ts +163 -0
  423. package/src/components/Spinner/Spinner.stories.tsx +66 -0
  424. package/src/components/Spinner/Spinner.tsx +36 -0
  425. package/src/components/Spinner/index.ts +2 -0
  426. package/src/components/Steps/Steps.stories.tsx +158 -0
  427. package/src/components/Steps/Steps.tsx +154 -0
  428. package/src/components/Steps/index.ts +3 -0
  429. package/src/components/Steps/scripts/index.ts +159 -0
  430. package/src/components/Tab/Tab.stories.tsx +129 -0
  431. package/src/components/Tab/Tab.tsx +133 -0
  432. package/src/components/Tab/index.ts +2 -0
  433. package/src/components/Tab/scripts/index.ts +200 -0
  434. package/src/components/Testimonial/Testimonial.stories.tsx +180 -0
  435. package/src/components/Testimonial/Testimonial.tsx +148 -0
  436. package/src/components/Testimonial/index.ts +3 -0
  437. package/src/components/Testimonial/scripts/index.ts +107 -0
  438. package/src/components/Todo/Todo.stories.tsx +155 -0
  439. package/src/components/Todo/Todo.tsx +158 -0
  440. package/src/components/Todo/index.ts +1 -0
  441. package/src/components/Todo/scripts/bundle.ts +14 -0
  442. package/src/components/Todo/scripts/index.ts +534 -0
  443. package/src/components/Todo/scripts/todoInteractions.ts +118 -0
  444. package/src/components/Todo/scripts/types.ts +19 -0
  445. package/src/components/Toggle/Toggle.stories.tsx +50 -0
  446. package/src/components/Toggle/Toggle.tsx +114 -0
  447. package/src/components/Toggle/index.ts +2 -0
  448. package/src/components/Toggle/scripts/bundle.ts +19 -0
  449. package/src/components/Toggle/scripts/index.ts +118 -0
  450. package/src/components/Toggle/scripts/toggleInteractions.ts +77 -0
  451. package/src/components/Tooltip/Tooltip.stories.tsx +115 -0
  452. package/src/components/Tooltip/Tooltip.tsx +105 -0
  453. package/src/components/Tooltip/index.ts +3 -0
  454. package/src/components/Tooltip/scripts/bundle.ts +0 -0
  455. package/src/components/Tooltip/scripts/index.ts +395 -0
  456. package/src/components/Tooltip/scripts/tooltipInteractions.ts +165 -0
  457. package/src/components/Upload/Upload.stories.tsx +221 -0
  458. package/src/components/Upload/Upload.tsx +422 -0
  459. package/src/components/Upload/index.ts +3 -0
  460. package/src/components/Upload/scripts/index.ts +467 -0
  461. package/src/components/index.ts +117 -0
  462. package/src/design-tokens/BoxShadow/BoxShadow.stories.tsx +115 -0
  463. package/src/design-tokens/Colors/colors.scss +121 -0
  464. package/src/design-tokens/Colors/colors.stories.tsx +313 -0
  465. package/src/design-tokens/Spacing/Spacing.scss +62 -0
  466. package/src/design-tokens/Spacing/Spacing.stories.tsx +115 -0
  467. package/src/design-tokens/Typography/Typography.scss +240 -0
  468. package/src/design-tokens/Typography/Typography.stories.tsx +167 -0
  469. package/src/docs/atomix-component-guidelines.mdx +942 -0
  470. package/src/docs/atomix-roadmap.mdx +325 -0
  471. package/src/docs/implementation-guide.mdx +506 -0
  472. package/src/htmlComponentsEntry.ts +318 -0
  473. package/src/index.ts +21 -0
  474. package/src/layouts/Grid/Container.tsx +56 -0
  475. package/src/layouts/Grid/Grid.stories.tsx +560 -0
  476. package/src/layouts/Grid/Grid.tsx +67 -0
  477. package/src/layouts/Grid/GridCol.tsx +160 -0
  478. package/src/layouts/Grid/README.md +108 -0
  479. package/src/layouts/Grid/Row.tsx +68 -0
  480. package/src/layouts/Grid/index.ts +8 -0
  481. package/src/layouts/MasonryGrid/MasonryGrid.stories.tsx +388 -0
  482. package/src/layouts/MasonryGrid/MasonryGrid.tsx +406 -0
  483. package/src/layouts/MasonryGrid/MasonryGridItem.tsx +42 -0
  484. package/src/layouts/MasonryGrid/README.md +117 -0
  485. package/src/layouts/MasonryGrid/index.ts +4 -0
  486. package/src/layouts/index.ts +9 -0
  487. package/src/lib/README.md +89 -0
  488. package/src/lib/composables/index.ts +44 -0
  489. package/src/lib/composables/useAccordion.ts +129 -0
  490. package/src/lib/composables/useBadge.ts +42 -0
  491. package/src/lib/composables/useBreadcrumb.ts +74 -0
  492. package/src/lib/composables/useButton.ts +59 -0
  493. package/src/lib/composables/useCallout.ts +55 -0
  494. package/src/lib/composables/useCard.ts +155 -0
  495. package/src/lib/composables/useCheckbox.ts +70 -0
  496. package/src/lib/composables/useDataTable.ts +208 -0
  497. package/src/lib/composables/useDatePicker.ts +562 -0
  498. package/src/lib/composables/useDropdown.ts +272 -0
  499. package/src/lib/composables/useEdgePanel.ts +261 -0
  500. package/src/lib/composables/useForm.ts +62 -0
  501. package/src/lib/composables/useFormGroup.ts +51 -0
  502. package/src/lib/composables/useHero.ts +250 -0
  503. package/src/lib/composables/useInput.ts +58 -0
  504. package/src/lib/composables/useMessages.ts +77 -0
  505. package/src/lib/composables/useModal.ts +110 -0
  506. package/src/lib/composables/useNavbar.ts +288 -0
  507. package/src/lib/composables/usePagination.ts +101 -0
  508. package/src/lib/composables/usePhotoViewer.ts +904 -0
  509. package/src/lib/composables/usePopover.ts +354 -0
  510. package/src/lib/composables/useProgress.ts +74 -0
  511. package/src/lib/composables/useRadio.ts +47 -0
  512. package/src/lib/composables/useRating.ts +174 -0
  513. package/src/lib/composables/useRiver.ts +205 -0
  514. package/src/lib/composables/useSelect.ts +52 -0
  515. package/src/lib/composables/useSideMenu.ts +197 -0
  516. package/src/lib/composables/useSpinner.ts +42 -0
  517. package/src/lib/composables/useTextarea.ts +55 -0
  518. package/src/lib/composables/useTodo.ts +142 -0
  519. package/src/lib/constants/components.ts +1050 -0
  520. package/src/lib/constants/index.ts +4 -0
  521. package/src/lib/index.ts +11 -0
  522. package/src/lib/types/components.ts +2498 -0
  523. package/src/lib/types/index.ts +2 -0
  524. package/src/lib/utils/dom.ts +41 -0
  525. package/src/lib/utils/icons.ts +74 -0
  526. package/src/lib/utils/index.ts +7 -0
  527. package/src/lib/utils/useForkRef.ts +36 -0
  528. package/src/styles/01-settings/_index.scss +64 -0
  529. package/src/styles/01-settings/_settings.accordion.scss +29 -0
  530. package/src/styles/01-settings/_settings.animations.scss +2 -0
  531. package/src/styles/01-settings/_settings.avatar-group.scss +20 -0
  532. package/src/styles/01-settings/_settings.avatar.scss +46 -0
  533. package/src/styles/01-settings/_settings.badge.scss +12 -0
  534. package/src/styles/01-settings/_settings.border-radius.scss +12 -0
  535. package/src/styles/01-settings/_settings.border.scss +14 -0
  536. package/src/styles/01-settings/_settings.box-shadow.scss +28 -0
  537. package/src/styles/01-settings/_settings.breadcrumb.scss +19 -0
  538. package/src/styles/01-settings/_settings.breakpoints.scss +8 -0
  539. package/src/styles/01-settings/_settings.btn-group.scss +1 -0
  540. package/src/styles/01-settings/_settings.button.scss +81 -0
  541. package/src/styles/01-settings/_settings.callout.scss +61 -0
  542. package/src/styles/01-settings/_settings.card.scss +36 -0
  543. package/src/styles/01-settings/_settings.checkbox-group.scss +2 -0
  544. package/src/styles/01-settings/_settings.checkbox.scss +20 -0
  545. package/src/styles/01-settings/_settings.color-mode.scss +5 -0
  546. package/src/styles/01-settings/_settings.colors.scss +252 -0
  547. package/src/styles/01-settings/_settings.config.scss +4 -0
  548. package/src/styles/01-settings/_settings.countdown.scss +15 -0
  549. package/src/styles/01-settings/_settings.data-table.scss +52 -0
  550. package/src/styles/01-settings/_settings.datepicker.scss +44 -0
  551. package/src/styles/01-settings/_settings.dropdown.scss +38 -0
  552. package/src/styles/01-settings/_settings.edge-panel.scss +17 -0
  553. package/src/styles/01-settings/_settings.fonts.scss +17 -0
  554. package/src/styles/01-settings/_settings.form-group.scss +11 -0
  555. package/src/styles/01-settings/_settings.form.scss +3 -0
  556. package/src/styles/01-settings/_settings.grid.scss +15 -0
  557. package/src/styles/01-settings/_settings.hero.scss +30 -0
  558. package/src/styles/01-settings/_settings.input.scss +38 -0
  559. package/src/styles/01-settings/_settings.link.scss +12 -0
  560. package/src/styles/01-settings/_settings.list-group.scss +14 -0
  561. package/src/styles/01-settings/_settings.list.scss +10 -0
  562. package/src/styles/01-settings/_settings.maps.scss +278 -0
  563. package/src/styles/01-settings/_settings.masonry-grid.scss +17 -0
  564. package/src/styles/01-settings/_settings.menu.scss +35 -0
  565. package/src/styles/01-settings/_settings.messages.scss +71 -0
  566. package/src/styles/01-settings/_settings.modal.scss +31 -0
  567. package/src/styles/01-settings/_settings.nav.scss +18 -0
  568. package/src/styles/01-settings/_settings.navbar.scss +46 -0
  569. package/src/styles/01-settings/_settings.pagination.scss +29 -0
  570. package/src/styles/01-settings/_settings.photoviewer.scss +35 -0
  571. package/src/styles/01-settings/_settings.popover.scss +13 -0
  572. package/src/styles/01-settings/_settings.position.scss +7 -0
  573. package/src/styles/01-settings/_settings.progress.scss +15 -0
  574. package/src/styles/01-settings/_settings.rating.scss +8 -0
  575. package/src/styles/01-settings/_settings.river.scss +34 -0
  576. package/src/styles/01-settings/_settings.sectionintro.scss +21 -0
  577. package/src/styles/01-settings/_settings.select.scss +32 -0
  578. package/src/styles/01-settings/_settings.side-menu.scss +64 -0
  579. package/src/styles/01-settings/_settings.skeleton.scss +14 -0
  580. package/src/styles/01-settings/_settings.spacing.scss +68 -0
  581. package/src/styles/01-settings/_settings.spinner.scss +13 -0
  582. package/src/styles/01-settings/_settings.steps.scss +26 -0
  583. package/src/styles/01-settings/_settings.tabs.scss +28 -0
  584. package/src/styles/01-settings/_settings.testimonials.scss +18 -0
  585. package/src/styles/01-settings/_settings.todo.scss +50 -0
  586. package/src/styles/01-settings/_settings.toggle.scss +34 -0
  587. package/src/styles/01-settings/_settings.tooltip.scss +19 -0
  588. package/src/styles/01-settings/_settings.typography.scss +93 -0
  589. package/src/styles/01-settings/_settings.upload.scss +70 -0
  590. package/src/styles/01-settings/_settings.z-layers.scss +9 -0
  591. package/src/styles/02-tools/_index.scss +20 -0
  592. package/src/styles/02-tools/_tools.animations.scss +19 -0
  593. package/src/styles/02-tools/_tools.border-radius.scss +78 -0
  594. package/src/styles/02-tools/_tools.breakpoints.scss +48 -0
  595. package/src/styles/02-tools/_tools.button.scss +115 -0
  596. package/src/styles/02-tools/_tools.clearfix.scss +10 -0
  597. package/src/styles/02-tools/_tools.color-functions.scss +28 -0
  598. package/src/styles/02-tools/_tools.color-mode.scss +22 -0
  599. package/src/styles/02-tools/_tools.event.scss +22 -0
  600. package/src/styles/02-tools/_tools.grid.scss +76 -0
  601. package/src/styles/02-tools/_tools.hidden-visually.scss +32 -0
  602. package/src/styles/02-tools/_tools.hidden.scss +2 -0
  603. package/src/styles/02-tools/_tools.map-loop.scss +31 -0
  604. package/src/styles/02-tools/_tools.media-queries.scss +69 -0
  605. package/src/styles/02-tools/_tools.object-fit.scss +4 -0
  606. package/src/styles/02-tools/_tools.placeholder.scss +17 -0
  607. package/src/styles/02-tools/_tools.rem.scss +5 -0
  608. package/src/styles/02-tools/_tools.size.scss +8 -0
  609. package/src/styles/02-tools/_tools.spacing.scss +140 -0
  610. package/src/styles/02-tools/_tools.to-rgb.scss +9 -0
  611. package/src/styles/02-tools/_tools.transition.scss +50 -0
  612. package/src/styles/02-tools/_tools.utilities.scss +14 -0
  613. package/src/styles/02-tools/_tools.utility-api.scss +144 -0
  614. package/src/styles/03-generic/_generic.fonts.scss +24 -0
  615. package/src/styles/03-generic/_generic.reset.scss +402 -0
  616. package/src/styles/03-generic/_generic.root.scss +184 -0
  617. package/src/styles/03-generic/_generic.selection.scss +15 -0
  618. package/src/styles/03-generic/_index.scss +5 -0
  619. package/src/styles/04-elements/_elements.all.scss +16 -0
  620. package/src/styles/04-elements/_elements.body.scss +15 -0
  621. package/src/styles/04-elements/_elements.heading.scss +54 -0
  622. package/src/styles/04-elements/_elements.html.scss +9 -0
  623. package/src/styles/04-elements/_elements.links.scss +11 -0
  624. package/src/styles/04-elements/_index.scss +6 -0
  625. package/src/styles/05-objects/_index.scss +4 -0
  626. package/src/styles/05-objects/_objects.container.scss +36 -0
  627. package/src/styles/05-objects/_objects.grid.scss +25 -0
  628. package/src/styles/05-objects/_objects.masonry-grid.scss +96 -0
  629. package/src/styles/06-components/_components.accordion.scss +109 -0
  630. package/src/styles/06-components/_components.avatar-group.scss +85 -0
  631. package/src/styles/06-components/_components.avatar.scss +101 -0
  632. package/src/styles/06-components/_components.badge.scss +62 -0
  633. package/src/styles/06-components/_components.breadcrumb.scss +80 -0
  634. package/src/styles/06-components/_components.btn-group.scss +35 -0
  635. package/src/styles/06-components/_components.button.scss +134 -0
  636. package/src/styles/06-components/_components.callout.scss +272 -0
  637. package/src/styles/06-components/_components.card.scss +148 -0
  638. package/src/styles/06-components/_components.checkbox-group.scss +17 -0
  639. package/src/styles/06-components/_components.checkbox.scss +135 -0
  640. package/src/styles/06-components/_components.color-mode-toggle.scss +36 -0
  641. package/src/styles/06-components/_components.countdown.scss +63 -0
  642. package/src/styles/06-components/_components.data-table.scss +183 -0
  643. package/src/styles/06-components/_components.datepicker.scss +546 -0
  644. package/src/styles/06-components/_components.dropdown.scss +255 -0
  645. package/src/styles/06-components/_components.edge-panel.scss +350 -0
  646. package/src/styles/06-components/_components.form-group.scss +78 -0
  647. package/src/styles/06-components/_components.form.scss +21 -0
  648. package/src/styles/06-components/_components.hero.scss +147 -0
  649. package/src/styles/06-components/_components.icon.scss +80 -0
  650. package/src/styles/06-components/_components.image-gallery.scss +72 -0
  651. package/src/styles/06-components/_components.input.scss +107 -0
  652. package/src/styles/06-components/_components.list-group.scss +63 -0
  653. package/src/styles/06-components/_components.list.scss +57 -0
  654. package/src/styles/06-components/_components.menu.scss +239 -0
  655. package/src/styles/06-components/_components.messages.scss +332 -0
  656. package/src/styles/06-components/_components.modal.scss +153 -0
  657. package/src/styles/06-components/_components.nav.scss +172 -0
  658. package/src/styles/06-components/_components.navbar.scss +310 -0
  659. package/src/styles/06-components/_components.pagination.scss +155 -0
  660. package/src/styles/06-components/_components.photoviewer.scss +878 -0
  661. package/src/styles/06-components/_components.popover.scss +99 -0
  662. package/src/styles/06-components/_components.product-review.scss +128 -0
  663. package/src/styles/06-components/_components.progress.scss +43 -0
  664. package/src/styles/06-components/_components.rating.scss +161 -0
  665. package/src/styles/06-components/_components.river.scss +216 -0
  666. package/src/styles/06-components/_components.sectionintro.scss +163 -0
  667. package/src/styles/06-components/_components.select.scss +125 -0
  668. package/src/styles/06-components/_components.side-menu.scss +234 -0
  669. package/src/styles/06-components/_components.skeleton.scss +55 -0
  670. package/src/styles/06-components/_components.spinner.scss +45 -0
  671. package/src/styles/06-components/_components.steps.scss +99 -0
  672. package/src/styles/06-components/_components.tabs.scss +124 -0
  673. package/src/styles/06-components/_components.testimonials.scss +65 -0
  674. package/src/styles/06-components/_components.todo.scss +163 -0
  675. package/src/styles/06-components/_components.toggle.scss +100 -0
  676. package/src/styles/06-components/_components.tooltip.scss +136 -0
  677. package/src/styles/06-components/_components.upload.scss +250 -0
  678. package/src/styles/06-components/_index.scss +49 -0
  679. package/src/styles/99-utilities/_index.scss +21 -0
  680. package/src/styles/99-utilities/_utilities.background.scss +28 -0
  681. package/src/styles/99-utilities/_utilities.border.scss +157 -0
  682. package/src/styles/99-utilities/_utilities.clearfix.scss +5 -0
  683. package/src/styles/99-utilities/_utilities.display.scss +13 -0
  684. package/src/styles/99-utilities/_utilities.flex.scss +109 -0
  685. package/src/styles/99-utilities/_utilities.link.scss +96 -0
  686. package/src/styles/99-utilities/_utilities.object-fit.scss +17 -0
  687. package/src/styles/99-utilities/_utilities.opacity.scss +16 -0
  688. package/src/styles/99-utilities/_utilities.overflow.scss +20 -0
  689. package/src/styles/99-utilities/_utilities.position.scss +40 -0
  690. package/src/styles/99-utilities/_utilities.scss +42 -0
  691. package/src/styles/99-utilities/_utilities.shadow.scss +19 -0
  692. package/src/styles/99-utilities/_utilities.sizes.scss +81 -0
  693. package/src/styles/99-utilities/_utilities.spacing.scss +188 -0
  694. package/src/styles/99-utilities/_utilities.text.scss +87 -0
  695. package/src/styles/99-utilities/_utilities.visibility.scss +13 -0
  696. package/src/styles/99-utilities/_utilities.visually-hidden.scss +5 -0
  697. package/src/styles/99-utilities/_utilities.z-index.scss +11 -0
  698. package/src/styles/index.scss +12 -0
  699. package/tsconfig.json +74 -0
  700. package/webpack.config.js +463 -0
  701. package/dist/types/components/Navbar/Nav.d.ts +0 -5
  702. package/dist/types/components/Navbar/NavItem.d.ts +0 -5
  703. package/dist/types/components/Navbar/Navbar.d.ts +0 -5
  704. package/dist/types/components/Navbar/index.d.ts +0 -6
@@ -0,0 +1,2498 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ /**
4
+ * Common component size options
5
+ */
6
+ export type Size = 'sm' | 'md' | 'lg';
7
+
8
+ /**
9
+ * Theme color variants
10
+ */
11
+ export type ThemeColor =
12
+ | 'primary'
13
+ | 'secondary'
14
+ | 'tertiary'
15
+ | 'invert'
16
+ | 'brand'
17
+ | 'error'
18
+ | 'success'
19
+ | 'warning'
20
+ | 'info'
21
+ | 'light'
22
+ | 'dark';
23
+
24
+ /**
25
+ * Component variant including theme colors and outline variants
26
+ */
27
+ export type Variant = ThemeColor | `outline-${ThemeColor}` | 'link';
28
+
29
+ /**
30
+ * Base component properties interface
31
+ */
32
+ export interface BaseComponentProps {
33
+ /**
34
+ * Additional CSS class names
35
+ */
36
+ className?: string;
37
+
38
+ /**
39
+ * Component disabled state
40
+ */
41
+ disabled?: boolean;
42
+ }
43
+
44
+ /**
45
+ * CSS class state modifiers
46
+ */
47
+ export type StateModifier =
48
+ | 'is-open'
49
+ | 'is-closed'
50
+ | 'is-active'
51
+ | 'is-disabled'
52
+ | 'is-loading'
53
+ | 'is-selected'
54
+ | 'is-animating'
55
+ | 'is-hovered';
56
+
57
+ /**
58
+ * Icon position options
59
+ */
60
+ export type IconPosition = 'left' | 'right';
61
+
62
+ export type listvariant = 'dash' | 'number' | 'text';
63
+ /**;
64
+ * List component properties
65
+ */
66
+ export interface ListProps extends BaseComponentProps {
67
+ children?: ReactNode;
68
+ /**
69
+ * List items
70
+ */
71
+ items?: ReactNode[];
72
+
73
+ /**
74
+ * List variant
75
+ */
76
+ variant?: listvariant;
77
+
78
+ /**
79
+ * List size
80
+ */
81
+ size?: Size;
82
+
83
+ /**
84
+ * Whether the list is ordered
85
+ */
86
+ ordered?: boolean;
87
+
88
+ /**
89
+ * Whether to display list items inline
90
+ */
91
+ inline?: boolean;
92
+ }
93
+
94
+ /**
95
+ * List group component properties
96
+ */
97
+ export interface ListGroupProps extends BaseComponentProps {
98
+ /**
99
+ * List group children
100
+ */
101
+ children?: ReactNode;
102
+
103
+ /**
104
+ * List group variant
105
+ */
106
+ variant?: Variant;
107
+
108
+ /**
109
+ * List group size
110
+ */
111
+ size?: Size;
112
+ }
113
+
114
+ /**
115
+ * Button component properties
116
+ */
117
+ export interface ButtonProps extends BaseComponentProps {
118
+ /**
119
+ * Button contents
120
+ */
121
+ label: string;
122
+
123
+ /**
124
+ * Optional click handler
125
+ */
126
+ onClick?: () => void;
127
+
128
+ /**
129
+ * Button variant
130
+ */
131
+ variant?: Variant;
132
+
133
+ /**
134
+ * Button size
135
+ */
136
+ size?: Size;
137
+
138
+ /**
139
+ * Optional icon
140
+ */
141
+ icon?: ReactNode;
142
+
143
+ /**
144
+ * Icon only button
145
+ */
146
+ iconOnly?: boolean;
147
+
148
+ /**
149
+ * Make button fully rounded (pill shape)
150
+ */
151
+ rounded?: boolean;
152
+ }
153
+
154
+ /**
155
+ * Badge component properties
156
+ */
157
+ export interface BadgeProps extends BaseComponentProps {
158
+ /**
159
+ * Badge text content
160
+ */
161
+ label: string;
162
+
163
+ /**
164
+ * Badge color variant
165
+ */
166
+ variant?: ThemeColor;
167
+
168
+ /**
169
+ * Badge size
170
+ */
171
+ size?: Size;
172
+
173
+ /**
174
+ * Optional icon
175
+ */
176
+ icon?: ReactNode;
177
+ }
178
+
179
+ /**
180
+ * Callout component properties
181
+ */
182
+ export interface CalloutProps extends BaseComponentProps {
183
+ /**
184
+ * Callout title
185
+ */
186
+ title?: ReactNode;
187
+
188
+ /**
189
+ * Callout content
190
+ */
191
+ children?: ReactNode;
192
+
193
+ /**
194
+ * Optional icon
195
+ */
196
+ icon?: ReactNode;
197
+
198
+ /**
199
+ * Callout variant
200
+ */
201
+ variant?: ThemeColor;
202
+
203
+ /**
204
+ * Optional close handler
205
+ */
206
+ onClose?: () => void;
207
+
208
+ /**
209
+ * Optional action buttons
210
+ */
211
+ actions?: ReactNode;
212
+
213
+ /**
214
+ * Display in one line mode
215
+ */
216
+ oneLine?: boolean;
217
+
218
+ /**
219
+ * Display as toast notification
220
+ */
221
+ toast?: boolean;
222
+ }
223
+
224
+ /**
225
+ * Accordion component properties
226
+ */
227
+ export interface AccordionProps extends BaseComponentProps {
228
+ /**
229
+ * Title of the accordion
230
+ */
231
+ title: string;
232
+
233
+ /**
234
+ * Content to be shown when accordion is expanded
235
+ */
236
+ children: ReactNode;
237
+
238
+ /**
239
+ * Whether the accordion is initially open
240
+ */
241
+ defaultOpen?: boolean;
242
+
243
+ /**
244
+ * Position of the icon (right or left)
245
+ */
246
+ iconPosition?: IconPosition;
247
+
248
+ /**
249
+ * Custom icon for the accordion
250
+ */
251
+ icon?: ReactNode;
252
+ }
253
+
254
+ /**
255
+ * Accordion state
256
+ */
257
+ export interface AccordionState {
258
+ /**
259
+ * Whether the accordion is open
260
+ */
261
+ isOpen: boolean;
262
+
263
+ /**
264
+ * Current panel height CSS value
265
+ */
266
+ panelHeight: string;
267
+ }
268
+
269
+ /**
270
+ * Common element ref types
271
+ */
272
+ export interface ElementRefs {
273
+ panelRef?: React.RefObject<HTMLDivElement>;
274
+ contentRef?: React.RefObject<HTMLDivElement>;
275
+ buttonRef?: React.RefObject<HTMLButtonElement>;
276
+ }
277
+
278
+ /**
279
+ * Hero alignment options
280
+ */
281
+ export type HeroAlignment = 'left' | 'center' | 'right';
282
+
283
+ /**
284
+ * Hero component properties
285
+ */
286
+ export interface HeroProps extends BaseComponentProps {
287
+ /**
288
+ * Hero title
289
+ */
290
+ title: string;
291
+
292
+ /**
293
+ * Hero subtitle
294
+ */
295
+ subtitle?: string;
296
+
297
+ /**
298
+ * Hero text content
299
+ */
300
+ text?: string;
301
+
302
+ /**
303
+ * Image source for the hero
304
+ */
305
+ imageSrc?: string;
306
+
307
+ /**
308
+ * Image alt text
309
+ */
310
+ imageAlt?: string;
311
+
312
+ /**
313
+ * Content alignment
314
+ */
315
+ alignment?: HeroAlignment;
316
+
317
+ /**
318
+ * Background image source
319
+ */
320
+ backgroundImageSrc?: string;
321
+
322
+ /**
323
+ * Whether to show the background overlay
324
+ */
325
+ showOverlay?: boolean;
326
+
327
+ /**
328
+ * Whether the hero should take full viewport height
329
+ */
330
+ fullViewportHeight?: boolean;
331
+
332
+ /**
333
+ * Actions to display in the hero
334
+ */
335
+ actions?: ReactNode;
336
+
337
+ /**
338
+ * Custom grid column size for image (default is 7)
339
+ */
340
+ imageColSize?: number;
341
+
342
+ /**
343
+ * Custom grid column size for content (default is 5)
344
+ */
345
+ contentColSize?: number;
346
+
347
+ /**
348
+ * Custom width for the hero content (overrides the default CSS variable)
349
+ */
350
+ contentWidth?: string;
351
+
352
+ /**
353
+ * Enable parallax effect on background image
354
+ */
355
+ parallax?: boolean;
356
+
357
+ /**
358
+ * Parallax effect intensity (0-1)
359
+ */
360
+ parallaxIntensity?: number;
361
+
362
+ /**
363
+ * Video background URL
364
+ */
365
+ videoBackground?: string;
366
+
367
+ /**
368
+ * Video background options
369
+ */
370
+ videoOptions?: {
371
+ /**
372
+ * Whether the video should autoplay
373
+ */
374
+ autoplay?: boolean;
375
+
376
+ /**
377
+ * Whether the video should loop
378
+ */
379
+ loop?: boolean;
380
+
381
+ /**
382
+ * Whether the video should be muted
383
+ */
384
+ muted?: boolean;
385
+
386
+ /**
387
+ * Poster image URL for the video
388
+ */
389
+ posterUrl?: string;
390
+ };
391
+ }
392
+
393
+ /**
394
+ * Spinner component properties
395
+ */
396
+ export interface SpinnerProps extends BaseComponentProps {
397
+ /**
398
+ * Spinner color variant
399
+ */
400
+ variant?: ThemeColor;
401
+
402
+ /**
403
+ * Spinner size
404
+ */
405
+ size?: Size;
406
+
407
+ /**
408
+ * Whether the spinner should be displayed fullscreen
409
+ */
410
+ fullscreen?: boolean;
411
+ }
412
+
413
+ /**
414
+ * Navbar position options
415
+ */
416
+ export type NavbarPosition = 'static' | 'fixed' | 'fixed-bottom';
417
+
418
+ /**
419
+ * Nav item alignment options
420
+ */
421
+ export type NavAlignment = 'start' | 'center' | 'end';
422
+
423
+ /**
424
+ * Nav variant options
425
+ */
426
+ export type NavVariant = 'default' | 'float-top-center' | 'float-bottom-center';
427
+
428
+ /**
429
+ * Navbar component properties
430
+ */
431
+ export interface NavbarProps extends BaseComponentProps {
432
+ /**
433
+ * Brand/logo component or text
434
+ */
435
+ brand?: ReactNode;
436
+
437
+ /**
438
+ * Navbar navigation items
439
+ */
440
+ children?: ReactNode;
441
+
442
+ /**
443
+ * Optional variant/color scheme
444
+ */
445
+ variant?: ThemeColor;
446
+
447
+ /**
448
+ * Navbar position
449
+ */
450
+ position?: NavbarPosition;
451
+
452
+ /**
453
+ * Container max width (default is from settings)
454
+ */
455
+ containerWidth?: string;
456
+
457
+ /**
458
+ * Whether to collapse navbar on mobile
459
+ */
460
+ collapsible?: boolean;
461
+
462
+ /**
463
+ * Whether navbar is expanded (for controlled component)
464
+ */
465
+ expanded?: boolean;
466
+
467
+ /**
468
+ * Callback when expansion state changes
469
+ */
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;
496
+ }
497
+
498
+ /**
499
+ * Nav component properties
500
+ */
501
+ export interface NavProps extends BaseComponentProps {
502
+ /**
503
+ * Navigation items
504
+ */
505
+ children: ReactNode;
506
+
507
+ /**
508
+ * Alignment of nav items
509
+ */
510
+ alignment?: NavAlignment;
511
+
512
+ /**
513
+ * Nav variant (including float variants)
514
+ */
515
+ variant?: NavVariant;
516
+ }
517
+
518
+ /**
519
+ * Nav item properties
520
+ */
521
+ export interface NavItemProps extends BaseComponentProps {
522
+ /**
523
+ * Item content
524
+ */
525
+ children: ReactNode;
526
+
527
+ /**
528
+ * Whether this item has a dropdown
529
+ */
530
+ dropdown?: boolean;
531
+
532
+ /**
533
+ * Whether this item has a mega menu
534
+ */
535
+ megaMenu?: boolean;
536
+
537
+ /**
538
+ * Whether this item is active
539
+ */
540
+ active?: boolean;
541
+
542
+ /**
543
+ * Optional href for link items
544
+ */
545
+ href?: string;
546
+
547
+ /**
548
+ * Optional click handler
549
+ */
550
+ onClick?: () => void;
551
+
552
+ /**
553
+ * Whether dropdown/mega menu is expanded
554
+ */
555
+ 'aria-expanded'?: boolean;
556
+ }
557
+
558
+ /**
559
+ * Nav dropdown properties
560
+ */
561
+ export interface NavDropdownProps extends BaseComponentProps {
562
+ /**
563
+ * Dropdown title/trigger content
564
+ */
565
+ title: ReactNode;
566
+
567
+ /**
568
+ * Dropdown menu items
569
+ */
570
+ children: ReactNode;
571
+
572
+ /**
573
+ * Dropdown alignment
574
+ */
575
+ alignment?: 'start' | 'center' | 'end';
576
+
577
+ /**
578
+ * Whether it's a mega menu (full width)
579
+ */
580
+ megaMenu?: boolean;
581
+ }
582
+
583
+ /**
584
+ * Menu component properties
585
+ */
586
+ export interface MenuProps extends BaseComponentProps {
587
+ /**
588
+ * Menu content
589
+ */
590
+ children: ReactNode;
591
+ }
592
+
593
+ /**
594
+ * Menu item properties
595
+ */
596
+ export interface MenuItemProps extends BaseComponentProps {
597
+ /**
598
+ * Item content
599
+ */
600
+ children: ReactNode;
601
+
602
+ /**
603
+ * Item href
604
+ */
605
+ href?: string;
606
+
607
+ /**
608
+ * Item icon
609
+ */
610
+ icon?: ReactNode;
611
+
612
+ /**
613
+ * Whether item is active
614
+ */
615
+ active?: boolean;
616
+
617
+ /**
618
+ * Item click handler
619
+ */
620
+ onClick?: () => void;
621
+ }
622
+
623
+ /**
624
+ * MegaMenu component properties
625
+ */
626
+ export interface MegaMenuProps extends BaseComponentProps {
627
+ /**
628
+ * MegaMenu content
629
+ */
630
+ children: ReactNode;
631
+ }
632
+
633
+ /**
634
+ * MegaMenu column properties
635
+ */
636
+ export interface MegaMenuColumnProps extends BaseComponentProps {
637
+ /**
638
+ * Column title
639
+ */
640
+ title?: ReactNode;
641
+
642
+ /**
643
+ * Column icon
644
+ */
645
+ icon?: ReactNode;
646
+
647
+ /**
648
+ * Column content
649
+ */
650
+ children: ReactNode;
651
+
652
+ /**
653
+ * Column width (auto by default)
654
+ */
655
+ width?: 'auto' | number;
656
+ }
657
+
658
+ /**
659
+ * MegaMenu link properties
660
+ */
661
+ export interface MegaMenuLinkProps extends BaseComponentProps {
662
+ /**
663
+ * Link href
664
+ */
665
+ href: string;
666
+
667
+ /**
668
+ * Link content
669
+ */
670
+ children: ReactNode;
671
+
672
+ /**
673
+ * Link click handler
674
+ */
675
+ onClick?: () => void;
676
+ }
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
+
768
+ /**
769
+ * EdgePanel position options
770
+ */
771
+ export type EdgePanelPosition = 'start' | 'end' | 'top' | 'bottom';
772
+
773
+ /**
774
+ * EdgePanel animation mode options
775
+ */
776
+ export type EdgePanelMode = 'slide' | 'push' | 'none';
777
+
778
+ /**
779
+ * EdgePanel component properties
780
+ */
781
+ export interface EdgePanelProps extends BaseComponentProps {
782
+ /**
783
+ * Panel title
784
+ */
785
+ title?: ReactNode;
786
+
787
+ /**
788
+ * Panel content
789
+ */
790
+ children: ReactNode;
791
+
792
+ /**
793
+ * Panel position
794
+ */
795
+ position?: EdgePanelPosition;
796
+
797
+ /**
798
+ * Animation mode
799
+ */
800
+ mode?: EdgePanelMode;
801
+
802
+ /**
803
+ * Whether the panel is open
804
+ */
805
+ isOpen?: boolean;
806
+
807
+ /**
808
+ * Open/close callback
809
+ */
810
+ onOpenChange?: (open: boolean) => void;
811
+
812
+ /**
813
+ * Show backdrop
814
+ */
815
+ backdrop?: boolean;
816
+
817
+ /**
818
+ * Close when clicking backdrop
819
+ */
820
+ closeOnBackdropClick?: boolean;
821
+
822
+ /**
823
+ * Close when pressing escape key
824
+ */
825
+ closeOnEscape?: boolean;
826
+ }
827
+
828
+ /**
829
+ * DataTable column definition
830
+ */
831
+ export interface DataTableColumn {
832
+ /**
833
+ * Unique identifier for the column
834
+ */
835
+ key: string;
836
+
837
+ /**
838
+ * Display title for the column
839
+ */
840
+ title: string;
841
+
842
+ /**
843
+ * Whether the column is sortable
844
+ */
845
+ sortable?: boolean;
846
+
847
+ /**
848
+ * Whether the column is filterable
849
+ */
850
+ filterable?: boolean;
851
+
852
+ /**
853
+ * Custom render function for the cell
854
+ */
855
+ render?: (value: any, row: any) => React.ReactNode;
856
+
857
+ /**
858
+ * Width of the column (CSS value)
859
+ */
860
+ width?: string;
861
+ }
862
+
863
+ /**
864
+ * Sort configuration
865
+ */
866
+ export interface SortConfig {
867
+ /**
868
+ * Column key to sort by
869
+ */
870
+ key: string;
871
+
872
+ /**
873
+ * Sort direction
874
+ */
875
+ direction: 'asc' | 'desc';
876
+ }
877
+
878
+ /**
879
+ * DataTable component properties
880
+ */
881
+ export interface DataTableProps extends BaseComponentProps {
882
+ /**
883
+ * Data array to display in the table
884
+ */
885
+ data: any[];
886
+
887
+ /**
888
+ * Column definitions
889
+ */
890
+ columns: DataTableColumn[];
891
+
892
+ /**
893
+ * Whether the table is sortable
894
+ */
895
+ sortable?: boolean;
896
+
897
+ /**
898
+ * Whether the table is filterable
899
+ */
900
+ filterable?: boolean;
901
+
902
+ /**
903
+ * Whether the table is paginated
904
+ */
905
+ paginated?: boolean;
906
+
907
+ /**
908
+ * Number of rows per page
909
+ */
910
+ pageSize?: number;
911
+
912
+ /**
913
+ * Whether to show alternating row colors
914
+ */
915
+ striped?: boolean;
916
+
917
+ /**
918
+ * Whether to show borders around cells
919
+ */
920
+ bordered?: boolean;
921
+
922
+ /**
923
+ * Whether to use compact styling
924
+ */
925
+ dense?: boolean;
926
+
927
+ /**
928
+ * Whether the table is in loading state
929
+ */
930
+ loading?: boolean;
931
+
932
+ /**
933
+ * Message to display when there is no data
934
+ */
935
+ emptyMessage?: string;
936
+
937
+ /**
938
+ * Callback when a row is clicked
939
+ */
940
+ onRowClick?: (row: any) => void;
941
+
942
+ /**
943
+ * Callback when sorting changes
944
+ */
945
+ onSort?: (sortConfig: SortConfig) => void;
946
+ }
947
+
948
+ /**
949
+ * Pagination component properties
950
+ */
951
+ export interface PaginationProps extends BaseComponentProps {
952
+ /**
953
+ * Current active page
954
+ */
955
+ currentPage: number;
956
+
957
+ /**
958
+ * Total number of pages
959
+ */
960
+ totalPages: number;
961
+
962
+ /**
963
+ * Callback function when page changes
964
+ */
965
+ onPageChange: (page: number) => void;
966
+
967
+ /**
968
+ * Number of page links to show before and after current page
969
+ */
970
+ siblingCount?: number;
971
+
972
+ /**
973
+ * Whether to show first/last page buttons
974
+ */
975
+ showFirstLastButtons?: boolean;
976
+
977
+ /**
978
+ * Whether to show previous/next page buttons
979
+ */
980
+ showPrevNextButtons?: boolean;
981
+
982
+ /**
983
+ * Custom class for the pagination container
984
+ */
985
+ className?: string;
986
+
987
+ /**
988
+ * Size variant for the pagination component
989
+ */
990
+ size?: Size;
991
+
992
+ /**
993
+ * Accessible label for the navigation element
994
+ */
995
+ ariaLabel?: string;
996
+ }
997
+
998
+ /**
999
+ * Todo item data structure
1000
+ */
1001
+ export interface TodoItem {
1002
+ /**
1003
+ * Unique identifier for the todo
1004
+ */
1005
+ id: string;
1006
+
1007
+ /**
1008
+ * Todo item text
1009
+ */
1010
+ text: string;
1011
+
1012
+ /**
1013
+ * Whether the todo is completed
1014
+ */
1015
+ completed: boolean;
1016
+ }
1017
+
1018
+ /**
1019
+ * Todo component properties
1020
+ */
1021
+ export interface TodoProps extends BaseComponentProps {
1022
+ /**
1023
+ * List of todo items
1024
+ */
1025
+ items: TodoItem[];
1026
+
1027
+ /**
1028
+ * Callback when a todo item is added
1029
+ */
1030
+ onAddTodo?: (text: string) => void;
1031
+
1032
+ /**
1033
+ * Callback when a todo item is toggled
1034
+ */
1035
+ onToggleTodo?: (id: string) => void;
1036
+
1037
+ /**
1038
+ * Callback when a todo item is deleted
1039
+ */
1040
+ onDeleteTodo?: (id: string) => void;
1041
+
1042
+ /**
1043
+ * Title of the todo list
1044
+ */
1045
+ title?: string;
1046
+
1047
+ /**
1048
+ * Size variant for the todo component
1049
+ */
1050
+ size?: Size;
1051
+
1052
+ /**
1053
+ * Placeholder text for the new todo input
1054
+ */
1055
+ placeholder?: string;
1056
+
1057
+ /**
1058
+ * Whether to show the completed todos
1059
+ */
1060
+ showCompleted?: boolean;
1061
+ }
1062
+
1063
+ /**
1064
+ * Form component properties
1065
+ */
1066
+ export interface FormProps extends BaseComponentProps {
1067
+ /**
1068
+ * Form content
1069
+ */
1070
+ children: ReactNode;
1071
+
1072
+ /**
1073
+ * Form submit handler
1074
+ */
1075
+ onSubmit?: (event: React.FormEvent<HTMLFormElement>) => void;
1076
+
1077
+ /**
1078
+ * Form reset handler
1079
+ */
1080
+ onReset?: (event: React.FormEvent<HTMLFormElement>) => void;
1081
+
1082
+ /**
1083
+ * Form ID
1084
+ */
1085
+ id?: string;
1086
+
1087
+ /**
1088
+ * Form method
1089
+ */
1090
+ method?: 'get' | 'post';
1091
+
1092
+ /**
1093
+ * Form encoding type
1094
+ */
1095
+ encType?: string;
1096
+
1097
+ /**
1098
+ * Whether to disable HTML5 validation
1099
+ */
1100
+ noValidate?: boolean;
1101
+
1102
+ /**
1103
+ * Form autocomplete setting
1104
+ */
1105
+ autoComplete?: string;
1106
+ }
1107
+
1108
+ /**
1109
+ * Form Group component properties
1110
+ */
1111
+ export interface FormGroupProps extends BaseComponentProps {
1112
+ /**
1113
+ * Form control content
1114
+ */
1115
+ children: ReactNode;
1116
+
1117
+ /**
1118
+ * Label text
1119
+ */
1120
+ label?: string;
1121
+
1122
+ /**
1123
+ * Helper text displayed below the input
1124
+ */
1125
+ helperText?: ReactNode;
1126
+
1127
+ /**
1128
+ * ID of the form control this label is for
1129
+ */
1130
+ htmlFor?: string;
1131
+
1132
+ /**
1133
+ * Whether the field is required
1134
+ */
1135
+ required?: boolean;
1136
+
1137
+ /**
1138
+ * Whether the field is invalid
1139
+ */
1140
+ invalid?: boolean;
1141
+
1142
+ /**
1143
+ * Whether the field is valid
1144
+ */
1145
+ valid?: boolean;
1146
+
1147
+ /**
1148
+ * Size variant
1149
+ */
1150
+ size?: Size;
1151
+ }
1152
+
1153
+ /**
1154
+ * Input component properties
1155
+ */
1156
+ export interface InputProps extends BaseComponentProps {
1157
+ /**
1158
+ * Input type
1159
+ */
1160
+ type?: string;
1161
+
1162
+ /**
1163
+ * Input value
1164
+ */
1165
+ value?: string | number;
1166
+
1167
+ /**
1168
+ * Change handler
1169
+ */
1170
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
1171
+
1172
+ /**
1173
+ * Blur handler
1174
+ */
1175
+ onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;
1176
+
1177
+ /**
1178
+ * Focus handler
1179
+ */
1180
+ onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;
1181
+
1182
+ /**
1183
+ * Placeholder text
1184
+ */
1185
+ placeholder?: string;
1186
+
1187
+ /**
1188
+ * Whether the input is required
1189
+ */
1190
+ required?: boolean;
1191
+
1192
+ /**
1193
+ * Whether the input is read-only
1194
+ */
1195
+ readOnly?: boolean;
1196
+
1197
+ /**
1198
+ * Input ID
1199
+ */
1200
+ id?: string;
1201
+
1202
+ /**
1203
+ * Input name
1204
+ */
1205
+ name?: string;
1206
+
1207
+ /**
1208
+ * Autocomplete attribute
1209
+ */
1210
+ autoComplete?: string;
1211
+
1212
+ /**
1213
+ * Whether the input should receive focus on render
1214
+ */
1215
+ autoFocus?: boolean;
1216
+
1217
+ /**
1218
+ * Size variant
1219
+ */
1220
+ size?: Size;
1221
+
1222
+ /**
1223
+ * Color variant
1224
+ */
1225
+ variant?: ThemeColor;
1226
+
1227
+ /**
1228
+ * Whether the input is invalid
1229
+ */
1230
+ invalid?: boolean;
1231
+
1232
+ /**
1233
+ * Whether the input is valid
1234
+ */
1235
+ valid?: boolean;
1236
+
1237
+ /**
1238
+ * Maximum length
1239
+ */
1240
+ maxLength?: number;
1241
+
1242
+ /**
1243
+ * Minimum length
1244
+ */
1245
+ minLength?: number;
1246
+
1247
+ /**
1248
+ * Input pattern
1249
+ */
1250
+ pattern?: string;
1251
+
1252
+ /**
1253
+ * Minimum value (for number inputs)
1254
+ */
1255
+ min?: number | string;
1256
+
1257
+ /**
1258
+ * Maximum value (for number inputs)
1259
+ */
1260
+ max?: number | string;
1261
+
1262
+ /**
1263
+ * Step value (for number inputs)
1264
+ */
1265
+ step?: number | string;
1266
+
1267
+ /**
1268
+ * Accessible label (if no visible label)
1269
+ */
1270
+ ariaLabel?: string;
1271
+
1272
+ /**
1273
+ * ID of element that describes this input
1274
+ */
1275
+ ariaDescribedBy?: string;
1276
+ }
1277
+
1278
+ /**
1279
+ * Select option
1280
+ */
1281
+ export interface SelectOption {
1282
+ /**
1283
+ * Option value
1284
+ */
1285
+ value: string;
1286
+
1287
+ /**
1288
+ * Option display label
1289
+ */
1290
+ label: string;
1291
+
1292
+ /**
1293
+ * Whether the option is disabled
1294
+ */
1295
+ disabled?: boolean;
1296
+ }
1297
+
1298
+ /**
1299
+ * Select component properties
1300
+ */
1301
+ export interface SelectProps extends BaseComponentProps {
1302
+ /**
1303
+ * Select options
1304
+ */
1305
+ options: SelectOption[];
1306
+
1307
+ /**
1308
+ * Selected value(s)
1309
+ */
1310
+ value?: string | string[];
1311
+
1312
+ /**
1313
+ * Change handler
1314
+ */
1315
+ onChange?: (event: React.ChangeEvent<HTMLSelectElement>) => void;
1316
+
1317
+ /**
1318
+ * Blur handler
1319
+ */
1320
+ onBlur?: (event: React.FocusEvent<HTMLSelectElement>) => void;
1321
+
1322
+ /**
1323
+ * Focus handler
1324
+ */
1325
+ onFocus?: (event: React.FocusEvent<HTMLSelectElement>) => void;
1326
+
1327
+ /**
1328
+ * Placeholder text
1329
+ */
1330
+ placeholder?: string;
1331
+
1332
+ /**
1333
+ * Whether the select is required
1334
+ */
1335
+ required?: boolean;
1336
+
1337
+ /**
1338
+ * Select ID
1339
+ */
1340
+ id?: string;
1341
+
1342
+ /**
1343
+ * Select name
1344
+ */
1345
+ name?: string;
1346
+
1347
+ /**
1348
+ * Size variant
1349
+ */
1350
+ size?: Size;
1351
+
1352
+ /**
1353
+ * Whether the select is invalid
1354
+ */
1355
+ invalid?: boolean;
1356
+
1357
+ /**
1358
+ * Whether the select is valid
1359
+ */
1360
+ valid?: boolean;
1361
+
1362
+ /**
1363
+ * Whether multiple options can be selected
1364
+ */
1365
+ multiple?: boolean;
1366
+
1367
+ /**
1368
+ * Accessible label (if no visible label)
1369
+ */
1370
+ ariaLabel?: string;
1371
+
1372
+ /**
1373
+ * ID of element that describes this select
1374
+ */
1375
+ ariaDescribedBy?: string;
1376
+ }
1377
+
1378
+ /**
1379
+ * Checkbox component properties
1380
+ */
1381
+ export interface CheckboxProps extends BaseComponentProps {
1382
+ /**
1383
+ * Checkbox label
1384
+ */
1385
+ label?: ReactNode;
1386
+
1387
+ /**
1388
+ * Whether the checkbox is checked
1389
+ */
1390
+ checked?: boolean;
1391
+
1392
+ /**
1393
+ * Change handler
1394
+ */
1395
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
1396
+
1397
+ /**
1398
+ * Whether the checkbox is required
1399
+ */
1400
+ required?: boolean;
1401
+
1402
+ /**
1403
+ * Checkbox ID
1404
+ */
1405
+ id?: string;
1406
+
1407
+ /**
1408
+ * Checkbox name
1409
+ */
1410
+ name?: string;
1411
+
1412
+ /**
1413
+ * Checkbox value
1414
+ */
1415
+ value?: string;
1416
+
1417
+ /**
1418
+ * Whether the checkbox is invalid
1419
+ */
1420
+ invalid?: boolean;
1421
+
1422
+ /**
1423
+ * Whether the checkbox is valid
1424
+ */
1425
+ valid?: boolean;
1426
+
1427
+ /**
1428
+ * Whether the checkbox is in indeterminate state
1429
+ */
1430
+ indeterminate?: boolean;
1431
+
1432
+ /**
1433
+ * Accessible label (if no visible label)
1434
+ */
1435
+ ariaLabel?: string;
1436
+
1437
+ /**
1438
+ * ID of element that describes this checkbox
1439
+ */
1440
+ ariaDescribedBy?: string;
1441
+ }
1442
+
1443
+ /**
1444
+ * Radio component properties
1445
+ */
1446
+ export interface RadioProps extends BaseComponentProps {
1447
+ /**
1448
+ * Radio label
1449
+ */
1450
+ label?: ReactNode;
1451
+
1452
+ /**
1453
+ * Whether the radio is checked
1454
+ */
1455
+ checked?: boolean;
1456
+
1457
+ /**
1458
+ * Change handler
1459
+ */
1460
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
1461
+
1462
+ /**
1463
+ * Whether the radio is required
1464
+ */
1465
+ required?: boolean;
1466
+
1467
+ /**
1468
+ * Radio ID
1469
+ */
1470
+ id?: string;
1471
+
1472
+ /**
1473
+ * Radio name
1474
+ */
1475
+ name?: string;
1476
+
1477
+ /**
1478
+ * Radio value
1479
+ */
1480
+ value?: string;
1481
+
1482
+ /**
1483
+ * Whether the radio is invalid
1484
+ */
1485
+ invalid?: boolean;
1486
+
1487
+ /**
1488
+ * Whether the radio is valid
1489
+ */
1490
+ valid?: boolean;
1491
+
1492
+ /**
1493
+ * Accessible label (if no visible label)
1494
+ */
1495
+ ariaLabel?: string;
1496
+
1497
+ /**
1498
+ * ID of element that describes this radio
1499
+ */
1500
+ ariaDescribedBy?: string;
1501
+ }
1502
+
1503
+ /**
1504
+ * Textarea component properties
1505
+ */
1506
+ export interface TextareaProps extends BaseComponentProps {
1507
+ /**
1508
+ * Textarea value
1509
+ */
1510
+ value?: string;
1511
+
1512
+ /**
1513
+ * Change handler
1514
+ */
1515
+ onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;
1516
+
1517
+ /**
1518
+ * Blur handler
1519
+ */
1520
+ onBlur?: (event: React.FocusEvent<HTMLTextAreaElement>) => void;
1521
+
1522
+ /**
1523
+ * Focus handler
1524
+ */
1525
+ onFocus?: (event: React.FocusEvent<HTMLTextAreaElement>) => void;
1526
+
1527
+ /**
1528
+ * Placeholder text
1529
+ */
1530
+ placeholder?: string;
1531
+
1532
+ /**
1533
+ * Whether the textarea is required
1534
+ */
1535
+ required?: boolean;
1536
+
1537
+ /**
1538
+ * Whether the textarea is read-only
1539
+ */
1540
+ readOnly?: boolean;
1541
+
1542
+ /**
1543
+ * Textarea ID
1544
+ */
1545
+ id?: string;
1546
+
1547
+ /**
1548
+ * Textarea name
1549
+ */
1550
+ name?: string;
1551
+
1552
+ /**
1553
+ * Number of rows
1554
+ */
1555
+ rows?: number;
1556
+
1557
+ /**
1558
+ * Number of columns
1559
+ */
1560
+ cols?: number;
1561
+
1562
+ /**
1563
+ * Maximum length
1564
+ */
1565
+ maxLength?: number;
1566
+
1567
+ /**
1568
+ * Minimum length
1569
+ */
1570
+ minLength?: number;
1571
+
1572
+ /**
1573
+ * Size variant
1574
+ */
1575
+ size?: Size;
1576
+
1577
+ /**
1578
+ * Color variant
1579
+ */
1580
+ variant?: ThemeColor;
1581
+
1582
+ /**
1583
+ * Whether the textarea is invalid
1584
+ */
1585
+ invalid?: boolean;
1586
+
1587
+ /**
1588
+ * Whether the textarea is valid
1589
+ */
1590
+ valid?: boolean;
1591
+
1592
+ /**
1593
+ * Whether the textarea should receive focus on render
1594
+ */
1595
+ autoFocus?: boolean;
1596
+
1597
+ /**
1598
+ * Accessible label (if no visible label)
1599
+ */
1600
+ ariaLabel?: string;
1601
+
1602
+ /**
1603
+ * ID of element that describes this textarea
1604
+ */
1605
+ ariaDescribedBy?: string;
1606
+ }
1607
+
1608
+ /**
1609
+ * Avatar size options
1610
+ */
1611
+ export type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
1612
+
1613
+ /**
1614
+ * Avatar component properties
1615
+ */
1616
+ export interface AvatarProps extends BaseComponentProps {
1617
+ /**
1618
+ * Avatar image source URL
1619
+ */
1620
+ src?: string;
1621
+
1622
+ /**
1623
+ * Alt text for the avatar image
1624
+ */
1625
+ alt?: string;
1626
+
1627
+ /**
1628
+ * Initials to display when no image is available
1629
+ */
1630
+ initials?: string;
1631
+
1632
+ /**
1633
+ * Icon to display when no image or initials are available
1634
+ */
1635
+ icon?: ReactNode;
1636
+
1637
+ /**
1638
+ * Size variant for the avatar
1639
+ */
1640
+ size?: AvatarSize;
1641
+
1642
+ /**
1643
+ * Whether to make the avatar circular
1644
+ */
1645
+ circle?: boolean;
1646
+
1647
+ /**
1648
+ * Optional click handler
1649
+ */
1650
+ onClick?: (event: React.MouseEvent<HTMLDivElement>) => void;
1651
+ }
1652
+
1653
+ /**
1654
+ * Avatar Group component properties
1655
+ */
1656
+ export interface AvatarGroupProps extends BaseComponentProps {
1657
+ /**
1658
+ * Child Avatar components
1659
+ */
1660
+ children: ReactNode;
1661
+
1662
+ /**
1663
+ * Maximum number of avatars to display before showing a "+X" indicator
1664
+ */
1665
+ max?: number;
1666
+
1667
+ /**
1668
+ * Whether to display avatars in a stacked formation
1669
+ */
1670
+ stacked?: boolean;
1671
+
1672
+ /**
1673
+ * Custom text for the "more" indicator
1674
+ */
1675
+ moreText?: string;
1676
+ }
1677
+
1678
+ /**
1679
+ * Modal component props
1680
+ */
1681
+ export interface ModalProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
1682
+ /**
1683
+ * Whether the modal is open
1684
+ */
1685
+ isOpen?: boolean;
1686
+
1687
+ /**
1688
+ * Callback when the modal's open state changes
1689
+ */
1690
+ onOpenChange?: (isOpen: boolean) => void;
1691
+
1692
+ /**
1693
+ * Callback when the modal is opened
1694
+ */
1695
+ onOpen?: () => void;
1696
+
1697
+ /**
1698
+ * Callback when the modal is closed
1699
+ */
1700
+ onClose?: () => void;
1701
+
1702
+ /**
1703
+ * Modal title displayed in the header
1704
+ */
1705
+ title?: React.ReactNode;
1706
+
1707
+ /**
1708
+ * Modal subtitle displayed below the title
1709
+ */
1710
+ subtitle?: React.ReactNode;
1711
+
1712
+ /**
1713
+ * Modal size
1714
+ */
1715
+ size?: 'sm' | 'md' | 'lg' | 'xl';
1716
+
1717
+ /**
1718
+ * Whether to close when backdrop is clicked
1719
+ */
1720
+ backdrop?: boolean;
1721
+
1722
+ /**
1723
+ * Whether to close when the escape key is pressed
1724
+ */
1725
+ keyboard?: boolean;
1726
+
1727
+ /**
1728
+ * Whether to show the close button
1729
+ */
1730
+ closeButton?: boolean;
1731
+
1732
+ /**
1733
+ * Content for the modal footer
1734
+ */
1735
+ footer?: React.ReactNode;
1736
+ }
1737
+
1738
+ /**
1739
+ * Breadcrumb item interface
1740
+ */
1741
+ export interface BreadcrumbItem {
1742
+ /**
1743
+ * Item label text
1744
+ */
1745
+ label: string;
1746
+
1747
+ /**
1748
+ * Optional URL for the breadcrumb item
1749
+ */
1750
+ href?: string;
1751
+
1752
+ /**
1753
+ * Whether this item is active/current
1754
+ */
1755
+ active?: boolean;
1756
+
1757
+ /**
1758
+ * Icon name from Phosphor Icons
1759
+ */
1760
+ icon?: string;
1761
+
1762
+ /**
1763
+ * Optional click handler
1764
+ */
1765
+ onClick?: (event: MouseEvent) => void;
1766
+ }
1767
+
1768
+ /**
1769
+ * Breadcrumb options interface
1770
+ */
1771
+ export interface BreadcrumbOptions {
1772
+ /**
1773
+ * Array of breadcrumb items
1774
+ */
1775
+ items?: BreadcrumbItem[];
1776
+
1777
+ /**
1778
+ * Divider character or string between items
1779
+ */
1780
+ divider?: string;
1781
+
1782
+ /**
1783
+ * Additional CSS class names
1784
+ */
1785
+ className?: string;
1786
+
1787
+ /**
1788
+ * Accessible label for the breadcrumb navigation
1789
+ */
1790
+ ariaLabel?: string;
1791
+ }
1792
+
1793
+ /**
1794
+ * Breadcrumb instance interface
1795
+ */
1796
+ export interface BreadcrumbInstance {
1797
+ /**
1798
+ * Update the breadcrumb with new options
1799
+ */
1800
+ update: (options: Partial<BreadcrumbOptions>) => void;
1801
+
1802
+ /**
1803
+ * Destroy the breadcrumb component
1804
+ */
1805
+ destroy: () => void;
1806
+ }
1807
+
1808
+ /**
1809
+ * Message item interface
1810
+ */
1811
+ export interface MessageItem {
1812
+ /**
1813
+ * Unique identifier for the message
1814
+ */
1815
+ id: string;
1816
+
1817
+ /**
1818
+ * Message text content
1819
+ */
1820
+ text?: string;
1821
+
1822
+ /**
1823
+ * Image URL for image messages
1824
+ */
1825
+ image?: string;
1826
+
1827
+ /**
1828
+ * File information for file messages
1829
+ */
1830
+ file?: {
1831
+ /**
1832
+ * File name
1833
+ */
1834
+ name: string;
1835
+
1836
+ /**
1837
+ * File size (formatted string)
1838
+ */
1839
+ size: string;
1840
+ };
1841
+
1842
+ /**
1843
+ * Message timestamp
1844
+ */
1845
+ time: string;
1846
+
1847
+ /**
1848
+ * Whether the message is from the current user
1849
+ */
1850
+ isSelf?: boolean;
1851
+ }
1852
+
1853
+ /**
1854
+ * Messages component properties
1855
+ */
1856
+ export interface MessagesProps extends BaseComponentProps {
1857
+ /**
1858
+ * Array of message items to display
1859
+ */
1860
+ messages: MessageItem[];
1861
+
1862
+ /**
1863
+ * Avatar image URL for the other person
1864
+ */
1865
+ otherAvatar?: string;
1866
+
1867
+ /**
1868
+ * Avatar image URL for the current user
1869
+ */
1870
+ selfAvatar?: string;
1871
+
1872
+ /**
1873
+ * Name of the other person
1874
+ */
1875
+ otherName?: string;
1876
+
1877
+ /**
1878
+ * Custom width for the messages container
1879
+ */
1880
+ width?: string;
1881
+
1882
+ /**
1883
+ * Callback when a new message is sent
1884
+ */
1885
+ onSendMessage?: (text: string) => void;
1886
+
1887
+ /**
1888
+ * Placeholder text for the input field
1889
+ */
1890
+ placeholder?: string;
1891
+
1892
+ /**
1893
+ * Maximum height for the messages body
1894
+ */
1895
+ bodyHeight?: string;
1896
+
1897
+ /**
1898
+ * Unique identifier for the messages component
1899
+ */
1900
+ id?: string;
1901
+ }
1902
+
1903
+ /**
1904
+ * Popover component properties
1905
+ */
1906
+ export interface PopoverTriggerProps {
1907
+ /**
1908
+ * The element that will trigger the popover
1909
+ */
1910
+ children: ReactNode;
1911
+
1912
+ /**
1913
+ * How the popover is triggered
1914
+ */
1915
+ trigger?: 'hover' | 'click';
1916
+
1917
+ /**
1918
+ * Popover reference passed from PopoverContext
1919
+ */
1920
+ popoverId?: string;
1921
+ }
1922
+
1923
+ export interface PopoverProps {
1924
+ /**
1925
+ * Content to be displayed in the popover
1926
+ */
1927
+ content: ReactNode;
1928
+
1929
+ /**
1930
+ * The position of the popover relative to the trigger
1931
+ */
1932
+ position?: 'top' | 'bottom' | 'left' | 'right' | 'auto';
1933
+
1934
+ /**
1935
+ * How the popover is triggered
1936
+ */
1937
+ trigger?: 'hover' | 'click';
1938
+
1939
+ /**
1940
+ * Additional CSS class for the popover
1941
+ */
1942
+ className?: string;
1943
+
1944
+ /**
1945
+ * Delay before showing the popover (in milliseconds)
1946
+ */
1947
+ delay?: number;
1948
+
1949
+ /**
1950
+ * Offset from the trigger element (in pixels)
1951
+ */
1952
+ offset?: number;
1953
+
1954
+ /**
1955
+ * Whether the popover should be open initially
1956
+ */
1957
+ defaultOpen?: boolean;
1958
+
1959
+ /**
1960
+ * Controlled state of the popover
1961
+ */
1962
+ isOpen?: boolean;
1963
+
1964
+ /**
1965
+ * Callback when the popover open state changes
1966
+ */
1967
+ onOpenChange?: (isOpen: boolean) => void;
1968
+
1969
+ /**
1970
+ * Whether to close the popover when clicking outside
1971
+ */
1972
+ closeOnClickOutside?: boolean;
1973
+
1974
+ /**
1975
+ * Whether to close the popover when pressing escape key
1976
+ */
1977
+ closeOnEscape?: boolean;
1978
+
1979
+ /**
1980
+ * Optional ID for the popover
1981
+ */
1982
+ id?: string;
1983
+
1984
+ /**
1985
+ * Children content (removed in favor of using PopoverTrigger)
1986
+ */
1987
+ children?: ReactNode;
1988
+ }
1989
+
1990
+ /**
1991
+ * The trigger method for the dropdown menu
1992
+ */
1993
+ export type DropdownTrigger = 'click' | 'hover';
1994
+
1995
+ /**
1996
+ * The placement of the dropdown menu
1997
+ */
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';
2007
+
2008
+ /**
2009
+ * Dropdown component properties
2010
+ */
2011
+ export interface DropdownProps extends BaseComponentProps {
2012
+ /**
2013
+ * Dropdown trigger element
2014
+ */
2015
+ children: ReactNode;
2016
+
2017
+ /**
2018
+ * Dropdown menu content
2019
+ */
2020
+ menu: ReactNode;
2021
+
2022
+ /**
2023
+ * How the dropdown is triggered
2024
+ */
2025
+ trigger?: DropdownTrigger;
2026
+
2027
+ /**
2028
+ * The placement of the dropdown menu
2029
+ */
2030
+ placement?: DropdownPlacement;
2031
+
2032
+ /**
2033
+ * Whether the dropdown is initially open
2034
+ */
2035
+ defaultOpen?: boolean;
2036
+
2037
+ /**
2038
+ * Controlled state of the dropdown
2039
+ */
2040
+ isOpen?: boolean;
2041
+
2042
+ /**
2043
+ * Callback when the dropdown open state changes
2044
+ */
2045
+ onOpenChange?: (isOpen: boolean) => void;
2046
+
2047
+ /**
2048
+ * Offset from the trigger element (in pixels)
2049
+ */
2050
+ offset?: number;
2051
+
2052
+ /**
2053
+ * Whether the dropdown should be closed when clicking outside
2054
+ */
2055
+ closeOnClickOutside?: boolean;
2056
+
2057
+ /**
2058
+ * Whether the dropdown should be closed when pressing escape key
2059
+ */
2060
+ closeOnEscape?: boolean;
2061
+
2062
+ /**
2063
+ * Max height for the dropdown menu
2064
+ */
2065
+ maxHeight?: string;
2066
+
2067
+ /**
2068
+ * Min width for the dropdown menu
2069
+ */
2070
+ minWidth?: string | number;
2071
+
2072
+ /**
2073
+ * Color variant for the dropdown trigger
2074
+ */
2075
+ variant?: ThemeColor;
2076
+
2077
+ /**
2078
+ * Optional ID for the dropdown
2079
+ */
2080
+ id?: string;
2081
+ }
2082
+
2083
+ /**
2084
+ * Dropdown menu item properties
2085
+ */
2086
+ export interface DropdownItemProps extends BaseComponentProps {
2087
+ /**
2088
+ * Item content
2089
+ */
2090
+ children: ReactNode;
2091
+
2092
+ /**
2093
+ * Item href
2094
+ */
2095
+ href?: string;
2096
+
2097
+ /**
2098
+ * Whether item is active
2099
+ */
2100
+ active?: boolean;
2101
+
2102
+ /**
2103
+ * Whether item is disabled
2104
+ */
2105
+ disabled?: boolean;
2106
+
2107
+ /**
2108
+ * Item icon
2109
+ */
2110
+ icon?: ReactNode;
2111
+
2112
+ /**
2113
+ * Item click handler
2114
+ */
2115
+ onClick?: (event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;
2116
+ }
2117
+
2118
+ /**
2119
+ * Dropdown divider properties
2120
+ */
2121
+ export interface DropdownDividerProps {
2122
+ /**
2123
+ * Additional CSS class names
2124
+ */
2125
+ className?: string;
2126
+ }
2127
+
2128
+ /**
2129
+ * Dropdown header properties
2130
+ */
2131
+ export interface DropdownHeaderProps {
2132
+ /**
2133
+ * Header content
2134
+ */
2135
+ children: ReactNode;
2136
+
2137
+ /**
2138
+ * Additional CSS class names
2139
+ */
2140
+ className?: string;
2141
+ }
2142
+
2143
+ /**
2144
+ * Progress component properties
2145
+ */
2146
+ export interface ProgressProps extends BaseComponentProps {
2147
+ /**
2148
+ * Progress value (0-100)
2149
+ */
2150
+ value: number;
2151
+
2152
+ /**
2153
+ * Progress bar color variant
2154
+ */
2155
+ variant?: ThemeColor;
2156
+
2157
+ /**
2158
+ * Progress bar size
2159
+ */
2160
+ size?: Size;
2161
+
2162
+ /**
2163
+ * Accessible label for screen readers
2164
+ */
2165
+ ariaLabel?: string;
2166
+ }
2167
+
2168
+ /**
2169
+ * Rating component properties
2170
+ */
2171
+ export interface RatingProps extends BaseComponentProps {
2172
+ /**
2173
+ * The rating value (0-5)
2174
+ */
2175
+ value?: number;
2176
+
2177
+ /**
2178
+ * Default value for uncontrolled mode
2179
+ */
2180
+ defaultValue?: number;
2181
+
2182
+ /**
2183
+ * Maximum possible rating value
2184
+ */
2185
+ maxValue?: number;
2186
+
2187
+ /**
2188
+ * Whether to allow half-star ratings
2189
+ */
2190
+ allowHalf?: boolean;
2191
+
2192
+ /**
2193
+ * Whether the rating is read-only
2194
+ */
2195
+ readOnly?: boolean;
2196
+
2197
+ /**
2198
+ * Size variant
2199
+ */
2200
+ size?: Size;
2201
+
2202
+ /**
2203
+ * Color theme
2204
+ */
2205
+ color?: ThemeColor;
2206
+
2207
+ /**
2208
+ * Optional callback when rating changes
2209
+ */
2210
+ onChange?: (value: number) => void;
2211
+
2212
+ /**
2213
+ * Optional label for the rating component (for accessibility)
2214
+ */
2215
+ label?: string;
2216
+
2217
+ /**
2218
+ * ID for the rating component (for accessibility)
2219
+ */
2220
+ id?: string;
2221
+
2222
+ /**
2223
+ * Whether to use the vanilla JS implementation
2224
+ */
2225
+ useVanillaJS?: boolean;
2226
+ }
2227
+
2228
+ /**
2229
+ * PhotoViewer component properties
2230
+ */
2231
+ /**
2232
+ * Interface for image objects used in PhotoViewer
2233
+ */
2234
+ export interface ImageType {
2235
+ src: string;
2236
+ alt?: string;
2237
+ thumbnail?: string;
2238
+ title?: string;
2239
+ description?: string;
2240
+ date?: string;
2241
+ author?: string;
2242
+ tags?: string[];
2243
+ }
2244
+
2245
+ export interface PhotoViewerProps extends BaseComponentProps {
2246
+ /**
2247
+ * Array of image URLs or image objects to display in the viewer
2248
+ */
2249
+ images: (string | ImageType)[];
2250
+ /**
2251
+ * Index of the image to show first
2252
+ * @default 0
2253
+ */
2254
+ startIndex?: number;
2255
+ /**
2256
+ * Additional className for the root element
2257
+ */
2258
+ className?: string;
2259
+ /**
2260
+ * Whether the viewer is disabled
2261
+ * @default false
2262
+ */
2263
+ disabled?: boolean;
2264
+ /**
2265
+ * Enable keyboard navigation (arrow keys, escape)
2266
+ * @default true
2267
+ */
2268
+ enableKeyboardNavigation?: boolean;
2269
+ /**
2270
+ * Enable touch gestures for mobile devices
2271
+ * @default true
2272
+ */
2273
+ enableGestures?: boolean;
2274
+ /**
2275
+ * Enable fullscreen mode
2276
+ * @default true
2277
+ */
2278
+ enableFullscreen?: boolean;
2279
+ /**
2280
+ * Position of thumbnails
2281
+ * @default 'bottom'
2282
+ */
2283
+ thumbnailPosition?: 'bottom' | 'top' | 'left' | 'right' | 'none';
2284
+ /**
2285
+ * Callback when image changes
2286
+ */
2287
+ onImageChange?: (index: number) => void;
2288
+ /**
2289
+ * Callback when viewer is closed
2290
+ */
2291
+ onClose?: () => void;
2292
+ }
2293
+
2294
+ /**
2295
+ * Card component props
2296
+ */
2297
+ export interface CardProps extends BaseComponentProps {
2298
+ /**
2299
+ * Card header content
2300
+ */
2301
+ header?: ReactNode;
2302
+
2303
+ /**
2304
+ * Card image source URL
2305
+ */
2306
+ image?: string;
2307
+
2308
+ /**
2309
+ * Alternative text for the image
2310
+ */
2311
+ imageAlt?: string;
2312
+
2313
+ /**
2314
+ * Card title
2315
+ */
2316
+ title?: ReactNode;
2317
+
2318
+ /**
2319
+ * Card text content
2320
+ */
2321
+ text?: ReactNode;
2322
+
2323
+ /**
2324
+ * Card actions (buttons, links, etc.)
2325
+ */
2326
+ actions?: ReactNode;
2327
+
2328
+ /**
2329
+ * Card icon
2330
+ */
2331
+ icon?: ReactNode;
2332
+
2333
+ /**
2334
+ * Card footer content
2335
+ */
2336
+ footer?: ReactNode;
2337
+
2338
+ /**
2339
+ * Row layout (horizontal card)
2340
+ */
2341
+ row?: boolean;
2342
+
2343
+ /**
2344
+ * Flat style (no padding on image container)
2345
+ */
2346
+ flat?: boolean;
2347
+
2348
+ /**
2349
+ * Active state
2350
+ */
2351
+ active?: boolean;
2352
+
2353
+ /**
2354
+ * Card content (body)
2355
+ */
2356
+ children?: ReactNode;
2357
+
2358
+ /**
2359
+ * Optional click handler
2360
+ */
2361
+ onClick?: (event: React.MouseEvent<HTMLDivElement>) => void;
2362
+ }
2363
+
2364
+ /**
2365
+ * Elevation Card component props
2366
+ */
2367
+ export interface ElevationCardProps extends CardProps {
2368
+ /**
2369
+ * CSS class for elevation effect
2370
+ */
2371
+ elevationClass?: string;
2372
+ }
2373
+
2374
+ /**
2375
+ * Card hook options
2376
+ */
2377
+ export interface UseCardOptions {
2378
+ /**
2379
+ * Enable elevation effect on hover
2380
+ */
2381
+ elevationEffect?: boolean;
2382
+
2383
+ /**
2384
+ * CSS class for elevation effect
2385
+ */
2386
+ elevationClass?: string;
2387
+
2388
+ /**
2389
+ * Enable flip effect
2390
+ */
2391
+ flipEffect?: boolean;
2392
+
2393
+ /**
2394
+ * Trigger for flip effect: 'click' or 'hover'
2395
+ */
2396
+ flipTrigger?: 'click' | 'hover';
2397
+
2398
+ /**
2399
+ * Make card focusable and add focus effect
2400
+ */
2401
+ focusEffect?: boolean;
2402
+
2403
+ /**
2404
+ * Make card clickable
2405
+ */
2406
+ clickable?: boolean;
2407
+
2408
+ /**
2409
+ * Click handler for clickable card
2410
+ */
2411
+ onClick?: (event: React.MouseEvent) => void;
2412
+ }
2413
+
2414
+ /**
2415
+ * Card hook return value
2416
+ */
2417
+ export interface UseCardReturn {
2418
+ /**
2419
+ * Reference to the card element
2420
+ */
2421
+ cardRef: React.RefObject<HTMLDivElement>;
2422
+
2423
+ /**
2424
+ * Reference to the front side of a flip card
2425
+ */
2426
+ frontRef: React.RefObject<HTMLDivElement>;
2427
+
2428
+ /**
2429
+ * Reference to the back side of a flip card
2430
+ */
2431
+ backRef: React.RefObject<HTMLDivElement>;
2432
+
2433
+ /**
2434
+ * Whether the card is flipped
2435
+ */
2436
+ isFlipped: boolean;
2437
+
2438
+ /**
2439
+ * Whether the card is elevated
2440
+ */
2441
+ isElevated: boolean;
2442
+
2443
+ /**
2444
+ * Whether the card is focused
2445
+ */
2446
+ isFocused: boolean;
2447
+
2448
+ /**
2449
+ * Whether the card is hovered
2450
+ */
2451
+ isHovered: boolean;
2452
+
2453
+ /**
2454
+ * Click event handler
2455
+ */
2456
+ handleClick: (event: React.MouseEvent) => void;
2457
+
2458
+ /**
2459
+ * Keyboard event handler
2460
+ */
2461
+ handleKeyDown: (event: React.KeyboardEvent) => void;
2462
+
2463
+ /**
2464
+ * Mouse enter event handler
2465
+ */
2466
+ handleMouseEnter: () => void;
2467
+
2468
+ /**
2469
+ * Mouse leave event handler
2470
+ */
2471
+ handleMouseLeave: () => void;
2472
+
2473
+ /**
2474
+ * Focus event handler
2475
+ */
2476
+ handleFocus: () => void;
2477
+
2478
+ /**
2479
+ * Blur event handler
2480
+ */
2481
+ handleBlur: () => void;
2482
+
2483
+ /**
2484
+ * Get all card props combined
2485
+ */
2486
+ getCardProps: () => {
2487
+ className: string;
2488
+ ref: React.RefObject<HTMLDivElement>;
2489
+ tabIndex?: number;
2490
+ role?: string;
2491
+ onMouseEnter: () => void;
2492
+ onMouseLeave: () => void;
2493
+ onFocus: () => void;
2494
+ onBlur: () => void;
2495
+ onClick: (event: React.MouseEvent) => void;
2496
+ onKeyDown: (event: React.KeyboardEvent) => void;
2497
+ };
2498
+ }