this.gui 1.3.41 → 1.3.42

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 (310) hide show
  1. package/package.json +3 -2
  2. package/src/GUI.tsx +46 -0
  3. package/src/QRouter/QRegistry.tsx +53 -0
  4. package/src/QRouter/QRouter.stories.tsx +31 -0
  5. package/src/QRouter/QRouter.tsx +57 -0
  6. package/src/gui/Theme/GuiProvider.tsx +111 -0
  7. package/src/gui/Theme/Icon/Icon.resolver.tsx +29 -0
  8. package/src/gui/Theme/Icon/Icon.tsx +43 -0
  9. package/src/gui/Theme/Layout/Content/Content.resolver.tsx +0 -0
  10. package/src/gui/Theme/Layout/Content/Content.stories.tsx +88 -0
  11. package/src/gui/Theme/Layout/Content/Content.tsx +53 -0
  12. package/src/gui/Theme/Layout/Content/Content.types.tsx +40 -0
  13. package/src/gui/Theme/Layout/Footer/Footer.resolver.tsx +45 -0
  14. package/src/gui/Theme/Layout/Footer/Footer.stories.tsx +205 -0
  15. package/src/gui/Theme/Layout/Footer/Footer.tsx +337 -0
  16. package/src/gui/Theme/Layout/Footer/Footer.types.ts +40 -0
  17. package/src/gui/Theme/Layout/Layout/Layout.resolver.tsx +37 -0
  18. package/src/gui/Theme/Layout/Layout/Layout.stories.tsx +289 -0
  19. package/src/gui/Theme/Layout/Layout/Layout.tsx +117 -0
  20. package/src/gui/Theme/Layout/Layout/Layout.types.ts +57 -0
  21. package/src/gui/Theme/Layout/Layout/useLayoutBreakpoints.ts +9 -0
  22. package/src/gui/Theme/Layout/Namespace/Namespace.stories.tsx +105 -0
  23. package/src/gui/Theme/Layout/Namespace/Namespace.tsx +26 -0
  24. package/src/gui/Theme/Layout/Sidebars/LeftSidebar/LeftSidebar.resolver.tsx +87 -0
  25. package/src/gui/Theme/Layout/Sidebars/LeftSidebar/LeftSidebar.stories.tsx +199 -0
  26. package/src/gui/Theme/Layout/Sidebars/LeftSidebar/LeftSidebar.tsx +311 -0
  27. package/src/gui/Theme/Layout/Sidebars/LeftSidebar/LeftSidebar.types.ts +41 -0
  28. package/src/gui/Theme/Layout/Sidebars/LeftSidebar/SidebarToggleButton.tsx +53 -0
  29. package/src/gui/Theme/Layout/Sidebars/LeftSidebar/components/LeftSidebarAction/LeftSidebarAction.resolver.tsx +19 -0
  30. package/src/gui/Theme/Layout/Sidebars/LeftSidebar/components/LeftSidebarAction/LeftSidebarAction.tsx +107 -0
  31. package/src/gui/Theme/Layout/Sidebars/LeftSidebar/components/LeftSidebarLink/LeftSidebarLink.resolver.tsx +0 -0
  32. package/src/gui/Theme/Layout/Sidebars/LeftSidebar/components/LeftSidebarLink/LeftSidebarLink.tsx +134 -0
  33. package/src/gui/Theme/Layout/Sidebars/LeftSidebar/components/LeftSidebarLink/LeftSidebarLink.types.ts +15 -0
  34. package/src/gui/Theme/Layout/Sidebars/LeftSidebar/components/LeftSidebarMenu/LeftSidebarMenu.tsx +142 -0
  35. package/src/gui/Theme/Layout/Sidebars/LeftSidebar/components/LeftSidebarToggleButton/LeftSidebarToggleButton.tsx +23 -0
  36. package/src/gui/Theme/Layout/Sidebars/RightSidebar/RightSidebar.resolver.tsx +35 -0
  37. package/src/gui/Theme/Layout/Sidebars/RightSidebar/RightSidebar.stories.tsx +239 -0
  38. package/src/gui/Theme/Layout/Sidebars/RightSidebar/RightSidebar.tsx +319 -0
  39. package/src/gui/Theme/Layout/Sidebars/RightSidebar/RightSidebar.types.ts +17 -0
  40. package/src/gui/Theme/Layout/Sidebars/RightSidebar/components/RightSidebarAction/RightSidebarAction.tsx +102 -0
  41. package/src/gui/Theme/Layout/Sidebars/RightSidebar/components/RightSidebarLink/RightSidebarLink.tsx +132 -0
  42. package/src/gui/Theme/Layout/Sidebars/RightSidebar/components/RightSidebarMenu/RightSidebarMenu.tsx +140 -0
  43. package/src/gui/Theme/Layout/Sidebars/RightSidebar/components/RightSidebarToggleButton/RightSidebarToggleButton.tsx +22 -0
  44. package/src/gui/Theme/Layout/StickyOptions/StickyOptionsTop.stories.tsx +469 -0
  45. package/src/gui/Theme/Layout/StickyOptions/StickyOptionsTop.tsx +489 -0
  46. package/src/gui/Theme/Layout/TopBar/TopBar.resolver.tsx +86 -0
  47. package/src/gui/Theme/Layout/TopBar/TopBar.stories.tsx +350 -0
  48. package/src/gui/Theme/Layout/TopBar/TopBar.tsx +292 -0
  49. package/src/gui/Theme/Layout/TopBar/TopBar.types.ts +39 -0
  50. package/src/gui/Theme/Layout/TopBar/components/TopBarAction/TopBarAction.stories.tsx +83 -0
  51. package/src/gui/Theme/Layout/TopBar/components/TopBarAction/TopBarAction.tsx +18 -0
  52. package/src/gui/Theme/Layout/TopBar/components/TopBarAction/TopBarAction.types.ts +4 -0
  53. package/src/gui/Theme/Layout/TopBar/components/TopBarLink/TopBarLink.stories.tsx +189 -0
  54. package/src/gui/Theme/Layout/TopBar/components/TopBarLink/TopBarLink.tsx +30 -0
  55. package/src/gui/Theme/Layout/TopBar/components/TopBarLink/TopBarLink.types.ts +9 -0
  56. package/src/gui/Theme/Layout/TopBar/components/TopBarMenu/TopBarMenu.resolver.tsx +14 -0
  57. package/src/gui/Theme/Layout/TopBar/components/TopBarMenu/TopBarMenu.stories.tsx +56 -0
  58. package/src/gui/Theme/Layout/TopBar/components/TopBarMenu/TopBarMenu.tsx +123 -0
  59. package/src/gui/Theme/Layout/TopBar/components/TopBarMenu/TopBarMenu.types.ts +44 -0
  60. package/src/gui/Theme/catalog/CherryByte/CherryByte.png +0 -0
  61. package/src/gui/Theme/catalog/CherryByte/dark.tokens.ts +47 -0
  62. package/src/gui/Theme/catalog/CherryByte/light.tokens.ts +47 -0
  63. package/src/gui/Theme/catalog/CherryByte/manifest.ts +24 -0
  64. package/src/gui/Theme/catalog/GhostShell/dark.tokens.ts +43 -0
  65. package/src/gui/Theme/catalog/GhostShell/ghost.png +0 -0
  66. package/src/gui/Theme/catalog/GhostShell/light.tokens.ts +39 -0
  67. package/src/gui/Theme/catalog/GhostShell/manifest.ts +24 -0
  68. package/src/gui/Theme/catalog/LunaHex/LunaHex.png +0 -0
  69. package/src/gui/Theme/catalog/LunaHex/dark.tokens.ts +34 -0
  70. package/src/gui/Theme/catalog/LunaHex/light.tokens.ts +74 -0
  71. package/src/gui/Theme/catalog/LunaHex/manifest.ts +24 -0
  72. package/src/gui/Theme/catalog/MUI/MUI.png +0 -0
  73. package/src/gui/Theme/catalog/MUI/dark.tokens.ts +58 -0
  74. package/src/gui/Theme/catalog/MUI/light.tokens.ts +74 -0
  75. package/src/gui/Theme/catalog/MUI/manifest.ts +24 -0
  76. package/src/gui/Theme/catalog/PrinceOfDarkness/dark.tokens.ts +48 -0
  77. package/src/gui/Theme/catalog/PrinceOfDarkness/light.tokens.ts +47 -0
  78. package/src/gui/Theme/catalog/PrinceOfDarkness/manifest.ts +24 -0
  79. package/src/gui/Theme/catalog/PrinceOfDarkness/prince.png +0 -0
  80. package/src/gui/Theme/catalog/PrinceOfDarkness/princeOfDarkness.png +0 -0
  81. package/src/gui/Theme/catalog/Seafoam/dark.tokens.ts +49 -0
  82. package/src/gui/Theme/catalog/Seafoam/light.tokens.ts +47 -0
  83. package/src/gui/Theme/catalog/Seafoam/manifest.ts +24 -0
  84. package/src/gui/Theme/catalog/Seafoam/seaFoam.png +0 -0
  85. package/src/gui/Theme/catalog/neurons/dark.tokens.ts +58 -0
  86. package/src/gui/Theme/catalog/neurons/light.tokens.ts +74 -0
  87. package/src/gui/Theme/catalog/neurons/manifest.ts +24 -0
  88. package/src/gui/Theme/catalog/neurons/neurons.me.png +0 -0
  89. package/src/gui/Theme/fromTokens.ts +272 -0
  90. package/src/gui/Theme/gui.css +31 -0
  91. package/src/gui/Theme/index.ts +17 -0
  92. package/src/gui/Theme/styles/buildShadows.ts +83 -0
  93. package/src/gui/Theme/styles/theme.tokens.ts +108 -0
  94. package/src/gui/Theme/utils/catalog.ts +61 -0
  95. package/src/gui/Theme/utils/persistence.ts +66 -0
  96. package/src/gui/Theme/utils/themeUtils.ts +34 -0
  97. package/src/gui/components/atoms/AppBar/AppBar.resolver.tsx +46 -0
  98. package/src/gui/components/atoms/AppBar/AppBar.stories.tsx +251 -0
  99. package/src/gui/components/atoms/AppBar/AppBar.tsx +107 -0
  100. package/src/gui/components/atoms/AppBar/AppBar.types.ts +28 -0
  101. package/src/gui/components/atoms/Avatar/Avatar.resolver.tsx +61 -0
  102. package/src/gui/components/atoms/Avatar/Avatar.stories.tsx +36 -0
  103. package/src/gui/components/atoms/Avatar/Avatar.tsx +14 -0
  104. package/src/gui/components/atoms/Box/Box.resolver.tsx +171 -0
  105. package/src/gui/components/atoms/Box/Box.stories.tsx +263 -0
  106. package/src/gui/components/atoms/Box/Box.tsx +15 -0
  107. package/src/gui/components/atoms/Button/Button.resolver.tsx +103 -0
  108. package/src/gui/components/atoms/Button/Button.stories.tsx +219 -0
  109. package/src/gui/components/atoms/Button/Button.tsx +40 -0
  110. package/src/gui/components/atoms/Card/Card.resolver.tsx +63 -0
  111. package/src/gui/components/atoms/Card/Card.stories.tsx +54 -0
  112. package/src/gui/components/atoms/Card/Card.tsx +13 -0
  113. package/src/gui/components/atoms/CardActions/CardActions.resolver.tsx +59 -0
  114. package/src/gui/components/atoms/CardActions/CardActions.stories.tsx +32 -0
  115. package/src/gui/components/atoms/CardActions/CardActions.tsx +14 -0
  116. package/src/gui/components/atoms/CardContent/CardContent.resolver.tsx +60 -0
  117. package/src/gui/components/atoms/CardContent/CardContent.stories.tsx +34 -0
  118. package/src/gui/components/atoms/CardContent/CardContent.tsx +13 -0
  119. package/src/gui/components/atoms/CardHeader/CardHeader.resolver.tsx +68 -0
  120. package/src/gui/components/atoms/CardHeader/CardHeader.stories.tsx +40 -0
  121. package/src/gui/components/atoms/CardHeader/CardHeader.tsx +12 -0
  122. package/src/gui/components/atoms/Collapse/Collapse.resolver.tsx +85 -0
  123. package/src/gui/components/atoms/Collapse/Collapse.stories.tsx +130 -0
  124. package/src/gui/components/atoms/Collapse/Collapse.tsx +17 -0
  125. package/src/gui/components/atoms/Divider/Divider.resolver.tsx +95 -0
  126. package/src/gui/components/atoms/Divider/Divider.stories.tsx +108 -0
  127. package/src/gui/components/atoms/Divider/Divider.tsx +14 -0
  128. package/src/gui/components/atoms/Drawer/Drawer.resolver.tsx +116 -0
  129. package/src/gui/components/atoms/Drawer/Drawer.stories.tsx +223 -0
  130. package/src/gui/components/atoms/Drawer/Drawer.tsx +25 -0
  131. package/src/gui/components/atoms/Grid/Grid.resolver.tsx +33 -0
  132. package/src/gui/components/atoms/Grid/Grid.stories.tsx +136 -0
  133. package/src/gui/components/atoms/Grid/Grid.tsx +15 -0
  134. package/src/gui/components/atoms/Grid/Grid.types.ts +9 -0
  135. package/src/gui/components/atoms/IconButton/IconButton.resolver.tsx +137 -0
  136. package/src/gui/components/atoms/IconButton/IconButton.stories.tsx +134 -0
  137. package/src/gui/components/atoms/IconButton/IconButton.tsx +22 -0
  138. package/src/gui/components/atoms/Link/Link.resolver.tsx +74 -0
  139. package/src/gui/components/atoms/Link/Link.stories.tsx +157 -0
  140. package/src/gui/components/atoms/Link/Link.tsx +36 -0
  141. package/src/gui/components/atoms/List/List.resolver.tsx +94 -0
  142. package/src/gui/components/atoms/List/List.stories.tsx +137 -0
  143. package/src/gui/components/atoms/List/List.tsx +20 -0
  144. package/src/gui/components/atoms/ListItem/ListItem.resolver.tsx +88 -0
  145. package/src/gui/components/atoms/ListItem/ListItem.stories.tsx +151 -0
  146. package/src/gui/components/atoms/ListItem/ListItem.tsx +19 -0
  147. package/src/gui/components/atoms/ListItemButton/ListItemButton.resolver.tsx +214 -0
  148. package/src/gui/components/atoms/ListItemButton/ListItemButton.stories.tsx +155 -0
  149. package/src/gui/components/atoms/ListItemButton/ListItemButton.tsx +15 -0
  150. package/src/gui/components/atoms/ListItemIcon/ListItemIcon.resolver.tsx +102 -0
  151. package/src/gui/components/atoms/ListItemIcon/ListItemIcon.stories.tsx +132 -0
  152. package/src/gui/components/atoms/ListItemIcon/ListItemIcon.tsx +11 -0
  153. package/src/gui/components/atoms/ListItemText/ListItemText.resolver.tsx +112 -0
  154. package/src/gui/components/atoms/ListItemText/ListItemText.stories.tsx +156 -0
  155. package/src/gui/components/atoms/ListItemText/ListItemText.tsx +15 -0
  156. package/src/gui/components/atoms/Menu/Menu.resolver.tsx +112 -0
  157. package/src/gui/components/atoms/Menu/Menu.stories.tsx +162 -0
  158. package/src/gui/components/atoms/Menu/Menu.tsx +17 -0
  159. package/src/gui/components/atoms/MenuItem/MenuItem.resolver.tsx +183 -0
  160. package/src/gui/components/atoms/MenuItem/MenuItem.stories.tsx +134 -0
  161. package/src/gui/components/atoms/MenuItem/MenuItem.tsx +14 -0
  162. package/src/gui/components/atoms/Paper/Paper.resolver.tsx +98 -0
  163. package/src/gui/components/atoms/Paper/Paper.stories.tsx +184 -0
  164. package/src/gui/components/atoms/Paper/Paper.tsx +15 -0
  165. package/src/gui/components/atoms/Section/Section.resolver.tsx +10 -0
  166. package/src/gui/components/atoms/Section/Section.stories.tsx +189 -0
  167. package/src/gui/components/atoms/Section/Section.tsx +76 -0
  168. package/src/gui/components/atoms/Section/Section.types.tsx +24 -0
  169. package/src/gui/components/atoms/Stack/Stack.resolver.tsx +94 -0
  170. package/src/gui/components/atoms/Stack/Stack.stories.tsx +160 -0
  171. package/src/gui/components/atoms/Stack/Stack.tsx +15 -0
  172. package/src/gui/components/atoms/Surface/Surface.resolver.tsx +37 -0
  173. package/src/gui/components/atoms/Surface/Surface.tsx +49 -0
  174. package/src/gui/components/atoms/Surface/Surface.types.ts +20 -0
  175. package/src/gui/components/atoms/Switch/Switch.resolver.tsx +53 -0
  176. package/src/gui/components/atoms/Switch/Switch.stories.tsx +236 -0
  177. package/src/gui/components/atoms/Switch/Switch.tsx +22 -0
  178. package/src/gui/components/atoms/Table/Body/TableBody.tsx +7 -0
  179. package/src/gui/components/atoms/Table/Cell/TableCell.tsx +18 -0
  180. package/src/gui/components/atoms/Table/Head/TableHead.tsx +9 -0
  181. package/src/gui/components/atoms/Table/Row/TableRow.tsx +20 -0
  182. package/src/gui/components/atoms/Table/Table.resolver.tsx +77 -0
  183. package/src/gui/components/atoms/Table/Table.stories.tsx +173 -0
  184. package/src/gui/components/atoms/Table/Table.tsx +20 -0
  185. package/src/gui/components/atoms/TextField/TextField.stories.tsx +25 -0
  186. package/src/gui/components/atoms/TextField/TextField.tsx +15 -0
  187. package/src/gui/components/atoms/Toolbar/Toolbar.resolver.tsx +60 -0
  188. package/src/gui/components/atoms/Toolbar/Toolbar.stories.tsx +155 -0
  189. package/src/gui/components/atoms/Toolbar/Toolbar.tsx +16 -0
  190. package/src/gui/components/atoms/Tooltip/Tooltip.resolver.tsx +142 -0
  191. package/src/gui/components/atoms/Tooltip/Tooltip.stories.tsx +117 -0
  192. package/src/gui/components/atoms/Tooltip/Tooltip.tsx +70 -0
  193. package/src/gui/components/atoms/Typography/Typography.resolver.tsx +158 -0
  194. package/src/gui/components/atoms/Typography/Typography.stories.tsx +222 -0
  195. package/src/gui/components/atoms/Typography/Typography.tsx +27 -0
  196. package/src/gui/components/atoms/Window/Nodes/node.ts +0 -0
  197. package/src/gui/components/atoms/Window/code/block/node.tsx +0 -0
  198. package/src/gui/components/atoms/Window/code/hugging.face.api.ts +11 -0
  199. package/src/gui/components/atoms/Window/connectors/index.ts +19 -0
  200. package/src/gui/components/atoms/Window/window.stories.tsx +20 -0
  201. package/src/gui/components/atoms/Window/window.tsx +636 -0
  202. package/src/gui/components/atoms/atoms.tsx +151 -0
  203. package/src/gui/components/atoms/index.ts +2 -0
  204. package/src/gui/components/generics/Cards/Gridme.jsx +52 -0
  205. package/src/gui/components/generics/Cards/LilBox.jsx +65 -0
  206. package/src/gui/components/generics/Cards/ModuleCard.jsx +106 -0
  207. package/src/gui/components/generics/Chats/FullChatBot.jsx +223 -0
  208. package/src/gui/components/generics/Code/CodeBlock.jsx +33 -0
  209. package/src/gui/components/generics/EmojiCursor/EmojiCursor.stories.tsx +153 -0
  210. package/src/gui/components/generics/EmojiCursor/EmojiCursor.tsx +23 -0
  211. package/src/gui/components/generics/Feedback/Callout.jsx +92 -0
  212. package/src/gui/components/generics/Layout/GridX.jsx +29 -0
  213. package/src/gui/components/generics/Layout/Hero2.jsx +132 -0
  214. package/src/gui/components/generics/Layout/PageContainer.jsx +29 -0
  215. package/src/gui/components/generics/Layout/PageDivider.jsx +20 -0
  216. package/src/gui/components/generics/Layout/Section.jsx +43 -0
  217. package/src/gui/components/generics/Layout/SectionHeader.jsx +21 -0
  218. package/src/gui/components/generics/Media/Img.jsx +58 -0
  219. package/src/gui/components/generics/Media/VideoEmbed.jsx +51 -0
  220. package/src/gui/components/generics/Organization/TableOfContents.jsx +51 -0
  221. package/src/gui/components/generics/Organization/Tabs.jsx +45 -0
  222. package/src/gui/components/generics/Text/TextList.jsx +41 -0
  223. package/src/gui/components/generics/Text/TextParagraph.jsx +28 -0
  224. package/src/gui/components/generics/Text/TextQuote.jsx +23 -0
  225. package/src/gui/components/generics/Text/TextTitle.jsx +44 -0
  226. package/src/gui/components/molecules/Dialog/Dialog.stories.tsx +18 -0
  227. package/src/gui/components/molecules/Dialog/Dialog.tsx +5 -0
  228. package/src/gui/components/molecules/Hero/Hero.stories.tsx +140 -0
  229. package/src/gui/components/molecules/Hero/Hero.tsx +152 -0
  230. package/src/gui/components/molecules/Hero/Hero.types.tsx +18 -0
  231. package/src/gui/components/molecules/Modal/Modal.resolver.tsx +38 -0
  232. package/src/gui/components/molecules/Modal/Modal.stories.tsx +82 -0
  233. package/src/gui/components/molecules/Modal/Modal.tsx +110 -0
  234. package/src/gui/components/molecules/Modal/Modal.types.ts +29 -0
  235. package/src/gui/components/molecules/Page/Page.stories.tsx +135 -0
  236. package/src/gui/components/molecules/Page/Page.tsx +94 -0
  237. package/src/gui/components/molecules/Theme/ThemeModeToggle/ThemeModeToggle.resolver.tsx +58 -0
  238. package/src/gui/components/molecules/Theme/ThemeModeToggle/ThemeModeToggle.stories.tsx +133 -0
  239. package/src/gui/components/molecules/Theme/ThemeModeToggle/ThemeModeToggle.tsx +101 -0
  240. package/src/gui/components/molecules/Theme/ThemeModeToggle/ThemeModeToggle.types.ts +29 -0
  241. package/src/gui/components/molecules/Theme/ThemesCatalog/ThemesCatalog.resolver.tsx +15 -0
  242. package/src/gui/components/molecules/Theme/ThemesCatalog/ThemesCatalog.stories.tsx +88 -0
  243. package/src/gui/components/molecules/Theme/ThemesCatalog/ThemesCatalog.tsx +167 -0
  244. package/src/gui/components/molecules/Theme/ThemesCatalog/ThemesCatalog.types.ts +34 -0
  245. package/src/gui/components/molecules/molecules.ts +49 -0
  246. package/src/gui/components/organisms/Blockchain/Blocks/BlocksTable.tsx +119 -0
  247. package/src/gui/components/organisms/Blockchain/Usernames/Identities.stories.tsx +20 -0
  248. package/src/gui/components/organisms/Blockchain/Usernames/QR.tsx +566 -0
  249. package/src/gui/components/organisms/Blockchain/Usernames/Usernames.tsx +448 -0
  250. package/src/gui/components/organisms/Blockchain/Usernames/identities.tsx +710 -0
  251. package/src/gui/components/organisms/Blockchain/blockchain.stories.tsx +17 -0
  252. package/src/gui/components/organisms/Blockchain/blockchain.tsx +368 -0
  253. package/src/gui/components/organisms/Blockchain/scripts/connection.ts +82 -0
  254. package/src/gui/components/organisms/Blockchain/scripts/match_face.ts +143 -0
  255. package/src/gui/components/organisms/HighLighter/HighLighter.stories.tsx +168 -0
  256. package/src/gui/components/organisms/HighLighter/HighLighter.tsx +420 -0
  257. package/src/gui/components/organisms/HighLighter/HighLightsDrawer.tsx +197 -0
  258. package/src/gui/components/organisms/IdentityNoise/FaceRecognition/FaceRecognition.stories.tsx +312 -0
  259. package/src/gui/components/organisms/IdentityNoise/FaceRecognition/FaceRecognition.tsx +765 -0
  260. package/src/gui/components/organisms/IdentityNoise/FaceRecognition/modules/useFaceCameraPermission.ts +70 -0
  261. package/src/gui/components/organisms/IdentityNoise/FaceRecognition/modules/useFaceLandmarker.ts +106 -0
  262. package/src/gui/components/organisms/IdentityNoise/FaceRecognition/modules/useFaceOverlay.ts +489 -0
  263. package/src/gui/components/organisms/IdentityNoise/FaceRecognition/modules/useFaceTemplate.ts +32 -0
  264. package/src/gui/components/organisms/IdentityNoise/FaceRecognition/modules/useFaceTemplateBurst.ts +178 -0
  265. package/src/gui/components/organisms/IdentityNoise/FaceRecognition/modules/verifyTemplate.ts +136 -0
  266. package/src/gui/components/organisms/IdentityNoise/IdentityNoise.tsx +403 -0
  267. package/src/gui/components/organisms/IdentityNoise/IndentityNoise.stories.tsx +15 -0
  268. package/src/gui/components/organisms/IdentityNoise/Noise/Noise.stories.tsx +206 -0
  269. package/src/gui/components/organisms/IdentityNoise/Noise/Noise.tsx +394 -0
  270. package/src/gui/components/organisms/IdentityNoise/Triad/QR.tsx +566 -0
  271. package/src/gui/components/organisms/IdentityNoise/Triad/Tiad.stories.tsx +6 -0
  272. package/src/gui/components/organisms/IdentityNoise/Triad/Triad.tsx +917 -0
  273. package/src/gui/components/organisms/IdentityNoise/Triad/handleCleak.ts +0 -0
  274. package/src/gui/components/organisms/IdentityNoise/Triad/identity.ts +31 -0
  275. package/src/gui/components/organisms/IdentityNoise/Triad/me/fundamentals/vectors/vectors.tsx +252 -0
  276. package/src/gui/components/organisms/IdentityNoise/Triad/me/me.stories.tsx +314 -0
  277. package/src/gui/components/organisms/IdentityNoise/Triad/me/me.tsx +0 -0
  278. package/src/gui/components/organisms/organisms.ts +15 -0
  279. package/src/gui/contexts/InsetsContext.tsx +40 -0
  280. package/src/gui/contexts/LeftSidebarContext.tsx +20 -0
  281. package/src/gui/contexts/RightSidebarContext.tsx +25 -0
  282. package/src/gui/contexts/ThemeContext.ts +34 -0
  283. package/src/gui/contexts/index.ts +4 -0
  284. package/src/gui/hooks/index.ts +11 -0
  285. package/src/gui/hooks/resolveColorToken.ts +39 -0
  286. package/src/gui/hooks/useCodeGen.ts +12 -0
  287. package/src/gui/hooks/useGuiMediaQuery.ts +18 -0
  288. package/src/gui/hooks/useGuiTheme.ts +18 -0
  289. package/src/gui/hooks/useInsets.ts +26 -0
  290. package/src/gui/hooks/useIsMobile.ts +13 -0
  291. package/src/gui/hooks/useIsTouchDevice.ts +25 -0
  292. package/src/gui/hooks/useLeftSidebar.ts +10 -0
  293. package/src/gui/hooks/useRightSidebar.ts +12 -0
  294. package/src/gui/hooks/useViewportKey.ts +19 -0
  295. package/src/gui/hooks/useViewportProp.ts +17 -0
  296. package/src/gui/registry/GuiRegistry.ts +19 -0
  297. package/src/gui/registry/factory.ts +12 -0
  298. package/src/gui/registry/index.ts +3 -0
  299. package/src/gui/registry/types.ts +6 -0
  300. package/src/gui/utils/nodeID.ts +11 -0
  301. package/src/registry/GuiRegistry.ts +19 -0
  302. package/src/stories/01.Home.mdx +22 -0
  303. package/src/stories/02.Understanding.This.GUI.mdx +149 -0
  304. package/src/stories/Theme/Palette.stories.tsx +86 -0
  305. package/src/stories/Theme/ThemeViewer.stories.tsx +91 -0
  306. package/src/stories/Theme/Typography.stories.jsx +211 -0
  307. package/src/stories/assets/this.GUI.png +0 -0
  308. package/src/types/gui.d.ts +67 -0
  309. package/src/types/theme.d.ts +191 -0
  310. package/src/types/viewport.ts +132 -0
