this.gui 1.0.18 → 1.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 (480) hide show
  1. package/.storybook/main.js +40 -0
  2. package/.storybook/manager-head.html +13 -0
  3. package/.storybook/manager.js +15 -0
  4. package/.storybook/preview.tsx +54 -0
  5. package/.storybook/vitest.setup.js +6 -0
  6. package/.storybook/withLayout.tsx +18 -0
  7. package/README.md +1 -220
  8. package/dist/GUI.png +0 -0
  9. package/dist/GUI2.png +0 -0
  10. package/dist/favicon.ico +0 -0
  11. package/dist/this-gui.es.js +108493 -5056
  12. package/dist/this-gui.umd.js +239 -44
  13. package/dist/this.GUI.png +0 -0
  14. package/nodes/overall approach.md +93 -0
  15. package/notes/Proyect.md +109 -0
  16. package/package.json +71 -54
  17. package/public/GUI.png +0 -0
  18. package/public/GUI2.png +0 -0
  19. package/public/favicon.ico +0 -0
  20. package/public/this.GUI.png +0 -0
  21. package/src/components/generics/Cards/Gridme.jsx +52 -0
  22. package/src/components/generics/Cards/LilBox.jsx +65 -0
  23. package/src/components/generics/Cards/ModuleCard.jsx +106 -0
  24. package/src/components/generics/Chats/FullChatBot.jsx +223 -0
  25. package/src/components/generics/Code/CodeBlock.jsx +33 -0
  26. package/src/components/generics/Feedback/Callout.jsx +92 -0
  27. package/src/components/generics/Layout/GridX.jsx +29 -0
  28. package/src/components/generics/Layout/Hero2.jsx +132 -0
  29. package/src/components/generics/Layout/PageContainer.jsx +29 -0
  30. package/src/components/generics/Layout/PageDivider.jsx +20 -0
  31. package/src/components/generics/Layout/Section.jsx +43 -0
  32. package/src/components/generics/Layout/SectionHeader.jsx +21 -0
  33. package/src/components/generics/Media/Img.jsx +58 -0
  34. package/src/components/generics/Media/VideoEmbed.jsx +51 -0
  35. package/src/components/generics/Organization/TableOfContents.jsx +51 -0
  36. package/src/components/generics/Organization/Tabs.jsx +45 -0
  37. package/src/components/generics/Text/TextList.jsx +41 -0
  38. package/src/components/generics/Text/TextParagraph.jsx +28 -0
  39. package/src/components/generics/Text/TextQuote.jsx +23 -0
  40. package/src/components/generics/Text/TextTitle.jsx +44 -0
  41. package/src/components/this.me/MeActive.jsx +24 -0
  42. package/src/components/this.me/MeFloating.jsx +183 -0
  43. package/src/components/this.me/MeInactive.jsx +21 -0
  44. package/src/components/this.me/MeListUs.jsx +40 -0
  45. package/src/components/this.me/MeState.jsx +25 -0
  46. package/src/components/this.me/hooks/useMe.js +43 -0
  47. package/src/context/GuiProvider.tsx +243 -0
  48. package/src/gui/atoms/AppBar/AppBar.resolver.tsx +77 -0
  49. package/src/gui/atoms/AppBar/AppBar.stories.tsx +232 -0
  50. package/src/gui/atoms/AppBar/AppBar.tsx +10 -0
  51. package/src/gui/atoms/Box/Box.resolver.tsx +171 -0
  52. package/src/gui/atoms/Box/Box.stories.tsx +271 -0
  53. package/src/gui/atoms/Box/Box.tsx +15 -0
  54. package/src/gui/atoms/Button/Button.resolver.tsx +98 -0
  55. package/src/gui/atoms/Button/Button.stories.tsx +225 -0
  56. package/src/gui/atoms/Button/Button.tsx +40 -0
  57. package/src/gui/atoms/Collapse/Collapse.resolver.tsx +85 -0
  58. package/src/gui/atoms/Collapse/Collapse.stories.tsx +136 -0
  59. package/src/gui/atoms/Collapse/Collapse.tsx +17 -0
  60. package/src/gui/atoms/Divider/Divider.resolver.tsx +95 -0
  61. package/src/gui/atoms/Divider/Divider.stories.tsx +109 -0
  62. package/src/gui/atoms/Divider/Divider.tsx +14 -0
  63. package/src/gui/atoms/Drawer/Drawer.resolver.tsx +116 -0
  64. package/src/gui/atoms/Drawer/Drawer.stories.tsx +229 -0
  65. package/src/gui/atoms/Drawer/Drawer.tsx +8 -0
  66. package/src/gui/atoms/IconButton/IconButton.resolver.tsx +135 -0
  67. package/src/gui/atoms/IconButton/IconButton.stories.tsx +141 -0
  68. package/src/gui/atoms/IconButton/IconButton.tsx +22 -0
  69. package/src/gui/atoms/Link/Link.resolver.tsx +75 -0
  70. package/src/gui/atoms/Link/Link.stories.tsx +164 -0
  71. package/src/gui/atoms/Link/Link.tsx +14 -0
  72. package/src/gui/atoms/List/List.resolver.tsx +95 -0
  73. package/src/gui/atoms/List/List.stories.tsx +143 -0
  74. package/src/gui/atoms/List/List.tsx +20 -0
  75. package/src/gui/atoms/ListItem/ListItem.resolver.tsx +88 -0
  76. package/src/gui/atoms/ListItem/ListItem.stories.tsx +157 -0
  77. package/src/gui/atoms/ListItem/ListItem.tsx +19 -0
  78. package/src/gui/atoms/ListItemButton/ListItemButton.resolver.tsx +208 -0
  79. package/src/gui/atoms/ListItemButton/ListItemButton.stories.tsx +161 -0
  80. package/src/gui/atoms/ListItemButton/ListItemButton.tsx +15 -0
  81. package/src/gui/atoms/ListItemIcon/ListItemIcon.resolver.tsx +102 -0
  82. package/src/gui/atoms/ListItemIcon/ListItemIcon.stories.tsx +135 -0
  83. package/src/gui/atoms/ListItemIcon/ListItemIcon.tsx +11 -0
  84. package/src/gui/atoms/ListItemText/ListItemText.resolver.tsx +112 -0
  85. package/src/gui/atoms/ListItemText/ListItemText.stories.tsx +162 -0
  86. package/src/gui/atoms/ListItemText/ListItemText.tsx +15 -0
  87. package/src/gui/atoms/Menu/Menu.resolver.tsx +112 -0
  88. package/src/gui/atoms/Menu/Menu.stories.tsx +168 -0
  89. package/src/gui/atoms/Menu/Menu.tsx +17 -0
  90. package/src/gui/atoms/MenuItem/MenuItem.resolver.tsx +183 -0
  91. package/src/gui/atoms/MenuItem/MenuItem.stories.tsx +138 -0
  92. package/src/gui/atoms/MenuItem/MenuItem.tsx +14 -0
  93. package/src/gui/atoms/Paper/Paper.resolver.tsx +98 -0
  94. package/src/gui/atoms/Paper/Paper.stories.tsx +191 -0
  95. package/src/gui/atoms/Paper/Paper.tsx +17 -0
  96. package/src/gui/atoms/Stack/Stack.resolver.tsx +94 -0
  97. package/src/gui/atoms/Stack/Stack.stories.tsx +166 -0
  98. package/src/gui/atoms/Stack/Stack.tsx +15 -0
  99. package/src/gui/atoms/Switch/Switch.resolver.tsx +53 -0
  100. package/src/gui/atoms/Switch/Switch.stories.tsx +242 -0
  101. package/src/gui/atoms/Switch/Switch.tsx +22 -0
  102. package/src/gui/atoms/Toolbar/Toolbar.resolver.tsx +60 -0
  103. package/src/gui/atoms/Toolbar/Toolbar.stories.tsx +163 -0
  104. package/src/gui/atoms/Toolbar/Toolbar.tsx +16 -0
  105. package/src/gui/atoms/Tooltip/Tooltip.resolver.tsx +142 -0
  106. package/src/gui/atoms/Tooltip/Tooltip.stories.tsx +118 -0
  107. package/src/gui/atoms/Tooltip/Tooltip.tsx +78 -0
  108. package/src/gui/atoms/Typography/Typography.resolver.tsx +158 -0
  109. package/src/gui/atoms/Typography/Typography.stories.tsx +228 -0
  110. package/src/gui/atoms/Typography/Typography.tsx +27 -0
  111. package/src/gui/atoms.tsx +129 -0
  112. package/src/gui/index.ts +69 -0
  113. package/src/gui/molecules/AppBars/Footer/Footer.resolver.tsx +104 -0
  114. package/src/gui/molecules/AppBars/Footer/Footer.stories.tsx +499 -0
  115. package/src/gui/molecules/AppBars/Footer/Footer.tsx +307 -0
  116. package/src/gui/molecules/AppBars/LeftSidebar/LeftSidebar.resolver.tsx +75 -0
  117. package/src/gui/molecules/AppBars/LeftSidebar/LeftSidebar.stories.tsx +61 -0
  118. package/src/gui/molecules/AppBars/LeftSidebar/LeftSidebar.tsx +511 -0
  119. package/src/gui/molecules/AppBars/LeftSidebar/SidebarToggleButton.tsx +51 -0
  120. package/src/gui/molecules/AppBars/RightSidebar/RightSidebar.resolver.tsx +97 -0
  121. package/src/gui/molecules/AppBars/RightSidebar/RightSidebar.stories.tsx +294 -0
  122. package/src/gui/molecules/AppBars/RightSidebar/RightSidebar.tsx +295 -0
  123. package/src/gui/molecules/AppBars/StickyOptions/StickyOptionsTop.stories.tsx +480 -0
  124. package/src/gui/molecules/AppBars/StickyOptions/StickyOptionsTop.tsx +484 -0
  125. package/src/gui/molecules/AppBars/TopBar/TopBar.resolver.tsx +84 -0
  126. package/src/gui/molecules/AppBars/TopBar/TopBar.stories.tsx +297 -0
  127. package/src/gui/molecules/AppBars/TopBar/TopBar.tsx +299 -0
  128. package/src/gui/molecules/Utilities/ThemeModeToggle/ThemeModeToggle.resolver.tsx +72 -0
  129. package/src/gui/molecules/Utilities/ThemeModeToggle/ThemeModeToggle.stories.tsx +154 -0
  130. package/src/gui/molecules/Utilities/ThemeModeToggle/ThemeModeToggle.tsx +100 -0
  131. package/src/gui/molecules/Utilities/ThemeSelector.jsx +281 -0
  132. package/src/gui/utils/nodeID.ts +8 -0
  133. package/src/index.js +111 -0
  134. package/src/registry/GuiRegistry.ts +19 -0
  135. package/src/registry/factory.ts +12 -0
  136. package/src/registry/index.ts +3 -0
  137. package/src/registry/types.ts +6 -0
  138. package/src/stories/01.Home.mdx +22 -0
  139. package/src/stories/02.Understanding.This.GUI.md +149 -0
  140. package/src/stories/03.Themes.mdx +235 -0
  141. package/src/stories/04.GuiProvider.md +126 -0
  142. package/src/stories/04.GuiProvider.mdx +129 -0
  143. package/src/stories/Theme/BreakPointsAndGrids.stories.jsx +185 -0
  144. package/src/stories/Theme/Colors.stories.jsx +245 -0
  145. package/src/stories/Theme/Icons.stories.jsx +313 -0
  146. package/src/stories/Theme/Motion.stories.jsx +206 -0
  147. package/src/stories/Theme/ShadowAndElevation.stories.jsx +95 -0
  148. package/src/stories/Theme/SpacingAndRadius.stories.jsx +129 -0
  149. package/src/stories/Theme/Typography.stories.jsx +211 -0
  150. package/src/stories/assets/this.GUI.png +0 -0
  151. package/src/templates/BrowserExtension.jsx +56 -0
  152. package/src/templates/Layout.tsx +36 -0
  153. package/src/templates/Minimal.jsx +123 -0
  154. package/src/templates/Shell/Shell.jsx +107 -0
  155. package/src/themes/fromTokens.ts +352 -0
  156. package/src/themes/icons/Icon.tsx +137 -0
  157. package/src/themes/icons/packs/Lucide.ts +72 -0
  158. package/src/themes/icons/packs/Material.ts +87 -0
  159. package/src/themes/icons/registry.tsx +178 -0
  160. package/src/themes/index.js +116 -0
  161. package/src/themes/theme.d.ts +116 -0
  162. package/src/themes/tokens/global.tokens.json +107 -0
  163. package/src/themes/tokens/neurons/dark.tokens.json +45 -0
  164. package/src/themes/tokens/neurons/light.tokens.json +51 -0
  165. package/src/themes/tokens/neurons/manifest.json +23 -0
  166. package/src/types/theme.d.ts +32 -0
  167. package/src/types/viewport.ts +132 -0
  168. package/tsconfig.json +24 -0
  169. package/vite.config.js +74 -0
  170. package/dist/style.css +0 -1
  171. package/src/App.jsx +0 -39
  172. package/src/CreatePage.jsx +0 -61
  173. package/src/MDXEditor.jsx +0 -51
  174. package/src/MdxProvider.jsx +0 -20
  175. package/src/Page.jsx +0 -28
  176. package/src/PageDashboard.jsx +0 -56
  177. package/src/SiteBuilder.jsx +0 -108
  178. package/src/example.json +0 -43
  179. package/src/index.mdx +0 -164
  180. package/src/main.jsx +0 -15
  181. package/src/scripts/ComponentRegistry.js +0 -70
  182. package/src/scripts/logASCIIArt.js +0 -12
  183. package/src/scripts/postinstall.js +0 -111
  184. package/src/scripts/renderComponents.js +0 -11
  185. package/src/stories/Atoms/Alert/Alert.css +0 -211
  186. package/src/stories/Atoms/Alert/Alert.jsx +0 -56
  187. package/src/stories/Atoms/Alert/Alert.stories.jsx +0 -167
  188. package/src/stories/Atoms/Audio/Audio.css +0 -259
  189. package/src/stories/Atoms/Audio/Audio.jsx +0 -216
  190. package/src/stories/Atoms/Audio/Audio.stories.jsx +0 -191
  191. package/src/stories/Atoms/Badge/Badge.css +0 -249
  192. package/src/stories/Atoms/Badge/Badge.jsx +0 -54
  193. package/src/stories/Atoms/Badge/Badge.stories.jsx +0 -121
  194. package/src/stories/Atoms/Button/Button.css +0 -332
  195. package/src/stories/Atoms/Button/Button.jsx +0 -44
  196. package/src/stories/Atoms/Button/Button.stories.jsx +0 -209
  197. package/src/stories/Atoms/Caption/Caption.css +0 -169
  198. package/src/stories/Atoms/Caption/Caption.jsx +0 -72
  199. package/src/stories/Atoms/Caption/Caption.stories.jsx +0 -207
  200. package/src/stories/Atoms/Checkbox/Checkbox.css +0 -182
  201. package/src/stories/Atoms/Checkbox/Checkbox.jsx +0 -83
  202. package/src/stories/Atoms/Checkbox/Checkbox.stories.jsx +0 -112
  203. package/src/stories/Atoms/Container/Container.css +0 -470
  204. package/src/stories/Atoms/Container/Container.jsx +0 -116
  205. package/src/stories/Atoms/Container/Container.stories.jsx +0 -145
  206. package/src/stories/Atoms/Divider/Divider.css +0 -147
  207. package/src/stories/Atoms/Divider/Divider.jsx +0 -62
  208. package/src/stories/Atoms/Divider/Divider.stories.jsx +0 -105
  209. package/src/stories/Atoms/Grid/Grid.css +0 -160
  210. package/src/stories/Atoms/Grid/Grid.jsx +0 -43
  211. package/src/stories/Atoms/Grid/Grid.stories.jsx +0 -84
  212. package/src/stories/Atoms/Heading/Heading.css +0 -112
  213. package/src/stories/Atoms/Heading/Heading.jsx +0 -69
  214. package/src/stories/Atoms/Heading/Heading.stories.jsx +0 -130
  215. package/src/stories/Atoms/Icon/Icon.css +0 -240
  216. package/src/stories/Atoms/Icon/Icon.jsx +0 -80
  217. package/src/stories/Atoms/Icon/Icon.stories.jsx +0 -177
  218. package/src/stories/Atoms/Image/Image.css +0 -245
  219. package/src/stories/Atoms/Image/Image.jsx +0 -175
  220. package/src/stories/Atoms/Image/Image.stories.jsx +0 -332
  221. package/src/stories/Atoms/Label/Label.css +0 -171
  222. package/src/stories/Atoms/Label/Label.jsx +0 -71
  223. package/src/stories/Atoms/Label/Label.stories.jsx +0 -180
  224. package/src/stories/Atoms/Link/Link.css +0 -51
  225. package/src/stories/Atoms/Link/Link.jsx +0 -72
  226. package/src/stories/Atoms/Link/Link.stories.jsx +0 -153
  227. package/src/stories/Atoms/Loader/Loader.css +0 -106
  228. package/src/stories/Atoms/Loader/Loader.jsx +0 -58
  229. package/src/stories/Atoms/Loader/Loader.stories.jsx +0 -99
  230. package/src/stories/Atoms/Logo/Logo.css +0 -94
  231. package/src/stories/Atoms/Logo/Logo.jsx +0 -53
  232. package/src/stories/Atoms/Logo/Logo.stories.jsx +0 -120
  233. package/src/stories/Atoms/Paragraph/Paragraph.css +0 -180
  234. package/src/stories/Atoms/Paragraph/Paragraph.jsx +0 -77
  235. package/src/stories/Atoms/Paragraph/Paragraph.stories.jsx +0 -143
  236. package/src/stories/Atoms/ProgressBar/ProgressBar.css +0 -127
  237. package/src/stories/Atoms/ProgressBar/ProgressBar.jsx +0 -40
  238. package/src/stories/Atoms/ProgressBar/ProgressBar.stories.jsx +0 -86
  239. package/src/stories/Atoms/RadioButton/RadioButton.css +0 -130
  240. package/src/stories/Atoms/RadioButton/RadioButton.jsx +0 -87
  241. package/src/stories/Atoms/RadioButton/RadioButton.stories.jsx +0 -113
  242. package/src/stories/Atoms/Range/Range.css +0 -169
  243. package/src/stories/Atoms/Range/Range.jsx +0 -87
  244. package/src/stories/Atoms/Range/Range.stories.jsx +0 -110
  245. package/src/stories/Atoms/Section/Section.css +0 -268
  246. package/src/stories/Atoms/Section/Section.jsx +0 -63
  247. package/src/stories/Atoms/Section/Section.stories.jsx +0 -46
  248. package/src/stories/Atoms/Select/Select.css +0 -87
  249. package/src/stories/Atoms/Select/Select.jsx +0 -73
  250. package/src/stories/Atoms/Select/Select.stories.jsx +0 -109
  251. package/src/stories/Atoms/Slider/Slider.css +0 -90
  252. package/src/stories/Atoms/Slider/Slider.jsx +0 -129
  253. package/src/stories/Atoms/Slider/Slider.stories.jsx +0 -90
  254. package/src/stories/Atoms/Snackbar/Snackbar.css +0 -313
  255. package/src/stories/Atoms/Snackbar/Snackbar.jsx +0 -72
  256. package/src/stories/Atoms/Snackbar/Snackbar.stories.jsx +0 -78
  257. package/src/stories/Atoms/Spacer/Spacer.css +0 -114
  258. package/src/stories/Atoms/Spacer/Spacer.jsx +0 -35
  259. package/src/stories/Atoms/Spacer/Spacer.stories.jsx +0 -61
  260. package/src/stories/Atoms/Spinner/Spinner.css +0 -110
  261. package/src/stories/Atoms/Spinner/Spinner.jsx +0 -65
  262. package/src/stories/Atoms/Spinner/Spinner.stories.jsx +0 -58
  263. package/src/stories/Atoms/Tag/Tag.css +0 -112
  264. package/src/stories/Atoms/Tag/Tag.jsx +0 -75
  265. package/src/stories/Atoms/Tag/Tag.stories.jsx +0 -67
  266. package/src/stories/Atoms/TextArea/TextArea.css +0 -99
  267. package/src/stories/Atoms/TextArea/TextArea.jsx +0 -118
  268. package/src/stories/Atoms/TextArea/TextArea.stories.jsx +0 -36
  269. package/src/stories/Atoms/TextInput/TextInput.css +0 -102
  270. package/src/stories/Atoms/TextInput/TextInput.jsx +0 -133
  271. package/src/stories/Atoms/TextInput/TextInput.stories.jsx +0 -69
  272. package/src/stories/Atoms/Toggle/Toggle.css +0 -118
  273. package/src/stories/Atoms/Toggle/Toggle.jsx +0 -69
  274. package/src/stories/Atoms/Toggle/Toggle.stories.jsx +0 -35
  275. package/src/stories/Atoms/Tooltip/Tooltip.css +0 -383
  276. package/src/stories/Atoms/Tooltip/Tooltip.jsx +0 -46
  277. package/src/stories/Atoms/Tooltip/Tooltip.stories.jsx +0 -52
  278. package/src/stories/Atoms/Video/Video.css +0 -39
  279. package/src/stories/Atoms/Video/Video.jsx +0 -78
  280. package/src/stories/Atoms/Video/Video.stories.jsx +0 -41
  281. package/src/stories/Atoms/index.js +0 -72
  282. package/src/stories/Atoms/meta_Atoms.js +0 -51
  283. package/src/stories/Components.js +0 -198
  284. package/src/stories/Getting Started.mdx +0 -239
  285. package/src/stories/Layouts/Accordion/Accordion.css +0 -293
  286. package/src/stories/Layouts/Accordion/Accordion.jsx +0 -74
  287. package/src/stories/Layouts/Accordion/Accordion.stories.jsx +0 -39
  288. package/src/stories/Layouts/Flexbox/Flexbox.css +0 -16
  289. package/src/stories/Layouts/Flexbox/Flexbox.jsx +0 -11
  290. package/src/stories/Layouts/Flexbox/Flexbox.stories.jsx +0 -28
  291. package/src/stories/Layouts/Footer/Footer.css +0 -16
  292. package/src/stories/Layouts/Footer/Footer.jsx +0 -31
  293. package/src/stories/Layouts/Footer/Footer.stories.jsx +0 -28
  294. package/src/stories/Layouts/Header/Header.css +0 -16
  295. package/src/stories/Layouts/Header/Header.jsx +0 -31
  296. package/src/stories/Layouts/Header/Header.stories.jsx +0 -28
  297. package/src/stories/Layouts/HeroBanner/HeroBanner.css +0 -16
  298. package/src/stories/Layouts/HeroBanner/HeroBanner.jsx +0 -31
  299. package/src/stories/Layouts/HeroBanner/HeroBanner.stories.jsx +0 -28
  300. package/src/stories/Layouts/HeroImageVideo/HeroImageVideo.css +0 -16
  301. package/src/stories/Layouts/HeroImageVideo/HeroImageVideo.jsx +0 -31
  302. package/src/stories/Layouts/HeroImageVideo/HeroImageVideo.stories.jsx +0 -28
  303. package/src/stories/Layouts/Pagination/Pagination.css +0 -16
  304. package/src/stories/Layouts/Pagination/Pagination.jsx +0 -31
  305. package/src/stories/Layouts/Pagination/Pagination.stories.jsx +0 -28
  306. package/src/stories/Layouts/Sidebar/Sidebar.css +0 -16
  307. package/src/stories/Layouts/Sidebar/Sidebar.jsx +0 -71
  308. package/src/stories/Layouts/Sidebar/Sidebar.stories.jsx +0 -28
  309. package/src/stories/Layouts/Tabs/Tabs.css +0 -16
  310. package/src/stories/Layouts/Tabs/Tabs.jsx +0 -31
  311. package/src/stories/Layouts/Tabs/Tabs.stories.jsx +0 -28
  312. package/src/stories/Layouts/index.js +0 -25
  313. package/src/stories/Layouts/meta_Layouts.js +0 -28
  314. package/src/stories/MDX.mdx +0 -118
  315. package/src/stories/Miscellaneous/Miscellaneous.js +0 -24
  316. package/src/stories/Molecules/Accordion/Accordion.css +0 -4
  317. package/src/stories/Molecules/Accordion/Accordion.jsx +0 -25
  318. package/src/stories/Molecules/Accordion/Accordion.stories.jsx +0 -20
  319. package/src/stories/Molecules/AudioPlayer/AudioPlayer.css +0 -97
  320. package/src/stories/Molecules/AudioPlayer/AudioPlayer.jsx +0 -244
  321. package/src/stories/Molecules/AudioPlayer/AudioPlayer.stories.jsx +0 -55
  322. package/src/stories/Molecules/AvatarWithName/AvatarWithName.css +0 -130
  323. package/src/stories/Molecules/AvatarWithName/AvatarWithName.jsx +0 -80
  324. package/src/stories/Molecules/AvatarWithName/AvatarWithName.stories.jsx +0 -20
  325. package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.css +0 -147
  326. package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.jsx +0 -51
  327. package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.stories.jsx +0 -36
  328. package/src/stories/Molecules/ButtonGroup/ButtonGroup.css +0 -465
  329. package/src/stories/Molecules/ButtonGroup/ButtonGroup.jsx +0 -47
  330. package/src/stories/Molecules/ButtonGroup/ButtonGroup.stories.jsx +0 -44
  331. package/src/stories/Molecules/Card/Card.css +0 -41
  332. package/src/stories/Molecules/Card/Card.jsx +0 -92
  333. package/src/stories/Molecules/Card/Card.stories.jsx +0 -34
  334. package/src/stories/Molecules/ComparisonTable/ComparisonTable.css +0 -35
  335. package/src/stories/Molecules/ComparisonTable/ComparisonTable.jsx +0 -104
  336. package/src/stories/Molecules/ComparisonTable/ComparisonTable.stories.jsx +0 -81
  337. package/src/stories/Molecules/DataTable/DataTable.css +0 -4
  338. package/src/stories/Molecules/DataTable/DataTable.jsx +0 -25
  339. package/src/stories/Molecules/DataTable/DataTable.stories.jsx +0 -20
  340. package/src/stories/Molecules/Dropdown/Dropdown.css +0 -192
  341. package/src/stories/Molecules/Dropdown/Dropdown.jsx +0 -96
  342. package/src/stories/Molecules/Dropdown/Dropdown.stories.jsx +0 -45
  343. package/src/stories/Molecules/FileUpload/FileUpload.css +0 -4
  344. package/src/stories/Molecules/FileUpload/FileUpload.jsx +0 -25
  345. package/src/stories/Molecules/FileUpload/FileUpload.stories.jsx +0 -20
  346. package/src/stories/Molecules/FormField/FormField.css +0 -4
  347. package/src/stories/Molecules/FormField/FormField.jsx +0 -25
  348. package/src/stories/Molecules/FormField/FormField.stories.jsx +0 -20
  349. package/src/stories/Molecules/Header/Header.css +0 -35
  350. package/src/stories/Molecules/Header/Header.jsx +0 -76
  351. package/src/stories/Molecules/Header/Header.stories.jsx +0 -28
  352. package/src/stories/Molecules/IconButton/IconButton.css +0 -4
  353. package/src/stories/Molecules/IconButton/IconButton.jsx +0 -25
  354. package/src/stories/Molecules/IconButton/IconButton.stories.jsx +0 -20
  355. package/src/stories/Molecules/ImageWithCaption/ImageWithCaption.css +0 -4
  356. package/src/stories/Molecules/ImageWithCaption/ImageWithCaption.jsx +0 -25
  357. package/src/stories/Molecules/ImageWithCaption/ImageWithCaption.stories.jsx +0 -20
  358. package/src/stories/Molecules/InputGroup/InputGroup.css +0 -4
  359. package/src/stories/Molecules/InputGroup/InputGroup.jsx +0 -25
  360. package/src/stories/Molecules/InputGroup/InputGroup.stories.jsx +0 -20
  361. package/src/stories/Molecules/InputWithLabel/InputWithLabel.css +0 -4
  362. package/src/stories/Molecules/InputWithLabel/InputWithLabel.jsx +0 -25
  363. package/src/stories/Molecules/InputWithLabel/InputWithLabel.stories.jsx +0 -20
  364. package/src/stories/Molecules/List/List.css +0 -4
  365. package/src/stories/Molecules/List/List.jsx +0 -25
  366. package/src/stories/Molecules/List/List.stories.jsx +0 -20
  367. package/src/stories/Molecules/MediaCard/MediaCard.css +0 -4
  368. package/src/stories/Molecules/MediaCard/MediaCard.jsx +0 -25
  369. package/src/stories/Molecules/MediaCard/MediaCard.stories.jsx +0 -20
  370. package/src/stories/Molecules/Modal/Modal.css +0 -4
  371. package/src/stories/Molecules/Modal/Modal.jsx +0 -25
  372. package/src/stories/Molecules/Modal/Modal.stories.jsx +0 -20
  373. package/src/stories/Molecules/Navbar/Navbar.css +0 -91
  374. package/src/stories/Molecules/Navbar/Navbar.jsx +0 -82
  375. package/src/stories/Molecules/Navbar/Navbar.stories.jsx +0 -70
  376. package/src/stories/Molecules/Notification/Notification.css +0 -4
  377. package/src/stories/Molecules/Notification/Notification.jsx +0 -25
  378. package/src/stories/Molecules/Notification/Notification.stories.jsx +0 -20
  379. package/src/stories/Molecules/PricingTable/PricingTable.css +0 -4
  380. package/src/stories/Molecules/PricingTable/PricingTable.jsx +0 -25
  381. package/src/stories/Molecules/PricingTable/PricingTable.stories.jsx +0 -20
  382. package/src/stories/Molecules/SearchBar/SearchBar.css +0 -69
  383. package/src/stories/Molecules/SearchBar/SearchBar.jsx +0 -73
  384. package/src/stories/Molecules/SearchBar/SearchBar.stories.jsx +0 -29
  385. package/src/stories/Molecules/SelectTheme/SelectTheme.css +0 -25
  386. package/src/stories/Molecules/SelectTheme/SelectTheme.jsx +0 -22
  387. package/src/stories/Molecules/SelectTheme/SelectTheme.stories.jsx +0 -24
  388. package/src/stories/Molecules/Sidebar/Sidebar.css +0 -67
  389. package/src/stories/Molecules/Sidebar/Sidebar.jsx +0 -80
  390. package/src/stories/Molecules/Sidebar/Sidebar.stories.jsx +0 -35
  391. package/src/stories/Molecules/VideoWithDescription/VideoWithDescription.css +0 -4
  392. package/src/stories/Molecules/VideoWithDescription/VideoWithDescription.jsx +0 -25
  393. package/src/stories/Molecules/VideoWithDescription/VideoWithDescription.stories.jsx +0 -20
  394. package/src/stories/Molecules/index.js +0 -58
  395. package/src/stories/Molecules/meta_Molecules.js +0 -47
  396. package/src/stories/Organisms/Profile/UserFriends/UserFriends.context.jsx +0 -15
  397. package/src/stories/Organisms/Profile/UserFriends/UserFriends.css +0 -4
  398. package/src/stories/Organisms/Profile/UserFriends/UserFriends.jsx +0 -13
  399. package/src/stories/Organisms/Profile/UserFriends/UserFriends.stories.jsx +0 -26
  400. package/src/stories/Organisms/Profile/UserPosts/UserPosts.context.jsx +0 -15
  401. package/src/stories/Organisms/Profile/UserPosts/UserPosts.css +0 -4
  402. package/src/stories/Organisms/Profile/UserPosts/UserPosts.jsx +0 -13
  403. package/src/stories/Organisms/Profile/UserPosts/UserPosts.stories.jsx +0 -26
  404. package/src/stories/Organisms/Profile/UserProfile/UserProfile.context.jsx +0 -15
  405. package/src/stories/Organisms/Profile/UserProfile/UserProfile.css +0 -4
  406. package/src/stories/Organisms/Profile/UserProfile/UserProfile.jsx +0 -13
  407. package/src/stories/Organisms/Profile/UserProfile/UserProfile.stories.jsx +0 -26
  408. package/src/stories/Organisms/meta_Organisms.js +0 -39
  409. package/src/stories/Pages/Page/Page.css +0 -69
  410. package/src/stories/Pages/Page/Page.jsx +0 -69
  411. package/src/stories/Pages/Page/Page.stories.js +0 -26
  412. package/src/stories/Pages/Page/Pages.js +0 -31
  413. package/src/stories/Templates/AdminDashboard/AdminDashboard.css +0 -7
  414. package/src/stories/Templates/AdminDashboard/AdminDashboard.jsx +0 -24
  415. package/src/stories/Templates/AdminDashboard/AdminDashboard.stories.jsx +0 -20
  416. package/src/stories/Templates/CallToAction/CallToAction.css +0 -7
  417. package/src/stories/Templates/CallToAction/CallToAction.jsx +0 -24
  418. package/src/stories/Templates/CallToAction/CallToAction.stories.jsx +0 -20
  419. package/src/stories/Templates/FeaturesList/FeaturesList.css +0 -7
  420. package/src/stories/Templates/FeaturesList/FeaturesList.jsx +0 -24
  421. package/src/stories/Templates/FeaturesList/FeaturesList.stories.jsx +0 -20
  422. package/src/stories/Templates/FormSection/FormSection.css +0 -7
  423. package/src/stories/Templates/FormSection/FormSection.jsx +0 -24
  424. package/src/stories/Templates/FormSection/FormSection.stories.jsx +0 -20
  425. package/src/stories/Templates/HeroSection/HeroSection.css +0 -7
  426. package/src/stories/Templates/HeroSection/HeroSection.jsx +0 -24
  427. package/src/stories/Templates/HeroSection/HeroSection.stories.jsx +0 -20
  428. package/src/stories/Templates/LocationInfo/LocationInfo.css +0 -7
  429. package/src/stories/Templates/LocationInfo/LocationInfo.jsx +0 -24
  430. package/src/stories/Templates/LocationInfo/LocationInfo.stories.jsx +0 -20
  431. package/src/stories/Templates/ProductPage/ProductPage.css +0 -7
  432. package/src/stories/Templates/ProductPage/ProductPage.jsx +0 -24
  433. package/src/stories/Templates/ProductPage/ProductPage.stories.jsx +0 -20
  434. package/src/stories/Templates/RegistrationPage/RegistrationPage.css +0 -7
  435. package/src/stories/Templates/RegistrationPage/RegistrationPage.jsx +0 -24
  436. package/src/stories/Templates/RegistrationPage/RegistrationPage.stories.jsx +0 -20
  437. package/src/stories/Templates/ShoppingCart/ShoppingCart.css +0 -7
  438. package/src/stories/Templates/ShoppingCart/ShoppingCart.jsx +0 -24
  439. package/src/stories/Templates/ShoppingCart/ShoppingCart.stories.jsx +0 -20
  440. package/src/stories/Templates/SidebarTopNav/SidebarTopNav.css +0 -7
  441. package/src/stories/Templates/SidebarTopNav/SidebarTopNav.jsx +0 -24
  442. package/src/stories/Templates/SidebarTopNav/SidebarTopNav.stories.jsx +0 -20
  443. package/src/stories/Templates/SignInPage/SignInPage.css +0 -7
  444. package/src/stories/Templates/SignInPage/SignInPage.jsx +0 -24
  445. package/src/stories/Templates/SignInPage/SignInPage.stories.jsx +0 -20
  446. package/src/stories/Templates/SocialMediaLinks/SocialMediaLinks.css +0 -7
  447. package/src/stories/Templates/SocialMediaLinks/SocialMediaLinks.jsx +0 -24
  448. package/src/stories/Templates/SocialMediaLinks/SocialMediaLinks.stories.jsx +0 -20
  449. package/src/stories/Templates/Testimonials/Testimonials.css +0 -7
  450. package/src/stories/Templates/Testimonials/Testimonials.jsx +0 -24
  451. package/src/stories/Templates/Testimonials/Testimonials.stories.jsx +0 -20
  452. package/src/stories/Templates/index.js +0 -33
  453. package/src/stories/Templates/meta_Templates.js +0 -29
  454. package/src/stories/assets/accessibility.png +0 -0
  455. package/src/stories/assets/accessibility.svg +0 -1
  456. package/src/stories/assets/addon-library.png +0 -0
  457. package/src/stories/assets/assets.png +0 -0
  458. package/src/stories/assets/avif-test-image.avif +0 -0
  459. package/src/stories/assets/context.png +0 -0
  460. package/src/stories/assets/discord.svg +0 -1
  461. package/src/stories/assets/docs.png +0 -0
  462. package/src/stories/assets/figma-plugin.png +0 -0
  463. package/src/stories/assets/github.svg +0 -1
  464. package/src/stories/assets/logo.png +0 -0
  465. package/src/stories/assets/logo.svg +0 -106
  466. package/src/stories/assets/share.png +0 -0
  467. package/src/stories/assets/styling.png +0 -0
  468. package/src/stories/assets/test.svg +0 -3
  469. package/src/stories/assets/testing.png +0 -0
  470. package/src/stories/assets/theming.png +0 -0
  471. package/src/stories/assets/tutorials.svg +0 -1
  472. package/src/stories/assets/youtube.svg +0 -1
  473. package/src/themes/README_Styles.md +0 -301
  474. package/src/themes/ThemeProvider.jsx +0 -61
  475. package/src/themes/styles/github/dark.css +0 -0
  476. package/src/themes/styles/github/light.css +0 -0
  477. package/src/themes/styles/neurons/dark.css +0 -247
  478. package/src/themes/styles/neurons/light.css +0 -170
  479. /package/{src/themes/styles/dracula/dark.css → .storybook/preview-head.html} +0 -0
  480. /package/src/{themes/styles/dracula/light.css → components/this.me/MeCard.jsx} +0 -0
