@udixio/ui-react 0.0.1 → 0.1.0

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 (347) hide show
  1. package/.eslintrc.mjs +22 -0
  2. package/.storybook/main.ts +20 -0
  3. package/.storybook/preview.ts +1 -0
  4. package/CHANGELOG.md +141 -0
  5. package/dist/index.cjs +5 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +2820 -0
  8. package/dist/lib/components/Button.d.ts.map +1 -0
  9. package/dist/lib/components/Card.d.ts.map +1 -0
  10. package/dist/lib/components/Carousel.d.ts.map +1 -0
  11. package/dist/lib/components/CarouselItem.d.ts.map +1 -0
  12. package/{lib → dist/lib}/components/Divided.d.ts +1 -1
  13. package/dist/lib/components/Divided.d.ts.map +1 -0
  14. package/dist/lib/components/Fab.d.ts.map +1 -0
  15. package/dist/lib/components/IconButton.d.ts.map +1 -0
  16. package/dist/lib/components/NavigationRail.d.ts.map +1 -0
  17. package/dist/lib/components/NavigationRailItem.d.ts.map +1 -0
  18. package/dist/lib/components/ProgressIndicator.d.ts.map +1 -0
  19. package/dist/lib/components/Slider.d.ts.map +1 -0
  20. package/dist/lib/components/Snackbar.d.ts.map +1 -0
  21. package/dist/lib/components/Switch.d.ts.map +1 -0
  22. package/dist/lib/components/Tab.d.ts.map +1 -0
  23. package/dist/lib/components/Tabs.d.ts.map +1 -0
  24. package/dist/lib/components/TextField.d.ts.map +1 -0
  25. package/dist/lib/components/ToolTip.d.ts.map +1 -0
  26. package/dist/lib/components/index.d.ts.map +1 -0
  27. package/dist/lib/effects/SyncedFixedWrapper.d.ts.map +1 -0
  28. package/dist/lib/effects/custom-scroll/custom-scroll.effect.d.ts.map +1 -0
  29. package/dist/lib/effects/custom-scroll/custom-scroll.interface.d.ts.map +1 -0
  30. package/dist/lib/effects/custom-scroll/custom-scroll.style.d.ts.map +1 -0
  31. package/dist/lib/effects/custom-scroll/index.d.ts.map +1 -0
  32. package/dist/lib/effects/index.d.ts.map +1 -0
  33. package/dist/lib/effects/ripple/RippleEffect.d.ts.map +1 -0
  34. package/dist/lib/effects/ripple/index.d.ts.map +1 -0
  35. package/dist/lib/effects/smooth-scroll.effect.d.ts.map +1 -0
  36. package/dist/lib/icon/icon.d.ts.map +1 -0
  37. package/dist/lib/icon/index.d.ts.map +1 -0
  38. package/dist/lib/index.d.ts.map +1 -0
  39. package/dist/lib/interfaces/button.interface.d.ts.map +1 -0
  40. package/dist/lib/interfaces/card.interface.d.ts.map +1 -0
  41. package/dist/lib/interfaces/carousel-item.interface.d.ts.map +1 -0
  42. package/dist/lib/interfaces/carousel.interface.d.ts.map +1 -0
  43. package/dist/lib/interfaces/divider.interface.d.ts.map +1 -0
  44. package/dist/lib/interfaces/fab.interface.d.ts.map +1 -0
  45. package/dist/lib/interfaces/icon-button.interface.d.ts.map +1 -0
  46. package/dist/lib/interfaces/index.d.ts.map +1 -0
  47. package/dist/lib/interfaces/navigation-rail-item.interface.d.ts.map +1 -0
  48. package/dist/lib/interfaces/navigation-rail.interface.d.ts.map +1 -0
  49. package/dist/lib/interfaces/progress-indicator.interface.d.ts.map +1 -0
  50. package/dist/lib/interfaces/slider.interface.d.ts.map +1 -0
  51. package/dist/lib/interfaces/snackbar.interface.d.ts.map +1 -0
  52. package/dist/lib/interfaces/switch.interface.d.ts.map +1 -0
  53. package/dist/lib/interfaces/tab.interface.d.ts.map +1 -0
  54. package/{lib → dist/lib}/interfaces/tabs.interface.d.ts +1 -1
  55. package/dist/lib/interfaces/tabs.interface.d.ts.map +1 -0
  56. package/dist/lib/interfaces/text-field.interface.d.ts.map +1 -0
  57. package/dist/lib/interfaces/tooltip.interface.d.ts.map +1 -0
  58. package/dist/lib/styles/button.style.d.ts.map +1 -0
  59. package/dist/lib/styles/card.style.d.ts.map +1 -0
  60. package/dist/lib/styles/carousel-item.style.d.ts.map +1 -0
  61. package/dist/lib/styles/carousel.style.d.ts.map +1 -0
  62. package/dist/lib/styles/divider.style.d.ts.map +1 -0
  63. package/dist/lib/styles/fab.style.d.ts.map +1 -0
  64. package/dist/lib/styles/icon-button.style.d.ts.map +1 -0
  65. package/dist/lib/styles/index.d.ts.map +1 -0
  66. package/dist/lib/styles/navigation-rail-item.style.d.ts.map +1 -0
  67. package/dist/lib/styles/navigation-rail.style.d.ts.map +1 -0
  68. package/dist/lib/styles/progress-indicator.style.d.ts.map +1 -0
  69. package/dist/lib/styles/slider.style.d.ts.map +1 -0
  70. package/dist/lib/styles/snackbar.style.d.ts.map +1 -0
  71. package/dist/lib/styles/switch.style.d.ts.map +1 -0
  72. package/dist/lib/styles/tab.style.d.ts.map +1 -0
  73. package/{lib → dist/lib}/styles/tabs.style.d.ts +1 -1
  74. package/dist/lib/styles/tabs.style.d.ts.map +1 -0
  75. package/dist/lib/styles/text-field.style.d.ts.map +1 -0
  76. package/dist/lib/styles/tooltip.style.d.ts.map +1 -0
  77. package/dist/lib/utils/component-helper.d.ts.map +1 -0
  78. package/dist/lib/utils/component.d.ts.map +1 -0
  79. package/dist/lib/utils/index.d.ts.map +1 -0
  80. package/dist/lib/utils/string.d.ts.map +1 -0
  81. package/dist/lib/utils/styles/classnames.d.ts.map +1 -0
  82. package/dist/lib/utils/styles/get-classname.d.ts.map +1 -0
  83. package/dist/lib/utils/styles/index.d.ts.map +1 -0
  84. package/package.json +12 -7
  85. package/postcss.config.mjs +5 -0
  86. package/src/index.css +4 -0
  87. package/src/index.ts +1 -0
  88. package/src/lib/components/Button.tsx +140 -0
  89. package/src/lib/components/Card.tsx +31 -0
  90. package/src/lib/components/Carousel.tsx +190 -0
  91. package/src/lib/components/CarouselItem.tsx +53 -0
  92. package/src/lib/components/Divided.tsx +13 -0
  93. package/src/lib/components/Fab.tsx +109 -0
  94. package/src/lib/components/IconButton.tsx +141 -0
  95. package/src/lib/components/NavigationRail.tsx +178 -0
  96. package/src/lib/components/NavigationRailItem.tsx +199 -0
  97. package/src/lib/components/ProgressIndicator.tsx +157 -0
  98. package/src/lib/components/Slider.tsx +361 -0
  99. package/src/lib/components/Snackbar.tsx +66 -0
  100. package/src/lib/components/Switch.tsx +94 -0
  101. package/src/lib/components/Tab.tsx +110 -0
  102. package/src/lib/components/Tabs.tsx +85 -0
  103. package/src/lib/components/TextField.tsx +269 -0
  104. package/src/lib/components/ToolTip.tsx +232 -0
  105. package/src/lib/components/index.ts +19 -0
  106. package/src/lib/effects/SyncedFixedWrapper.tsx +64 -0
  107. package/src/lib/effects/custom-scroll/custom-scroll.effect.tsx +287 -0
  108. package/src/lib/effects/custom-scroll/custom-scroll.interface.ts +25 -0
  109. package/src/lib/effects/custom-scroll/custom-scroll.style.ts +32 -0
  110. package/src/lib/effects/custom-scroll/index.ts +3 -0
  111. package/src/lib/effects/index.ts +4 -0
  112. package/src/lib/effects/ripple/RippleEffect.tsx +103 -0
  113. package/src/lib/effects/ripple/index.tsx +1 -0
  114. package/src/lib/effects/smooth-scroll.effect.tsx +91 -0
  115. package/src/lib/icon/icon.tsx +47 -0
  116. package/src/lib/icon/index.ts +1 -0
  117. package/src/lib/index.ts +6 -0
  118. package/src/lib/interfaces/button.interface.ts +46 -0
  119. package/src/lib/interfaces/card.interface.ts +8 -0
  120. package/src/lib/interfaces/carousel-item.interface.ts +11 -0
  121. package/src/lib/interfaces/carousel.interface.ts +21 -0
  122. package/src/lib/interfaces/divider.interface.ts +7 -0
  123. package/src/lib/interfaces/fab.interface.ts +19 -0
  124. package/src/lib/interfaces/icon-button.interface.ts +35 -0
  125. package/src/lib/interfaces/index.ts +16 -0
  126. package/src/lib/interfaces/navigation-rail-item.interface.ts +38 -0
  127. package/src/lib/interfaces/navigation-rail.interface.ts +39 -0
  128. package/src/lib/interfaces/progress-indicator.interface.ts +35 -0
  129. package/src/lib/interfaces/slider.interface.ts +29 -0
  130. package/src/lib/interfaces/snackbar.interface.ts +13 -0
  131. package/src/lib/interfaces/switch.interface.ts +14 -0
  132. package/src/lib/interfaces/tab.interface.ts +30 -0
  133. package/src/lib/interfaces/tabs.interface.ts +22 -0
  134. package/src/lib/interfaces/text-field.interface.ts +48 -0
  135. package/src/lib/interfaces/tooltip.interface.ts +35 -0
  136. package/src/lib/styles/button.style.ts +155 -0
  137. package/src/lib/styles/card.style.ts +22 -0
  138. package/src/lib/styles/carousel-item.style.ts +11 -0
  139. package/src/lib/styles/carousel.style.ts +12 -0
  140. package/src/lib/styles/divider.style.ts +17 -0
  141. package/src/lib/styles/fab.style.ts +55 -0
  142. package/src/lib/styles/icon-button.style.ts +140 -0
  143. package/src/lib/styles/index.ts +15 -0
  144. package/src/lib/styles/navigation-rail-item.style.ts +44 -0
  145. package/src/lib/styles/navigation-rail.style.ts +20 -0
  146. package/src/lib/styles/progress-indicator.style.ts +30 -0
  147. package/src/lib/styles/slider.style.ts +27 -0
  148. package/src/lib/styles/snackbar.style.ts +14 -0
  149. package/src/lib/styles/switch.style.ts +51 -0
  150. package/src/lib/styles/tab.style.ts +68 -0
  151. package/src/lib/styles/tabs.style.ts +13 -0
  152. package/src/lib/styles/text-field.style.ts +104 -0
  153. package/src/lib/styles/tooltip.style.ts +37 -0
  154. package/src/lib/utils/component-helper.ts +134 -0
  155. package/src/lib/utils/component.ts +34 -0
  156. package/src/lib/utils/index.ts +7 -0
  157. package/src/lib/utils/string.ts +9 -0
  158. package/src/lib/utils/styles/classnames.ts +49 -0
  159. package/src/lib/utils/styles/get-classname.ts +73 -0
  160. package/src/lib/utils/styles/index.ts +3 -0
  161. package/src/stories/action/button.stories.tsx +86 -0
  162. package/src/stories/action/fab.stories.tsx +54 -0
  163. package/src/stories/action/icon-button.stories.tsx +134 -0
  164. package/src/stories/assets/accessibility.png +0 -0
  165. package/src/stories/assets/accessibility.svg +5 -0
  166. package/src/stories/assets/addon-library.png +0 -0
  167. package/src/stories/assets/assets.png +0 -0
  168. package/src/stories/assets/context.png +0 -0
  169. package/src/stories/assets/discord.svg +15 -0
  170. package/src/stories/assets/docs.png +0 -0
  171. package/src/stories/assets/figma-plugin.png +0 -0
  172. package/src/stories/assets/github.svg +3 -0
  173. package/src/stories/assets/share.png +0 -0
  174. package/src/stories/assets/styling.png +0 -0
  175. package/src/stories/assets/testing.png +0 -0
  176. package/src/stories/assets/theming.png +0 -0
  177. package/src/stories/assets/tutorials.svg +12 -0
  178. package/src/stories/assets/youtube.svg +4 -0
  179. package/src/stories/communication/ProgressIndicator.stories.tsx +57 -0
  180. package/src/stories/communication/SnackBar.stories.tsx +32 -0
  181. package/src/stories/communication/tool-tip.stories.tsx +133 -0
  182. package/src/stories/containment/card.stories.tsx +42 -0
  183. package/src/stories/containment/carousel.stories.tsx +65 -0
  184. package/src/stories/containment/divider.stories.tsx +35 -0
  185. package/src/stories/effect/smooth-scroll.stories.tsx +45 -0
  186. package/src/stories/navigation/navigation-rail/navigation-rail-item.stories.tsx +65 -0
  187. package/src/stories/navigation/navigation-rail/navigation-rail.stories.tsx +122 -0
  188. package/src/stories/navigation/tabs/tab.stories.tsx +57 -0
  189. package/src/stories/navigation/tabs/tabs.stories.tsx +102 -0
  190. package/src/stories/selection/slider.stories.tsx +85 -0
  191. package/src/stories/selection/switch.stories.tsx +46 -0
  192. package/src/stories/text-inputs/text-field.stories.tsx +135 -0
  193. package/src/tests/Button.spec.tsx +67 -0
  194. package/src/udixio.css +120 -0
  195. package/theme.config.ts +7 -0
  196. package/tsconfig.json +22 -0
  197. package/tsconfig.lib.json +51 -0
  198. package/tsconfig.spec.json +37 -0
  199. package/tsconfig.storybook.json +38 -0
  200. package/vite.config.ts +75 -0
  201. package/index.d.ts.map +0 -1
  202. package/index.js +0 -10841
  203. package/lib/components/Button.d.ts.map +0 -1
  204. package/lib/components/Card.d.ts.map +0 -1
  205. package/lib/components/Carousel.d.ts.map +0 -1
  206. package/lib/components/CarouselItem.d.ts.map +0 -1
  207. package/lib/components/Divided.d.ts.map +0 -1
  208. package/lib/components/Fab.d.ts.map +0 -1
  209. package/lib/components/IconButton.d.ts.map +0 -1
  210. package/lib/components/NavigationRail.d.ts.map +0 -1
  211. package/lib/components/NavigationRailItem.d.ts.map +0 -1
  212. package/lib/components/ProgressIndicator.d.ts.map +0 -1
  213. package/lib/components/Slider.d.ts.map +0 -1
  214. package/lib/components/Snackbar.d.ts.map +0 -1
  215. package/lib/components/Switch.d.ts.map +0 -1
  216. package/lib/components/Tab.d.ts.map +0 -1
  217. package/lib/components/Tabs.d.ts.map +0 -1
  218. package/lib/components/TextField.d.ts.map +0 -1
  219. package/lib/components/ToolTip.d.ts.map +0 -1
  220. package/lib/components/index.d.ts.map +0 -1
  221. package/lib/effects/SyncedFixedWrapper.d.ts.map +0 -1
  222. package/lib/effects/custom-scroll/custom-scroll.effect.d.ts.map +0 -1
  223. package/lib/effects/custom-scroll/custom-scroll.interface.d.ts.map +0 -1
  224. package/lib/effects/custom-scroll/custom-scroll.style.d.ts.map +0 -1
  225. package/lib/effects/custom-scroll/index.d.ts.map +0 -1
  226. package/lib/effects/index.d.ts.map +0 -1
  227. package/lib/effects/ripple/RippleEffect.d.ts.map +0 -1
  228. package/lib/effects/ripple/index.d.ts.map +0 -1
  229. package/lib/effects/smooth-scroll.effect.d.ts.map +0 -1
  230. package/lib/icon/icon.d.ts.map +0 -1
  231. package/lib/icon/index.d.ts.map +0 -1
  232. package/lib/index.d.ts.map +0 -1
  233. package/lib/interfaces/button.interface.d.ts.map +0 -1
  234. package/lib/interfaces/card.interface.d.ts.map +0 -1
  235. package/lib/interfaces/carousel-item.interface.d.ts.map +0 -1
  236. package/lib/interfaces/carousel.interface.d.ts.map +0 -1
  237. package/lib/interfaces/divider.interface.d.ts.map +0 -1
  238. package/lib/interfaces/fab.interface.d.ts.map +0 -1
  239. package/lib/interfaces/icon-button.interface.d.ts.map +0 -1
  240. package/lib/interfaces/index.d.ts.map +0 -1
  241. package/lib/interfaces/navigation-rail-item.interface.d.ts.map +0 -1
  242. package/lib/interfaces/navigation-rail.interface.d.ts.map +0 -1
  243. package/lib/interfaces/progress-indicator.interface.d.ts.map +0 -1
  244. package/lib/interfaces/slider.interface.d.ts.map +0 -1
  245. package/lib/interfaces/snackbar.interface.d.ts.map +0 -1
  246. package/lib/interfaces/switch.interface.d.ts.map +0 -1
  247. package/lib/interfaces/tab.interface.d.ts.map +0 -1
  248. package/lib/interfaces/tabs.interface.d.ts.map +0 -1
  249. package/lib/interfaces/text-field.interface.d.ts.map +0 -1
  250. package/lib/interfaces/tooltip.interface.d.ts.map +0 -1
  251. package/lib/styles/button.style.d.ts.map +0 -1
  252. package/lib/styles/card.style.d.ts.map +0 -1
  253. package/lib/styles/carousel-item.style.d.ts.map +0 -1
  254. package/lib/styles/carousel.style.d.ts.map +0 -1
  255. package/lib/styles/divider.style.d.ts.map +0 -1
  256. package/lib/styles/fab.style.d.ts.map +0 -1
  257. package/lib/styles/icon-button.style.d.ts.map +0 -1
  258. package/lib/styles/index.d.ts.map +0 -1
  259. package/lib/styles/navigation-rail-item.style.d.ts.map +0 -1
  260. package/lib/styles/navigation-rail.style.d.ts.map +0 -1
  261. package/lib/styles/progress-indicator.style.d.ts.map +0 -1
  262. package/lib/styles/slider.style.d.ts.map +0 -1
  263. package/lib/styles/snackbar.style.d.ts.map +0 -1
  264. package/lib/styles/switch.style.d.ts.map +0 -1
  265. package/lib/styles/tab.style.d.ts.map +0 -1
  266. package/lib/styles/tabs.style.d.ts.map +0 -1
  267. package/lib/styles/text-field.style.d.ts.map +0 -1
  268. package/lib/styles/tooltip.style.d.ts.map +0 -1
  269. package/lib/utils/component-helper.d.ts.map +0 -1
  270. package/lib/utils/component.d.ts.map +0 -1
  271. package/lib/utils/index.d.ts.map +0 -1
  272. package/lib/utils/string.d.ts.map +0 -1
  273. package/lib/utils/styles/classnames.d.ts.map +0 -1
  274. package/lib/utils/styles/get-classname.d.ts.map +0 -1
  275. package/lib/utils/styles/index.d.ts.map +0 -1
  276. /package/{LICENSE → dist/LICENSE} +0 -0
  277. /package/{index.d.ts → dist/index.d.ts} +0 -0
  278. /package/{lib → dist/lib}/components/Button.d.ts +0 -0
  279. /package/{lib → dist/lib}/components/Card.d.ts +0 -0
  280. /package/{lib → dist/lib}/components/Carousel.d.ts +0 -0
  281. /package/{lib → dist/lib}/components/CarouselItem.d.ts +0 -0
  282. /package/{lib → dist/lib}/components/Fab.d.ts +0 -0
  283. /package/{lib → dist/lib}/components/IconButton.d.ts +0 -0
  284. /package/{lib → dist/lib}/components/NavigationRail.d.ts +0 -0
  285. /package/{lib → dist/lib}/components/NavigationRailItem.d.ts +0 -0
  286. /package/{lib → dist/lib}/components/ProgressIndicator.d.ts +0 -0
  287. /package/{lib → dist/lib}/components/Slider.d.ts +0 -0
  288. /package/{lib → dist/lib}/components/Snackbar.d.ts +0 -0
  289. /package/{lib → dist/lib}/components/Switch.d.ts +0 -0
  290. /package/{lib → dist/lib}/components/Tab.d.ts +0 -0
  291. /package/{lib → dist/lib}/components/Tabs.d.ts +0 -0
  292. /package/{lib → dist/lib}/components/TextField.d.ts +0 -0
  293. /package/{lib → dist/lib}/components/ToolTip.d.ts +0 -0
  294. /package/{lib → dist/lib}/components/index.d.ts +0 -0
  295. /package/{lib → dist/lib}/effects/SyncedFixedWrapper.d.ts +0 -0
  296. /package/{lib → dist/lib}/effects/custom-scroll/custom-scroll.effect.d.ts +0 -0
  297. /package/{lib → dist/lib}/effects/custom-scroll/custom-scroll.interface.d.ts +0 -0
  298. /package/{lib → dist/lib}/effects/custom-scroll/custom-scroll.style.d.ts +0 -0
  299. /package/{lib → dist/lib}/effects/custom-scroll/index.d.ts +0 -0
  300. /package/{lib → dist/lib}/effects/index.d.ts +0 -0
  301. /package/{lib → dist/lib}/effects/ripple/RippleEffect.d.ts +0 -0
  302. /package/{lib → dist/lib}/effects/ripple/index.d.ts +0 -0
  303. /package/{lib → dist/lib}/effects/smooth-scroll.effect.d.ts +0 -0
  304. /package/{lib → dist/lib}/icon/icon.d.ts +0 -0
  305. /package/{lib → dist/lib}/icon/index.d.ts +0 -0
  306. /package/{lib → dist/lib}/index.d.ts +0 -0
  307. /package/{lib → dist/lib}/interfaces/button.interface.d.ts +0 -0
  308. /package/{lib → dist/lib}/interfaces/card.interface.d.ts +0 -0
  309. /package/{lib → dist/lib}/interfaces/carousel-item.interface.d.ts +0 -0
  310. /package/{lib → dist/lib}/interfaces/carousel.interface.d.ts +0 -0
  311. /package/{lib → dist/lib}/interfaces/divider.interface.d.ts +0 -0
  312. /package/{lib → dist/lib}/interfaces/fab.interface.d.ts +0 -0
  313. /package/{lib → dist/lib}/interfaces/icon-button.interface.d.ts +0 -0
  314. /package/{lib → dist/lib}/interfaces/index.d.ts +0 -0
  315. /package/{lib → dist/lib}/interfaces/navigation-rail-item.interface.d.ts +0 -0
  316. /package/{lib → dist/lib}/interfaces/navigation-rail.interface.d.ts +0 -0
  317. /package/{lib → dist/lib}/interfaces/progress-indicator.interface.d.ts +0 -0
  318. /package/{lib → dist/lib}/interfaces/slider.interface.d.ts +0 -0
  319. /package/{lib → dist/lib}/interfaces/snackbar.interface.d.ts +0 -0
  320. /package/{lib → dist/lib}/interfaces/switch.interface.d.ts +0 -0
  321. /package/{lib → dist/lib}/interfaces/tab.interface.d.ts +0 -0
  322. /package/{lib → dist/lib}/interfaces/text-field.interface.d.ts +0 -0
  323. /package/{lib → dist/lib}/interfaces/tooltip.interface.d.ts +0 -0
  324. /package/{lib → dist/lib}/styles/button.style.d.ts +0 -0
  325. /package/{lib → dist/lib}/styles/card.style.d.ts +0 -0
  326. /package/{lib → dist/lib}/styles/carousel-item.style.d.ts +0 -0
  327. /package/{lib → dist/lib}/styles/carousel.style.d.ts +0 -0
  328. /package/{lib → dist/lib}/styles/divider.style.d.ts +0 -0
  329. /package/{lib → dist/lib}/styles/fab.style.d.ts +0 -0
  330. /package/{lib → dist/lib}/styles/icon-button.style.d.ts +0 -0
  331. /package/{lib → dist/lib}/styles/index.d.ts +0 -0
  332. /package/{lib → dist/lib}/styles/navigation-rail-item.style.d.ts +0 -0
  333. /package/{lib → dist/lib}/styles/navigation-rail.style.d.ts +0 -0
  334. /package/{lib → dist/lib}/styles/progress-indicator.style.d.ts +0 -0
  335. /package/{lib → dist/lib}/styles/slider.style.d.ts +0 -0
  336. /package/{lib → dist/lib}/styles/snackbar.style.d.ts +0 -0
  337. /package/{lib → dist/lib}/styles/switch.style.d.ts +0 -0
  338. /package/{lib → dist/lib}/styles/tab.style.d.ts +0 -0
  339. /package/{lib → dist/lib}/styles/text-field.style.d.ts +0 -0
  340. /package/{lib → dist/lib}/styles/tooltip.style.d.ts +0 -0
  341. /package/{lib → dist/lib}/utils/component-helper.d.ts +0 -0
  342. /package/{lib → dist/lib}/utils/component.d.ts +0 -0
  343. /package/{lib → dist/lib}/utils/index.d.ts +0 -0
  344. /package/{lib → dist/lib}/utils/string.d.ts +0 -0
  345. /package/{lib → dist/lib}/utils/styles/classnames.d.ts +0 -0
  346. /package/{lib → dist/lib}/utils/styles/get-classname.d.ts +0 -0
  347. /package/{lib → dist/lib}/utils/styles/index.d.ts +0 -0
