this.gui 1.0.17 → 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 (477) 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 -4976
  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 -53
  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 -63
  172. package/src/MdxProvider.jsx +0 -20
  173. package/src/Page.jsx +0 -28
  174. package/src/SiteBuilder.jsx +0 -39
  175. package/src/example.json +0 -43
  176. package/src/index.mdx +0 -164
  177. package/src/main.jsx +0 -15
  178. package/src/scripts/ComponentRegistry.js +0 -70
  179. package/src/scripts/logASCIIArt.js +0 -12
  180. package/src/scripts/postinstall.js +0 -100
  181. package/src/scripts/renderComponents.js +0 -11
  182. package/src/stories/Atoms/Alert/Alert.css +0 -211
  183. package/src/stories/Atoms/Alert/Alert.jsx +0 -56
  184. package/src/stories/Atoms/Alert/Alert.stories.jsx +0 -167
  185. package/src/stories/Atoms/Audio/Audio.css +0 -259
  186. package/src/stories/Atoms/Audio/Audio.jsx +0 -216
  187. package/src/stories/Atoms/Audio/Audio.stories.jsx +0 -191
  188. package/src/stories/Atoms/Badge/Badge.css +0 -249
  189. package/src/stories/Atoms/Badge/Badge.jsx +0 -54
  190. package/src/stories/Atoms/Badge/Badge.stories.jsx +0 -121
  191. package/src/stories/Atoms/Button/Button.css +0 -131
  192. package/src/stories/Atoms/Button/Button.jsx +0 -47
  193. package/src/stories/Atoms/Button/Button.stories.jsx +0 -184
  194. package/src/stories/Atoms/Caption/Caption.css +0 -169
  195. package/src/stories/Atoms/Caption/Caption.jsx +0 -72
  196. package/src/stories/Atoms/Caption/Caption.stories.jsx +0 -207
  197. package/src/stories/Atoms/Checkbox/Checkbox.css +0 -182
  198. package/src/stories/Atoms/Checkbox/Checkbox.jsx +0 -83
  199. package/src/stories/Atoms/Checkbox/Checkbox.stories.jsx +0 -112
  200. package/src/stories/Atoms/Container/Container.css +0 -89
  201. package/src/stories/Atoms/Container/Container.jsx +0 -54
  202. package/src/stories/Atoms/Container/Container.stories.jsx +0 -104
  203. package/src/stories/Atoms/Divider/Divider.css +0 -147
  204. package/src/stories/Atoms/Divider/Divider.jsx +0 -62
  205. package/src/stories/Atoms/Divider/Divider.stories.jsx +0 -105
  206. package/src/stories/Atoms/Grid/Grid.css +0 -160
  207. package/src/stories/Atoms/Grid/Grid.jsx +0 -43
  208. package/src/stories/Atoms/Grid/Grid.stories.jsx +0 -84
  209. package/src/stories/Atoms/Heading/Heading.css +0 -112
  210. package/src/stories/Atoms/Heading/Heading.jsx +0 -69
  211. package/src/stories/Atoms/Heading/Heading.stories.jsx +0 -130
  212. package/src/stories/Atoms/Icon/Icon.css +0 -240
  213. package/src/stories/Atoms/Icon/Icon.jsx +0 -80
  214. package/src/stories/Atoms/Icon/Icon.stories.jsx +0 -177
  215. package/src/stories/Atoms/Image/Image.css +0 -245
  216. package/src/stories/Atoms/Image/Image.jsx +0 -175
  217. package/src/stories/Atoms/Image/Image.stories.jsx +0 -332
  218. package/src/stories/Atoms/Label/Label.css +0 -171
  219. package/src/stories/Atoms/Label/Label.jsx +0 -71
  220. package/src/stories/Atoms/Label/Label.stories.jsx +0 -180
  221. package/src/stories/Atoms/Link/Link.css +0 -71
  222. package/src/stories/Atoms/Link/Link.jsx +0 -82
  223. package/src/stories/Atoms/Link/Link.stories.jsx +0 -153
  224. package/src/stories/Atoms/Loader/Loader.css +0 -106
  225. package/src/stories/Atoms/Loader/Loader.jsx +0 -58
  226. package/src/stories/Atoms/Loader/Loader.stories.jsx +0 -99
  227. package/src/stories/Atoms/Logo/Logo.css +0 -94
  228. package/src/stories/Atoms/Logo/Logo.jsx +0 -53
  229. package/src/stories/Atoms/Logo/Logo.stories.jsx +0 -120
  230. package/src/stories/Atoms/Paragraph/Paragraph.css +0 -180
  231. package/src/stories/Atoms/Paragraph/Paragraph.jsx +0 -77
  232. package/src/stories/Atoms/Paragraph/Paragraph.stories.jsx +0 -143
  233. package/src/stories/Atoms/ProgressBar/ProgressBar.css +0 -127
  234. package/src/stories/Atoms/ProgressBar/ProgressBar.jsx +0 -40
  235. package/src/stories/Atoms/ProgressBar/ProgressBar.stories.jsx +0 -86
  236. package/src/stories/Atoms/RadioButton/RadioButton.css +0 -130
  237. package/src/stories/Atoms/RadioButton/RadioButton.jsx +0 -87
  238. package/src/stories/Atoms/RadioButton/RadioButton.stories.jsx +0 -113
  239. package/src/stories/Atoms/Range/Range.css +0 -169
  240. package/src/stories/Atoms/Range/Range.jsx +0 -87
  241. package/src/stories/Atoms/Range/Range.stories.jsx +0 -110
  242. package/src/stories/Atoms/Section/Section.css +0 -268
  243. package/src/stories/Atoms/Section/Section.jsx +0 -63
  244. package/src/stories/Atoms/Section/Section.stories.jsx +0 -46
  245. package/src/stories/Atoms/Select/Select.css +0 -87
  246. package/src/stories/Atoms/Select/Select.jsx +0 -73
  247. package/src/stories/Atoms/Select/Select.stories.jsx +0 -109
  248. package/src/stories/Atoms/Slider/Slider.css +0 -90
  249. package/src/stories/Atoms/Slider/Slider.jsx +0 -129
  250. package/src/stories/Atoms/Slider/Slider.stories.jsx +0 -90
  251. package/src/stories/Atoms/Snackbar/Snackbar.css +0 -313
  252. package/src/stories/Atoms/Snackbar/Snackbar.jsx +0 -72
  253. package/src/stories/Atoms/Snackbar/Snackbar.stories.jsx +0 -78
  254. package/src/stories/Atoms/Spacer/Spacer.css +0 -114
  255. package/src/stories/Atoms/Spacer/Spacer.jsx +0 -35
  256. package/src/stories/Atoms/Spacer/Spacer.stories.jsx +0 -61
  257. package/src/stories/Atoms/Spinner/Spinner.css +0 -110
  258. package/src/stories/Atoms/Spinner/Spinner.jsx +0 -65
  259. package/src/stories/Atoms/Spinner/Spinner.stories.jsx +0 -58
  260. package/src/stories/Atoms/Tag/Tag.css +0 -112
  261. package/src/stories/Atoms/Tag/Tag.jsx +0 -75
  262. package/src/stories/Atoms/Tag/Tag.stories.jsx +0 -67
  263. package/src/stories/Atoms/TextArea/TextArea.css +0 -99
  264. package/src/stories/Atoms/TextArea/TextArea.jsx +0 -118
  265. package/src/stories/Atoms/TextArea/TextArea.stories.jsx +0 -36
  266. package/src/stories/Atoms/TextInput/TextInput.css +0 -102
  267. package/src/stories/Atoms/TextInput/TextInput.jsx +0 -133
  268. package/src/stories/Atoms/TextInput/TextInput.stories.jsx +0 -69
  269. package/src/stories/Atoms/Toggle/Toggle.css +0 -118
  270. package/src/stories/Atoms/Toggle/Toggle.jsx +0 -69
  271. package/src/stories/Atoms/Toggle/Toggle.stories.jsx +0 -35
  272. package/src/stories/Atoms/Tooltip/Tooltip.css +0 -383
  273. package/src/stories/Atoms/Tooltip/Tooltip.jsx +0 -46
  274. package/src/stories/Atoms/Tooltip/Tooltip.stories.jsx +0 -52
  275. package/src/stories/Atoms/Video/Video.css +0 -39
  276. package/src/stories/Atoms/Video/Video.jsx +0 -78
  277. package/src/stories/Atoms/Video/Video.stories.jsx +0 -41
  278. package/src/stories/Atoms/index.js +0 -72
  279. package/src/stories/Atoms/meta_Atoms.js +0 -51
  280. package/src/stories/Components.js +0 -198
  281. package/src/stories/Getting Started.mdx +0 -239
  282. package/src/stories/Layouts/Accordion/Accordion.css +0 -293
  283. package/src/stories/Layouts/Accordion/Accordion.jsx +0 -74
  284. package/src/stories/Layouts/Accordion/Accordion.stories.jsx +0 -39
  285. package/src/stories/Layouts/Flexbox/Flexbox.css +0 -16
  286. package/src/stories/Layouts/Flexbox/Flexbox.jsx +0 -11
  287. package/src/stories/Layouts/Flexbox/Flexbox.stories.jsx +0 -28
  288. package/src/stories/Layouts/Footer/Footer.css +0 -16
  289. package/src/stories/Layouts/Footer/Footer.jsx +0 -31
  290. package/src/stories/Layouts/Footer/Footer.stories.jsx +0 -28
  291. package/src/stories/Layouts/Header/Header.css +0 -16
  292. package/src/stories/Layouts/Header/Header.jsx +0 -31
  293. package/src/stories/Layouts/Header/Header.stories.jsx +0 -28
  294. package/src/stories/Layouts/HeroBanner/HeroBanner.css +0 -16
  295. package/src/stories/Layouts/HeroBanner/HeroBanner.jsx +0 -31
  296. package/src/stories/Layouts/HeroBanner/HeroBanner.stories.jsx +0 -28
  297. package/src/stories/Layouts/HeroImageVideo/HeroImageVideo.css +0 -16
  298. package/src/stories/Layouts/HeroImageVideo/HeroImageVideo.jsx +0 -31
  299. package/src/stories/Layouts/HeroImageVideo/HeroImageVideo.stories.jsx +0 -28
  300. package/src/stories/Layouts/Pagination/Pagination.css +0 -16
  301. package/src/stories/Layouts/Pagination/Pagination.jsx +0 -31
  302. package/src/stories/Layouts/Pagination/Pagination.stories.jsx +0 -28
  303. package/src/stories/Layouts/Sidebar/Sidebar.css +0 -16
  304. package/src/stories/Layouts/Sidebar/Sidebar.jsx +0 -71
  305. package/src/stories/Layouts/Sidebar/Sidebar.stories.jsx +0 -28
  306. package/src/stories/Layouts/Tabs/Tabs.css +0 -16
  307. package/src/stories/Layouts/Tabs/Tabs.jsx +0 -31
  308. package/src/stories/Layouts/Tabs/Tabs.stories.jsx +0 -28
  309. package/src/stories/Layouts/index.js +0 -25
  310. package/src/stories/Layouts/meta_Layouts.js +0 -28
  311. package/src/stories/MDX.mdx +0 -118
  312. package/src/stories/Miscellaneous/Miscellaneous.js +0 -24
  313. package/src/stories/Molecules/Accordion/Accordion.css +0 -4
  314. package/src/stories/Molecules/Accordion/Accordion.jsx +0 -25
  315. package/src/stories/Molecules/Accordion/Accordion.stories.jsx +0 -20
  316. package/src/stories/Molecules/AudioPlayer/AudioPlayer.css +0 -97
  317. package/src/stories/Molecules/AudioPlayer/AudioPlayer.jsx +0 -244
  318. package/src/stories/Molecules/AudioPlayer/AudioPlayer.stories.jsx +0 -55
  319. package/src/stories/Molecules/AvatarWithName/AvatarWithName.css +0 -130
  320. package/src/stories/Molecules/AvatarWithName/AvatarWithName.jsx +0 -80
  321. package/src/stories/Molecules/AvatarWithName/AvatarWithName.stories.jsx +0 -20
  322. package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.css +0 -147
  323. package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.jsx +0 -51
  324. package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.stories.jsx +0 -36
  325. package/src/stories/Molecules/ButtonGroup/ButtonGroup.css +0 -465
  326. package/src/stories/Molecules/ButtonGroup/ButtonGroup.jsx +0 -47
  327. package/src/stories/Molecules/ButtonGroup/ButtonGroup.stories.jsx +0 -44
  328. package/src/stories/Molecules/Card/Card.css +0 -41
  329. package/src/stories/Molecules/Card/Card.jsx +0 -92
  330. package/src/stories/Molecules/Card/Card.stories.jsx +0 -34
  331. package/src/stories/Molecules/ComparisonTable/ComparisonTable.css +0 -35
  332. package/src/stories/Molecules/ComparisonTable/ComparisonTable.jsx +0 -104
  333. package/src/stories/Molecules/ComparisonTable/ComparisonTable.stories.jsx +0 -81
  334. package/src/stories/Molecules/DataTable/DataTable.css +0 -4
  335. package/src/stories/Molecules/DataTable/DataTable.jsx +0 -25
  336. package/src/stories/Molecules/DataTable/DataTable.stories.jsx +0 -20
  337. package/src/stories/Molecules/Dropdown/Dropdown.css +0 -192
  338. package/src/stories/Molecules/Dropdown/Dropdown.jsx +0 -96
  339. package/src/stories/Molecules/Dropdown/Dropdown.stories.jsx +0 -45
  340. package/src/stories/Molecules/FileUpload/FileUpload.css +0 -4
  341. package/src/stories/Molecules/FileUpload/FileUpload.jsx +0 -25
  342. package/src/stories/Molecules/FileUpload/FileUpload.stories.jsx +0 -20
  343. package/src/stories/Molecules/FormField/FormField.css +0 -4
  344. package/src/stories/Molecules/FormField/FormField.jsx +0 -25
  345. package/src/stories/Molecules/FormField/FormField.stories.jsx +0 -20
  346. package/src/stories/Molecules/Header/Header.css +0 -35
  347. package/src/stories/Molecules/Header/Header.jsx +0 -76
  348. package/src/stories/Molecules/Header/Header.stories.jsx +0 -28
  349. package/src/stories/Molecules/IconButton/IconButton.css +0 -4
  350. package/src/stories/Molecules/IconButton/IconButton.jsx +0 -25
  351. package/src/stories/Molecules/IconButton/IconButton.stories.jsx +0 -20
  352. package/src/stories/Molecules/ImageWithCaption/ImageWithCaption.css +0 -4
  353. package/src/stories/Molecules/ImageWithCaption/ImageWithCaption.jsx +0 -25
  354. package/src/stories/Molecules/ImageWithCaption/ImageWithCaption.stories.jsx +0 -20
  355. package/src/stories/Molecules/InputGroup/InputGroup.css +0 -4
  356. package/src/stories/Molecules/InputGroup/InputGroup.jsx +0 -25
  357. package/src/stories/Molecules/InputGroup/InputGroup.stories.jsx +0 -20
  358. package/src/stories/Molecules/InputWithLabel/InputWithLabel.css +0 -4
  359. package/src/stories/Molecules/InputWithLabel/InputWithLabel.jsx +0 -25
  360. package/src/stories/Molecules/InputWithLabel/InputWithLabel.stories.jsx +0 -20
  361. package/src/stories/Molecules/List/List.css +0 -4
  362. package/src/stories/Molecules/List/List.jsx +0 -25
  363. package/src/stories/Molecules/List/List.stories.jsx +0 -20
  364. package/src/stories/Molecules/MediaCard/MediaCard.css +0 -4
  365. package/src/stories/Molecules/MediaCard/MediaCard.jsx +0 -25
  366. package/src/stories/Molecules/MediaCard/MediaCard.stories.jsx +0 -20
  367. package/src/stories/Molecules/Modal/Modal.css +0 -4
  368. package/src/stories/Molecules/Modal/Modal.jsx +0 -25
  369. package/src/stories/Molecules/Modal/Modal.stories.jsx +0 -20
  370. package/src/stories/Molecules/Navbar/Navbar.css +0 -91
  371. package/src/stories/Molecules/Navbar/Navbar.jsx +0 -82
  372. package/src/stories/Molecules/Navbar/Navbar.stories.jsx +0 -70
  373. package/src/stories/Molecules/Notification/Notification.css +0 -4
  374. package/src/stories/Molecules/Notification/Notification.jsx +0 -25
  375. package/src/stories/Molecules/Notification/Notification.stories.jsx +0 -20
  376. package/src/stories/Molecules/PricingTable/PricingTable.css +0 -4
  377. package/src/stories/Molecules/PricingTable/PricingTable.jsx +0 -25
  378. package/src/stories/Molecules/PricingTable/PricingTable.stories.jsx +0 -20
  379. package/src/stories/Molecules/SearchBar/SearchBar.css +0 -69
  380. package/src/stories/Molecules/SearchBar/SearchBar.jsx +0 -73
  381. package/src/stories/Molecules/SearchBar/SearchBar.stories.jsx +0 -29
  382. package/src/stories/Molecules/SelectTheme/SelectTheme.css +0 -25
  383. package/src/stories/Molecules/SelectTheme/SelectTheme.jsx +0 -22
  384. package/src/stories/Molecules/SelectTheme/SelectTheme.stories.jsx +0 -24
  385. package/src/stories/Molecules/Sidebar/Sidebar.css +0 -67
  386. package/src/stories/Molecules/Sidebar/Sidebar.jsx +0 -80
  387. package/src/stories/Molecules/Sidebar/Sidebar.stories.jsx +0 -35
  388. package/src/stories/Molecules/VideoWithDescription/VideoWithDescription.css +0 -4
  389. package/src/stories/Molecules/VideoWithDescription/VideoWithDescription.jsx +0 -25
  390. package/src/stories/Molecules/VideoWithDescription/VideoWithDescription.stories.jsx +0 -20
  391. package/src/stories/Molecules/index.js +0 -58
  392. package/src/stories/Molecules/meta_Molecules.js +0 -47
  393. package/src/stories/Organisms/Profile/UserFriends/UserFriends.context.jsx +0 -15
  394. package/src/stories/Organisms/Profile/UserFriends/UserFriends.css +0 -4
  395. package/src/stories/Organisms/Profile/UserFriends/UserFriends.jsx +0 -13
  396. package/src/stories/Organisms/Profile/UserFriends/UserFriends.stories.jsx +0 -26
  397. package/src/stories/Organisms/Profile/UserPosts/UserPosts.context.jsx +0 -15
  398. package/src/stories/Organisms/Profile/UserPosts/UserPosts.css +0 -4
  399. package/src/stories/Organisms/Profile/UserPosts/UserPosts.jsx +0 -13
  400. package/src/stories/Organisms/Profile/UserPosts/UserPosts.stories.jsx +0 -26
  401. package/src/stories/Organisms/Profile/UserProfile/UserProfile.context.jsx +0 -15
  402. package/src/stories/Organisms/Profile/UserProfile/UserProfile.css +0 -4
  403. package/src/stories/Organisms/Profile/UserProfile/UserProfile.jsx +0 -13
  404. package/src/stories/Organisms/Profile/UserProfile/UserProfile.stories.jsx +0 -26
  405. package/src/stories/Organisms/meta_Organisms.js +0 -39
  406. package/src/stories/Pages/Page/Page.css +0 -69
  407. package/src/stories/Pages/Page/Page.jsx +0 -69
  408. package/src/stories/Pages/Page/Page.stories.js +0 -26
  409. package/src/stories/Pages/Page/Pages.js +0 -31
  410. package/src/stories/Templates/AdminDashboard/AdminDashboard.css +0 -7
  411. package/src/stories/Templates/AdminDashboard/AdminDashboard.jsx +0 -24
  412. package/src/stories/Templates/AdminDashboard/AdminDashboard.stories.jsx +0 -20
  413. package/src/stories/Templates/CallToAction/CallToAction.css +0 -7
  414. package/src/stories/Templates/CallToAction/CallToAction.jsx +0 -24
  415. package/src/stories/Templates/CallToAction/CallToAction.stories.jsx +0 -20
  416. package/src/stories/Templates/FeaturesList/FeaturesList.css +0 -7
  417. package/src/stories/Templates/FeaturesList/FeaturesList.jsx +0 -24
  418. package/src/stories/Templates/FeaturesList/FeaturesList.stories.jsx +0 -20
  419. package/src/stories/Templates/FormSection/FormSection.css +0 -7
  420. package/src/stories/Templates/FormSection/FormSection.jsx +0 -24
  421. package/src/stories/Templates/FormSection/FormSection.stories.jsx +0 -20
  422. package/src/stories/Templates/HeroSection/HeroSection.css +0 -7
  423. package/src/stories/Templates/HeroSection/HeroSection.jsx +0 -24
  424. package/src/stories/Templates/HeroSection/HeroSection.stories.jsx +0 -20
  425. package/src/stories/Templates/LocationInfo/LocationInfo.css +0 -7
  426. package/src/stories/Templates/LocationInfo/LocationInfo.jsx +0 -24
  427. package/src/stories/Templates/LocationInfo/LocationInfo.stories.jsx +0 -20
  428. package/src/stories/Templates/ProductPage/ProductPage.css +0 -7
  429. package/src/stories/Templates/ProductPage/ProductPage.jsx +0 -24
  430. package/src/stories/Templates/ProductPage/ProductPage.stories.jsx +0 -20
  431. package/src/stories/Templates/RegistrationPage/RegistrationPage.css +0 -7
  432. package/src/stories/Templates/RegistrationPage/RegistrationPage.jsx +0 -24
  433. package/src/stories/Templates/RegistrationPage/RegistrationPage.stories.jsx +0 -20
  434. package/src/stories/Templates/ShoppingCart/ShoppingCart.css +0 -7
  435. package/src/stories/Templates/ShoppingCart/ShoppingCart.jsx +0 -24
  436. package/src/stories/Templates/ShoppingCart/ShoppingCart.stories.jsx +0 -20
  437. package/src/stories/Templates/SidebarTopNav/SidebarTopNav.css +0 -7
  438. package/src/stories/Templates/SidebarTopNav/SidebarTopNav.jsx +0 -24
  439. package/src/stories/Templates/SidebarTopNav/SidebarTopNav.stories.jsx +0 -20
  440. package/src/stories/Templates/SignInPage/SignInPage.css +0 -7
  441. package/src/stories/Templates/SignInPage/SignInPage.jsx +0 -24
  442. package/src/stories/Templates/SignInPage/SignInPage.stories.jsx +0 -20
  443. package/src/stories/Templates/SocialMediaLinks/SocialMediaLinks.css +0 -7
  444. package/src/stories/Templates/SocialMediaLinks/SocialMediaLinks.jsx +0 -24
  445. package/src/stories/Templates/SocialMediaLinks/SocialMediaLinks.stories.jsx +0 -20
  446. package/src/stories/Templates/Testimonials/Testimonials.css +0 -7
  447. package/src/stories/Templates/Testimonials/Testimonials.jsx +0 -24
  448. package/src/stories/Templates/Testimonials/Testimonials.stories.jsx +0 -20
  449. package/src/stories/Templates/index.js +0 -33
  450. package/src/stories/Templates/meta_Templates.js +0 -29
  451. package/src/stories/assets/accessibility.png +0 -0
  452. package/src/stories/assets/accessibility.svg +0 -1
  453. package/src/stories/assets/addon-library.png +0 -0
  454. package/src/stories/assets/assets.png +0 -0
  455. package/src/stories/assets/avif-test-image.avif +0 -0
  456. package/src/stories/assets/context.png +0 -0
  457. package/src/stories/assets/discord.svg +0 -1
  458. package/src/stories/assets/docs.png +0 -0
  459. package/src/stories/assets/figma-plugin.png +0 -0
  460. package/src/stories/assets/github.svg +0 -1
  461. package/src/stories/assets/logo.png +0 -0
  462. package/src/stories/assets/logo.svg +0 -106
  463. package/src/stories/assets/share.png +0 -0
  464. package/src/stories/assets/styling.png +0 -0
  465. package/src/stories/assets/test.svg +0 -3
  466. package/src/stories/assets/testing.png +0 -0
  467. package/src/stories/assets/theming.png +0 -0
  468. package/src/stories/assets/tutorials.svg +0 -1
  469. package/src/stories/assets/youtube.svg +0 -1
  470. package/src/themes/README_Styles.md +0 -301
  471. package/src/themes/ThemeProvider.jsx +0 -61
  472. package/src/themes/styles/github/dark.css +0 -0
  473. package/src/themes/styles/github/light.css +0 -0
  474. package/src/themes/styles/neurons/dark.css +0 -247
  475. package/src/themes/styles/neurons/light.css +0 -280
  476. /package/{src/themes/styles/dracula/dark.css → .storybook/preview-head.html} +0 -0
  477. /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} />;