@@ -1,118 +0,0 @@
1
- # This.GUI
2
- **MDX** is a powerful format because it allows you to combine the simplicity of **Markdown** with the flexibility of **React components**. This means you can write documentation, content, or pages using normal Markdown syntax and sprinkle in **React components** wherever needed.
3
-
4
- Here’s a breakdown of how it works:
5
-
6
- ### 1. **Markdown + JSX**
7
- MDX lets you write Markdown like usual, but when you need interactive or dynamic content, you can directly insert React components. It merges **Markdown** and **JSX** seamlessly in the same file.
8
-
9
- Example:
10
-
11
- ```mdx
12
- # Welcome to My Site
13
-
14
- This is a simple introduction written in Markdown.
15
-
16
- ## Here’s a custom button:
17
-
18
- <Button label="Click Me" />
19
-
20
- Here is more markdown text below the button!
21
- ```
22
-
23
- In this example:
24
- - The heading `# Welcome to My Site` and the paragraph are standard **Markdown**.
25
- - The `<Button />` component is a **React component** that you import and use directly in the MDX file.
26
-
27
- ### 2. **Passing Props to Components**
28
- You can pass props to React components just like you would in a React project. This allows you to create dynamic, reusable content.
29
-
30
- ```mdx
31
- ## Example with Props
32
-
33
- Here’s a button with dynamic props:
34
-
35
- <Button label="Submit" color="primary" />
36
- ```
37
-
38
- ### 3. **Reusability with Components**
39
- Since you can use any React component, you can integrate complex UI elements, such as forms, charts, or interactive widgets, into your content.
40
-
41
- For example:
42
-
43
- ```mdx
44
- # User Statistics
45
-
46
- <Chart data={userData} />
47
-
48
- This chart is embedded directly into the documentation!
49
- ```
50
-
51
- ### 4. **How to Set It Up**
52
- To use **MDX** in your project, you’ll typically configure a tool like **Storybook**, **Next.js**, or a custom React setup.
53
-
54
- #### With **Storybook**:
55
- MDX is perfect for writing component documentation in **Storybook**. You can write documentation for your components and render the components directly in the docs.
56
-
57
- ```mdx
58
- import { Button } from './Button';
59
-
60
- <Meta title="Button" component={Button} />
61
-
62
- # Button Component
63
-
64
- This is the `Button` component with different styles.
65
-
66
- <Canvas>
67
- <Story name="Primary Button">
68
- <Button label="Primary" color="primary" />
69
- </Story>
70
- </Canvas>
71
- ```
72
-
73
- #### With **Next.js**:
74
- Next.js makes it easy to integrate MDX for static pages or blogs.
75
-
76
- 1. Install MDX support for Next.js:
77
- ```bash
78
- npm install @next/mdx @mdx-js/loader
79
- ```
80
-
81
- 2. Configure Next.js in `next.config.js`:
82
- ```js
83
- const withMDX = require('@next/mdx')({
84
- extension: /\.mdx?$/
85
- });
86
-
87
- module.exports = withMDX({
88
- pageExtensions: ['js', 'jsx', 'md', 'mdx'],
89
- });
90
- ```
91
-
92
- 3. Create an `.mdx` file and use React components inside:
93
- ```mdx
94
- # Hello World
95
-
96
- <Button label="Click Me" />
97
- ```
98
-
99
- #### With **Gatsby**:
100
- MDX can also be used in **Gatsby** to create rich blog posts or pages by embedding React components within Markdown.
101
-
102
- ### 5. **Where to Use MDX**
103
- MDX is often used for:
104
- - **Technical documentation** (with live component previews).
105
- - **Component libraries** (Storybook).
106
- - **Blogs or content management systems** (Next.js/Gatsby).
107
- - **Interactive tutorials**.
108
-
109
- ### Key Advantages of MDX:
110
- - **Markdown simplicity**: Use the same syntax you’re used to for writing docs or blog posts.
111
- - **React components**: Dynamically enhance content with interactivity, custom UI, or reusable components.
112
- - **Reusable content**: Leverage the power of React to make your content dynamic and interactive.
113
-
114
- ---
115
-
116
- MDX gives you the **best of both worlds**: you can write content in **Markdown**, and whenever you need dynamic or interactive elements, you simply drop in a React component. It’s ideal for use cases where you want content and code to live together seamlessly.
117
-
118
- Let me know if you'd like help with setting up or using MDX further!
@@ -1,24 +0,0 @@
1
- const Miscellaneous = {
2
- "Miscellaneous": {
3
- "TooltipsPopovers": [
4
- { name: "Tooltip", paths: { css: "./Tooltip/Tooltip.css", globalCss: "styles/global.css", jsx: "src/components/Miscellaneous/Tooltip/Tooltip.jsx", stories: "./Tooltip/Tooltip.stories.jsx" }},
5
- { name: "Popover", paths: { css: "./Popover/Popover.css", globalCss: "styles/global.css", jsx: "src/components/Miscellaneous/Popover/Popover.jsx", stories: "./Popover/Popover.stories.jsx" }},
6
- ],
7
- "Overlays": [
8
- { name: "ModalWindow", paths: { css: "./ModalWindow/ModalWindow.css", globalCss: "styles/global.css", jsx: "src/components/Miscellaneous/ModalWindow/ModalWindow.jsx", stories: "./ModalWindow/ModalWindow.stories.jsx" }},
9
- { name: "Drawer", paths: { css: "./Drawer/Drawer.css", globalCss: "styles/global.css", jsx: "src/components/Miscellaneous/Drawer/Drawer.jsx", stories: "./Drawer/Drawer.stories.jsx" }},
10
- ],
11
- "SearchComponents": [
12
- { name: "SearchBox", paths: { css: "./SearchBox/SearchBox.css", globalCss: "styles/global.css", jsx: "src/components/Miscellaneous/SearchBox/SearchBox.jsx", stories: "./SearchBox/SearchBox.stories.jsx" }},
13
- { name: "Autocomplete", paths: { css: "./Autocomplete/Autocomplete.css", globalCss: "styles/global.css", jsx: "src/components/Miscellaneous/Autocomplete/Autocomplete.jsx", stories: "./Autocomplete/Autocomplete.stories.jsx" }},
14
- ],
15
- "MediaAndContentControls": [
16
- { name: "AudioControls", paths: { css: "./MediaAndContentControls/AudioControls.css", globalCss: "styles/global.css", jsx: "src/components/Miscellaneous/MediaAndContentControls/AudioControls.jsx", stories: "./MediaAndContentControls/AudioControls.stories.jsx" }},
17
- { name: "VideoControls", paths: { css: "./MediaAndContentControls/VideoControls.css", globalCss: "styles/global.css", jsx: "src/components/Miscellaneous/MediaAndContentControls/VideoControls.jsx", stories: "./MediaAndContentControls/VideoControls.stories.jsx" }},
18
- { name: "Filters", paths: { css: "./MediaAndContentControls/Filters.css", globalCss: "styles/global.css", jsx: "src/components/Miscellaneous/MediaAndContentControls/Filters.jsx", stories: "./MediaAndContentControls/Filters.stories.jsx" }},
19
- ],
20
- "InteractiveMaps": [
21
- { name: "Map", paths: { css: "./InteractiveMaps/Map.css", globalCss: "styles/global.css", jsx: "src/components/Miscellaneous/InteractiveMaps/Map.jsx", stories: "./InteractiveMaps/Map.stories.jsx" }},
22
- ]
23
- }
24
- }
@@ -1,4 +0,0 @@
1
- /*this.GUI/src/stories/Molecules/Accordion/Accordion.css*/
2
- .accordion {
3
- /* Default styles for Accordion */
4
- }
@@ -1,25 +0,0 @@
1
- //this.GUI/src/stories/Molecules/Accordion/Accordion.jsx
2
- import React from 'react';
3
- import PropTypes from 'prop-types';
4
- import './Accordion.css';
5
-
6
- /**
7
- * Accordion component
8
- */
9
- export const Accordion = (props) => {
10
- return (
11
- <div className="accordion" {...props}>
12
- {/* Component implementation */}
13
- </div>
14
- );
15
- };
16
-
17
- Accordion.propTypes = {
18
- // Define prop types here
19
- };
20
-
21
- Accordion.defaultProps = {
22
- // Define default props here
23
- };
24
-
25
- export default Accordion;
@@ -1,20 +0,0 @@
1
- //this.GUI/src/stories/Molecules/Accordion/Accordion.stories.jsx
2
- import { Accordion } from './Accordion';
3
-
4
- // Storybook configuration for Accordion component
5
- export default {
6
- title: 'Molecules/ContentDisplay/Accordion',
7
- component: Accordion,
8
- parameters: {
9
- layout: 'centered',
10
- },
11
- argTypes: {
12
- // Define argTypes here
13
- },
14
- };
15
-
16
- export const Default = {
17
- args: {
18
- // Define default args here
19
- },
20
- };
@@ -1,97 +0,0 @@
1
- /*this.GUI/src/stories/Molecules/AudioPlayer/AudioPlayer.css*/
2
- .audio-player {
3
- display: flex;
4
- flex-direction: column;
5
- align-items: center;
6
- background-color: rgba(245, 245, 245, 0.3); /* Subtle grey with low opacity */
7
- padding: var(--spacing-md, 16px);
8
- border-radius: var(--border-radius, 6px);
9
- gap: var(--spacing-sm, 8px);
10
- max-width: 400px;
11
- border: 1px solid var(--border-color, #dddddd);
12
- transition: background-color var(--transition-speed, 0.3s);
13
- }
14
-
15
- .audio-player__media img {
16
- width: 100%;
17
- border-radius: var(--border-radius, 6px);
18
- }
19
-
20
- .audio-player__track-name {
21
- font-weight: bold;
22
- font-size: var(--font-size-medium, 1.1rem);
23
- margin-bottom: var(--spacing-xs, 8px);
24
- color: var(--icon-color, #344b47);
25
- }
26
-
27
- .audio-player__controls {
28
- display: flex;
29
- align-items: center;
30
- gap: var(--spacing-sm, 8px);
31
- }
32
-
33
- .audio-player__seek {
34
- display: flex;
35
- align-items: center;
36
- flex-direction: column;
37
- width: 100%;
38
- gap: var(--spacing-xs, 4px);
39
- }
40
-
41
- .audio-player__seek-slider {
42
- width: 100%;
43
- cursor: pointer;
44
- appearance: none;
45
- height: 4px;
46
- background: var(--grey-friend-2, #96b1ac);
47
- border-radius: 2px;
48
- outline: none;
49
- transition: background var(--transition-speed, 0.3s);
50
- }
51
-
52
- .audio-player__seek-slider::-webkit-slider-thumb {
53
- appearance: none;
54
- width: 12px;
55
- height: 12px;
56
- background: var(--icon-color, #344b47);
57
- border-radius: 50%;
58
- cursor: pointer;
59
- margin-top: -4px;
60
- transition: background var(--transition-speed, 0.3s);
61
- }
62
-
63
- .audio-player__time {
64
- font-size: var(--font-size-small, 0.9em);
65
- color: var(--icon-color, #344b47);
66
- }
67
-
68
- .audio-player__playlist {
69
- width: 100%;
70
- margin-top: var(--spacing-sm, 8px);
71
- border-top: 1px solid var(--border-color);
72
- padding-top: var(--spacing-xs, 8px);
73
- }
74
-
75
- .audio-player__track {
76
- padding: var(--spacing-sm, 8px);
77
- cursor: pointer;
78
- transition: background-color var(--transition-speed, 0.3s);
79
- text-align: center;
80
- }
81
-
82
- .audio-player__track:hover {
83
- background-color: var(--primary-color-hover, #16655C);
84
- color: var(--text-color-inverse, #ffffff);
85
- }
86
-
87
- .audio-player__track.active {
88
- background-color: var(--primary-color, #1F877D);
89
- color: var(--text-color-inverse, #ffffff);
90
- }
91
-
92
- /* Responsive Adjustments */
93
- @media (max-width: 768px) {
94
- .audio-player {
95
- max-width: 100%;
96
- }
97
- }
@@ -1,244 +0,0 @@
1
- //this.GUI/src/stories/Molecules/AudioPlayer/AudioPlayer.jsx
2
- import React, { useRef, useState, useEffect } from 'react';
3
- import PropTypes from 'prop-types';
4
- import { FaPlay, FaPause, FaVolumeUp, FaVolumeMute, FaStepForward, FaStepBackward } from 'react-icons/fa';
5
- import './AudioPlayer.css';
6
-
7
- export const AudioPlayer = ({
8
- playlist,
9
- autoPlay = false,
10
- loop = false,
11
- muted = false,
12
- size = 'medium',
13
- color = 'classy-color-1',
14
- className = '',
15
- style = {},
16
- showMedia = true,
17
- ...props
18
- }) => {
19
- const audioRef = useRef(null);
20
- const [isPlaying, setIsPlaying] = useState(autoPlay);
21
- const [isMuted, setIsMuted] = useState(muted);
22
- const [volume, setVolume] = useState(muted ? 0 : 1);
23
- const [currentTime, setCurrentTime] = useState(0);
24
- const [duration, setDuration] = useState(0);
25
- const [currentTrack, setCurrentTrack] = useState(playlist[0]);
26
- const [currentTrackIndex, setCurrentTrackIndex] = useState(0);
27
-
28
- useEffect(() => {
29
- const audio = audioRef.current;
30
- if (audio) {
31
- audio.volume = volume;
32
- audio.muted = isMuted;
33
- if (autoPlay) {
34
- audio.play().catch(() => setIsPlaying(false));
35
- }
36
- }
37
- }, [volume, isMuted, autoPlay, currentTrack]);
38
-
39
- const togglePlayPause = () => {
40
- const audio = audioRef.current;
41
- if (!audio) return;
42
-
43
- if (isPlaying) {
44
- audio.pause();
45
- } else {
46
- audio.play().catch(() => setIsPlaying(false));
47
- }
48
- setIsPlaying(!isPlaying);
49
- };
50
-
51
- const handleTimeUpdate = () => {
52
- const audio = audioRef.current;
53
- if (audio) {
54
- setCurrentTime(audio.currentTime);
55
- }
56
- };
57
-
58
- const handleLoadedMetadata = () => {
59
- const audio = audioRef.current;
60
- if (audio) {
61
- setDuration(audio.duration);
62
- }
63
- };
64
-
65
- const handleVolumeChange = (e) => {
66
- const newVolume = parseFloat(e.target.value);
67
- setVolume(newVolume);
68
- setIsMuted(newVolume === 0);
69
- };
70
-
71
- const toggleMute = () => {
72
- setIsMuted(!isMuted);
73
- setVolume(!isMuted ? 0 : 1);
74
- };
75
-
76
- const handleSeekChange = (e) => {
77
- const seekTime = parseFloat(e.target.value);
78
- const audio = audioRef.current;
79
- if (audio) {
80
- audio.currentTime = seekTime;
81
- setCurrentTime(seekTime);
82
- }
83
- };
84
-
85
- const formatTime = (time) => {
86
- if (isNaN(time)) return '00:00';
87
- const minutes = Math.floor(time / 60);
88
- const seconds = Math.floor(time % 60);
89
- const paddedSeconds = seconds < 10 ? `0${seconds}` : seconds;
90
- return `${minutes}:${paddedSeconds}`;
91
- };
92
-
93
- const nextTrack = () => {
94
- const nextIndex = (currentTrackIndex + 1) % playlist.length;
95
- setCurrentTrackIndex(nextIndex);
96
- setCurrentTrack(playlist[nextIndex]);
97
- };
98
-
99
- const prevTrack = () => {
100
- const prevIndex = (currentTrackIndex - 1 + playlist.length) % playlist.length;
101
- setCurrentTrackIndex(prevIndex);
102
- setCurrentTrack(playlist[prevIndex]);
103
- };
104
-
105
- const handleTrackClick = (track, index) => {
106
- setCurrentTrack(track);
107
- setCurrentTrackIndex(index);
108
- setIsPlaying(false); // Reset play state to allow clicking a new track.
109
- };
110
-
111
- const variantClass = `audio-player--${size}`;
112
- const colorClass = `audio-player--${color}`;
113
- const combinedClassName = `audio-player ${variantClass} ${colorClass} ${className}`.trim();
114
-
115
- return (
116
- <div className={combinedClassName} style={style} {...props}>
117
- {showMedia && currentTrack.image && (
118
- <div className="audio-player__media">
119
- <img src={currentTrack.image} alt={currentTrack.title} />
120
- </div>
121
- )}
122
-
123
- {/* Display Track Name Above Timeline */}
124
- <div className="audio-player__track-name">{currentTrack.title}</div>
125
-
126
- <div className="audio-player__controls">
127
- <audio
128
- ref={audioRef}
129
- src={currentTrack.src}
130
- loop={loop}
131
- onTimeUpdate={handleTimeUpdate}
132
- onLoadedMetadata={handleLoadedMetadata}
133
- onEnded={nextTrack}
134
- >
135
- Your browser does not support the audio element.
136
- </audio>
137
- <button
138
- className="audio-player__prev"
139
- onClick={prevTrack}
140
- aria-label="Previous Track"
141
- >
142
- <FaStepBackward />
143
- </button>
144
- <button
145
- className="audio-player__play-pause"
146
- onClick={togglePlayPause}
147
- aria-label={isPlaying ? 'Pause' : 'Play'}
148
- >
149
- {isPlaying ? <FaPause /> : <FaPlay />}
150
- </button>
151
- <button
152
- className="audio-player__next"
153
- onClick={nextTrack}
154
- aria-label="Next Track"
155
- >
156
- <FaStepForward />
157
- </button>
158
- </div>
159
-
160
- {/* Timeline with Seek and Time */}
161
- <div className="audio-player__seek">
162
- <input
163
- type="range"
164
- className="audio-player__seek-slider"
165
- min="0"
166
- max={duration}
167
- step="0.1"
168
- value={currentTime}
169
- onChange={handleSeekChange}
170
- aria-label="Seek Slider"
171
- />
172
- <div className="audio-player__time">{formatTime(currentTime)} / {formatTime(duration)}</div>
173
- </div>
174
-
175
- <div className="audio-player__volume-container">
176
- <button
177
- className="audio-player__mute"
178
- onClick={toggleMute}
179
- aria-label={isMuted ? 'Unmute' : 'Mute'}
180
- >
181
- {isMuted ? <FaVolumeMute /> : <FaVolumeUp />}
182
- </button>
183
- <input
184
- type="range"
185
- className="audio-player__volume-slider"
186
- min="0"
187
- max="1"
188
- step="0.01"
189
- value={isMuted ? 0 : volume}
190
- onChange={handleVolumeChange}
191
- aria-label="Volume Slider"
192
- />
193
- </div>
194
-
195
- {/* Playlist with Border */}
196
- <div className="audio-player__playlist">
197
- <ul>
198
- {playlist.map((track, index) => (
199
- <li
200
- key={index}
201
- className={`audio-player__track ${index === currentTrackIndex ? 'active' : ''}`}
202
- onClick={() => handleTrackClick(track, index)}
203
- >
204
- {track.title}
205
- </li>
206
- ))}
207
- </ul>
208
- </div>
209
- </div>
210
- );
211
- };
212
-
213
- AudioPlayer.propTypes = {
214
- playlist: PropTypes.arrayOf(
215
- PropTypes.shape({
216
- src: PropTypes.string.isRequired,
217
- title: PropTypes.string.isRequired,
218
- image: PropTypes.string, // Optional album cover or media
219
- })
220
- ).isRequired,
221
- autoPlay: PropTypes.bool,
222
- loop: PropTypes.bool,
223
- muted: PropTypes.bool,
224
- size: PropTypes.oneOf(['small', 'medium']),
225
- color: PropTypes.oneOf([
226
- 'classy-color-1', 'classy-color-2', 'classy-color-3', 'classy-color-4', 'classy-color-5',
227
- 'small-switch-color-1', 'small-switch-color-2',
228
- 'natural-color-1', 'natural-color-2', 'natural-color-3',
229
- 'grey-friend-1', 'grey-friend-2',
230
- 'shade-1', 'shade-2', 'shade-3', 'shade-4',
231
- ]),
232
- className: PropTypes.string,
233
- style: PropTypes.object,
234
- showMedia: PropTypes.bool,
235
- };
236
-
237
- AudioPlayer.defaultProps = {
238
- autoPlay: false,
239
- loop: false,
240
- muted: false,
241
- size: 'medium',
242
- color: 'classy-color-1',
243
- showMedia: true,
244
- };
@@ -1,55 +0,0 @@
1
- //this.GUI/src/stories/Molecules/AudioPlayer/AudioPlayer.stories.jsx
2
- import React from 'react';
3
- import { AudioPlayer } from './AudioPlayer';
4
- import './AudioPlayer.css';
5
-
6
- export default {
7
- title: 'Molecules/Media/AudioPlayer',
8
- component: AudioPlayer,
9
- argTypes: {
10
- autoPlay: { control: 'boolean', defaultValue: false },
11
- loop: { control: 'boolean', defaultValue: false },
12
- muted: { control: 'boolean', defaultValue: false },
13
- size: {
14
- control: 'select',
15
- options: ['small', 'medium'],
16
- defaultValue: 'medium',
17
- },
18
- color: {
19
- control: 'select',
20
- options: [
21
- 'classy-color-1', 'classy-color-2', 'classy-color-3', 'classy-color-4', 'classy-color-5',
22
- 'small-switch-color-1', 'small-switch-color-2',
23
- 'natural-color-1', 'natural-color-2', 'natural-color-3',
24
- 'grey-friend-1', 'grey-friend-2',
25
- 'shade-1', 'shade-2', 'shade-3', 'shade-4',
26
- ],
27
- defaultValue: 'classy-color-1',
28
- },
29
- showMedia: { control: 'boolean', defaultValue: true },
30
- },
31
- };
32
-
33
- const playlist = [
34
- {
35
- src: 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3',
36
- title: 'Track 1',
37
- image: 'https://via.placeholder.com/150?text=Track+1',
38
- },
39
- {
40
- src: 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-2.mp3',
41
- title: 'Track 2',
42
- image: 'https://via.placeholder.com/150?text=Track+2',
43
- },
44
- {
45
- src: 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-3.mp3',
46
- title: 'Track 3',
47
- image: 'https://via.placeholder.com/150?text=Track+3',
48
- },
49
- ];
50
-
51
- export const DefaultAudioPlayer = () => <AudioPlayer playlist={playlist} />;
52
- export const SmallAudioPlayer = () => <AudioPlayer size="small" playlist={playlist} />;
53
- export const AutoplayAudioPlayer = () => <AudioPlayer autoPlay playlist={playlist} />;
54
- export const AudioPlayerWithoutMedia = () => <AudioPlayer showMedia={false} playlist={playlist} />;
55
- export const LoopingAudioPlayer = () => <AudioPlayer loop playlist={playlist} />;