this.gui 1.3.22 → 1.3.26

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 (284) hide show
  1. package/dist/this-gui.es.js +0 -1
  2. package/dist/this-gui.umd.js +65 -65
  3. package/index.ts +3 -2
  4. package/init/index.html +4 -5
  5. package/init/package-lock.json +2 -2
  6. package/init/package.json +1 -1
  7. package/init/src/App.tsx +24 -0
  8. package/init/src/index.css +16 -0
  9. package/init/src/main.tsx +14 -0
  10. package/init/src/router/DerivableRouter.tsx +36 -0
  11. package/package.json +1 -1
  12. package/src/GUI.tsx +15 -0
  13. package/src/components/generics/Cards/Gridme.jsx +52 -0
  14. package/src/components/generics/Cards/LilBox.jsx +65 -0
  15. package/src/components/generics/Cards/ModuleCard.jsx +106 -0
  16. package/src/components/generics/Chats/FullChatBot.jsx +223 -0
  17. package/src/components/generics/Code/CodeBlock.jsx +33 -0
  18. package/src/components/generics/Feedback/Callout.jsx +92 -0
  19. package/src/components/generics/Layout/GridX.jsx +29 -0
  20. package/src/components/generics/Layout/Hero2.jsx +132 -0
  21. package/src/components/generics/Layout/PageContainer.jsx +29 -0
  22. package/src/components/generics/Layout/PageDivider.jsx +20 -0
  23. package/src/components/generics/Layout/Section.jsx +43 -0
  24. package/src/components/generics/Layout/SectionHeader.jsx +21 -0
  25. package/src/components/generics/Media/Img.jsx +58 -0
  26. package/src/components/generics/Media/VideoEmbed.jsx +51 -0
  27. package/src/components/generics/Organization/TableOfContents.jsx +51 -0
  28. package/src/components/generics/Organization/Tabs.jsx +45 -0
  29. package/src/components/generics/Text/TextList.jsx +41 -0
  30. package/src/components/generics/Text/TextParagraph.jsx +28 -0
  31. package/src/components/generics/Text/TextQuote.jsx +23 -0
  32. package/src/components/generics/Text/TextTitle.jsx +44 -0
  33. package/src/gui/Layouts/ResponsiveUI/Content/Content.resolver.tsx +0 -0
  34. package/src/gui/Layouts/ResponsiveUI/Content/Content.stories.tsx +88 -0
  35. package/src/gui/Layouts/ResponsiveUI/Content/Content.tsx +53 -0
  36. package/src/gui/Layouts/ResponsiveUI/Content/Content.types.tsx +40 -0
  37. package/src/gui/Layouts/ResponsiveUI/Footer/Footer.resolver.tsx +45 -0
  38. package/src/gui/Layouts/ResponsiveUI/Footer/Footer.stories.tsx +209 -0
  39. package/src/gui/Layouts/ResponsiveUI/Footer/Footer.tsx +337 -0
  40. package/src/gui/Layouts/ResponsiveUI/Footer/Footer.types.ts +40 -0
  41. package/src/gui/Layouts/ResponsiveUI/Layout/Layout.resolver.tsx +37 -0
  42. package/src/gui/Layouts/ResponsiveUI/Layout/Layout.stories.tsx +290 -0
  43. package/src/gui/Layouts/ResponsiveUI/Layout/Layout.tsx +112 -0
  44. package/src/gui/Layouts/ResponsiveUI/Layout/Layout.types.ts +56 -0
  45. package/src/gui/Layouts/ResponsiveUI/Layout/useLayoutBreakpoints.ts +9 -0
  46. package/src/gui/Layouts/ResponsiveUI/Sidebars/LeftSidebar/LeftSidebar.resolver.tsx +87 -0
  47. package/src/gui/Layouts/ResponsiveUI/Sidebars/LeftSidebar/LeftSidebar.stories.tsx +199 -0
  48. package/src/gui/Layouts/ResponsiveUI/Sidebars/LeftSidebar/LeftSidebar.tsx +311 -0
  49. package/src/gui/Layouts/ResponsiveUI/Sidebars/LeftSidebar/LeftSidebar.types.ts +41 -0
  50. package/src/gui/Layouts/ResponsiveUI/Sidebars/LeftSidebar/SidebarToggleButton.tsx +53 -0
  51. package/src/gui/Layouts/ResponsiveUI/Sidebars/LeftSidebar/components/LeftSidebarAction/LeftSidebarAction.resolver.tsx +19 -0
  52. package/src/gui/Layouts/ResponsiveUI/Sidebars/LeftSidebar/components/LeftSidebarAction/LeftSidebarAction.tsx +107 -0
  53. package/src/gui/Layouts/ResponsiveUI/Sidebars/LeftSidebar/components/LeftSidebarLink/LeftSidebarLink.resolver.tsx +0 -0
  54. package/src/gui/Layouts/ResponsiveUI/Sidebars/LeftSidebar/components/LeftSidebarLink/LeftSidebarLink.tsx +122 -0
  55. package/src/gui/Layouts/ResponsiveUI/Sidebars/LeftSidebar/components/LeftSidebarLink/LeftSidebarLink.types.ts +13 -0
  56. package/src/gui/Layouts/ResponsiveUI/Sidebars/LeftSidebar/components/LeftSidebarMenu/LeftSidebarMenu.tsx +142 -0
  57. package/src/gui/Layouts/ResponsiveUI/Sidebars/LeftSidebar/components/LeftSidebarToggleButton/LeftSidebarToggleButton.tsx +23 -0
  58. package/src/gui/Layouts/ResponsiveUI/Sidebars/RightSidebar/RightSidebar.resolver.tsx +35 -0
  59. package/src/gui/Layouts/ResponsiveUI/Sidebars/RightSidebar/RightSidebar.stories.tsx +240 -0
  60. package/src/gui/Layouts/ResponsiveUI/Sidebars/RightSidebar/RightSidebar.tsx +319 -0
  61. package/src/gui/Layouts/ResponsiveUI/Sidebars/RightSidebar/RightSidebar.types.ts +17 -0
  62. package/src/gui/Layouts/ResponsiveUI/Sidebars/RightSidebar/components/RightSidebarAction/RightSidebarAction.tsx +102 -0
  63. package/src/gui/Layouts/ResponsiveUI/Sidebars/RightSidebar/components/RightSidebarLink/RightSidebarLink.tsx +132 -0
  64. package/src/gui/Layouts/ResponsiveUI/Sidebars/RightSidebar/components/RightSidebarMenu/RightSidebarMenu.tsx +140 -0
  65. package/src/gui/Layouts/ResponsiveUI/Sidebars/RightSidebar/components/RightSidebarToggleButton/RightSidebarToggleButton.tsx +22 -0
  66. package/src/gui/Layouts/ResponsiveUI/StickyOptions/StickyOptionsTop.stories.tsx +469 -0
  67. package/src/gui/Layouts/ResponsiveUI/StickyOptions/StickyOptionsTop.tsx +489 -0
  68. package/src/gui/Layouts/ResponsiveUI/TopBar/TopBar.resolver.tsx +86 -0
  69. package/src/gui/Layouts/ResponsiveUI/TopBar/TopBar.stories.tsx +350 -0
  70. package/src/gui/Layouts/ResponsiveUI/TopBar/TopBar.tsx +281 -0
  71. package/src/gui/Layouts/ResponsiveUI/TopBar/TopBar.types.ts +39 -0
  72. package/src/gui/Layouts/ResponsiveUI/TopBar/components/TopBarAction/TopBarAction.stories.tsx +83 -0
  73. package/src/gui/Layouts/ResponsiveUI/TopBar/components/TopBarAction/TopBarAction.tsx +18 -0
  74. package/src/gui/Layouts/ResponsiveUI/TopBar/components/TopBarAction/TopBarAction.types.ts +4 -0
  75. package/src/gui/Layouts/ResponsiveUI/TopBar/components/TopBarLink/TopBarLink.stories.tsx +189 -0
  76. package/src/gui/Layouts/ResponsiveUI/TopBar/components/TopBarLink/TopBarLink.tsx +30 -0
  77. package/src/gui/Layouts/ResponsiveUI/TopBar/components/TopBarLink/TopBarLink.types.ts +9 -0
  78. package/src/gui/Layouts/ResponsiveUI/TopBar/components/TopBarMenu/TopBarMenu.resolver.tsx +14 -0
  79. package/src/gui/Layouts/ResponsiveUI/TopBar/components/TopBarMenu/TopBarMenu.stories.tsx +56 -0
  80. package/src/gui/Layouts/ResponsiveUI/TopBar/components/TopBarMenu/TopBarMenu.tsx +123 -0
  81. package/src/gui/Layouts/ResponsiveUI/TopBar/components/TopBarMenu/TopBarMenu.types.ts +44 -0
  82. package/src/gui/Theme/GuiProvider.tsx +125 -0
  83. package/src/gui/Theme/Icon/Icon.resolver.tsx +29 -0
  84. package/src/gui/Theme/Icon/Icon.tsx +43 -0
  85. package/src/gui/Theme/catalog/CherryByte/CherryByte.png +0 -0
  86. package/src/gui/Theme/catalog/CherryByte/dark.tokens.ts +47 -0
  87. package/src/gui/Theme/catalog/CherryByte/light.tokens.ts +47 -0
  88. package/src/gui/Theme/catalog/CherryByte/manifest.ts +24 -0
  89. package/src/gui/Theme/catalog/GhostShell/dark.tokens.ts +43 -0
  90. package/src/gui/Theme/catalog/GhostShell/ghost.png +0 -0
  91. package/src/gui/Theme/catalog/GhostShell/light.tokens.ts +39 -0
  92. package/src/gui/Theme/catalog/GhostShell/manifest.ts +24 -0
  93. package/src/gui/Theme/catalog/LunaHex/LunaHex.png +0 -0
  94. package/src/gui/Theme/catalog/LunaHex/dark.tokens.ts +34 -0
  95. package/src/gui/Theme/catalog/LunaHex/light.tokens.ts +74 -0
  96. package/src/gui/Theme/catalog/LunaHex/manifest.ts +24 -0
  97. package/src/gui/Theme/catalog/MUI/MUI.png +0 -0
  98. package/src/gui/Theme/catalog/MUI/dark.tokens.ts +58 -0
  99. package/src/gui/Theme/catalog/MUI/light.tokens.ts +74 -0
  100. package/src/gui/Theme/catalog/MUI/manifest.ts +24 -0
  101. package/src/gui/Theme/catalog/PrinceOfDarkness/dark.tokens.ts +48 -0
  102. package/src/gui/Theme/catalog/PrinceOfDarkness/light.tokens.ts +47 -0
  103. package/src/gui/Theme/catalog/PrinceOfDarkness/manifest.ts +24 -0
  104. package/src/gui/Theme/catalog/PrinceOfDarkness/prince.png +0 -0
  105. package/src/gui/Theme/catalog/PrinceOfDarkness/princeOfDarkness.png +0 -0
  106. package/src/gui/Theme/catalog/Seafoam/dark.tokens.ts +49 -0
  107. package/src/gui/Theme/catalog/Seafoam/light.tokens.ts +47 -0
  108. package/src/gui/Theme/catalog/Seafoam/manifest.ts +24 -0
  109. package/src/gui/Theme/catalog/Seafoam/seaFoam.png +0 -0
  110. package/src/gui/Theme/catalog/neurons/dark.tokens.ts +58 -0
  111. package/src/gui/Theme/catalog/neurons/light.tokens.ts +74 -0
  112. package/src/gui/Theme/catalog/neurons/manifest.ts +24 -0
  113. package/src/gui/Theme/catalog/neurons/neurons.me.png +0 -0
  114. package/src/gui/Theme/fromTokens.ts +273 -0
  115. package/src/gui/Theme/gui.css +31 -0
  116. package/src/gui/Theme/index.ts +17 -0
  117. package/src/gui/Theme/styles/buildShadows.ts +83 -0
  118. package/src/gui/Theme/styles/theme.tokens.ts +108 -0
  119. package/src/gui/Theme/utils/catalog.ts +61 -0
  120. package/src/gui/Theme/utils/persistence.ts +66 -0
  121. package/src/gui/Theme/utils/themeUtils.ts +34 -0
  122. package/src/gui/apis/codegen.api.ts +38 -0
  123. package/src/gui/components/atoms/AppBar/AppBar.resolver.tsx +41 -0
  124. package/src/gui/components/atoms/AppBar/AppBar.stories.tsx +225 -0
  125. package/src/gui/components/atoms/AppBar/AppBar.tsx +8 -0
  126. package/src/gui/components/atoms/AppBar/AppBar.types.ts +28 -0
  127. package/src/gui/components/atoms/Avatar/Avatar.resolver.tsx +61 -0
  128. package/src/gui/components/atoms/Avatar/Avatar.stories.tsx +36 -0
  129. package/src/gui/components/atoms/Avatar/Avatar.tsx +14 -0
  130. package/src/gui/components/atoms/Box/Box.resolver.tsx +171 -0
  131. package/src/gui/components/atoms/Box/Box.stories.tsx +263 -0
  132. package/src/gui/components/atoms/Box/Box.tsx +15 -0
  133. package/src/gui/components/atoms/Button/Button.resolver.tsx +103 -0
  134. package/src/gui/components/atoms/Button/Button.stories.tsx +219 -0
  135. package/src/gui/components/atoms/Button/Button.tsx +40 -0
  136. package/src/gui/components/atoms/Card/Card.resolver.tsx +63 -0
  137. package/src/gui/components/atoms/Card/Card.stories.tsx +54 -0
  138. package/src/gui/components/atoms/Card/Card.tsx +13 -0
  139. package/src/gui/components/atoms/CardActions/CardActions.resolver.tsx +59 -0
  140. package/src/gui/components/atoms/CardActions/CardActions.stories.tsx +32 -0
  141. package/src/gui/components/atoms/CardActions/CardActions.tsx +14 -0
  142. package/src/gui/components/atoms/CardContent/CardContent.resolver.tsx +60 -0
  143. package/src/gui/components/atoms/CardContent/CardContent.stories.tsx +34 -0
  144. package/src/gui/components/atoms/CardContent/CardContent.tsx +13 -0
  145. package/src/gui/components/atoms/CardHeader/CardHeader.resolver.tsx +68 -0
  146. package/src/gui/components/atoms/CardHeader/CardHeader.stories.tsx +40 -0
  147. package/src/gui/components/atoms/CardHeader/CardHeader.tsx +12 -0
  148. package/src/gui/components/atoms/Collapse/Collapse.resolver.tsx +85 -0
  149. package/src/gui/components/atoms/Collapse/Collapse.stories.tsx +130 -0
  150. package/src/gui/components/atoms/Collapse/Collapse.tsx +17 -0
  151. package/src/gui/components/atoms/Divider/Divider.resolver.tsx +95 -0
  152. package/src/gui/components/atoms/Divider/Divider.stories.tsx +108 -0
  153. package/src/gui/components/atoms/Divider/Divider.tsx +14 -0
  154. package/src/gui/components/atoms/Drawer/Drawer.resolver.tsx +116 -0
  155. package/src/gui/components/atoms/Drawer/Drawer.stories.tsx +223 -0
  156. package/src/gui/components/atoms/Drawer/Drawer.tsx +25 -0
  157. package/src/gui/components/atoms/Grid/Grid.resolver.tsx +33 -0
  158. package/src/gui/components/atoms/Grid/Grid.stories.tsx +136 -0
  159. package/src/gui/components/atoms/Grid/Grid.tsx +15 -0
  160. package/src/gui/components/atoms/Grid/Grid.types.ts +9 -0
  161. package/src/gui/components/atoms/IconButton/IconButton.resolver.tsx +137 -0
  162. package/src/gui/components/atoms/IconButton/IconButton.stories.tsx +134 -0
  163. package/src/gui/components/atoms/IconButton/IconButton.tsx +22 -0
  164. package/src/gui/components/atoms/Link/Link.resolver.tsx +74 -0
  165. package/src/gui/components/atoms/Link/Link.stories.tsx +157 -0
  166. package/src/gui/components/atoms/Link/Link.tsx +36 -0
  167. package/src/gui/components/atoms/List/List.resolver.tsx +94 -0
  168. package/src/gui/components/atoms/List/List.stories.tsx +137 -0
  169. package/src/gui/components/atoms/List/List.tsx +20 -0
  170. package/src/gui/components/atoms/ListItem/ListItem.resolver.tsx +88 -0
  171. package/src/gui/components/atoms/ListItem/ListItem.stories.tsx +151 -0
  172. package/src/gui/components/atoms/ListItem/ListItem.tsx +19 -0
  173. package/src/gui/components/atoms/ListItemButton/ListItemButton.resolver.tsx +214 -0
  174. package/src/gui/components/atoms/ListItemButton/ListItemButton.stories.tsx +155 -0
  175. package/src/gui/components/atoms/ListItemButton/ListItemButton.tsx +15 -0
  176. package/src/gui/components/atoms/ListItemIcon/ListItemIcon.resolver.tsx +102 -0
  177. package/src/gui/components/atoms/ListItemIcon/ListItemIcon.stories.tsx +132 -0
  178. package/src/gui/components/atoms/ListItemIcon/ListItemIcon.tsx +11 -0
  179. package/src/gui/components/atoms/ListItemText/ListItemText.resolver.tsx +112 -0
  180. package/src/gui/components/atoms/ListItemText/ListItemText.stories.tsx +156 -0
  181. package/src/gui/components/atoms/ListItemText/ListItemText.tsx +15 -0
  182. package/src/gui/components/atoms/Menu/Menu.resolver.tsx +112 -0
  183. package/src/gui/components/atoms/Menu/Menu.stories.tsx +162 -0
  184. package/src/gui/components/atoms/Menu/Menu.tsx +17 -0
  185. package/src/gui/components/atoms/MenuItem/MenuItem.resolver.tsx +183 -0
  186. package/src/gui/components/atoms/MenuItem/MenuItem.stories.tsx +134 -0
  187. package/src/gui/components/atoms/MenuItem/MenuItem.tsx +14 -0
  188. package/src/gui/components/atoms/Paper/Paper.resolver.tsx +98 -0
  189. package/src/gui/components/atoms/Paper/Paper.stories.tsx +184 -0
  190. package/src/gui/components/atoms/Paper/Paper.tsx +15 -0
  191. package/src/gui/components/atoms/Section/Section.resolver.tsx +10 -0
  192. package/src/gui/components/atoms/Section/Section.stories.tsx +189 -0
  193. package/src/gui/components/atoms/Section/Section.tsx +76 -0
  194. package/src/gui/components/atoms/Section/Section.types.tsx +24 -0
  195. package/src/gui/components/atoms/Stack/Stack.resolver.tsx +94 -0
  196. package/src/gui/components/atoms/Stack/Stack.stories.tsx +160 -0
  197. package/src/gui/components/atoms/Stack/Stack.tsx +15 -0
  198. package/src/gui/components/atoms/Surface/Surface.resolver.tsx +37 -0
  199. package/src/gui/components/atoms/Surface/Surface.tsx +49 -0
  200. package/src/gui/components/atoms/Surface/Surface.types.ts +20 -0
  201. package/src/gui/components/atoms/Switch/Switch.resolver.tsx +53 -0
  202. package/src/gui/components/atoms/Switch/Switch.stories.tsx +236 -0
  203. package/src/gui/components/atoms/Switch/Switch.tsx +22 -0
  204. package/src/gui/components/atoms/TextField/TextField.stories.tsx +28 -0
  205. package/src/gui/components/atoms/TextField/TextField.tsx +15 -0
  206. package/src/gui/components/atoms/Toolbar/Toolbar.resolver.tsx +60 -0
  207. package/src/gui/components/atoms/Toolbar/Toolbar.stories.tsx +155 -0
  208. package/src/gui/components/atoms/Toolbar/Toolbar.tsx +16 -0
  209. package/src/gui/components/atoms/Tooltip/Tooltip.resolver.tsx +142 -0
  210. package/src/gui/components/atoms/Tooltip/Tooltip.stories.tsx +117 -0
  211. package/src/gui/components/atoms/Tooltip/Tooltip.tsx +70 -0
  212. package/src/gui/components/atoms/Typography/Typography.resolver.tsx +158 -0
  213. package/src/gui/components/atoms/Typography/Typography.stories.tsx +222 -0
  214. package/src/gui/components/atoms/Typography/Typography.tsx +27 -0
  215. package/src/gui/components/atoms.tsx +138 -0
  216. package/src/gui/components/molecules/Dialog/Dialog.stories.tsx +18 -0
  217. package/src/gui/components/molecules/Dialog/Dialog.tsx +5 -0
  218. package/src/gui/components/molecules/HeroSection/HeroSection.stories.tsx +141 -0
  219. package/src/gui/components/molecules/HeroSection/HeroSection.tsx +152 -0
  220. package/src/gui/components/molecules/HeroSection/HeroSection.types.tsx +18 -0
  221. package/src/gui/components/molecules/ModalBox/ModalBox.resolver.tsx +38 -0
  222. package/src/gui/components/molecules/ModalBox/ModalBox.stories.tsx +82 -0
  223. package/src/gui/components/molecules/ModalBox/ModalBox.tsx +106 -0
  224. package/src/gui/components/molecules/ModalBox/ModalBox.types.ts +29 -0
  225. package/src/gui/components/molecules/Page/Page.stories.tsx +135 -0
  226. package/src/gui/components/molecules/Page/Page.tsx +94 -0
  227. package/src/gui/components/molecules/Theme/ThemeModeToggle/ThemeModeToggle.resolver.tsx +58 -0
  228. package/src/gui/components/molecules/Theme/ThemeModeToggle/ThemeModeToggle.stories.tsx +133 -0
  229. package/src/gui/components/molecules/Theme/ThemeModeToggle/ThemeModeToggle.tsx +101 -0
  230. package/src/gui/components/molecules/Theme/ThemeModeToggle/ThemeModeToggle.types.ts +29 -0
  231. package/src/gui/components/molecules/Theme/ThemesCatalog/ThemesCatalog.resolver.tsx +15 -0
  232. package/src/gui/components/molecules/Theme/ThemesCatalog/ThemesCatalog.stories.tsx +88 -0
  233. package/src/gui/components/molecules/Theme/ThemesCatalog/ThemesCatalog.tsx +167 -0
  234. package/src/gui/components/molecules/Theme/ThemesCatalog/ThemesCatalog.types.ts +34 -0
  235. package/src/gui/components/organism/ChatGPTInterface/ChatGPTInterface.stories.tsx +17 -0
  236. package/src/gui/components/organism/ChatGPTInterface/ChatGPTInterface.tsx +71 -0
  237. package/src/gui/components/organism/RootDomain/RootDomain.stories.tsx +31 -0
  238. package/src/gui/components/organism/RootDomain/RootDomain.tsx +100 -0
  239. package/src/gui/components/organism/RootDomain/staticServices.ts +66 -0
  240. package/src/gui/components/window/Nodes/node.ts +0 -0
  241. package/src/gui/components/window/code/block/node.tsx +0 -0
  242. package/src/gui/components/window/code/hugging.face.api.ts +11 -0
  243. package/src/gui/components/window/connectors/index.ts +19 -0
  244. package/src/gui/components/window/window.stories.tsx +20 -0
  245. package/src/gui/components/window/window.tsx +633 -0
  246. package/src/gui/contexts/InsetsContext.tsx +38 -0
  247. package/src/gui/contexts/LeftSidebarContext.tsx +20 -0
  248. package/src/gui/contexts/RightSidebarContext.tsx +25 -0
  249. package/src/gui/contexts/ThemeContext.ts +34 -0
  250. package/src/gui/contexts/index.ts +4 -0
  251. package/src/gui/hooks/index.ts +11 -0
  252. package/src/gui/hooks/resolveColorToken.ts +39 -0
  253. package/src/gui/hooks/useCodeGen.ts +12 -0
  254. package/src/gui/hooks/useGuiMediaQuery.ts +18 -0
  255. package/src/gui/hooks/useGuiTheme.ts +18 -0
  256. package/src/gui/hooks/useInsets.ts +26 -0
  257. package/src/gui/hooks/useIsMobile.ts +13 -0
  258. package/src/gui/hooks/useIsTouchDevice.ts +25 -0
  259. package/src/gui/hooks/useLeftSidebar.ts +10 -0
  260. package/src/gui/hooks/useRightSidebar.ts +12 -0
  261. package/src/gui/hooks/useViewportKey.ts +19 -0
  262. package/src/gui/hooks/useViewportProp.ts +17 -0
  263. package/src/gui/me/Logic.tsx +31 -0
  264. package/src/gui/me/Me.stories.tsx +8 -0
  265. package/src/gui/me/Me.tsx +197 -0
  266. package/src/gui/me/fundamentals/verbs/verbs.tsx +94 -0
  267. package/src/gui/me/modificators/Adjectives.ts +0 -0
  268. package/src/gui/me/modificators/Adverbs.ts +0 -0
  269. package/src/gui/me/modificators/Complements.ts +27 -0
  270. package/src/gui/me/utils/Context.tsx +14 -0
  271. package/src/gui/me/utils/hooks/useMe.js +37 -0
  272. package/src/gui/utils/nodeID.ts +11 -0
  273. package/src/registry/GuiRegistry.ts +19 -0
  274. package/src/registry/factory.ts +12 -0
  275. package/src/registry/index.ts +3 -0
  276. package/src/registry/types.ts +6 -0
  277. package/src/stories/01.Home.mdx +22 -0
  278. package/src/stories/02.Understanding.This.GUI.mdx +149 -0
  279. package/src/stories/Theme/Palette.stories.tsx +86 -0
  280. package/src/stories/Theme/ThemeViewer.stories.tsx +91 -0
  281. package/src/stories/Theme/Typography.stories.jsx +211 -0
  282. package/src/types/gui.d.ts +67 -0
  283. package/src/types/theme.d.ts +191 -0
  284. package/src/types/viewport.ts +132 -0
