@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,467 @@
1
+ import { UPLOAD } from '../../../lib/constants/components';
2
+
3
+ /**
4
+ * Interface for Upload options
5
+ */
6
+ interface UploadOptions {
7
+ disabled?: boolean;
8
+ maxSizeInMB?: number;
9
+ acceptedFileTypes?: string[];
10
+ multiple?: boolean;
11
+ onFileSelect?: (files: File[]) => void;
12
+ onFileUpload?: (file: File, progress: number) => void;
13
+ onFileUploadComplete?: (file: File) => void;
14
+ onFileUploadError?: (file: File, error: string) => void;
15
+ [key: string]: any;
16
+ }
17
+
18
+ /**
19
+ * Interface for Upload instance
20
+ */
21
+ interface UploadInstance {
22
+ setStatus: (status: 'idle' | 'loading' | 'success' | 'error', message?: string) => void;
23
+ setProgress: (percentage: number, timeLeft?: string) => void;
24
+ setFile: (file: File | null) => void;
25
+ disable: () => void;
26
+ enable: () => void;
27
+ destroy: () => void;
28
+ }
29
+
30
+ /**
31
+ * Default options for the Upload component
32
+ */
33
+ const DEFAULT_OPTIONS: UploadOptions = {
34
+ disabled: false,
35
+ maxSizeInMB: 5,
36
+ acceptedFileTypes: [
37
+ 'application/pdf',
38
+ 'application/vnd.ms-excel',
39
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
40
+ 'image/jpeg',
41
+ 'image/png',
42
+ ],
43
+ multiple: false,
44
+ };
45
+
46
+ /**
47
+ * Class representing an Upload component
48
+ */
49
+ class Upload implements UploadInstance {
50
+ private selector: string | Element;
51
+ private $element: HTMLElement | null;
52
+ private $input: HTMLInputElement | null;
53
+ private $button: HTMLButtonElement | null;
54
+ private $loader: HTMLElement | null;
55
+ private $loaderTitle: HTMLElement | null;
56
+ private $loaderProgress: HTMLElement | null;
57
+ private $loaderClose: HTMLButtonElement | null;
58
+ private options: UploadOptions;
59
+ private currentFile: File | null;
60
+ private dragCounter: number;
61
+
62
+ /**
63
+ * Creates an instance of Upload
64
+ * @param selector - CSS selector string or DOM Element
65
+ * @param options - Custom options to override defaults
66
+ */
67
+ constructor(selector: string | Element, options = {}) {
68
+ this.selector = selector || UPLOAD.SELECTORS.UPLOAD;
69
+ this.$element =
70
+ typeof selector === 'string'
71
+ ? document.querySelector<HTMLElement>(selector)
72
+ : (selector as HTMLElement);
73
+ this.options = { ...DEFAULT_OPTIONS, ...options } as UploadOptions;
74
+ this.$input = null;
75
+ this.$button = null;
76
+ this.$loader = null;
77
+ this.$loaderTitle = null;
78
+ this.$loaderProgress = null;
79
+ this.$loaderClose = null;
80
+ this.currentFile = null;
81
+ this.dragCounter = 0;
82
+ this._initialize();
83
+ }
84
+
85
+ /**
86
+ * Initialize the upload component
87
+ */
88
+ private _initialize(): void {
89
+ if (!this.$element) return;
90
+
91
+ // Create a hidden file input element
92
+ this._createHiddenInput();
93
+
94
+ // Get references to elements
95
+ this.$button = this.$element.querySelector<HTMLButtonElement>(UPLOAD.SELECTORS.BUTTON);
96
+ this.$loader = this.$element.querySelector<HTMLElement>(UPLOAD.SELECTORS.LOADER);
97
+ this.$loaderTitle = this.$element?.querySelector<HTMLElement>(UPLOAD.SELECTORS.LOADER_TITLE);
98
+ this.$loaderProgress = this.$element?.querySelector<HTMLElement>(
99
+ UPLOAD.SELECTORS.LOADER_PROGRESS
100
+ );
101
+ this.$loaderClose = this.$element?.querySelector<HTMLButtonElement>(
102
+ UPLOAD.SELECTORS.LOADER_CLOSE
103
+ );
104
+
105
+ // Apply disabled state if specified
106
+ if (this.options.disabled) {
107
+ this.disable();
108
+ }
109
+
110
+ // Set up event listeners
111
+ this._setupEventListeners();
112
+ }
113
+
114
+ /**
115
+ * Creates a hidden file input element and appends it to the element
116
+ */
117
+ private _createHiddenInput(): void {
118
+ if (!this.$element) return;
119
+
120
+ // Create input element
121
+ const input = document.createElement('input');
122
+ input.type = 'file';
123
+ input.style.display = 'none';
124
+ input.accept = this.options.acceptedFileTypes?.join(',') || '';
125
+ input.multiple = !!this.options.multiple;
126
+
127
+ // Append to element
128
+ this.$element.appendChild(input);
129
+ this.$input = input;
130
+ }
131
+
132
+ /**
133
+ * Set up all event listeners
134
+ */
135
+ private _setupEventListeners(): void {
136
+ if (!this.$element || !this.$input || !this.$button) return;
137
+
138
+ // Button click handler
139
+ this.$button.addEventListener('click', this._handleButtonClick.bind(this));
140
+
141
+ // Input change handler
142
+ this.$input.addEventListener('change', this._handleFileSelect.bind(this));
143
+
144
+ // Drag and drop handlers
145
+ this.$element.addEventListener('dragenter', this._handleDragEnter.bind(this));
146
+ this.$element.addEventListener('dragleave', this._handleDragLeave.bind(this));
147
+ this.$element.addEventListener('dragover', this._handleDragOver.bind(this));
148
+ this.$element.addEventListener('drop', this._handleDrop.bind(this));
149
+
150
+ // Close button handler
151
+ if (this.$loaderClose) {
152
+ this.$loaderClose.addEventListener('click', this._handleClose.bind(this));
153
+ }
154
+ }
155
+
156
+ /**
157
+ * Handle button click
158
+ */
159
+ private _handleButtonClick(event: MouseEvent): void {
160
+ event.preventDefault();
161
+ if (this.$input && !this.options.disabled) {
162
+ this.$input.click();
163
+ }
164
+ }
165
+
166
+ /**
167
+ * Handle file selection from the input element
168
+ */
169
+ private _handleFileSelect(event: Event): void {
170
+ if (!this.$input?.files?.length) return;
171
+
172
+ const files = Array.from(this.$input.files);
173
+ this._processFiles(files);
174
+ }
175
+
176
+ /**
177
+ * Handle drag enter event
178
+ */
179
+ private _handleDragEnter(event: DragEvent): void {
180
+ event.preventDefault();
181
+ if (this.options.disabled) return;
182
+
183
+ this.dragCounter++;
184
+ if (this.dragCounter === 1) {
185
+ this.$element?.classList.add(UPLOAD.CLASSES.DRAGGING);
186
+ }
187
+ }
188
+
189
+ /**
190
+ * Handle drag leave event
191
+ */
192
+ private _handleDragLeave(event: DragEvent): void {
193
+ event.preventDefault();
194
+ if (this.options.disabled) return;
195
+
196
+ this.dragCounter--;
197
+ if (this.dragCounter === 0) {
198
+ this.$element?.classList.remove(UPLOAD.CLASSES.DRAGGING);
199
+ }
200
+ }
201
+
202
+ /**
203
+ * Handle drag over event
204
+ */
205
+ private _handleDragOver(event: DragEvent): void {
206
+ event.preventDefault();
207
+ if (this.options.disabled) return;
208
+ }
209
+
210
+ /**
211
+ * Handle drop event
212
+ */
213
+ private _handleDrop(event: DragEvent): void {
214
+ event.preventDefault();
215
+ if (this.options.disabled) return;
216
+
217
+ this.dragCounter = 0;
218
+ this.$element?.classList.remove(UPLOAD.CLASSES.DRAGGING);
219
+
220
+ if (!event.dataTransfer?.files.length) return;
221
+
222
+ const files = Array.from(event.dataTransfer.files);
223
+ this._processFiles(files);
224
+ }
225
+
226
+ /**
227
+ * Handle close button click
228
+ */
229
+ private _handleClose(event: MouseEvent): void {
230
+ event.preventDefault();
231
+
232
+ // Reset state
233
+ this.setStatus('idle');
234
+ this.setFile(null);
235
+
236
+ // Reset input
237
+ if (this.$input) {
238
+ this.$input.value = '';
239
+ }
240
+ }
241
+
242
+ /**
243
+ * Process the selected files
244
+ */
245
+ private _processFiles(files: File[]): void {
246
+ if (!files.length) return;
247
+
248
+ // If multiple is not allowed, take only the first file
249
+ const filesToProcess = this.options.multiple ? files : [files[0]];
250
+
251
+ // Validate files
252
+ const validFiles = filesToProcess.filter(file => this._validateFile(file));
253
+
254
+ // Notify about file selection
255
+ if (validFiles.length && this.options.onFileSelect) {
256
+ this.options.onFileSelect(validFiles);
257
+ }
258
+
259
+ // Process the first valid file
260
+ if (validFiles.length) {
261
+ this.setFile(validFiles[0]);
262
+ this._simulateUpload(validFiles[0]);
263
+ }
264
+ }
265
+
266
+ /**
267
+ * Validate a file based on size and type
268
+ */
269
+ private _validateFile(file: File): boolean {
270
+ const maxSizeInBytes = (this.options.maxSizeInMB || 5) * 1024 * 1024;
271
+
272
+ // Check file size
273
+ if (file.size > maxSizeInBytes) {
274
+ this.setStatus('error', `File too large. Maximum size is ${this.options.maxSizeInMB}MB.`);
275
+ return false;
276
+ }
277
+
278
+ // Check file type if acceptedFileTypes is provided
279
+ if (this.options.acceptedFileTypes?.length) {
280
+ const isAcceptedType = this.options.acceptedFileTypes.some(type => {
281
+ // Handle wildcards like image/*
282
+ if (type.endsWith('/*')) {
283
+ const mainType = type.split('/')[0];
284
+ return file.type.startsWith(`${mainType}/`);
285
+ }
286
+ return file.type === type;
287
+ });
288
+
289
+ if (!isAcceptedType) {
290
+ this.setStatus('error', 'File type not supported.');
291
+ return false;
292
+ }
293
+ }
294
+
295
+ return true;
296
+ }
297
+
298
+ /**
299
+ * Simulate a file upload process
300
+ * In a real implementation, this would be replaced with actual upload logic
301
+ */
302
+ private _simulateUpload(file: File): void {
303
+ this.setStatus('loading');
304
+ let progress = 0;
305
+
306
+ const interval = setInterval(() => {
307
+ progress += 5;
308
+
309
+ if (progress < 100) {
310
+ this.setProgress(progress, `${Math.ceil((100 - progress) / 5)} seconds left`);
311
+
312
+ if (this.options.onFileUpload) {
313
+ this.options.onFileUpload(file, progress);
314
+ }
315
+ } else {
316
+ clearInterval(interval);
317
+ this.setStatus('success', 'Upload successful');
318
+
319
+ if (this.options.onFileUploadComplete) {
320
+ this.options.onFileUploadComplete(file);
321
+ }
322
+ }
323
+ }, 500);
324
+ }
325
+
326
+ /**
327
+ * Set current file
328
+ */
329
+ public setFile(file: File | null): void {
330
+ this.currentFile = file;
331
+
332
+ if (file && this.$loaderTitle) {
333
+ this.$loaderTitle.textContent = file.name;
334
+ }
335
+ }
336
+
337
+ /**
338
+ * Set upload progress
339
+ */
340
+ public setProgress(percentage: number, timeLeft?: string): void {
341
+ if (!this.$element || !this.$loaderProgress) return;
342
+
343
+ // Set percentage as CSS variable
344
+ this.$element.style.setProperty(UPLOAD.ATTRIBUTES.PERCENTAGE, percentage.toString());
345
+
346
+ // Update the loader elements if they exist
347
+ const $par = this.$element.querySelector<HTMLElement>(UPLOAD.SELECTORS.LOADER_PAR);
348
+ const $time = this.$element.querySelector<HTMLElement>(UPLOAD.SELECTORS.LOADER_TIME);
349
+
350
+ if ($par) {
351
+ $par.textContent = `${percentage}%`;
352
+ }
353
+
354
+ if ($time && timeLeft) {
355
+ $time.textContent = timeLeft;
356
+ }
357
+ }
358
+
359
+ /**
360
+ * Set upload status
361
+ */
362
+ public setStatus(status: 'idle' | 'loading' | 'success' | 'error', message?: string): void {
363
+ if (!this.$element) return;
364
+
365
+ // Remove all status classes
366
+ this.$element.classList.remove(
367
+ UPLOAD.CLASSES.LOADING,
368
+ UPLOAD.CLASSES.SUCCESS,
369
+ UPLOAD.CLASSES.ERROR
370
+ );
371
+
372
+ // Add appropriate class based on status
373
+ switch (status) {
374
+ case 'loading':
375
+ this.$element.classList.add(UPLOAD.CLASSES.LOADING);
376
+ break;
377
+ case 'success':
378
+ this.$element.classList.add(UPLOAD.CLASSES.SUCCESS);
379
+ break;
380
+ case 'error':
381
+ this.$element.classList.add(UPLOAD.CLASSES.ERROR);
382
+ break;
383
+ }
384
+
385
+ // Update message if provided and loader exists
386
+ if (message && this.$loaderProgress) {
387
+ this.$loaderProgress.textContent = message;
388
+ }
389
+ }
390
+
391
+ /**
392
+ * Disable the upload component
393
+ */
394
+ public disable(): void {
395
+ if (!this.$element || !this.$button) return;
396
+
397
+ this.$element.classList.add(UPLOAD.CLASSES.DISABLED);
398
+ this.$button.disabled = true;
399
+ this.options.disabled = true;
400
+ }
401
+
402
+ /**
403
+ * Enable the upload component
404
+ */
405
+ public enable(): void {
406
+ if (!this.$element || !this.$button) return;
407
+
408
+ this.$element.classList.remove(UPLOAD.CLASSES.DISABLED);
409
+ this.$button.disabled = false;
410
+ this.options.disabled = false;
411
+ }
412
+
413
+ /**
414
+ * Clean up event listeners
415
+ */
416
+ public destroy(): void {
417
+ if (!this.$element || !this.$input || !this.$button) return;
418
+
419
+ // Remove event listeners
420
+ this.$button.removeEventListener('click', this._handleButtonClick.bind(this));
421
+ this.$input.removeEventListener('change', this._handleFileSelect.bind(this));
422
+ this.$element.removeEventListener('dragenter', this._handleDragEnter.bind(this));
423
+ this.$element.removeEventListener('dragleave', this._handleDragLeave.bind(this));
424
+ this.$element.removeEventListener('dragover', this._handleDragOver.bind(this));
425
+ this.$element.removeEventListener('drop', this._handleDrop.bind(this));
426
+
427
+ if (this.$loaderClose) {
428
+ this.$loaderClose.removeEventListener('click', this._handleClose.bind(this));
429
+ }
430
+
431
+ // Remove input element
432
+ if (this.$input.parentNode) {
433
+ this.$input.parentNode.removeChild(this.$input);
434
+ }
435
+ }
436
+ }
437
+
438
+ /**
439
+ * Initialize all upload components in the document
440
+ * @param {string|Element} selector - CSS selector string or DOM Element
441
+ * @param {Object} options - Custom options to override defaults
442
+ * @returns {UploadInstance[]} Array of Upload instances
443
+ */
444
+ export function initializeUploads(
445
+ selector = UPLOAD.SELECTORS.UPLOAD,
446
+ options = {}
447
+ ): UploadInstance[] {
448
+ const uploadInstances: UploadInstance[] = [];
449
+ const uploadElements = document.querySelectorAll<HTMLElement>(
450
+ typeof selector === 'string' ? selector : UPLOAD.SELECTORS.UPLOAD
451
+ );
452
+
453
+ if (!uploadElements.length) return uploadInstances;
454
+
455
+ uploadElements.forEach(element => {
456
+ try {
457
+ const instance = new Upload(element, options);
458
+ uploadInstances.push(instance);
459
+ } catch (error) {
460
+ console.error('Error initializing upload:', error);
461
+ }
462
+ });
463
+
464
+ return uploadInstances;
465
+ }
466
+
467
+ export default Upload;
@@ -0,0 +1,117 @@
1
+ // Components Index - Explicit exports for better tree-shaking and compatibility
2
+
3
+ // Accordion
4
+ export { Accordion, type AccordionProps } from './Accordion/Accordion';
5
+
6
+ // Avatar
7
+ export { Avatar, type AvatarProps } from './Avatar/Avatar';
8
+
9
+ // AvatarGroup
10
+ export { AvatarGroup, type AvatarGroupProps } from './Avatar/AvatarGroup';
11
+
12
+ // Badge
13
+ export { Badge, type BadgeProps } from './Badge/Badge';
14
+
15
+ // Breadcrumb
16
+ export { Breadcrumb, type BreadcrumbProps } from './Breadcrumb/Breadcrumb';
17
+
18
+ // Button
19
+ export { Button, type ButtonProps } from './Button/Button';
20
+
21
+ // Callout
22
+ export { Callout, type CalloutProps } from './Callout/Callout';
23
+
24
+ // Card
25
+ export { Card, type CardProps } from './Card/Card';
26
+
27
+ // ColorModeToggle
28
+ export { ColorModeToggle, type ColorModeToggleProps } from './ColorModeToggle/ColorModeToggle';
29
+
30
+ // Countdown
31
+ export { Countdown, type CountdownProps } from './Countdown/Countdown';
32
+
33
+ // DataTable
34
+ export { DataTable, type DataTableProps } from './DataTable/DataTable';
35
+
36
+ // DatePicker
37
+ export { DatePicker, type DatePickerProps } from './DatePicker/DatePicker';
38
+
39
+ // Dropdown
40
+ export { Dropdown, type DropdownProps } from './Dropdown/Dropdown';
41
+
42
+ // EdgePanel
43
+ export { EdgePanel, type EdgePanelProps } from './EdgePanel/EdgePanel';
44
+
45
+ // Form components - you might want to break these down further
46
+ export { Form, type FormProps } from './Form/Form';
47
+ export { Input, type InputProps } from './Form/Input';
48
+ export { Textarea, type TextareaProps } from './Form/Textarea';
49
+ export { Select, type SelectProps } from './Form/Select';
50
+ export { Checkbox, type CheckboxProps } from './Form/Checkbox';
51
+ export { Radio, type RadioProps } from './Form/Radio';
52
+
53
+ // Hero
54
+ export { Hero, type HeroProps } from './Hero/Hero';
55
+
56
+ // Icon
57
+ export { Icon, type IconProps } from './Icon/Icon';
58
+
59
+ // List
60
+ export { List, type ListProps } from './List/List';
61
+
62
+ // Messages
63
+ export { Messages, type MessagesProps } from './Messages/Messages';
64
+
65
+ // Modal
66
+ export { Modal, type ModalProps } from './Modal/Modal';
67
+
68
+ // Navbar
69
+ export { Navbar, type NavbarProps } from './Navigation/Navbar/Navbar';
70
+
71
+ // Pagination
72
+ export { Pagination, type PaginationProps } from './Pagination/Pagination';
73
+
74
+ // PhotoViewer
75
+ export { PhotoViewer, type PhotoViewerProps } from './PhotoViewer/PhotoViewer';
76
+
77
+ // Popover
78
+ export { Popover, type PopoverProps } from './Popover/Popover';
79
+
80
+ // ProductReview
81
+ export { ProductReview, type ProductReviewProps } from './ProductReview/ProductReview';
82
+
83
+ // Progress
84
+ export { Progress, type ProgressProps } from './Progress/Progress';
85
+
86
+ // Rating
87
+ export { Rating, type RatingProps } from './Rating/Rating';
88
+
89
+ // River
90
+ export { River, type RiverProps } from './River/River';
91
+
92
+ // SectionIntro
93
+ export { SectionIntro, type SectionIntroProps } from './SectionIntro/SectionIntro';
94
+
95
+ // Spinner
96
+ export { Spinner, type SpinnerProps } from './Spinner/Spinner';
97
+
98
+ // Steps
99
+ export { Steps, type StepsProps } from './Steps/Steps';
100
+
101
+ // Tab
102
+ export { Tab, type TabProps } from './Tab/Tab';
103
+
104
+ // Testimonial
105
+ export { Testimonial, type TestimonialProps } from './Testimonial/Testimonial';
106
+
107
+ // Todo
108
+ export { Todo, type TodoProps } from './Todo/Todo';
109
+
110
+ // Toggle
111
+ export { Toggle, type ToggleProps } from './Toggle/Toggle';
112
+
113
+ // Tooltip
114
+ export { Tooltip, type TooltipProps } from './Tooltip/Tooltip';
115
+
116
+ // Upload
117
+ export { Upload, type UploadProps } from './Upload/Upload';
@@ -0,0 +1,115 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+
3
+ interface ShadowExampleProps {
4
+ name: string;
5
+ size: string;
6
+ shadow: string;
7
+ isDark?: boolean;
8
+ darkShadow?: string;
9
+ }
10
+
11
+ const ShadowExample = ({ name, size, shadow, isDark = false, darkShadow }: ShadowExampleProps) => {
12
+ const currentShadow = isDark && darkShadow ? darkShadow : shadow;
13
+
14
+ return (
15
+ <div className="o-grid__col o-grid__col--xs-12 o-grid__col--md-4 o-grid__col--lg-3">
16
+ <div className="u-d-flex u-flex-column u-gap-2">
17
+ <span className="u-fs-sm u-fw-semibold">{name}</span>
18
+ <code
19
+ className="u-py-2 u-px-4 u-bg-light-subtle u-rounded-md u-fs-xs u-shadow-inset u-border u-border-primary-subtle"
20
+ style={{ minHeight: '50px' }}
21
+ >
22
+ {currentShadow}
23
+ </code>
24
+ </div>
25
+ <div
26
+ className={`u-shadow-${size} u-bg-light-subtle u-rounded-md u-py-2 u-px-4 u-mt-2`}
27
+ style={{ minHeight: '100px' }}
28
+ ></div>
29
+ </div>
30
+ );
31
+ };
32
+
33
+ const BoxShadowPreview = () => {
34
+ const shadows = [
35
+ {
36
+ name: 'Shadow',
37
+ size: '',
38
+ light: '0 8px 16px rgba(0, 0, 0, 0.15)',
39
+ dark: '0px 8px 40px -8px rgba(30, 30, 30, 0.70), 0px 4px 20px 0px rgba(30, 30, 30, 0.80)',
40
+ },
41
+ {
42
+ name: 'Extra Small',
43
+ size: 'xs',
44
+ light: '0px 1px 2px 0px rgba(45, 54, 67, 0.04), 0px 2px 4px 0px rgba(45, 54, 67, 0.08)',
45
+ dark: '0px 1px 2px 0px rgba(30, 30, 30, 0.50), 0px 2px 4px 0px rgba(30, 30, 30, 0.50)',
46
+ },
47
+ {
48
+ name: 'Small',
49
+ size: 'sm',
50
+ light: '0 2px 4px rgba(0, 0, 0, 0.075)',
51
+ dark: '0px 2px 4px -2px rgba(30, 30, 30, 0.50), 0px 4px 8px -2px rgba(30, 30, 30, 0.50)',
52
+ },
53
+ {
54
+ name: 'Large',
55
+ size: 'lg',
56
+ light: '0 16px 48px rgba(0, 0, 0, 0.175)',
57
+ dark: '0px 8px 18px -2px rgba(30, 30, 30, 0.50), 0px 8px 24px -2px rgba(30, 30, 30, 0.50)',
58
+ },
59
+ {
60
+ name: 'Extra Large',
61
+ size: 'xl',
62
+ light: '0px 16px 64px -8px rgba(45, 54, 67, 0.14)',
63
+ dark: '0px 33px 61px -8px rgba(30, 30, 30, 0.90), 0px 8px 10px 0px rgba(30, 30, 30, 0.90)',
64
+ },
65
+ {
66
+ name: 'Inset',
67
+ size: 'inset',
68
+ light: 'inset 0 1px 2px rgba(0, 0, 0, 0.075)',
69
+ dark: 'inset 0 1px 2px rgba(0, 0, 0, 0.3)',
70
+ },
71
+ ];
72
+
73
+ return (
74
+ <div className={`o-container u-py-12`}>
75
+ <h1 className="u-mb-8">Box Shadows</h1>
76
+
77
+ <section className="u-py-10 u-px-4 u-border u-border-dashed u-border-primary-subtle u-rounded-md">
78
+ <h2 className="u-mb-2">Shadow Variants</h2>
79
+ <p className="u-mb-4">
80
+ These are the available box shadow variants in the design system. They automatically
81
+ adjust between light and dark modes.
82
+ </p>
83
+
84
+ <div className="o-grid u-row-gap-4">
85
+ {shadows.map(shadow => (
86
+ <ShadowExample
87
+ key={shadow.name}
88
+ name={shadow.name}
89
+ size={shadow.size}
90
+ shadow={shadow.light}
91
+ darkShadow={shadow.dark}
92
+ />
93
+ ))}
94
+ </div>
95
+ </section>
96
+ </div>
97
+ );
98
+ };
99
+
100
+ export default {
101
+ title: 'Design Tokens',
102
+ component: BoxShadowPreview,
103
+ parameters: {
104
+ layout: 'fullscreen',
105
+ docs: {
106
+ description: {
107
+ component: 'Box shadow tokens and usage examples for the Atomix design system.',
108
+ },
109
+ },
110
+ },
111
+ } as Meta<typeof BoxShadowPreview>;
112
+
113
+ type Story = StoryObj<typeof BoxShadowPreview>;
114
+
115
+ export const BoxShadow: Story = {};