@@ -0,0 +1,15 @@
1
+ import ThemesCatalog from './ThemesCatalog';
2
+ import type { ThemesCatalogResolverSpec } from './ThemesCatalog.types';
3
+
4
+ const resolver = {
5
+ type: 'ThemesCatalog',
6
+ resolve: (props?: ThemesCatalogResolverSpec) => {
7
+ const { variant, sx } = props || {};
8
+ return {
9
+ component: () => <ThemesCatalog variant={variant} sx={sx} />,
10
+ props,
11
+ };
12
+ },
13
+ };
14
+
15
+ export default resolver;
@@ -0,0 +1,88 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import ThemesCatalog from './ThemesCatalog';
3
+
4
+ // ======================= Meta =======================
5
+ const meta: Meta<typeof ThemesCatalog> = {
6
+ title: 'Theme/ThemesCatalog',
7
+ component: ThemesCatalog,
8
+ tags: ['autodocs'],
9
+ decorators: [
10
+ (Story) => (
11
+ <div style={{ padding: 16, minHeight: 320 }}>
12
+ <Story />
13
+ </div>
14
+ ),
15
+ ],
16
+ parameters: {
17
+ docs: {
18
+ description: {
19
+ component: `
20
+ The **ThemesCatalog** component renders a visual interface to explore and select available GUI themes for your application.
21
+
22
+ It fetches all theme configurations from the \`getGuiThemes()\` utility and displays them using a visually rich card interface. You can toggle between **grid** and **list** layouts and switch between light/dark previews per theme. When a theme is selected, it is applied globally via the context provided by \`useThemeContext()\`.
23
+
24
+ ---
25
+ ## Features
26
+ - Visual layout for theme browsing.
27
+ - Switch between **grid** and **list** variants.
28
+ - Light/dark mode preview toggle.
29
+ - Swatches preview for key palette values: \`primary\`, \`secondary\`, and \`background\`.
30
+ - Selectable themes that apply across your GUI via context.
31
+ - JSON-compatible configuration for declarative UI building.
32
+ - Fully themed with **This.GUI** primitives.
33
+
34
+ ---
35
+ ## Props
36
+ - \`variant?: 'grid' | 'list'\` — controls layout format. Defaults to \`grid\`.
37
+ - \`sx?: SxProps\` — accepts style overrides via MUI’s \`sx\` prop.
38
+
39
+ ---
40
+ ## Basic Usage
41
+ ~~~jsx
42
+ <ThemesCatalog variant="grid" />
43
+ <ThemesCatalog variant="list" />
44
+ ~~~
45
+
46
+ ## Declarative JSON Configuration
47
+ ~~~json
48
+ {
49
+ "type": "ThemesCatalog",
50
+ "props": {
51
+ "variant": "list"
52
+ }
53
+ }
54
+ ~~~
55
+
56
+ This component is ideal for apps that allow users to select their visual theme from a set of predefined theme options. It pairs well with This.GUI’s theme management context and is useful in both developer-facing configuration tools and end-user customization interfaces.
57
+ `,
58
+ },
59
+ },
60
+ },
61
+ argTypes: {
62
+ variant: {
63
+ control: { type: 'radio' },
64
+ options: ['grid', 'list'],
65
+ description: 'Choose layout variant',
66
+ },
67
+ },
68
+ args: {
69
+ variant: 'grid',
70
+ },
71
+ };
72
+
73
+ export default meta;
74
+ type Story = StoryObj<typeof ThemesCatalog>;
75
+
76
+ // ======================= Stories =======================
77
+ export const Playground: Story = {
78
+ args: {
79
+ variant: 'grid',
80
+ },
81
+ };
82
+
83
+ export const ListVariant: Story = {
84
+ name: 'List layout',
85
+ args: {
86
+ variant: 'list',
87
+ },
88
+ };
@@ -0,0 +1,167 @@
1
+ // ThemesCatalog.tsx
2
+ import type { SxProps, Theme } from '@mui/material/styles';
3
+ import type { ThemesCatalogProps } from './ThemesCatalog.types';
4
+ import { getGuiThemes } from '@/gui/Theme/utils/catalog';
5
+ import type { ThemeManifest } from '@/types/theme';
6
+ import Grid from '@/gui/atoms/Grid/Grid';
7
+ import Card from '@/gui/atoms/Card/Card';
8
+ import CardHeader from '@/gui/atoms/CardHeader/CardHeader';
9
+ import CardContent from '@/gui/atoms/CardContent/CardContent';
10
+ import CardActions from '@/gui/atoms/CardActions/CardActions';
11
+ import Typography from '@/gui/atoms/Typography/Typography';
12
+ import Box from '@/gui/atoms/Box/Box';
13
+ import Avatar from '@/gui/atoms/Avatar/Avatar';
14
+ import Checkbox from '@mui/material/Checkbox';
15
+ import Tooltip from '@mui/material/Tooltip';
16
+ import MuiSwitch from '@mui/material/Switch';
17
+ import Icon from '@/gui/Theme/Icon/Icon';
18
+ import { useThemeContext } from '@/gui/contexts/ThemeContext';
19
+ function getPreviewSwatches(item: ThemeManifest) {
20
+ const swatches = [];
21
+ const lightMode = item.mode?.light;
22
+ if (typeof lightMode === 'object' && lightMode?.palette) {
23
+ if (lightMode.palette.primary?.main) {
24
+ swatches.push({ label: 'Primary', value: lightMode.palette.primary.main });
25
+ }
26
+ if (lightMode.palette.secondary?.main) {
27
+ swatches.push({ label: 'Secondary', value: lightMode.palette.secondary.main });
28
+ }
29
+ if (lightMode.palette.background?.default) {
30
+ swatches.push({ label: 'Background', value: lightMode.palette.background.default });
31
+ }
32
+ }
33
+ return swatches;
34
+ }
35
+ export default function ThemesCatalog({ sx, variant = 'grid' }: ThemesCatalogProps = {}) {
36
+ const themes = getGuiThemes();
37
+ const { setMode, mode: activeMode, themeId, setThemeId } = useThemeContext();
38
+ if (!themes || themes.length === 0) {
39
+ return <Typography>No themes available.</Typography>;
40
+ }
41
+
42
+ // Shared card rendering logic as a helper
43
+ const ThemeCard = ({ theme }: { theme: ThemeManifest }) => {
44
+ const light = Boolean(theme.mode?.light);
45
+ const dark = Boolean(theme.mode?.dark);
46
+ const isDarkSelected = activeMode === 'dark';
47
+ return (
48
+ <Box sx={{ position: 'relative' }}>
49
+ <Card
50
+ sx={{
51
+ p: 1,
52
+ display: 'flex',
53
+ flexDirection: 'column',
54
+ justifyContent: 'space-between',
55
+ backgroundColor: 'background.default',
56
+ border: (theme.mode.light as any).palette?.primary?.main
57
+ ? `1px solid ${(theme.mode.light as any).palette.primary.main}`
58
+ : '1px solid rgba(0,0,0,0.04)',
59
+ borderRadius: 1.5,
60
+ boxShadow: 'none',
61
+ height: '100%',
62
+ gap: 0.25,
63
+ }}
64
+ >
65
+ <CardHeader
66
+ sx={{ mb: 0, '& .MuiCardHeader-content': { overflow: 'hidden' } }}
67
+ avatar={
68
+ theme.badgeUrl ? (
69
+ <Avatar src={theme.badgeUrl} alt={theme.themeName} />
70
+ ) : (
71
+ <Avatar>{theme.themeName?.[0] ?? 'T'}</Avatar>
72
+ )
73
+ }
74
+ title={theme.themeName}
75
+ subheader={theme.author}
76
+ />
77
+ <Box sx={{ display: 'flex', gap: 0.75, flexWrap: 'wrap', mt: 1 }}>
78
+ {getPreviewSwatches(theme).map((sw, i) => (
79
+ <Tooltip key={`${theme.themeId}-swatch-${i}`} title={sw.label}>
80
+ <Box
81
+ sx={{
82
+ width: 14,
83
+ height: 14,
84
+ borderRadius: 1,
85
+ ...(String(sw.value).includes('gradient')
86
+ ? { background: sw.value }
87
+ : { bgcolor: sw.value }),
88
+ border: '1px solid rgba(0,0,0,0.2)',
89
+ }}
90
+ />
91
+ </Tooltip>
92
+ ))}
93
+ </Box>
94
+ <Box sx={{ position: 'absolute', top: 8, right: 8 }}>
95
+ <Checkbox
96
+ size="small"
97
+ color="primary"
98
+ checked={theme.themeId === themeId}
99
+ onChange={() => {
100
+ if (typeof setThemeId === 'function') {
101
+ setThemeId(theme.themeId ?? '');
102
+ }
103
+ if (typeof setMode === 'function') {
104
+ const fallbackMode: 'light' | 'dark' = theme.defaultMode === 'dark' ? 'dark' : 'light';
105
+ setMode(fallbackMode);
106
+ }
107
+ }}
108
+ sx={{
109
+ p: 0.5,
110
+ backgroundColor: 'background.paper',
111
+ borderRadius: 1,
112
+ }}
113
+ />
114
+ </Box>
115
+ <CardContent sx={{ p: 0.75, pt: 0.25 }}>
116
+ <Typography variant="body2" color="text.secondary">
117
+ {theme.description}
118
+ </Typography>
119
+ {theme.themeId === themeId && (
120
+ <Box sx={{ display: 'flex', justifyContent: 'flex-end', alignItems: 'center', mt: 0.5, mb: 0.25 }}>
121
+ <Icon name="light_mode" style={{ opacity: light ? 1 : 0.4 }} />
122
+ <MuiSwitch
123
+ size="small"
124
+ checked={isDarkSelected}
125
+ disabled={!light || !dark}
126
+ onChange={(e) => {
127
+ const checked = e.target.checked;
128
+ const nextMode = checked ? 'dark' : 'light';
129
+ if (typeof setMode === 'function') {
130
+ try { setMode(nextMode); } catch {}
131
+ }
132
+ }}
133
+ inputProps={{ 'aria-label': 'Toggle light/dark mode' }}
134
+ />
135
+ <Icon name="dark_mode" style={{ opacity: dark ? 1 : 0.4 }} />
136
+ </Box>
137
+ )}
138
+ </CardContent>
139
+ <CardActions>
140
+ </CardActions>
141
+ </Card>
142
+ </Box>
143
+ );
144
+ };
145
+
146
+ if (variant === 'list') {
147
+ return (
148
+ <Box sx={{ display: 'flex', flexDirection: 'column', gap: 2, ...sx }}>
149
+ {themes.map((theme: ThemeManifest) => (
150
+ <Box key={theme.themeId}>
151
+ <ThemeCard theme={theme} />
152
+ </Box>
153
+ ))}
154
+ </Box>
155
+ );
156
+ }
157
+
158
+ return (
159
+ <Grid container spacing={2} sx={sx}>
160
+ {themes.map((theme: ThemeManifest) => (
161
+ <Grid item key={theme.themeId} xs={12} sm={6} md={4} lg={3}>
162
+ <ThemeCard theme={theme} />
163
+ </Grid>
164
+ ))}
165
+ </Grid>
166
+ );
167
+ }
@@ -0,0 +1,34 @@
1
+ import type { SxProps, Theme } from '@mui/system';
2
+ export type ThemesCatalogVariant = 'grid' | 'list';
3
+
4
+ /**
5
+ * Props passed directly to the ThemesCatalog React component.
6
+ */
7
+ export interface ThemesCatalogProps {
8
+ /**
9
+ * Whether to display the themes as a grid or list.
10
+ */
11
+ variant?: ThemesCatalogVariant;
12
+ /**
13
+ * Custom styles for the component container.
14
+ */
15
+ sx?: SxProps<Theme>;
16
+ }
17
+
18
+ /**
19
+ * JSON/declarative spec for ThemesCatalog used in resolvers.
20
+ * This is the shape accepted by the resolver when rendering via config.
21
+ */
22
+ export interface ThemesCatalogResolverSpec {
23
+ type?: 'ThemesCatalog';
24
+
25
+ /**
26
+ * Whether to render the themes in a grid or list layout.
27
+ */
28
+ variant?: ThemesCatalogVariant;
29
+
30
+ /**
31
+ * Styles applied to the root element.
32
+ */
33
+ sx?: SxProps<Theme>;
34
+ }
@@ -0,0 +1,49 @@
1
+ /*
2
+ * This.GUI — Molecules registry
3
+ * Mid-level components composed from atoms and basic primitives.
4
+ * Centralise exports here so higher layers (organisms/layouts/apps)
5
+ * can import from a single namespace instead of deep paths.
6
+ */
7
+
8
+ import DialogContent, { DialogProps } from './Dialog/Dialog';
9
+ import { Hero } from './Hero/Hero';
10
+ import type { HeroProps } from './Hero/Hero.types';
11
+ import Modal from './Modal/Modal';
12
+ import Page, { PageProps } from './Page/Page';
13
+ import ThemeModeToggle from './Theme/ThemeModeToggle/ThemeModeToggle';
14
+ import type { ThemeModeToggleProps } from './Theme/ThemeModeToggle/ThemeModeToggle.types';
15
+ import ThemesCatalog from './Theme/ThemesCatalog/ThemesCatalog';
16
+ import type { ThemesCatalogProps } from './Theme/ThemesCatalog/ThemesCatalog.types';
17
+
18
+ const Theme = {
19
+ ThemeModeToggle,
20
+ ThemesCatalog,
21
+ };
22
+
23
+ const Molecules = {
24
+ Dialog: DialogContent,
25
+ Hero,
26
+ Modal,
27
+ Page,
28
+ Theme,
29
+ };
30
+
31
+ export {
32
+ DialogContent as Dialog,
33
+ Hero,
34
+ Modal,
35
+ Page,
36
+ ThemeModeToggle,
37
+ ThemesCatalog,
38
+ Theme,
39
+ };
40
+
41
+ export type {
42
+ DialogProps,
43
+ PageProps,
44
+ HeroProps,
45
+ ThemeModeToggleProps,
46
+ ThemesCatalogProps,
47
+ };
48
+
49
+ export default Molecules as unknown as Record<string, any>;
@@ -0,0 +1,119 @@
1
+ import React from 'react';
2
+ import {
3
+ Box,
4
+ Table,
5
+ TableHead,
6
+ TableRow,
7
+ TableCell,
8
+ TableBody,
9
+ Typography } from '@/gui/components/atoms';
10
+
11
+ export interface BlocksTableEntry {
12
+ id: number;
13
+ blockId: string;
14
+ timestamp: number;
15
+ namespace: string;
16
+ identityHash: string;
17
+ expression: string;
18
+ json: string;
19
+ }
20
+
21
+ export function BlocksTable({ endpoint }: { endpoint: string }) {
22
+ const [data, setData] = React.useState<BlocksTableEntry[]>([]);
23
+
24
+ React.useEffect(() => {
25
+ async function loadBlocks() {
26
+ const base = String(endpoint || '').replace(/\/+$/, '');
27
+ if (!base) {
28
+ setData([]);
29
+ return;
30
+ }
31
+
32
+ const tryFetchJson = async (url: string) => {
33
+ const res = await fetch(url, { method: 'GET' });
34
+ const text = await res.text();
35
+ const ct = res.headers.get('content-type') || '';
36
+ const looksJson =
37
+ ct.includes('application/json') ||
38
+ text.trim().startsWith('{') ||
39
+ text.trim().startsWith('[');
40
+
41
+ if (!res.ok) throw new Error(`HTTP ${res.status}`);
42
+ if (!looksJson) throw new Error('Not JSON');
43
+
44
+ return JSON.parse(text);
45
+ };
46
+
47
+ try {
48
+ let json: any;
49
+ try {
50
+ json = await tryFetchJson(`${base}/blocks`);
51
+ } catch {
52
+ // Fallback: some nodes expose blocks at the root URL
53
+ json = await tryFetchJson(`${base}/`);
54
+ }
55
+
56
+ if (Array.isArray(json)) setData(json as any);
57
+ else if (Array.isArray(json?.blocks)) setData(json.blocks);
58
+ else if (Array.isArray(json?.data)) setData(json.data);
59
+ else setData([]);
60
+ } catch (e) {
61
+ console.error('[BlocksTable] Failed to load blocks:', e);
62
+ setData([]);
63
+ }
64
+ }
65
+ loadBlocks();
66
+ }, [endpoint]);
67
+
68
+ return (
69
+ <Box
70
+ sx={{
71
+ borderRadius: 2,
72
+ border: '1px solid',
73
+ borderColor: 'divider',
74
+ background: 'background.nav',
75
+ overflow: 'hidden',
76
+ }}
77
+ >
78
+ <Table size="small">
79
+ <TableHead>
80
+ <TableRow sx={{ background: 'background.paper' }}>
81
+ <TableCell><Typography fontWeight={700}>ID</Typography></TableCell>
82
+ <TableCell><Typography fontWeight={700}>Block ID</Typography></TableCell>
83
+ <TableCell><Typography fontWeight={700}>Timestamp</Typography></TableCell>
84
+ <TableCell><Typography fontWeight={700}>Namespace</Typography></TableCell>
85
+ <TableCell><Typography fontWeight={700}>Identity</Typography></TableCell>
86
+ <TableCell><Typography fontWeight={700}>Expression</Typography></TableCell>
87
+ </TableRow>
88
+ </TableHead>
89
+
90
+ <TableBody>
91
+ {data.length === 0 && (
92
+ <TableRow>
93
+ <TableCell colSpan={6}>
94
+ <Typography sx={{ opacity: 0.6, py: 3 }}>No blocks yet.</Typography>
95
+ </TableCell>
96
+ </TableRow>
97
+ )}
98
+
99
+ {data.map((r) => (
100
+ <TableRow key={r.blockId}>
101
+ <TableCell>{r.id}</TableCell>
102
+ <TableCell sx={{ maxWidth: 160, overflow: 'hidden', textOverflow: 'ellipsis' }}>
103
+ {r.blockId}
104
+ </TableCell>
105
+ <TableCell>{new Date(r.timestamp).toLocaleString()}</TableCell>
106
+ <TableCell>{r.namespace}</TableCell>
107
+ <TableCell sx={{ fontFamily: 'monospace' }}>
108
+ {r.identityHash}
109
+ </TableCell>
110
+ <TableCell>{r.expression}</TableCell>
111
+ </TableRow>
112
+ ))}
113
+ </TableBody>
114
+ </Table>
115
+ </Box>
116
+ );
117
+ }
118
+
119
+ export default BlocksTable;
@@ -0,0 +1,20 @@
1
+ import React from "react";
2
+ import type { Meta, StoryObj } from "@storybook/react";
3
+
4
+ import Identities from "./identities";
5
+
6
+ const meta: Meta<typeof Identities> = {
7
+ title: "Identity Noise/Identities",
8
+ component: Identities,
9
+ parameters: {
10
+ layout: "centered",
11
+ },
12
+ };
13
+
14
+ export default meta;
15
+
16
+ type Story = StoryObj<typeof Identities>;
17
+
18
+ export const Default: Story = {
19
+ render: () => <Identities />,
20
+ };