@@ -0,0 +1,222 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import Typography from './Typography';
3
+ import Link from '../Link/Link';
4
+
5
+ const meta = {
6
+ title: 'Atoms/Content/Typography',
7
+ component: Typography,
8
+ tags: ['autodocs'],
9
+ decorators: [
10
+ (Story) => (
11
+ <div style={{ padding: 24 }}>
12
+ <Story />
13
+ </div>
14
+ ),
15
+ ],
16
+ parameters: {
17
+ docs: {
18
+ description: {
19
+ component: `
20
+ **Typography** is a thin, polymorphic wrapper around MUI's Typography that keeps the full API
21
+ while exposing it through This.GUI. Import it from **@/gui/primitives** instead of @mui/material so
22
+ you can swap render engines in the future without breaking consumers.
23
+
24
+ ### Key points
25
+ - Preserves MUI's polymorphism (\`component\`, \`as\`, \`variantMapping\`).
26
+ - Works with routers and anchors: \`component={Link}\` + \`to\`, or \`component="a"\` + \`href\`.
27
+ - Styled by your This.GUI theme (typography, palette, spacing).
28
+
29
+ ### Common variants
30
+ MUI variants like \`h1..h6\`, \`subtitle1/2\`, \`body1/2\`, \`caption\`, \`overline\` are supported.
31
+
32
+ ### Declarative JSON example
33
+ You can describe text nodes in JSON and hydrate them in a renderer:
34
+
35
+ ~~~json
36
+ {
37
+ "type": "Typography",
38
+ "props": {
39
+ "variant": "h4",
40
+ "component": "h2",
41
+ "gutterBottom": true
42
+ },
43
+ "children": "Section Title"
44
+ }
45
+ ~~~
46
+
47
+ A naive hydration would look like:
48
+
49
+ ~~~tsx
50
+ const spec = {
51
+ type: 'Typography',
52
+ props: { variant: 'h4', component: 'h2', gutterBottom: true },
53
+ children: 'Section Title'
54
+ };
55
+
56
+ <Typography {...spec.props}>{spec.children}</Typography>
57
+ ~~~
58
+ `,
59
+ },
60
+ },
61
+ controls: { exclude: ['component', 'to', 'href', 'variantMapping', 'ref'] },
62
+ },
63
+ } satisfies Meta<typeof Typography>;
64
+
65
+ export default meta;
66
+
67
+ type Story = StoryObj<typeof Typography>;
68
+
69
+ export const Basic: Story = {
70
+ args: {
71
+ variant: 'body1',
72
+ children: 'Hello from Typography',
73
+ },
74
+ };
75
+
76
+ export const Variants: Story = {
77
+ render: () => (
78
+ <div style={{ display: 'grid', gap: 8 }}>
79
+ <Typography variant="h1">h1. Heading</Typography>
80
+ <Typography variant="h2">h2. Heading</Typography>
81
+ <Typography variant="h3">h3. Heading</Typography>
82
+ <Typography variant="h4">h4. Heading</Typography>
83
+ <Typography variant="h5">h5. Heading</Typography>
84
+ <Typography variant="h6">h6. Heading</Typography>
85
+ <Typography variant="subtitle1">subtitle1</Typography>
86
+ <Typography variant="subtitle2">subtitle2</Typography>
87
+ <Typography variant="body1">body1</Typography>
88
+ <Typography variant="body2">body2</Typography>
89
+ <Typography variant="caption">caption</Typography>
90
+ <Typography variant="overline">overline</Typography>
91
+ </div>
92
+ ),
93
+ parameters: {
94
+ docs: {
95
+ description: {
96
+ story: 'Preview of common Material UI typography variants.'
97
+ }
98
+ }
99
+ }
100
+ };
101
+
102
+ export const AsPropAndGutter: Story = {
103
+ name: 'Semantic element (component) + gutter',
104
+ render: () => (
105
+ <div>
106
+ <Typography variant="h4" component="h2" gutterBottom>
107
+ Section title (rendered as h2)
108
+ </Typography>
109
+ <Typography variant="body1">
110
+ Body text below the title. The \`gutterBottom\` on the title adds spacing.
111
+ </Typography>
112
+ </div>
113
+ ),
114
+ };
115
+
116
+ export const Alignment: Story = {
117
+ render: () => (
118
+ <div style={{ display: 'grid', gap: 8 }}>
119
+ <Typography align="left">Left aligned</Typography>
120
+ <Typography align="center">Center aligned</Typography>
121
+ <Typography align="right">Right aligned</Typography>
122
+ </div>
123
+ ),
124
+ };
125
+
126
+ export const Colors: Story = {
127
+ render: () => (
128
+ <div style={{ display: 'grid', gap: 8 }}>
129
+ <Typography color="text.primary">text.primary</Typography>
130
+ <Typography color="text.secondary">text.secondary</Typography>
131
+ <Typography color="primary">primary</Typography>
132
+ <Typography color="#00aa96">#00aa96 (custom)</Typography>
133
+ </div>
134
+ ),
135
+ };
136
+
137
+ export const WithRouterAndAnchor: Story = {
138
+ name: 'Routing & anchors',
139
+ render: () => (
140
+ <div style={{ display: 'grid', gap: 12 }}>
141
+ {/* Router link (uses This.GUI Link under the hood) */}
142
+ <Typography component={Link as any} to="/docs" underline="none">
143
+ Go to /docs (Router link)
144
+ </Typography>
145
+
146
+ {/* External anchor */}
147
+ <Typography component="a" href="https://neurons.me" target="_blank" rel="noopener noreferrer">
148
+ Visit neurons.me (anchor)
149
+ </Typography>
150
+ </div>
151
+ ),
152
+ parameters: {
153
+ docs: {
154
+ description: {
155
+ story: 'Demonstrates polymorphism: render as router link (with `to`) and as anchor (with `href`).'
156
+ }
157
+ }
158
+ }
159
+ };
160
+
161
+ export const VariantMappingOverride: Story = {
162
+ name: 'variantMapping override',
163
+ render: () => (
164
+ <div style={{ display: 'grid', gap: 8 }}>
165
+ <Typography
166
+ variant="subtitle1"
167
+ variantMapping={{ subtitle1: 'h3', body1: 'p' }}
168
+ >
169
+ subtitle1 text rendered as an H3 element via variantMapping
170
+ </Typography>
171
+ <Typography
172
+ variant="body1"
173
+ variantMapping={{ subtitle1: 'h3', body1: 'p' }}
174
+ >
175
+ body1 text rendered as a P element via variantMapping
176
+ </Typography>
177
+ </div>
178
+ ),
179
+ parameters: {
180
+ docs: {
181
+ description: {
182
+ story: 'MUI Typography allows remapping variants to different HTML elements without changing visual style.'
183
+ }
184
+ }
185
+ }
186
+ };
187
+
188
+ export const DeclarativeSpec: Story = {
189
+ name: 'Declarative (JSON → Typography)',
190
+ render: () => {
191
+ const spec = {
192
+ type: 'Typography',
193
+ props: { variant: 'h5', component: 'h3', gutterBottom: true },
194
+ children: 'Declaratively rendered title',
195
+ } as const;
196
+
197
+ return (
198
+ <div style={{ display: 'grid', gap: 12 }}>
199
+ <pre style={{ background: 'rgba(127,127,127,0.08)', padding: 12, borderRadius: 8 }}>
200
+ {`{
201
+ "type": "Typography",
202
+ "props": {
203
+ "variant": "h5",
204
+ "component": "h3",
205
+ "gutterBottom": true
206
+ },
207
+ "children": "Declaratively rendered title"
208
+ }`}
209
+ </pre>
210
+ {/* naive renderer */}
211
+ <Typography {...spec.props}>{spec.children}</Typography>
212
+ </div>
213
+ );
214
+ },
215
+ parameters: {
216
+ docs: {
217
+ description: {
218
+ story: 'Example of hydrating a Typography node from a JSON spec. In production, your app would use a central registry/renderer.'
219
+ }
220
+ }
221
+ }
222
+ };
@@ -0,0 +1,27 @@
1
+ /*
2
+ * This.GUI — Typography (polymorphic)
3
+ * Thin wrapper over MUI's Typography that preserves its full polymorphic API:
4
+ * - `component` / `as` (MUI OverridableComponent)
5
+ * - `variantMapping`
6
+ * - works with router links (`component={Link}`) or anchors (`component="a"`)
7
+ *
8
+ * Import from "@/gui/atoms" instead of "@mui/material" so we can change
9
+ * the underlying engine without breaking consumers.
10
+ */
11
+ import * as React from 'react';
12
+ import MuiTypography from '@mui/material/Typography';
13
+ import type { OverridableComponent } from '@mui/material/OverridableComponent';
14
+ import type { TypographyTypeMap } from '@mui/material/Typography';
15
+ // Public prop type (mirrors MUI's polymorphic typing)
16
+ export type TypographyProps = React.ComponentProps<
17
+ OverridableComponent<TypographyTypeMap<{}, 'span'>>
18
+ >;
19
+ // Component: preserve MUI OverridableComponent so `component` works as in MUI
20
+ const Typography = MuiTypography as unknown as OverridableComponent<
21
+ TypographyTypeMap<{}, 'span'>
22
+ >;
23
+ // DevTools label
24
+ (Typography as any).displayName = 'Gui.Typography';
25
+ // Helpful alias for consumers who prefer a prefixed name
26
+ export type GuiTypographyProps = TypographyProps;
27
+ export default Typography;
@@ -0,0 +1,138 @@
1
+ /*
2
+ * This.GUI — primitives
3
+ * Thin wrappers around MUI components to present a stable, library-owned API.
4
+ * Internally we use MUI, but components in the design system should import from
5
+ * "@/gui/primitives" instead of "@mui/material". This lets us swap engines later.
6
+ *
7
+ * La regla estándar en tu wrapper
8
+ * • Si MUI lo declaró polimórfico → usa OverridableComponent en tu wrapper.
9
+ * • Si no lo es → usa forwardRef normal.
10
+ *
11
+ * Así garantizas dos cosas:
12
+ * ✅ Tu wrapper no pierde nada de lo que MUI ofrece.
13
+ * ✅ No te complicas agregando polimorfismo donde MUI no lo soporta.
14
+ */
15
+ import * as React from 'react';
16
+ import type { SxProps, Theme } from '@mui/material/styles';
17
+ // AppBar is not polymorphic so we wrap it with forwardRef
18
+ import AppBar from './atoms/AppBar/AppBar';
19
+ export { default as AppBar } from './atoms/AppBar/AppBar';
20
+ // Box is polymorphic so we re-export it directly
21
+ import Box, { type BoxProps } from './atoms/Box/Box';
22
+ export { default as Box } from './atoms/Box/Box';
23
+ export type { BoxProps } from './atoms/Box/Box';
24
+ // Avatar is not polymorphic so we wrap it with forwardRef
25
+ import Avatar, { type AvatarProps } from './atoms/Avatar/Avatar';
26
+ export { default as Avatar } from './atoms/Avatar/Avatar';
27
+ export type { AvatarProps } from './atoms/Avatar/Avatar';
28
+ //Button is polymorphic so we re-export it directly
29
+ import Button from './atoms/Button/Button';
30
+ export { default as Button } from './atoms/Button/Button';
31
+ export type { GuiButtonProps as ButtonProps } from './atoms/Button/Button';
32
+ //Collapse is not polymorphic so we wrap it with forwardRef
33
+ import Collapse, { type CollapseProps } from './atoms/Collapse/Collapse';
34
+ export { default as Collapse } from './atoms/Collapse/Collapse';
35
+ export type { CollapseProps } from './atoms/Collapse/Collapse';
36
+ //IconButton is polymorphic so we re-export it directly
37
+ import IconButton, { type IconButtonProps } from './atoms/IconButton/IconButton';
38
+ export { default as IconButton } from './atoms/IconButton/IconButton';
39
+ export type { IconButtonProps } from './atoms/IconButton/IconButton';
40
+ //Divider is not polymorphic so we wrap it with forwardRef
41
+ import Divider, { type DividerProps } from './atoms/Divider/Divider';
42
+ export { default as Divider } from './atoms/Divider/Divider';
43
+ export type { DividerProps } from './atoms/Divider/Divider';
44
+ //Drawer is not polymorphic so we wrap it with forwardRef
45
+ import Drawer, { type DrawerProps } from './atoms/Drawer/Drawer';
46
+ export { default as Drawer } from './atoms/Drawer/Drawer';
47
+ export type { DrawerProps } from './atoms/Drawer/Drawer';
48
+ //Link is polymorphic so we re-export it directly
49
+ import Link from './atoms/Link/Link';
50
+ export { default as Link } from './atoms/Link/Link';
51
+ export type { LinkProps } from './atoms/Link/Link';
52
+ // List and related are not polymorphic so we wrap them with forwardRef
53
+ import List, { type ListProps } from './atoms/List/List';
54
+ export { default as List } from './atoms/List/List';
55
+ export type { ListProps } from './atoms/List/List';
56
+ import ListItem, { type ListItemProps } from './atoms/ListItem/ListItem';
57
+ export { default as ListItem } from './atoms/ListItem/ListItem';
58
+ export type { ListItemProps } from './atoms/ListItem/ListItem';
59
+ import ListItemButton, { type ListItemButtonProps } from './atoms/ListItemButton/ListItemButton';
60
+ export { default as ListItemButton } from './atoms/ListItemButton/ListItemButton';
61
+ export type { ListItemButtonProps } from './atoms/ListItemButton/ListItemButton';
62
+ import ListItemIcon, { type ListItemIconProps } from './atoms/ListItemIcon/ListItemIcon';
63
+ export { default as ListItemIcon } from './atoms/ListItemIcon/ListItemIcon';
64
+ export type { ListItemIconProps } from './atoms/ListItemIcon/ListItemIcon';
65
+ import ListItemText, { type ListItemTextProps } from './atoms/ListItemText/ListItemText';
66
+ export { default as ListItemText } from './atoms/ListItemText/ListItemText';
67
+ export type { ListItemTextProps } from './atoms/ListItemText/ListItemText';
68
+ //Menu and related are polymorphic so we re-export them directly
69
+ import Menu, { type MenuProps } from './atoms/Menu/Menu';
70
+ export { default as Menu } from './atoms/Menu/Menu';
71
+ export type { MenuProps } from './atoms/Menu/Menu';
72
+ import MenuItem, { type MenuItemProps } from './atoms/MenuItem/MenuItem';
73
+ export { default as MenuItem } from './atoms/MenuItem/MenuItem';
74
+ export type { MenuItemProps } from './atoms/MenuItem/MenuItem';
75
+ //Paper is not polymorphic so we wrap it with forwardRef
76
+ import Paper, { type PaperProps } from './atoms/Paper/Paper';
77
+ export { default as Paper } from './atoms/Paper/Paper';
78
+ export type { PaperProps } from './atoms/Paper/Paper';
79
+ //Stack is not polymorphic so we wrap it with forwardRef
80
+ import Stack, { type StackProps } from './atoms/Stack/Stack';
81
+ export { default as Stack } from './atoms/Stack/Stack';
82
+ export type { StackProps } from './atoms/Stack/Stack';
83
+ //Switch is not polymorphic so we wrap it with forwardRef
84
+ import Switch, { type SwitchProps } from './atoms/Switch/Switch';
85
+ export { default as Switch } from './atoms/Switch/Switch';
86
+ export type { SwitchProps } from './atoms/Switch/Switch';
87
+ //Toolbar is not polymorphic so we wrap it with forwardRef
88
+ import Toolbar from './atoms/Toolbar/Toolbar';
89
+ export { default as Toolbar } from './atoms/Toolbar/Toolbar';
90
+ export type { ToolbarProps } from './atoms/Toolbar/Toolbar';
91
+ //Tooltip is not polymorphic so we wrap it with forwardRef
92
+ import Tooltip from './atoms/Tooltip/Tooltip';
93
+ export { default as Tooltip } from './atoms/Tooltip/Tooltip';
94
+ export type { TooltipProps } from './atoms/Tooltip/Tooltip';
95
+ //Typography is polymorphic so we re-export it directly
96
+ import Typography, { type TypographyProps } from './atoms/Typography/Typography';
97
+ export { default as Typography } from './atoms/Typography/Typography';
98
+ export type { TypographyProps } from './atoms/Typography/Typography';
99
+ import Section from './atoms/Section/Section';
100
+ export { default as Section } from './atoms/Section/Section';
101
+ export type { SectionProps } from './atoms/Section/Section.types';
102
+
103
+ /* -------------------------------------------------------------------------------------------------
104
+ * GuiSx — re-export of MUI’s SxProps<Theme>
105
+ * -------------------------------------------------------------------------------------------------*/
106
+
107
+ /** Public sx type (kept for now to ease migration). */
108
+ export type GuiSx = SxProps<Theme>;
109
+
110
+ /* -------------------------------------------------------------------------------------------------
111
+ * Named bundle export (optional ergonomic import)
112
+ * -------------------------------------------------------------------------------------------------*/
113
+ export const Atoms = {
114
+ Box,
115
+ Typography,
116
+ Link,
117
+ Stack,
118
+ Divider,
119
+ AppBar,
120
+ Toolbar,
121
+ IconButton,
122
+ Menu,
123
+ MenuItem,
124
+ Drawer,
125
+ List,
126
+ ListItem,
127
+ ListItemButton,
128
+ ListItemIcon,
129
+ ListItemText,
130
+ Collapse,
131
+ Button,
132
+ Tooltip,
133
+ Switch,
134
+ Paper,
135
+ Avatar,
136
+ Section,
137
+ } as const;
138
+ export default Atoms;
@@ -0,0 +1,18 @@
1
+ import Dialog from './Dialog';
2
+
3
+ export default {
4
+ title: 'Molecules/Dialog/Dialog',
5
+ component: Dialog,
6
+ };
7
+
8
+ export const Basic = () => (
9
+ <Dialog>
10
+ This is the basic Dialog with default padding.
11
+ </Dialog>
12
+ );
13
+
14
+ export const WithCustomPadding = () => (
15
+ <Dialog sx={{ p: 4, bgcolor: 'background.default' }}>
16
+ This Dialog has custom padding and background color.
17
+ </Dialog>
18
+ );
@@ -0,0 +1,5 @@
1
+ import MuiDialogContent, { DialogContentProps as MuiDialogContentProps } from '@mui/material/DialogContent';
2
+ export type DialogProps = MuiDialogContentProps;
3
+ export default function DialogContent(props: DialogProps) {
4
+ return <MuiDialogContent {...props} sx={{ p: 2, bgcolor: 'background.paper', ...props.sx }} />;
5
+ }
@@ -0,0 +1,141 @@
1
+ import React from 'react';
2
+ import type { Meta, StoryObj } from '@storybook/react';
3
+ import { HeroSection } from './HeroSection';
4
+
5
+ const meta: Meta<typeof HeroSection> = {
6
+ title: 'Molecules/Display/HeroSection',
7
+ component: HeroSection,
8
+ tags: ['autodocs'],
9
+ decorators: [
10
+ (Story) => (
11
+ <div style={{ height: '100vh', overflow: 'hidden' }}>
12
+ <Story />
13
+ </div>
14
+ ),
15
+ ],
16
+ parameters: {
17
+ docs: {
18
+ description: {
19
+ component: `
20
+ **HeroSection** is a full-screen display component that supports image, GIF, or video backgrounds with overlay and blur options.
21
+
22
+ ---
23
+ ## Features
24
+ - Background types: \`image\`, \`gif\`, \`video\`.
25
+ - Overlay color and opacity control.
26
+ - Theme-aware blur effects: \`light\`, \`medium\`, \`heavy\`, \`all\`.
27
+ - Fully responsive and fills viewport (100vh).
28
+
29
+ ---
30
+ ## Props
31
+ - \`backgroundSrc\`: Media URL (image, gif, or video).
32
+ - \`backgroundType\`: Type of background media ('image', 'gif', or 'video').
33
+ - \`overlayOpacity\`: Opacity of overlay (0–1).
34
+ - \`overlayColor\`: Color of overlay.
35
+ - \`blur\`: Theme-based blur intensity (\`light\`, \`medium\`, \`heavy\`, \`all\`).
36
+ `,
37
+ },
38
+ },
39
+ },
40
+ };
41
+ export default meta;
42
+ type Story = StoryObj<typeof HeroSection>;
43
+
44
+ export const ImageBackground: Story = {
45
+ args: {
46
+ backgroundSrc: 'https://images.unsplash.com/photo-1507525428034-b723cf961d3e',
47
+ backgroundType: 'image',
48
+ blur: 'none',
49
+ children: (
50
+ <div style={{ color: 'white', fontSize: '2rem', fontWeight: 600, textAlign: 'center', marginTop: '40vh' }}>
51
+ Example: Image Background, Blur none
52
+ </div>
53
+ ),
54
+ },
55
+ };
56
+
57
+ export const GifBackground: Story = {
58
+ args: {
59
+ backgroundSrc: 'https://media.giphy.com/media/l0MYt5jPR6QX5pnqM/giphy.gif',
60
+ backgroundType: 'gif',
61
+ blur: 'light',
62
+ children: (
63
+ <div style={{ color: 'white', fontSize: '2rem', fontWeight: 600, textAlign: 'center', marginTop: '40vh' }}>
64
+ Example: GIF Background, Blur light
65
+ </div>
66
+ ),
67
+ },
68
+ };
69
+
70
+ export const VideoBackground: Story = {
71
+ args: {
72
+ backgroundSrc: 'https://www.neurons.me/media/neurons.mp4',
73
+ backgroundType: 'video',
74
+ blur: 'medium',
75
+ children: (
76
+ <div style={{ color: 'white', fontSize: '2rem', fontWeight: 600, textAlign: 'center', marginTop: '40vh' }}>
77
+ Example: Video Background, Blur medium
78
+ </div>
79
+ ),
80
+ },
81
+ };
82
+
83
+ export const HeavyExample: Story = {
84
+ args: {
85
+ backgroundSrc: 'https://images.unsplash.com/photo-1507525428034-b723cf961d3e',
86
+ backgroundType: 'image',
87
+ blur: 'heavy',
88
+ children: (
89
+ <div
90
+ style={{
91
+ color: 'white',
92
+ fontSize: '2rem',
93
+ fontWeight: 600,
94
+ textAlign: 'center',
95
+ marginTop: '40vh',
96
+ }}
97
+ >
98
+ Example: Heavy blur overlay (theme preset)
99
+ </div>
100
+ ),
101
+ },
102
+ };
103
+
104
+ export const BlurVariants: Story = {
105
+ render: () => (
106
+ <div style={{ display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: 16 }}>
107
+ {(['none', 'light', 'medium', 'heavy', 'all'] as const).map((b) => (
108
+ <HeroSection
109
+ key={b}
110
+ backgroundSrc="https://images.unsplash.com/photo-1507525428034-b723cf961d3e"
111
+ backgroundType="image"
112
+ blur={b}
113
+ children={
114
+ <div style={{ color: 'white', fontSize: '1.5rem', fontWeight: 600, textAlign: 'center', marginTop: '40vh' }}>
115
+ Blur = {b}
116
+ </div>
117
+ }
118
+ />
119
+ ))}
120
+ </div>
121
+ ),
122
+ };
123
+
124
+ export const CustomColorExample: Story = {
125
+ args: {
126
+ backgroundSrc: 'https://images.unsplash.com/photo-1507525428034-b723cf961d3e',
127
+ backgroundType: 'image',
128
+ overlayColor: 'rgba(15, 21, 37, 0.89)', // Semi-transparent dark overlay
129
+ children: (
130
+ <div style={{
131
+ color: 'white',
132
+ fontSize: '2rem',
133
+ fontWeight: 600,
134
+ textAlign: 'center',
135
+ marginTop: '40vh',
136
+ }}>
137
+ Example: Custom Color Overlay
138
+ </div>
139
+ ),
140
+ },
141
+ };