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,112 @@
1
+ import { LeftSidebarProvider } from '@/gui/contexts/LeftSidebarContext';
2
+ import { RightSidebarProvider } from '@/gui/contexts/RightSidebarContext';
3
+ import { Box } from '@/gui/components/atoms';
4
+ import TopBar from '@/gui/Layouts/ResponsiveUI/TopBar/TopBar';
5
+ import LeftSidebar from '@/gui/Layouts/ResponsiveUI/Sidebars/LeftSidebar/LeftSidebar';
6
+ import RightSidebar from '@/gui/Layouts/ResponsiveUI/Sidebars/RightSidebar/RightSidebar';
7
+ import Footer from '@/gui/Layouts/ResponsiveUI/Footer/Footer';
8
+ import { Outlet } from 'react-router-dom';
9
+ import Content from '@/gui/Layouts/ResponsiveUI/Content/Content';
10
+ import type { LayoutProps } from './Layout.types';
11
+ function Layout({
12
+ topBarConfig = false,
13
+ leftSidebarConfig = false,
14
+ rightSidebarConfig = false,
15
+ footerConfig = false,
16
+ children,
17
+ }: LayoutProps) {
18
+ const hasTopBar = Boolean(topBarConfig);
19
+ const hasLeftSidebar = Boolean(leftSidebarConfig);
20
+ const hasRightSidebar = Boolean(rightSidebarConfig);
21
+ const leftInitialView =
22
+ typeof leftSidebarConfig === 'object' && 'initialView' in leftSidebarConfig
23
+ ? leftSidebarConfig.initialView
24
+ : undefined;
25
+ const rightInitialView =
26
+ typeof rightSidebarConfig === 'object' && 'initialView' in rightSidebarConfig
27
+ ? rightSidebarConfig.initialView
28
+ : undefined;
29
+
30
+ return (
31
+ <LeftSidebarProvider initialView={leftInitialView}>
32
+ <RightSidebarProvider initialView={rightInitialView}>
33
+ <Box
34
+ id="layout-root"
35
+ sx={{ display: 'flex', flexDirection: 'column', minHeight: '100vh' }}
36
+ >
37
+ {hasTopBar && (
38
+ <TopBar
39
+ {...(typeof topBarConfig === 'object'
40
+ ? (() => {
41
+ const { showMenuButton, ...rest } = topBarConfig;
42
+ return rest;
43
+ })()
44
+ : {})}
45
+ />
46
+ )}
47
+ <Box sx={{ display: 'flex', flex: 1 }}>
48
+ {hasLeftSidebar && (
49
+ <LeftSidebar
50
+ elements={[]}
51
+ {...(typeof leftSidebarConfig === 'object' ? leftSidebarConfig : {})}
52
+ />
53
+ )}
54
+ <Content>
55
+ {children ?? <Outlet />}
56
+ </Content>
57
+ {hasRightSidebar && (
58
+ <RightSidebar
59
+ elements={[]}
60
+ {...(typeof rightSidebarConfig === 'object' ? rightSidebarConfig : {})}
61
+ />
62
+ )}
63
+ </Box>
64
+ {footerConfig && (
65
+ <Footer
66
+ {...(typeof footerConfig === 'object'
67
+ ? (() => {
68
+ const {
69
+ brandLabel,
70
+ brandLogo,
71
+ brandHref,
72
+ brandAvatarFallback,
73
+ leftElements,
74
+ centerElements,
75
+ rightElements,
76
+ position,
77
+ elevation,
78
+ className,
79
+ id,
80
+ sx,
81
+ appBarSx,
82
+ sectionSx,
83
+ 'data-testid': dataTestId,
84
+ } = footerConfig;
85
+ return {
86
+ brandLabel,
87
+ brandLogo,
88
+ brandHref,
89
+ brandAvatarFallback,
90
+ leftElements,
91
+ centerElements,
92
+ rightElements,
93
+ position,
94
+ elevation,
95
+ className,
96
+ id,
97
+ sx,
98
+ appBarSx,
99
+ sectionSx,
100
+ 'data-testid': dataTestId,
101
+ };
102
+ })()
103
+ : {})}
104
+ />
105
+ )}
106
+ </Box>
107
+ </RightSidebarProvider>
108
+ </LeftSidebarProvider>
109
+ );
110
+ }
111
+
112
+ export default Layout;
@@ -0,0 +1,56 @@
1
+ //@/gui/layouts/ResponsiveUI/Layout/Layout.types.ts
2
+ import type { FooterElement } from '@/gui/Layouts/ResponsiveUI/Footer/Footer.types';
3
+
4
+ export interface TopBarConfig {
5
+ showMenuButton?: boolean;
6
+ [key: string]: any;
7
+ }
8
+
9
+ export interface LeftSidebarConfig {
10
+ [key: string]: any;
11
+ }
12
+
13
+ export interface RightSidebarConfig {
14
+ [key: string]: any;
15
+ }
16
+
17
+ export interface FooterConfig {
18
+ brandLabel?: string;
19
+ brandLogo?: string;
20
+ brandHref?: string;
21
+ brandAvatarFallback?: string;
22
+ leftElements?: FooterElement[];
23
+ centerElements?: FooterElement[];
24
+ rightElements?: FooterElement[];
25
+ position?: 'static' | 'fixed' | 'sticky';
26
+ elevation?: number;
27
+ className?: string;
28
+ id?: string;
29
+ 'data-testid'?: string;
30
+ sx?: any;
31
+ appBarSx?: any;
32
+ sectionSx?: any;
33
+ }
34
+
35
+ export interface LayoutProps {
36
+ topBarConfig?: TopBarConfig | boolean;
37
+ leftSidebarConfig?: LeftSidebarConfig | boolean;
38
+ rightSidebarConfig?: RightSidebarConfig | boolean;
39
+ footerConfig?: FooterConfig | boolean;
40
+ children?: React.ReactNode;
41
+ }
42
+
43
+ export interface ContentChild {
44
+ type: string;
45
+ props?: Record<string, any>;
46
+ }
47
+
48
+ export interface ContentProps {
49
+ children?: ContentChild[];
50
+ }
51
+
52
+ export interface LayoutSpec {
53
+ type: 'Layout';
54
+ props?: LayoutProps;
55
+ Content?: ContentProps[];
56
+ }
@@ -0,0 +1,9 @@
1
+ import { useGuiMediaQuery, useGuiTheme } from '@/gui/hooks';
2
+
3
+ export function useLayoutBreakpoints() {
4
+ const theme = useGuiTheme();
5
+ const isMobile = useGuiMediaQuery(theme.breakpoints.down('md'));
6
+ const isTablet = useGuiMediaQuery(theme.breakpoints.between('md', 'lg'));
7
+ const isDesktop = useGuiMediaQuery(theme.breakpoints.up('lg'));
8
+ return { isMobile, isTablet, isDesktop };
9
+ }
@@ -0,0 +1,87 @@
1
+ // src/components/generics/AppBars/LeftSidebar/LeftSidebar.resolver.tsx
2
+ import * as React from 'react';
3
+ import type { RegistryEntry, ResolveCtx } from '@/registry/types';
4
+ import LeftSidebar from './LeftSidebar';
5
+ import Icon from '@/themes/Icon/Icon';
6
+ /**
7
+ * Declarative spec for LeftSidebar.
8
+ * This is the JSON-friendly shape your renderer/LLM can emit.
9
+ */
10
+ type RouteItemSpec = {
11
+ label: string;
12
+ href?: string;
13
+ external?: boolean;
14
+ icon?: string | React.ReactNode | React.ComponentType<any>;
15
+ iconColor?: string;
16
+ children?: RouteItemSpec[];
17
+ };
18
+
19
+ type LeftSidebarHeaderSpec = {
20
+ title?: string;
21
+ icon?: string | React.ReactNode | React.ComponentType<any>;
22
+ iconColor?: string;
23
+ };
24
+
25
+ type LeftSidebarSpec = {
26
+ type: 'LeftSidebar';
27
+ props?: {
28
+ // Behavior / layout
29
+ drawerWidth?: number; // px, default 240 (component default)
30
+ open?: boolean; // controlled open (temporary/mobile)
31
+ onCloseId?: string; // resolves to a function from ctx.handlers[onCloseId]
32
+ // Content
33
+ header?: LeftSidebarHeaderSpec; // optional header (title + icon)
34
+ drawerLinks?: RouteItemSpec[]; // navigation tree
35
+ // Style passthrough / misc
36
+ sx?: any;
37
+ id?: string;
38
+ className?: string;
39
+ 'data-testid'?: string;
40
+ };
41
+ };
42
+
43
+ /**
44
+ * LeftSidebarResolver
45
+ * - Maps a JSON-friendly spec into <LeftSidebar /> props.
46
+ * - Doesn’t make layout decisions (permanent vs temporary): that logic lives in the component
47
+ * via breakpoints. We just pass data and optional controlled "open"/"onClose".
48
+ * - `onCloseId` lets you bind to a handler from the outside world through the ResolveCtx.
49
+ */
50
+ const LeftSidebarResolver: RegistryEntry = {
51
+ type: 'LeftSidebar',
52
+ resolve(spec: LeftSidebarSpec, ctx?: ResolveCtx) {
53
+ const p = spec.props ?? {};
54
+ // Resolve handler by id from ctx (optional)
55
+ const onClose =
56
+ (p.onCloseId && ctx?.handlers && typeof ctx.handlers[p.onCloseId] === 'function')
57
+ ? ctx.handlers[p.onCloseId]
58
+ : undefined;
59
+ return (
60
+ <LeftSidebar
61
+ open={p.open}
62
+ onClose={onClose}
63
+ header={
64
+ p.header ? (
65
+ <div style={{ display: 'flex', alignItems: 'center', gap: 8, padding: '0.5rem 1rem' }}>
66
+ {typeof p.header.icon === 'string'
67
+ ? <Icon name={p.header.icon} iconColor={p.header.iconColor} />
68
+ : React.isValidElement(p.header.icon)
69
+ ? p.header.icon
70
+ : typeof p.header.icon === 'function'
71
+ ? React.createElement(p.header.icon)
72
+ : null}
73
+ {p.header.title && <span>{p.header.title}</span>}
74
+ </div>
75
+ ) : undefined
76
+ }
77
+ drawerLinks={p.drawerLinks ?? []}
78
+ // style/misc passthrough
79
+ id={p.id}
80
+ className={p.className}
81
+ data-testid={p['data-testid']}
82
+ />
83
+ );
84
+ },
85
+ };
86
+
87
+ export default LeftSidebarResolver;
@@ -0,0 +1,199 @@
1
+ import { StoryFn } from "@storybook/react";
2
+ import React from "react";
3
+ import Layout from "@/gui/Layouts/ResponsiveUI/Layout/Layout";
4
+ import ThemeModeToggle from "@/gui/components/molecules/Theme/ThemeModeToggle/ThemeModeToggle";
5
+
6
+ export default {
7
+ title: "Layouts/ResponsiveUI/Sidebars/LeftSidebar",
8
+ component: Layout,
9
+ tags: ['autodocs'],
10
+ parameters: {
11
+ docs: {
12
+ description: {
13
+ component:
14
+ `The **LeftSidebar** component provides the navigation rail for ResponsiveUI layouts. It keeps content aligned with other structural elements (TopBar, RightSidebar) while offering a consistent spot for primary navigation and quick actions.
15
+ ---
16
+ ## Features
17
+ - **Rail-first layout:** Starts in rail view by default to maximize canvas space while keeping icons reachable.
18
+ - **Expanded navigation:** Users can switch to an expanded width for descriptive labels and nested menus.
19
+ - **Mobile overlay:** On compact viewports it becomes a temporary drawer that overlays content and releases the left inset.
20
+ - **Footer actions:** Optional \`footerElements\` allow secondary actions (e.g. settings, help) that stay pinned to the bottom.
21
+ - **Inset sync:** Updates \`theme.layout.insets.left\` so surrounding layouts and the TopBar shift automatically.
22
+
23
+ ---
24
+ ## Layout Variants
25
+ - \`rail\`: 72px icon rail, best for dense productivity layouts.
26
+ - \`expanded\`: 264px panel with labels and nested menu support.
27
+ - \`mobile\`: Drawer that covers the screen content and is controlled by a floating toggle button.
28
+ The sidebar transitions between these modes automatically based on breakpoints, but you can also set them manually via \`useLeftSidebar()\`.
29
+
30
+ ---
31
+ ## Props
32
+ - \`elements: LeftSidebarElement[]\` — Main navigation items. Supports \`link\`, \`menu\`, and \`action\` types.
33
+ - \`footerElements?: LeftSidebarElement[]\` — Optional persistent actions rendered in the footer.
34
+ - \`initialView?: 'rail' | 'expanded' | 'mobile'\` — Starting layout; defaults to \`rail\`.
35
+ - \`className?, ...rest\` — Standard layout props forwarded to the root container.
36
+
37
+ ---
38
+ ## Declarative usage
39
+ ~~~tsx
40
+ import LeftSidebar from '@/gui/Layouts/ResponsiveUI/Sidebars/LeftSidebar/LeftSidebar';
41
+
42
+ <LeftSidebar
43
+ initialView="rail"
44
+ elements={[
45
+ { type: 'link', props: { label: 'Dashboard', icon: 'dashboard' } },
46
+ { type: 'link', props: { label: 'Analytics', icon: 'bar_chart' } },
47
+ {
48
+ type: 'menu',
49
+ props: {
50
+ label: 'Projects',
51
+ icon: 'folder',
52
+ items: [
53
+ { label: 'Active', icon: 'task' },
54
+ { label: 'Archive', icon: 'inventory_2' },
55
+ ],
56
+ },
57
+ },
58
+ ]}
59
+ footerElements={[
60
+ { type: 'link', props: { label: 'Settings', icon: 'settings' } },
61
+ { type: 'action', props: { label: 'Sign out', icon: 'logout' } },
62
+ ]}
63
+ />;
64
+ ~~~
65
+
66
+ ---
67
+ ## React usage
68
+ Wrap your layout with \`LeftSidebarProvider\` and consume \`useLeftSidebar()\` to control the view programmatically:
69
+ ~~~tsx
70
+ import { LeftSidebarProvider } from '@/gui/contexts';
71
+ import LeftSidebar from '@/gui/Layouts/ResponsiveUI/Sidebars/LeftSidebar/LeftSidebar';
72
+ import { useLeftSidebar } from '@/gui/hooks';
73
+
74
+ const navItems = [
75
+ { type: 'link', props: { label: 'Dashboard', icon: 'dashboard' } },
76
+ { type: 'link', props: { label: 'Billing', icon: 'receipt_long' } },
77
+ ];
78
+
79
+ function Shell() {
80
+ const { view, setView } = useLeftSidebar();
81
+ return (
82
+ <>
83
+ <button onClick={() => setView(view === 'expanded' ? 'rail' : 'expanded')}>
84
+ Toggle mode
85
+ </button>
86
+ <LeftSidebar elements={navItems} />
87
+ </>
88
+ );
89
+ }
90
+
91
+ export function AppShell() {
92
+ return (
93
+ <LeftSidebarProvider>
94
+ <Shell />
95
+ </LeftSidebarProvider>
96
+ );
97
+ }
98
+ ~~~
99
+
100
+ ---
101
+ ## Notes
102
+ - Mobile mode is triggered automatically below the \`sm\` breakpoint; the floating toggle re-opens the drawer.
103
+ - The sidebar updates the global inset each time the view changes, keeping the TopBar and page content aligned.
104
+ - Combine with the \`TopBar\` story to see how the two components cooperate in responsive layouts.
105
+ `,
106
+ },
107
+ },
108
+ },
109
+ };
110
+
111
+ const Template: StoryFn<React.ComponentProps<typeof Layout>> = (args) => (
112
+ <Layout {...args} />
113
+ );
114
+
115
+ export const Default = Template.bind({});
116
+ Default.args = {
117
+ topBarConfig: {
118
+ title: "My Application",
119
+ elementsRight: [
120
+ { type: "link", props: { label: "Profile", icon: "account_circle" } },
121
+ {
122
+ type: "action",
123
+ props: {
124
+ element: <ThemeModeToggle variant="minimal" show="icons" iconSize="small" />,
125
+ },
126
+ },
127
+ { type: "action", props: { label: "Logout", icon: "logout", iconColor: "var(--gui-error)" } },
128
+ ],
129
+ },
130
+ leftSidebarConfig: {
131
+ elements: [
132
+ { type: "link", props: { label: "Dashboard", icon: "dashboard", iconColor: "var(--gui-primary)" } },
133
+ { type: "link", props: { label: "Analytics", icon: "bar_chart", iconColor: "var(--gui-secondary)" } },
134
+ {
135
+ type: "menu",
136
+ props: {
137
+ label: "Projects",
138
+ icon: "folder",
139
+ iconColor: "var(--gui-warning)",
140
+ items: [
141
+ { label: "Project A", icon: "work", iconColor: "var(--gui-success)" },
142
+ { label: "Project B", icon: "assignment", iconColor: "var(--gui-info)" },
143
+ ],
144
+ },
145
+ },
146
+ { type: "action", props: { label: "Logout", icon: "logout", iconColor: "var(--gui-error)", action: "handleLogout" } },
147
+ ],
148
+ },
149
+ };
150
+
151
+ export const WithoutTopBar = Template.bind({});
152
+ WithoutTopBar.args = {
153
+ leftSidebarConfig: {
154
+ elements: [
155
+ { type: "link", props: { label: "Dashboard", icon: "dashboard", iconColor: "var(--gui-primary)" } },
156
+ { type: "link", props: { label: "Analytics", icon: "bar_chart", iconColor: "var(--gui-secondary)" } },
157
+ {
158
+ type: "menu",
159
+ props: {
160
+ label: "Projects",
161
+ icon: "folder",
162
+ iconColor: "var(--gui-warning)",
163
+ items: [
164
+ { label: "Project A", icon: "work", iconColor: "var(--gui-success)" },
165
+ { label: "Project B", icon: "assignment", iconColor: "var(--gui-info)" },
166
+ ],
167
+ },
168
+ },
169
+ { type: "action", props: { label: "Logout", icon: "logout", iconColor: "var(--gui-error)", action: "handleLogout" } },
170
+ ],
171
+ },
172
+ };
173
+
174
+ export const WithFooter = Template.bind({});
175
+ WithFooter.args = {
176
+ leftSidebarConfig: {
177
+ elements: [
178
+ { type: "link", props: { label: "Dashboard", icon: "dashboard", iconColor: "var(--gui-primary)" } },
179
+ { type: "link", props: { label: "Analytics", icon: "bar_chart", iconColor: "var(--gui-secondary)" } },
180
+ {
181
+ type: "menu",
182
+ props: {
183
+ label: "Projects",
184
+ icon: "folder",
185
+ iconColor: "var(--gui-warning)",
186
+ items: [
187
+ { label: "Project A", icon: "work", iconColor: "var(--gui-success)" },
188
+ { label: "Project B", icon: "assignment", iconColor: "var(--gui-info)" },
189
+ ],
190
+ },
191
+ },
192
+ { type: "action", props: { label: "Logout", icon: "logout", iconColor: "var(--gui-error)", action: "handleLogout" } },
193
+ ],
194
+ footerElements: [
195
+ { type: "link", props: { label: "Settings", icon: "settings", iconColor: "var(--gui-primary)" } },
196
+ { type: "action", props: { label: "Help", icon: "help", iconColor: "var(--gui-success)" } },
197
+ ],
198
+ },
199
+ };