@@ -0,0 +1,103 @@
1
+ import { AnimatePresence, motion } from 'motion/react';
2
+ import React, { useEffect, useState } from 'react';
3
+
4
+ interface RippleEffectProps {
5
+ triggerRef: React.RefObject<any> | React.ForwardedRef<any>;
6
+ colorName?: string;
7
+ }
8
+
9
+ const RippleEffect: React.FC<RippleEffectProps> = ({
10
+ colorName = 'on-surface',
11
+ triggerRef,
12
+ }) => {
13
+ const ripple = {
14
+ initial: {
15
+ opacity: 0,
16
+ borderRadius: '50%',
17
+ width: '25%',
18
+ height: '25%',
19
+ },
20
+ animate: {
21
+ opacity: 1,
22
+ borderRadius: 0,
23
+ width: '200%',
24
+ height: '200%',
25
+ transition: {
26
+ duration: 0.3,
27
+ borderRadius: { duration: 0.3, delay: 0.3 },
28
+ },
29
+ },
30
+ };
31
+
32
+ const [isCompleted, setIsCompleted] = useState(true);
33
+ const [isActive, setIsActive] = useState(false);
34
+ const [coordinates, setCoordinates] = useState({ x: 0, y: 0 });
35
+
36
+ useEffect(() => {
37
+ if (isActive) {
38
+ setIsCompleted(true);
39
+ setIsCompleted(false);
40
+ }
41
+ }, [isActive]);
42
+
43
+ useEffect(() => {
44
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
45
+ // @ts-expect-error
46
+ const element = triggerRef?.current;
47
+ if (element) {
48
+ element.addEventListener('mousedown', handleMouseDown);
49
+ element.addEventListener('mouseup', handleMouseUp);
50
+ element.addEventListener('mouseleave', handleMouseLeave);
51
+ return () => {
52
+ element.removeEventListener('mousedown', handleMouseDown);
53
+ element.removeEventListener('mouseup', handleMouseUp);
54
+ element.removeEventListener('mouseleave', handleMouseLeave);
55
+ };
56
+ }
57
+ }, [triggerRef]);
58
+
59
+ const handleMouseDown = (e: MouseEvent) => {
60
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
61
+ // @ts-expect-error
62
+ const el = triggerRef?.current as Element;
63
+ const rect = el.getBoundingClientRect();
64
+ setIsActive(true);
65
+ setCoordinates({
66
+ x: ((e.clientX - rect.left) / el.clientWidth) * 100,
67
+ y: ((e.clientY - rect.top) / el.clientHeight) * 100,
68
+ });
69
+ };
70
+ const handleMouseLeave = (e: MouseEvent) => {
71
+ setIsActive(false);
72
+ };
73
+
74
+ const handleMouseUp = (e: MouseEvent) => {
75
+ setIsActive(false);
76
+ };
77
+
78
+ return (
79
+ <AnimatePresence mode="wait">
80
+ {(isActive || (!isActive && !isCompleted)) && (
81
+ <motion.div
82
+ style={{
83
+ position: 'absolute',
84
+ width: '100%',
85
+ height: '100%',
86
+ top: coordinates.y + '%',
87
+ left: coordinates.x + '%',
88
+ background: `color-mix(in srgb, var(--color-${colorName}) 12%, transparent)`,
89
+ pointerEvents: 'none',
90
+ }}
91
+ variants={ripple}
92
+ initial="initial"
93
+ animate={'animate'}
94
+ exit={{ opacity: 0, transition: { duration: 0 } }}
95
+ onAnimationComplete={() => setIsCompleted(true)}
96
+ className={'transform -translate-x-1/2 -translate-y-1/2'}
97
+ />
98
+ )}
99
+ </AnimatePresence>
100
+ );
101
+ };
102
+
103
+ export default RippleEffect;
@@ -0,0 +1 @@
1
+ export { default as RippleEffect } from './RippleEffect';
@@ -0,0 +1,91 @@
1
+ import { ReactNode, useRef, useState } from 'react';
2
+ import {
3
+ motion,
4
+ motionValue,
5
+ useMotionValueEvent,
6
+ useTransform,
7
+ } from 'motion/react';
8
+ import { CustomScroll, CustomScrollInterface } from './custom-scroll';
9
+ import { classNames, ReactProps } from '../utils';
10
+
11
+ export const SmoothScroll = ({
12
+ children,
13
+ transition = '.5s',
14
+ orientation = 'vertical',
15
+ throttleDuration = 25,
16
+ ...restProps
17
+ }: {
18
+ children: ReactNode;
19
+ transition?: string;
20
+ } & ReactProps<CustomScrollInterface>) => {
21
+ const [scroll, setScroll] = useState<{
22
+ scrollProgress: number;
23
+ scrollTotal: number;
24
+ scrollVisible: number;
25
+ scroll: number;
26
+ } | null>(null);
27
+
28
+ const scrollProgress = motionValue(scroll?.scrollProgress ?? 0);
29
+
30
+ const transform = useTransform(
31
+ scrollProgress,
32
+ [0, 1],
33
+ [0, 1 - (scroll?.scrollVisible ?? 0) / (scroll?.scrollTotal ?? 0)]
34
+ );
35
+
36
+ const percentTransform = useTransform(
37
+ transform,
38
+ (value) => `${-value * 100}%`
39
+ );
40
+
41
+ const handleScroll = (args: {
42
+ scrollProgress: number;
43
+ scrollTotal: number;
44
+ scrollVisible: number;
45
+ scroll: number;
46
+ }) => {
47
+ scrollProgress.set(args.scrollProgress);
48
+ if (args.scrollTotal > 0) {
49
+ setScroll(args);
50
+ }
51
+ };
52
+ const lastChangeTimeRef = useRef<number | null>(null);
53
+ useMotionValueEvent(percentTransform, 'change', (value) => {
54
+ // Récupérer l'heure actuelle
55
+ const now = performance.now();
56
+
57
+ // Si une heure précédente existe, calculer le delta
58
+ if (lastChangeTimeRef.current !== null) {
59
+ const deltaTime = now - lastChangeTimeRef.current;
60
+ console.log(`Delta temps : ${deltaTime} ms`);
61
+ }
62
+
63
+ // Mettre à jour l'heure du dernier changement
64
+ lastChangeTimeRef.current = now;
65
+
66
+ console.log(value); // Affiche également la valeur si nécessaire
67
+ });
68
+
69
+ return (
70
+ <CustomScroll
71
+ onScroll={handleScroll}
72
+ throttleDuration={throttleDuration}
73
+ {...restProps}
74
+ >
75
+ <motion.div
76
+ className={classNames('transition-transform ease-out', {
77
+ 'w-fit h-full': orientation === 'horizontal',
78
+ 'h-fit w-full': orientation === 'vertical',
79
+ })}
80
+ style={{
81
+ transitionDuration: transition,
82
+ ...(orientation == 'vertical'
83
+ ? { y: percentTransform }
84
+ : { x: percentTransform }),
85
+ }}
86
+ >
87
+ {children}
88
+ </motion.div>
89
+ </CustomScroll>
90
+ );
91
+ };
@@ -0,0 +1,47 @@
1
+ import type React from 'react';
2
+ import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
3
+ import { classNames } from '../utils';
4
+
5
+ interface Props {
6
+ icon: IconDefinition;
7
+ colors?: string[];
8
+ className?: string;
9
+ }
10
+
11
+ export const Icon: React.FC<Props> = ({ icon, colors = [], className }) => {
12
+ const { icon: iconData } = icon; // Extraction des données de l'icône.
13
+ const [width, height, , , svgPathData] = iconData || [];
14
+
15
+ const getColorStyle = (colors: string[]): React.CSSProperties => {
16
+ switch (colors.length) {
17
+ case 2:
18
+ return {
19
+ '--fa-primary-color': colors[0] || 'inherit',
20
+ '--fa-secondary-color': colors[1] || 'inherit',
21
+ } as React.CSSProperties;
22
+ case 1:
23
+ return { color: colors[0] } as React.CSSProperties;
24
+ default:
25
+ return {};
26
+ }
27
+ };
28
+
29
+ return (
30
+ <svg
31
+ className={classNames('size-5 box-content', className)}
32
+ style={{
33
+ ...getColorStyle(colors),
34
+ }}
35
+ xmlns="http://www.w3.org/2000/svg"
36
+ viewBox={`0 0 ${width} ${height}`}
37
+ role="img"
38
+ aria-hidden="true"
39
+ >
40
+ {typeof svgPathData === 'string' ? (
41
+ <path className={'fill-current'} d={svgPathData} />
42
+ ) : (
43
+ svgPathData.map((d, index) => <path key={index} d={d} />)
44
+ )}
45
+ </svg>
46
+ );
47
+ };
@@ -0,0 +1 @@
1
+ export * from './icon';
@@ -0,0 +1,6 @@
1
+ export * from './components';
2
+ export * from './effects';
3
+ export * from './icon';
4
+ export * from './interfaces';
5
+ export * from './styles';
6
+ export * from './utils';
@@ -0,0 +1,46 @@
1
+ import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
2
+ import { ActionOrLink } from '../utils';
3
+ import { Transition } from 'motion';
4
+
5
+ type Props = {
6
+ /**
7
+ * The label is the text that is displayed on the button.
8
+ */
9
+ label: string;
10
+
11
+ size?: 'xSmall' | 'small' | 'medium' | 'large' | 'xLarge';
12
+
13
+ /**
14
+ * The button variant determines the style of the button.
15
+ */
16
+ variant?: 'filled' | 'elevated' | 'outlined' | 'text' | 'filledTonal';
17
+
18
+ /**
19
+ * Disables the button if set to true.
20
+ */
21
+ disabled?: boolean;
22
+
23
+ /**
24
+ * An optional icon to display in the button.
25
+ */
26
+ icon?: IconDefinition;
27
+
28
+ iconPosition?: 'left' | 'right';
29
+
30
+ loading?: boolean;
31
+
32
+ /**
33
+ * The shape of the button defines whether it is squared or rounded.
34
+ */
35
+ shape?: 'squared' | 'rounded';
36
+
37
+ allowShapeTransformation?: boolean;
38
+
39
+ transition?: Transition;
40
+ };
41
+
42
+ type Elements = ['button', 'stateLayer', 'container', 'icon', 'label'];
43
+
44
+ export type ButtonInterface = ActionOrLink<Props> & {
45
+ elements: Elements;
46
+ };
@@ -0,0 +1,8 @@
1
+ export interface CardInterface {
2
+ type: 'div';
3
+ props: {
4
+ variant?: 'outlined' | 'elevated' | 'filled';
5
+ isInteractive?: boolean;
6
+ };
7
+ elements: ['card', 'stateLayer'];
8
+ }
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ export interface CarouselItemInterface {
4
+ type: 'div';
5
+ props: {
6
+ children?: ReactNode | undefined;
7
+ width?: number;
8
+ index?: number;
9
+ };
10
+ elements: ['carouselItem'];
11
+ }
@@ -0,0 +1,21 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ export interface CarouselInterface {
4
+ type: 'div';
5
+ props: {
6
+ children?: ReactNode;
7
+ marginPourcent?: number;
8
+ onChange?: (index: number) => void;
9
+ variant?:
10
+ | 'hero'
11
+ | 'center-aligned hero'
12
+ | 'multi-browse'
13
+ | 'un-contained'
14
+ | 'full-screen';
15
+ scrollSensitivity?: number;
16
+ gap?: number;
17
+ inputRange?: [number, number];
18
+ outputRange?: [number, number];
19
+ };
20
+ elements: ['carousel', 'track'];
21
+ }
@@ -0,0 +1,7 @@
1
+ export interface DividerInterface {
2
+ type: 'hr';
3
+ props: {
4
+ orientation?: 'vertical' | 'horizontal';
5
+ };
6
+ elements: ['divider'];
7
+ }
@@ -0,0 +1,19 @@
1
+ import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
2
+ import { ActionOrLink } from '../utils/component';
3
+ import { Transition } from 'motion';
4
+
5
+ export type FabVariant = 'surface' | 'primary' | 'secondary' | 'tertiary';
6
+ type Props = {
7
+ variant?: FabVariant;
8
+ label: string;
9
+ icon: IconDefinition;
10
+ size?: 'small' | 'medium' | 'large';
11
+ isExtended?: boolean;
12
+ transition?: Transition;
13
+ };
14
+
15
+ export type Elements = ['fab', 'stateLayer', 'icon', 'label'];
16
+
17
+ export type FabInterface = ActionOrLink<Props> & {
18
+ elements: Elements;
19
+ };
@@ -0,0 +1,35 @@
1
+ import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
2
+ import { IconButtonVariant } from '../components/IconButton';
3
+ import { ActionOrLink } from '../utils/component';
4
+ import { Transition } from 'motion';
5
+
6
+ type Props = {
7
+ arialLabel: string;
8
+ icon: IconDefinition;
9
+ size?: 'xSmall' | 'small' | 'medium' | 'large' | 'xLarge';
10
+ width?: 'default' | 'narrow' | 'wide';
11
+ iconSelected?: IconDefinition;
12
+ onToggle?: (isActive: boolean) => void;
13
+ variant?: IconButtonVariant;
14
+ disabled?: boolean;
15
+ activated?: boolean;
16
+
17
+ /**
18
+ * The shape of the button defines whether it is squared or rounded.
19
+ */
20
+ shape?: 'squared' | 'rounded';
21
+
22
+ allowShapeTransformation?: boolean;
23
+
24
+ transition?: Transition;
25
+ };
26
+
27
+ export type IconButtonStates = {
28
+ isActive: boolean;
29
+ };
30
+ type Elements = ['iconButton', 'stateLayer', 'container', 'icon'];
31
+
32
+ export type IconButtonInterface = ActionOrLink<Props> & {
33
+ states: IconButtonStates;
34
+ elements: Elements;
35
+ };
@@ -0,0 +1,16 @@
1
+ export * from './button.interface';
2
+ export * from './card.interface';
3
+ export * from './carousel-item.interface';
4
+ export * from './carousel.interface';
5
+ export * from './divider.interface';
6
+ export * from './fab.interface';
7
+ export * from './icon-button.interface';
8
+ export * from './progress-indicator.interface';
9
+ export * from './slider.interface';
10
+ export * from './snackbar.interface';
11
+ export * from './switch.interface';
12
+ export * from './tab.interface';
13
+ export * from './tabs.interface';
14
+ export * from './text-field.interface';
15
+ export * from './navigation-rail-item.interface';
16
+ export * from './tooltip.interface';
@@ -0,0 +1,38 @@
1
+ import { ActionOrLink } from '../utils';
2
+ import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
3
+ import { Dispatch, RefObject, SetStateAction } from 'react';
4
+ import { Transition } from 'motion';
5
+
6
+ export type NavProps = {
7
+ selected?: boolean;
8
+ variant?: 'vertical' | 'horizontal';
9
+ label?: string;
10
+ icon: IconDefinition;
11
+ iconSelected: IconDefinition;
12
+ selectedItem?: number | null;
13
+ setSelectedItem?: Dispatch<SetStateAction<number | null>>;
14
+ onItemSelected?: (
15
+ args: { index: number } & Pick<NavProps, 'label' | 'icon'> & {
16
+ ref: RefObject<any>;
17
+ }
18
+ ) => void;
19
+ index?: number;
20
+ transition?: Transition;
21
+ extendedOnly?: boolean;
22
+ isExtended?: boolean;
23
+ };
24
+
25
+ type Elements = [
26
+ 'navigationRailItem',
27
+ 'stateLayer',
28
+ 'icon',
29
+ 'label',
30
+ 'container',
31
+ ];
32
+
33
+ export type NavigationRailItemInterface = ActionOrLink<NavProps> & {
34
+ states: {
35
+ isSelected: boolean;
36
+ };
37
+ elements: Elements;
38
+ };
@@ -0,0 +1,39 @@
1
+ import { Dispatch, ReactNode, RefObject, SetStateAction } from 'react';
2
+ import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
3
+ import { Transition } from 'motion';
4
+ import { ReactProps } from '../utils';
5
+ import { NavigationRailItemInterface } from './navigation-rail-item.interface';
6
+
7
+ type MenuState = {
8
+ icon: IconDefinition;
9
+ label: string;
10
+ };
11
+
12
+ export interface NavigationRailInterface {
13
+ type: 'div';
14
+ props: {
15
+ variant?: 'standard' | 'modal';
16
+ onItemSelected?: (
17
+ args: { index: number } & Pick<
18
+ ReactProps<NavigationRailItemInterface>,
19
+ 'label' | 'icon'
20
+ > & {
21
+ ref: RefObject<any>;
22
+ }
23
+ ) => void;
24
+ children: ReactNode;
25
+ selectedItem?: number | null;
26
+ setSelectedItem?: Dispatch<SetStateAction<number | null>>;
27
+ extended?: boolean;
28
+ alignment?: 'middle' | 'top';
29
+ menu?: {
30
+ closed: MenuState;
31
+ opened: MenuState;
32
+ };
33
+ onExtendedChange?: (extended: boolean) => void;
34
+
35
+ transition?: Transition;
36
+ };
37
+ states: { isExtended?: boolean };
38
+ elements: ['navigationRail', 'header', 'menuIcon', 'segments'];
39
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Type for the different variants of the ProgressIndicator component.
3
+ */
4
+ export type ProgressIndicatorVariant =
5
+ | 'linear-determinate'
6
+ | 'linear-indeterminate'
7
+ | 'circular-determinate'
8
+ | 'circular-indeterminate';
9
+
10
+ export interface ProgressIndicatorInterface {
11
+ type: 'div';
12
+ props: {
13
+ /**
14
+ * The percentage of the progress completed.
15
+ */
16
+ value?: number;
17
+
18
+ /**
19
+ * The duration of the transition animation in milliseconds.
20
+ */
21
+ transitionDuration?: number;
22
+
23
+ /**
24
+ * The variant of the ProgressIndicator.
25
+ */
26
+ variant?: ProgressIndicatorVariant;
27
+ /**
28
+ * The minimum height of the line used to draw the linear indicator.
29
+ */
30
+ minHeight?: number;
31
+ };
32
+ states: { isVisible: boolean };
33
+
34
+ elements: ['progressIndicator', 'stop', 'activeIndicator', 'track'];
35
+ }
@@ -0,0 +1,29 @@
1
+ export interface SliderInterface {
2
+ type: 'div';
3
+ props: {
4
+ value?: number;
5
+
6
+ name: string;
7
+ onChange?: (value: number) => void;
8
+ valueFormatter?: (value: number) => string | number;
9
+
10
+ step?: number;
11
+ min?: number;
12
+ max?: number;
13
+ marks?: {
14
+ value: number;
15
+ label?: string;
16
+ }[];
17
+ };
18
+ states: {
19
+ isChanging: boolean;
20
+ };
21
+ elements: [
22
+ 'slider',
23
+ 'activeTrack',
24
+ 'handle',
25
+ 'inactiveTrack',
26
+ 'valueIndicator',
27
+ 'dot',
28
+ ];
29
+ }
@@ -0,0 +1,13 @@
1
+ import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
2
+
3
+ export interface SnackbarInterface {
4
+ type: 'div';
5
+ props: {
6
+ duration?: number;
7
+ onClose?: () => void;
8
+ supportingText: string;
9
+ closeIcon?: IconDefinition;
10
+ };
11
+ states: { isVisible: boolean };
12
+ elements: ['snackbar', 'container', 'supportingText', 'action', 'icon'];
13
+ }
@@ -0,0 +1,14 @@
1
+ import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
2
+
3
+ export interface SwitchInterface {
4
+ type: 'div';
5
+ props: {
6
+ selected?: boolean;
7
+ activeIcon?: IconDefinition;
8
+ inactiveIcon?: IconDefinition;
9
+ disabled?: boolean;
10
+ onChange?: (checked: boolean) => void;
11
+ };
12
+ states: { isSelected: boolean };
13
+ elements: ['switch', 'handleContainer', 'icon', 'handleStateLayer', 'handle'];
14
+ }
@@ -0,0 +1,30 @@
1
+ import { ActionOrLink } from '../utils/component';
2
+ import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
3
+ import { TabsVariant } from './tabs.interface';
4
+ import { Dispatch, RefObject, SetStateAction } from 'react';
5
+
6
+ export type TabProps = {
7
+ selected?: boolean;
8
+ variant?: TabsVariant;
9
+ label?: string;
10
+ icon?: IconDefinition;
11
+ selectedTab?: number | null;
12
+ setSelectedTab?: Dispatch<SetStateAction<number | null>>;
13
+ tabsId?: string;
14
+ onTabSelected?: (
15
+ args: { index: number } & Pick<TabProps, 'label' | 'icon'> & {
16
+ ref: RefObject<any>;
17
+ }
18
+ ) => void;
19
+ index?: number;
20
+ scrollable?: boolean;
21
+ };
22
+
23
+ type Elements = ['tab', 'stateLayer', 'icon', 'label', 'content', 'underline'];
24
+
25
+ export type TabInterface = ActionOrLink<TabProps> & {
26
+ states: {
27
+ isSelected: boolean;
28
+ };
29
+ elements: Elements;
30
+ };
@@ -0,0 +1,22 @@
1
+ import { TabProps } from './tab.interface';
2
+ import { Dispatch, ReactNode, RefObject, SetStateAction } from 'react';
3
+
4
+ export type TabsVariant = 'primary' | 'secondary';
5
+
6
+ export interface TabsInterface {
7
+ type: 'div';
8
+ props: {
9
+ variant?: TabsVariant;
10
+ onTabSelected?: (
11
+ args: { index: number } & Pick<TabProps, 'label' | 'icon'> & {
12
+ ref: RefObject<any>;
13
+ },
14
+ ) => void;
15
+ children: ReactNode;
16
+ selectedTab?: number | null;
17
+ setSelectedTab?: Dispatch<SetStateAction<number | null>>;
18
+ scrollable?: boolean;
19
+ };
20
+ states: object;
21
+ elements: ['tabs'];
22
+ }