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
@@ -0,0 +1,129 @@
1
+ // src/stories/Theme/SpacingAndRadius.stories.jsx
2
+ import { Box, Stack, Typography, Paper, Divider } from '@mui/material';
3
+ import { useTheme } from '@mui/material/styles';
4
+
5
+ export default {
6
+ title: 'Theme/Spacing & Radius',
7
+ parameters: {
8
+ layout: 'fullscreen',
9
+ },
10
+ };
11
+
12
+ // ————————————————————————————————————————————————
13
+ // Helpers
14
+ // ————————————————————————————————————————————————
15
+ const Row = ({ label, children, hint }) => (
16
+ <Stack direction="row" alignItems="center" spacing={2} sx={{ py: 1 }}>
17
+ <Box sx={{ width: 140 }}>
18
+ <Typography variant="body2" sx={{ fontWeight: 600 }}>{label}</Typography>
19
+ {hint && (
20
+ <Typography variant="caption" sx={{ opacity: 0.7 }}>{hint}</Typography>
21
+ )}
22
+ </Box>
23
+ <Box sx={{ flex: 1 }}>{children}</Box>
24
+ </Stack>
25
+ );
26
+
27
+ // ————————————————————————————————————————————————
28
+ // Spacing scale preview (0..8)
29
+ // ————————————————————————————————————————————————
30
+ function SpacingScaleView() {
31
+ const theme = useTheme();
32
+ // Build a scale of 0..8 using theme.spacing(n)
33
+ const scale = Array.from({ length: 9 }, (_, i) => i);
34
+
35
+ return (
36
+ <Paper elevation={0} sx={{ p: 3 }}>
37
+ <Typography variant="h4" gutterBottom>Spacing</Typography>
38
+ <Typography variant="body2" sx={{ mb: 2, opacity: 0.8 }}>
39
+ The spacing function multiplies the base unit and returns pixel values. Below you can see
40
+ the vertical size for <code>theme.spacing(n)</code> with <code>n = 0..8</code>.
41
+ </Typography>
42
+
43
+ <Divider sx={{ mb: 2 }} />
44
+
45
+ <Stack>
46
+ {scale.map((n) => {
47
+ const px = typeof theme.spacing === 'function' ? theme.spacing(n) : `${Number(theme.spacing || 8) * n}px`;
48
+ const minH = n === 0 ? 1 : undefined;
49
+ return (
50
+ <Row key={n} label={`spacing(${n})`} hint={px}>
51
+ <Box
52
+ sx={{
53
+ height: px,
54
+ minHeight: minH,
55
+ width: '100%',
56
+ background:
57
+ 'linear-gradient(90deg, rgba(0,0,0,0.12) 0 8px, transparent 8px) 0 0/16px 100% no-repeat',
58
+ borderRadius: 1,
59
+ }}
60
+ />
61
+ </Row>
62
+ );
63
+ })}
64
+ </Stack>
65
+ </Paper>
66
+ );
67
+ }
68
+
69
+ // ————————————————————————————————————————————————
70
+ // Radius showcase
71
+ // ————————————————————————————————————————————————
72
+ function RadiusShowcaseView() {
73
+ const theme = useTheme();
74
+ const base = Number(theme.shape?.borderRadius ?? 10);
75
+ const variants = [
76
+ { label: '0 (square)', value: 0 },
77
+ { label: 'sm (½× base)', value: Math.round(base * 0.5) },
78
+ { label: 'md (base)', value: base },
79
+ { label: 'lg (1.5× base)', value: Math.round(base * 1.5) },
80
+ { label: 'xl (2× base)', value: Math.round(base * 2) },
81
+ ];
82
+
83
+ return (
84
+ <Paper elevation={0} sx={{ p: 3 }}>
85
+ <Typography variant="h4" gutterBottom>Radius</Typography>
86
+ <Typography variant="body2" sx={{ mb: 2, opacity: 0.8 }}>
87
+ Shape radius is driven by the global token <code>radius.md</code>. Below are a few
88
+ derived sizes relative to the current base.
89
+ </Typography>
90
+
91
+ <Divider sx={{ mb: 2 }} />
92
+
93
+ <Stack direction="row" spacing={2} useFlexGap flexWrap="wrap">
94
+ {variants.map((r) => (
95
+ <Stack key={r.label} spacing={1} alignItems="center" sx={{ width: 160 }}>
96
+ <Box
97
+ sx={{
98
+ width: '100%',
99
+ height: 72,
100
+ borderRadius: `${r.value}px`,
101
+ border: (t) => `1px solid ${t.palette.divider}`,
102
+ background: (t) => (t.palette.mode === 'dark' ? t.palette.background.paper : '#fff'),
103
+ }}
104
+ />
105
+ <Typography variant="body2" sx={{ fontWeight: 600 }}>{r.label}</Typography>
106
+ <Typography variant="caption" sx={{ opacity: 0.7 }}>{r.value}px</Typography>
107
+ </Stack>
108
+ ))}
109
+ </Stack>
110
+ </Paper>
111
+ );
112
+ }
113
+
114
+ // ————————————————————————————————————————————————
115
+ // Stories
116
+ // ————————————————————————————————————————————————
117
+ export const Spacing = () => (
118
+ <Box sx={{ p: { xs: 2, md: 4 } }}>
119
+ <SpacingScaleView />
120
+ </Box>
121
+ );
122
+ Spacing.storyName = 'Spacing scale';
123
+
124
+ export const Radius = () => (
125
+ <Box sx={{ p: { xs: 2, md: 4 } }}>
126
+ <RadiusShowcaseView />
127
+ </Box>
128
+ );
129
+ Radius.storyName = 'Border radius';
@@ -0,0 +1,211 @@
1
+ // src/stories/Theme/Typography.stories.jsx
2
+ import { Box, Typography, Paper, Divider, Stack, Chip } from '@mui/material';
3
+ import { useTheme } from '@mui/material/styles';
4
+
5
+ /**
6
+ * Small helper to render a sample block for a variant
7
+ */
8
+ const TypeRow = ({ variant, sample = 'The quick brown fox jumps over the lazy dog 1234', extra }) => {
9
+ const theme = useTheme();
10
+ const v = theme.typography?.[variant] || {};
11
+ const lineHeight = typeof v.lineHeight === 'number' ? v.lineHeight : String(v.lineHeight || '');
12
+ const fontSize = v.fontSize || '';
13
+ const weight = v.fontWeight || '';
14
+
15
+ return (
16
+ <Paper
17
+ variant="outlined"
18
+ sx={{
19
+ p: 1.25,
20
+ borderColor: theme.custom?.border || theme.palette.divider,
21
+ bgcolor: 'background.paper',
22
+ minWidth: 280,
23
+ flex: '1 1 320px',
24
+ }}
25
+ >
26
+ <Typography variant="caption" sx={{ color: 'text.secondary', fontWeight: 700 }}>
27
+ {variant}
28
+ </Typography>
29
+ <Typography variant={variant} sx={{ mt: 0.5 }}>
30
+ {sample}
31
+ </Typography>
32
+ <Divider sx={{ my: 1 }} />
33
+ <Typography variant="caption" sx={{ color: 'text.secondary' }}>
34
+ <strong>font-size:</strong> {fontSize}{' '}
35
+ <strong>line-height:</strong> {lineHeight}{' '}
36
+ <strong>font-weight:</strong> {weight || '—'}
37
+ {extra ? <> · {extra}</> : null}
38
+ </Typography>
39
+ </Paper>
40
+ );
41
+ };
42
+
43
+ const Section = ({ title, hint, children }) => (
44
+ <Box sx={{ my: 3 }}>
45
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
46
+ <Typography variant="h5" sx={{ fontWeight: 700 }}>
47
+ {title}
48
+ </Typography>
49
+ {hint ? <Chip size="small" label={hint} /> : null}
50
+ </Box>
51
+ <Divider sx={{ my: 1.5 }} />
52
+ {children}
53
+ </Box>
54
+ );
55
+
56
+ /**
57
+ * Preview of the main typography scale coming from the active theme.
58
+ * Uses whatever your token engine compiled into theme.typography.
59
+ */
60
+ function TypographyScale() {
61
+ const theme = useTheme();
62
+
63
+ const variants = [
64
+ 'h1',
65
+ 'h2',
66
+ 'h3',
67
+ 'h4',
68
+ 'h5',
69
+ 'subtitle1',
70
+ 'body1',
71
+ 'body2',
72
+ 'button',
73
+ ];
74
+
75
+ return (
76
+ <Box sx={{ p: 2, bgcolor: 'background.default', color: 'text.primary' }}>
77
+ <Section title="Font Family">
78
+ <Typography variant="body2">
79
+ <strong>theme.typography.fontFamily:</strong>{' '}
80
+ <code>{theme.typography?.fontFamily}</code>
81
+ </Typography>
82
+ </Section>
83
+
84
+ <Section title="Variants">
85
+ <Stack direction="row" spacing={1.25} useFlexGap flexWrap="wrap">
86
+ {variants.map((v) => (
87
+ <TypeRow key={v} variant={v} />
88
+ ))}
89
+ </Stack>
90
+ </Section>
91
+ </Box>
92
+ );
93
+ }
94
+
95
+ /**
96
+ * Extra details from tokens exposed in the runtime:
97
+ * - lineHeights scale (if defined in theme.typography.lineHeights)
98
+ * - weights (if your tokens encode them)
99
+ */
100
+ function TypographyDetails() {
101
+ const theme = useTheme();
102
+ const lh = theme.typography?.lineHeights || {};
103
+ const weights = {
104
+ bold: theme.typography?.fontWeightBold,
105
+ medium: theme.typography?.fontWeightMedium,
106
+ regular: theme.typography?.fontWeightRegular,
107
+ };
108
+
109
+ return (
110
+ <Box sx={{ p: 2, bgcolor: 'background.default', color: 'text.primary' }}>
111
+ <Section title="Line Heights Scale" hint="From tokens → theme.typography.lineHeights">
112
+ {Object.keys(lh).length ? (
113
+ <Stack direction="row" spacing={1.25} useFlexGap flexWrap="wrap">
114
+ {Object.entries(lh).map(([k, v]) => (
115
+ <Paper
116
+ key={k}
117
+ variant="outlined"
118
+ sx={{
119
+ p: 1.25,
120
+ minWidth: 160,
121
+ borderColor: theme.custom?.border || theme.palette.divider,
122
+ }}
123
+ >
124
+ <Typography variant="body2" sx={{ fontWeight: 700 }}>
125
+ {k}
126
+ </Typography>
127
+ <Typography variant="caption" sx={{ color: 'text.secondary' }}>
128
+ {String(v)}
129
+ </Typography>
130
+ <Divider sx={{ my: 1 }} />
131
+ <Typography sx={{ lineHeight: Number(v) || v }}>
132
+ The quick brown fox jumps over the lazy dog.
133
+ </Typography>
134
+ </Paper>
135
+ ))}
136
+ </Stack>
137
+ ) : (
138
+ <Typography variant="body2" sx={{ color: 'text.secondary' }}>
139
+ No custom line height scale found in theme.typography.lineHeights.
140
+ </Typography>
141
+ )}
142
+ </Section>
143
+
144
+ <Section title="Font Weights (if provided)">
145
+ <Stack direction="row" spacing={1.25} useFlexGap flexWrap="wrap">
146
+ {Object.entries(weights).map(([k, v]) => (
147
+ <Paper
148
+ key={k}
149
+ variant="outlined"
150
+ sx={{
151
+ p: 1.25,
152
+ minWidth: 160,
153
+ borderColor: theme.custom?.border || theme.palette.divider,
154
+ }}
155
+ >
156
+ <Typography variant="body2" sx={{ fontWeight: 700 }}>
157
+ {k}
158
+ </Typography>
159
+ <Typography variant="caption" sx={{ color: 'text.secondary' }}>
160
+ {v ?? '—'}
161
+ </Typography>
162
+ <Divider sx={{ my: 1 }} />
163
+ <Typography sx={{ fontWeight: v ?? 600 }}>
164
+ The quick brown fox jumps over the lazy dog.
165
+ </Typography>
166
+ </Paper>
167
+ ))}
168
+ </Stack>
169
+ </Section>
170
+ </Box>
171
+ );
172
+ }
173
+
174
+ export default {
175
+ title: 'Theme/Typography',
176
+ tags: ['autodocs'],
177
+ parameters: {
178
+ docs: {
179
+ description: {
180
+ component:
181
+ 'Typography scale compiled from tokens. Shows font family, variant sizes/weights/line-height, and optional line-height scale & weights if your tokens expose them.',
182
+ },
183
+ },
184
+ },
185
+ };
186
+
187
+ export const Scale = {
188
+ name: 'Scale',
189
+ render: () => <TypographyScale />,
190
+ parameters: {
191
+ docs: {
192
+ description: {
193
+ story:
194
+ 'Core typography variants from the active theme (h1–h5, subtitle1, body1, body2, button).',
195
+ },
196
+ },
197
+ },
198
+ };
199
+
200
+ export const Details = {
201
+ name: 'Details (Line Heights & Weights)',
202
+ render: () => <TypographyDetails />,
203
+ parameters: {
204
+ docs: {
205
+ description: {
206
+ story:
207
+ 'Optional token-driven extras: line-height scale and font weights if present in the compiled theme.',
208
+ },
209
+ },
210
+ },
211
+ };
Binary file
@@ -0,0 +1,56 @@
1
+ import { Box, Toolbar, AppBar, Typography, Container } from "@mui/material";
2
+
3
+ /**
4
+ * BrowserExtension Layout
5
+ * Un layout optimizado para popups de extensiones de navegador.
6
+ * Tamaño reducido y estilo minimalista, ideal para entornos con espacio limitado.
7
+ */
8
+ export default function BrowserExtensionLayout({ children, title = "Cleaker Extension" }) {
9
+ return (
10
+ <Box
11
+ sx={{
12
+ width: 300,
13
+ height: 400,
14
+ display: "flex",
15
+ flexDirection: "column",
16
+ backgroundColor: (theme) => theme.palette.background.default,
17
+ color: (theme) => theme.palette.text.primary,
18
+ }}
19
+ >
20
+ <AppBar
21
+ position="static"
22
+ color="default"
23
+ elevation={1}
24
+ sx={{
25
+ minHeight: 40,
26
+ backgroundColor: (theme) =>
27
+ theme.palette.mode === "light"
28
+ ? theme.palette.background.paper
29
+ : theme.palette.background.default,
30
+ borderBottom: (theme) =>
31
+ `1px solid ${
32
+ theme.palette.mode === "light"
33
+ ? "rgba(0,0,0,0.1)"
34
+ : "rgba(255,255,255,0.1)"
35
+ }`,
36
+ }}
37
+ >
38
+ <Toolbar variant="dense" sx={{ minHeight: 40 }}>
39
+ <Typography variant="subtitle1" noWrap component="div">
40
+ {title}
41
+ </Typography>
42
+ </Toolbar>
43
+ </AppBar>
44
+
45
+ <Container
46
+ sx={{
47
+ flex: 1,
48
+ overflowY: "auto",
49
+ padding: 1,
50
+ }}
51
+ >
52
+ {children}
53
+ </Container>
54
+ </Box>
55
+ );
56
+ }
@@ -0,0 +1,36 @@
1
+ import React from 'react';
2
+ import { BrowserRouter } from 'react-router-dom';
3
+ import { Box } from '@/gui/atoms';
4
+ import TopBar from '@/gui/molecules/AppBars/TopBar/TopBar';
5
+ import LeftSidebar from '@/gui/molecules/AppBars/LeftSidebar/LeftSidebar';
6
+
7
+ interface LayoutProps {
8
+ hasTopBar?: boolean;
9
+ hasLeftSidebar?: boolean;
10
+ withRouter?: boolean;
11
+ children: React.ReactNode;
12
+ }
13
+
14
+ function Layout({ hasTopBar = false, hasLeftSidebar = false, withRouter = false, children }: LayoutProps) {
15
+ const sidebarToggleLocation: 'topbar' | 'sidebar' | 'none' =
16
+ hasLeftSidebar ? (hasTopBar ? 'topbar' : 'sidebar') : 'none';
17
+
18
+ const layoutContent = (
19
+ <Box id="layout-root" display="contents">
20
+ {hasTopBar && (
21
+ <TopBar
22
+ showMenuButton={hasLeftSidebar}
23
+ toggleLocation={sidebarToggleLocation}
24
+ />
25
+ )}
26
+ {hasLeftSidebar && (
27
+ <LeftSidebar toggleLocation={sidebarToggleLocation} />
28
+ )}
29
+ {children}
30
+ </Box>
31
+ );
32
+
33
+ return withRouter ? <BrowserRouter>{layoutContent}</BrowserRouter> : layoutContent;
34
+ }
35
+
36
+ export default Layout as React.FC<LayoutProps>;
@@ -0,0 +1,123 @@
1
+ // all.this/packages-src/this.GUI/npm/src/templates/Minimal.jsx
2
+ import React, { useState } from "react";
3
+ class ErrorBoundary extends React.Component {
4
+ constructor(props){ super(props); this.state = { hasError: false, error: null }; }
5
+ static getDerivedStateFromError(error){ return { hasError: true, error }; }
6
+ componentDidCatch(error, info){ console.error(`[MinimalLayout:${this.props.label}]`, error, info); }
7
+ render(){
8
+ if(this.state.hasError){
9
+ return (
10
+ <div style={{ padding: 16, border: '1px solid #f99', borderRadius: 8, background: 'rgba(255,0,0,0.05)', margin: '12px 0' }}>
11
+ <strong>Component "{this.props.label}" failed to render.</strong>
12
+ <div style={{ fontSize: 12, opacity: 0.8, marginTop: 6 }}>{String(this.state.error)}</div>
13
+ </div>
14
+ );
15
+ }
16
+ return this.props.children;
17
+ }
18
+ }
19
+ import { Outlet } from "react-router-dom";
20
+ import { Box } from "@mui/material";
21
+ import TopBarAndSideBar from "../components/generics/AppBars/TopBarAndSideBar/TopBarAndSideBar";
22
+ import PageContainer from "../components/generics/Layout/PageContainer";
23
+ import Footer from "../components/generics/AppBars/Footer/Footer";
24
+ import RightContextDrawer from "../components/generics/AppBars/RightContextDrawer/RightContextDrawer";
25
+ import StickyOptions from "../components/generics/AppBars/StickyOptions/StickyOptions";
26
+
27
+ export default function MinimalLayout({ config, topic, rightContext, stickyOptions, footer }) {
28
+ const {
29
+ title = "This.GUI",
30
+ logo = "https://neurons.me/neurons.me.png",
31
+ sideBarLinks = undefined,
32
+ topNavLinks = undefined
33
+ } = config || {};
34
+
35
+ // ---- Normalize/guards ------------------------------------------------------
36
+ const hasSideBarObject =
37
+ sideBarLinks &&
38
+ typeof sideBarLinks === "object" &&
39
+ !Array.isArray(sideBarLinks) &&
40
+ Object.keys(sideBarLinks).length > 0;
41
+
42
+ // Only pass contexts if we truly have a section map. Otherwise omit the prop entirely.
43
+ const sections = hasSideBarObject ? sideBarLinks : undefined;
44
+
45
+ // StickyOptions: render only if we truly have an items array with content
46
+ const ctaConfig = stickyOptions || (config && config.stickyOptions) || null;
47
+ const hasCtas =
48
+ !!ctaConfig &&
49
+ Array.isArray(ctaConfig.items) &&
50
+ ctaConfig.items.length > 0;
51
+
52
+ // Right drawer width (guard if rightContext is malformed)
53
+ const rightDrawerWidth =
54
+ rightContext && Array.isArray(rightContext.items) && rightContext.items.length > 0 ? 260 : 0;
55
+
56
+ const [drawerOpen, setDrawerOpen] = useState(false);
57
+
58
+ return (
59
+ <>
60
+ <ErrorBoundary label="TopBarAndSideBar">
61
+ <TopBarAndSideBar
62
+ title={title}
63
+ logo={logo}
64
+ drawerWidth={240}
65
+ contexts={sections || {}}
66
+ topic={topic}
67
+ {...(Array.isArray(topNavLinks) ? { topNavLinks } : {})}
68
+ />
69
+ </ErrorBoundary>
70
+
71
+ {hasCtas && (
72
+ <ErrorBoundary label="StickyOptions">
73
+ <StickyOptions
74
+ items={ctaConfig.items}
75
+ positioning={ctaConfig.positioning || {}}
76
+ behavior={{ respectRightDrawer: true, ...(ctaConfig.behavior || {}) }}
77
+ theme={ctaConfig.theme || {}}
78
+ visibility={ctaConfig.visibility || {}}
79
+ i18n={ctaConfig.i18n || {}}
80
+ />
81
+ </ErrorBoundary>
82
+ )}
83
+
84
+ <Box
85
+ sx={{
86
+ flex: 1,
87
+ px: { xs: 2, sm: 3 },
88
+ mt: 5,
89
+ width: "auto",
90
+ "--right-drawer-width": `${rightDrawerWidth}px`,
91
+ ml: { md: "240px", xs: 0 },
92
+ mr: { md: rightDrawerWidth ? `${rightDrawerWidth}px` : 0, xs: 0 }
93
+ }}
94
+ >
95
+ <ErrorBoundary label="Page">
96
+ <PageContainer>
97
+ <Outlet />
98
+ </PageContainer>
99
+ </ErrorBoundary>
100
+ </Box>
101
+
102
+ {footer && (
103
+ <ErrorBoundary label="Footer">
104
+ <Footer
105
+ leftInset={240}
106
+ rightInset={rightDrawerWidth}
107
+ {...(typeof footer === "object" ? footer : {})}
108
+ />
109
+ </ErrorBoundary>
110
+ )}
111
+
112
+ {rightContext && Array.isArray(rightContext.items) && rightContext.items.length > 0 && (
113
+ <ErrorBoundary label="RightContextDrawer">
114
+ <RightContextDrawer
115
+ open={drawerOpen}
116
+ onClose={() => setDrawerOpen(!drawerOpen)}
117
+ rightContext={rightContext}
118
+ />
119
+ </ErrorBoundary>
120
+ )}
121
+ </>
122
+ );
123
+ }
@@ -0,0 +1,107 @@
1
+ // src/templates/Shell.jsx
2
+ // Clean Shell that composes NavBar, LeftDrawer, RightDrawer, StickyOptions and Footer
3
+ // and relies on runtime insets managed by the drawers themselves.
4
+ //
5
+ // Props (clean API)
6
+ // - navBar?: props for <NavBar />
7
+ // - leftDrawer?: { enabled?: boolean, drawerWidth?: number, drawerLinks?: RouteItem[] }
8
+ // - rightDrawer?: props for <RightDrawer /> (enabled inferred by its content)
9
+ // - stickyOptions?: props for <StickyOptions />
10
+ // - footer?: props for <Footer />
11
+ //
12
+ // Notes
13
+ // - Mobile: LeftDrawer is temporary and controlled here via `leftOpen`.
14
+ // - Desktop: LeftDrawer is permanent; it will update theme.layout.insets.left internally.
15
+ // - RightDrawer also updates theme.layout.insets.right when permanent.
16
+ // - Shell itself no longer sets manual `ml/mr`; content adapts via theme/layout insets.
17
+
18
+ import React from 'react';
19
+ import { Outlet } from 'react-router-dom';
20
+ import { Box, useMediaQuery, useTheme } from '@mui/material';
21
+ import NavBar from '../../components/generics/AppBars/NavBar/NavBar';
22
+ import LeftDrawer from '../../components/generics/AppBars/LeftDrawer/LeftDrawer';
23
+ import RightDrawer from '../../components/generics/AppBars/RightDrawer/RightDrawer';
24
+ import StickyOptions from '../../components/generics/AppBars/StickyOptions/StickyOptionsTop';
25
+ import Footer from '../../components/generics/AppBars/Footer/Footer';
26
+ import PageContainer from '../../components/generics/Layout/PageContainer';
27
+
28
+ export default function Shell({
29
+ navBar = {},
30
+ leftDrawer = {},
31
+ rightDrawer = null,
32
+ stickyOptions = null,
33
+ footer = null,
34
+ }) {
35
+ const theme = useTheme();
36
+ const isDesktop = useMediaQuery(theme.breakpoints.up('md'));
37
+
38
+ // ---------------- Left drawer control (mobile temporary) ------------------
39
+ const leftEnabled = leftDrawer?.enabled !== false; // default: true
40
+ const leftWidth = leftDrawer?.drawerWidth ?? 240;
41
+ const [leftOpen, setLeftOpen] = React.useState(false);
42
+ const toggleLeft = () => setLeftOpen((v) => !v);
43
+
44
+ // ---------------- NavBar props -------------------------------------------
45
+ const navProps = {
46
+ title: 'This.GUI',
47
+ logo: 'https://neurons.me/neurons.me.png',
48
+ showMenuButton: leftEnabled,
49
+ onMenuClick: leftEnabled ? toggleLeft : undefined,
50
+ showThemeToggle: true,
51
+ ...navBar,
52
+ };
53
+
54
+ // ---------------- LeftDrawer props ---------------------------------------
55
+ const leftProps = leftEnabled
56
+ ? {
57
+ open: !isDesktop ? leftOpen : true,
58
+ onClose: () => setLeftOpen(false),
59
+ drawerWidth: leftWidth,
60
+ drawerLinks: leftDrawer?.drawerLinks || [],
61
+ // cualquier otra prop declarativa se pasa tal cual
62
+ ...leftDrawer,
63
+ }
64
+ : null;
65
+
66
+ // ---------------- RightDrawer visibility ---------------------------------
67
+ const hasRight = !!rightDrawer && (rightDrawer.enabled !== false);
68
+
69
+ // ---------------- Sticky Options -----------------------------------------
70
+ const hasSticky = !!(stickyOptions && Array.isArray(stickyOptions.items) && stickyOptions.items.length > 0);
71
+
72
+ return (
73
+ <>
74
+ <NavBar {...navProps} />
75
+
76
+ {leftEnabled && <LeftDrawer {...leftProps} />}
77
+
78
+ {hasSticky && (
79
+ <StickyOptions
80
+ items={stickyOptions.items}
81
+ positioning={stickyOptions.positioning || {}}
82
+ behavior={stickyOptions.behavior || {}}
83
+ theme={stickyOptions.theme || {}}
84
+ visibility={stickyOptions.visibility || {}}
85
+ i18n={stickyOptions.i18n || {}}
86
+ />
87
+ )}
88
+
89
+ <Box
90
+ sx={{
91
+ flex: 1,
92
+ px: { xs: 2, sm: 3 },
93
+ mt: 5, // leave space for AppBar (48px dense + 8px tolerance)
94
+ width: 'auto',
95
+ }}
96
+ >
97
+ <PageContainer>
98
+ <Outlet />
99
+ </PageContainer>
100
+ </Box>
101
+
102
+ {footer && <Footer {...(typeof footer === 'object' ? footer : {})} />}
103
+
104
+ {hasRight && <RightDrawer {...rightDrawer} />}
105
+ </>
106
+ );
107
+ }