this.gui 1.0.15 → 1.0.17

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 (296) hide show
  1. package/README.md +178 -49
  2. package/dist/style.css +1 -1
  3. package/dist/this-gui.es.js +4645 -1922
  4. package/dist/this-gui.umd.js +34 -22
  5. package/package.json +14 -14
  6. package/src/App.jsx +53 -21
  7. package/src/Page.jsx +28 -0
  8. package/src/SiteBuilder.jsx +39 -0
  9. package/src/example.json +43 -0
  10. package/src/index.mdx +10 -0
  11. package/src/main.jsx +11 -14
  12. package/src/scripts/ComponentRegistry.js +70 -0
  13. package/src/scripts/postinstall.js +40 -1
  14. package/src/scripts/renderComponents.js +11 -0
  15. package/src/stories/Atoms/Alert/Alert.css +196 -14
  16. package/src/stories/Atoms/Alert/Alert.jsx +43 -28
  17. package/src/stories/Atoms/Alert/Alert.stories.jsx +154 -28
  18. package/src/stories/Atoms/Audio/Audio.css +246 -16
  19. package/src/stories/Atoms/Audio/Audio.jsx +204 -29
  20. package/src/stories/Atoms/Audio/Audio.stories.jsx +178 -28
  21. package/src/stories/Atoms/Badge/Badge.css +235 -15
  22. package/src/stories/Atoms/Badge/Badge.jsx +44 -31
  23. package/src/stories/Atoms/Badge/Badge.stories.jsx +109 -29
  24. package/src/stories/Atoms/Button/Button.css +106 -45
  25. package/src/stories/Atoms/Button/Button.jsx +31 -82
  26. package/src/stories/Atoms/Button/Button.stories.jsx +170 -40
  27. package/src/stories/Atoms/Caption/Caption.css +156 -16
  28. package/src/stories/Atoms/Caption/Caption.jsx +62 -31
  29. package/src/stories/Atoms/Caption/Caption.stories.jsx +194 -28
  30. package/src/stories/Atoms/Checkbox/Checkbox.css +168 -15
  31. package/src/stories/Atoms/Checkbox/Checkbox.jsx +73 -31
  32. package/src/stories/Atoms/Checkbox/Checkbox.stories.jsx +98 -27
  33. package/src/stories/Atoms/Container/Container.css +75 -15
  34. package/src/stories/Atoms/Container/Container.jsx +41 -28
  35. package/src/stories/Atoms/Container/Container.stories.jsx +92 -29
  36. package/src/stories/Atoms/Divider/Divider.css +131 -13
  37. package/src/stories/Atoms/Divider/Divider.jsx +54 -33
  38. package/src/stories/Atoms/Divider/Divider.stories.jsx +93 -29
  39. package/src/stories/Atoms/Grid/Grid.css +160 -0
  40. package/src/stories/Atoms/Grid/Grid.jsx +43 -0
  41. package/src/stories/Atoms/Grid/Grid.stories.jsx +84 -0
  42. package/src/stories/Atoms/Heading/Heading.css +99 -16
  43. package/src/stories/Atoms/Heading/Heading.jsx +57 -29
  44. package/src/stories/Atoms/Heading/Heading.stories.jsx +117 -28
  45. package/src/stories/Atoms/Icon/Icon.css +219 -27
  46. package/src/stories/Atoms/Icon/Icon.jsx +67 -38
  47. package/src/stories/Atoms/Icon/Icon.stories.jsx +156 -51
  48. package/src/stories/Atoms/Image/Image.css +231 -15
  49. package/src/stories/Atoms/Image/Image.jsx +166 -32
  50. package/src/stories/Atoms/Image/Image.stories.jsx +319 -28
  51. package/src/stories/Atoms/Label/Label.css +158 -16
  52. package/src/stories/Atoms/Label/Label.jsx +61 -31
  53. package/src/stories/Atoms/Label/Label.stories.jsx +167 -28
  54. package/src/stories/Atoms/Link/Link.css +58 -16
  55. package/src/stories/Atoms/Link/Link.jsx +73 -32
  56. package/src/stories/Atoms/Link/Link.stories.jsx +141 -29
  57. package/src/stories/Atoms/Loader/Loader.css +93 -16
  58. package/src/stories/Atoms/Loader/Loader.jsx +47 -30
  59. package/src/stories/Atoms/Loader/Loader.stories.jsx +86 -28
  60. package/src/stories/Atoms/Logo/Logo.css +94 -0
  61. package/src/stories/Atoms/Logo/Logo.jsx +53 -0
  62. package/src/stories/Atoms/Logo/Logo.stories.jsx +120 -0
  63. package/src/stories/Atoms/Paragraph/Paragraph.css +167 -16
  64. package/src/stories/Atoms/Paragraph/Paragraph.jsx +67 -31
  65. package/src/stories/Atoms/Paragraph/Paragraph.stories.jsx +130 -28
  66. package/src/stories/Atoms/ProgressBar/ProgressBar.css +115 -17
  67. package/src/stories/Atoms/ProgressBar/ProgressBar.jsx +30 -31
  68. package/src/stories/Atoms/ProgressBar/ProgressBar.stories.jsx +72 -27
  69. package/src/stories/Atoms/RadioButton/RadioButton.css +118 -17
  70. package/src/stories/Atoms/RadioButton/RadioButton.jsx +77 -31
  71. package/src/stories/Atoms/RadioButton/RadioButton.stories.jsx +99 -27
  72. package/src/stories/Atoms/Range/Range.css +169 -0
  73. package/src/stories/Atoms/Range/Range.jsx +87 -0
  74. package/src/stories/Atoms/Range/Range.stories.jsx +110 -0
  75. package/src/stories/Atoms/Section/Section.css +268 -0
  76. package/src/stories/Atoms/Section/Section.jsx +63 -0
  77. package/src/stories/Atoms/Section/Section.stories.jsx +46 -0
  78. package/src/stories/Atoms/Select/Select.css +74 -16
  79. package/src/stories/Atoms/Select/Select.jsx +62 -30
  80. package/src/stories/Atoms/Select/Select.stories.jsx +95 -27
  81. package/src/stories/Atoms/Slider/Slider.css +77 -16
  82. package/src/stories/Atoms/Slider/Slider.jsx +119 -31
  83. package/src/stories/Atoms/Slider/Slider.stories.jsx +77 -28
  84. package/src/stories/Atoms/Snackbar/Snackbar.css +297 -13
  85. package/src/stories/Atoms/Snackbar/Snackbar.jsx +62 -31
  86. package/src/stories/Atoms/Snackbar/Snackbar.stories.jsx +63 -26
  87. package/src/stories/Atoms/Spacer/Spacer.css +101 -16
  88. package/src/stories/Atoms/Spacer/Spacer.jsx +26 -32
  89. package/src/stories/Atoms/Spacer/Spacer.stories.jsx +50 -30
  90. package/src/stories/Atoms/Spinner/Spinner.css +97 -16
  91. package/src/stories/Atoms/Spinner/Spinner.jsx +50 -26
  92. package/src/stories/Atoms/Spinner/Spinner.stories.jsx +47 -30
  93. package/src/stories/Atoms/Tag/Tag.css +97 -14
  94. package/src/stories/Atoms/Tag/Tag.jsx +58 -24
  95. package/src/stories/Atoms/Tag/Tag.stories.jsx +55 -29
  96. package/src/stories/Atoms/TextArea/TextArea.css +85 -15
  97. package/src/stories/Atoms/TextArea/TextArea.jsx +108 -31
  98. package/src/stories/Atoms/TextArea/TextArea.stories.jsx +25 -30
  99. package/src/stories/Atoms/TextInput/TextInput.css +90 -17
  100. package/src/stories/Atoms/TextInput/TextInput.jsx +119 -27
  101. package/src/stories/Atoms/TextInput/TextInput.stories.jsx +53 -25
  102. package/src/stories/Atoms/Toggle/Toggle.css +106 -17
  103. package/src/stories/Atoms/Toggle/Toggle.jsx +56 -28
  104. package/src/stories/Atoms/Toggle/Toggle.stories.jsx +24 -30
  105. package/src/stories/Atoms/Tooltip/Tooltip.css +368 -14
  106. package/src/stories/Atoms/Tooltip/Tooltip.jsx +33 -28
  107. package/src/stories/Atoms/Tooltip/Tooltip.stories.jsx +42 -31
  108. package/src/stories/Atoms/Video/Video.css +28 -18
  109. package/src/stories/Atoms/Video/Video.jsx +66 -29
  110. package/src/stories/Atoms/Video/Video.stories.jsx +30 -30
  111. package/src/stories/Atoms/index.js +9 -2
  112. package/src/stories/Atoms/meta_Atoms.js +6 -1
  113. package/src/stories/Layouts/Accordion/Accordion.css +293 -0
  114. package/src/stories/Layouts/Accordion/Accordion.jsx +74 -0
  115. package/src/stories/Layouts/Accordion/Accordion.stories.jsx +39 -0
  116. package/src/stories/Layouts/Flexbox/Flexbox.css +16 -0
  117. package/src/stories/Layouts/Flexbox/Flexbox.jsx +11 -0
  118. package/src/stories/Layouts/Flexbox/Flexbox.stories.jsx +28 -0
  119. package/src/stories/Layouts/Footer/Footer.css +16 -0
  120. package/src/stories/Layouts/Footer/Footer.jsx +31 -0
  121. package/src/stories/Layouts/Footer/Footer.stories.jsx +28 -0
  122. package/src/stories/Layouts/Header/Header.css +16 -0
  123. package/src/stories/Layouts/Header/Header.jsx +31 -0
  124. package/src/stories/Layouts/Header/Header.stories.jsx +28 -0
  125. package/src/stories/Layouts/HeroBanner/HeroBanner.css +16 -0
  126. package/src/stories/Layouts/HeroBanner/HeroBanner.jsx +31 -0
  127. package/src/stories/Layouts/HeroBanner/HeroBanner.stories.jsx +28 -0
  128. package/src/stories/Layouts/HeroImageVideo/HeroImageVideo.css +16 -0
  129. package/src/stories/Layouts/HeroImageVideo/HeroImageVideo.jsx +31 -0
  130. package/src/stories/Layouts/HeroImageVideo/HeroImageVideo.stories.jsx +28 -0
  131. package/src/stories/Layouts/Pagination/Pagination.css +16 -0
  132. package/src/stories/Layouts/Pagination/Pagination.jsx +31 -0
  133. package/src/stories/Layouts/Pagination/Pagination.stories.jsx +28 -0
  134. package/src/stories/Layouts/Sidebar/Sidebar.css +16 -0
  135. package/src/stories/Layouts/Sidebar/Sidebar.jsx +71 -0
  136. package/src/stories/Layouts/Sidebar/Sidebar.stories.jsx +28 -0
  137. package/src/stories/Layouts/Tabs/Tabs.css +16 -0
  138. package/src/stories/Layouts/Tabs/Tabs.jsx +31 -0
  139. package/src/stories/Layouts/Tabs/Tabs.stories.jsx +28 -0
  140. package/src/stories/Layouts/index.js +25 -0
  141. package/src/stories/Layouts/meta_Layouts.js +28 -0
  142. package/src/stories/Molecules/Accordion/Accordion.css +1 -1
  143. package/src/stories/Molecules/Accordion/Accordion.jsx +1 -1
  144. package/src/stories/Molecules/Accordion/Accordion.stories.jsx +1 -1
  145. package/src/stories/Molecules/AudioPlayer/AudioPlayer.css +95 -2
  146. package/src/stories/Molecules/AudioPlayer/AudioPlayer.jsx +232 -13
  147. package/src/stories/Molecules/AudioPlayer/AudioPlayer.stories.jsx +46 -11
  148. package/src/stories/Molecules/AvatarWithName/AvatarWithName.css +128 -2
  149. package/src/stories/Molecules/AvatarWithName/AvatarWithName.jsx +69 -14
  150. package/src/stories/Molecules/AvatarWithName/AvatarWithName.stories.jsx +12 -12
  151. package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.css +145 -2
  152. package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.jsx +39 -13
  153. package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.stories.jsx +27 -11
  154. package/src/stories/Molecules/ButtonGroup/ButtonGroup.css +463 -2
  155. package/src/stories/Molecules/ButtonGroup/ButtonGroup.jsx +34 -12
  156. package/src/stories/Molecules/ButtonGroup/ButtonGroup.stories.jsx +36 -12
  157. package/src/stories/Molecules/Card/Card.css +39 -2
  158. package/src/stories/Molecules/Card/Card.jsx +80 -13
  159. package/src/stories/Molecules/Card/Card.stories.jsx +27 -13
  160. package/src/stories/Molecules/ComparisonTable/ComparisonTable.css +33 -2
  161. package/src/stories/Molecules/ComparisonTable/ComparisonTable.jsx +91 -12
  162. package/src/stories/Molecules/ComparisonTable/ComparisonTable.stories.jsx +73 -12
  163. package/src/stories/Molecules/Dropdown/Dropdown.css +192 -0
  164. package/src/stories/Molecules/Dropdown/Dropdown.jsx +96 -0
  165. package/src/stories/Molecules/Dropdown/Dropdown.stories.jsx +45 -0
  166. package/src/stories/Molecules/Navbar/Navbar.css +63 -59
  167. package/src/stories/Molecules/Navbar/Navbar.jsx +43 -48
  168. package/src/stories/Molecules/Navbar/Navbar.stories.jsx +58 -8
  169. package/src/stories/Molecules/SearchBar/SearchBar.css +66 -1
  170. package/src/stories/Molecules/SearchBar/SearchBar.jsx +59 -11
  171. package/src/stories/Molecules/SearchBar/SearchBar.stories.jsx +16 -7
  172. package/src/stories/Molecules/SelectTheme/SelectTheme.jsx +16 -38
  173. package/src/stories/Molecules/SelectTheme/SelectTheme.stories.jsx +1 -2
  174. package/src/stories/Molecules/Sidebar/Sidebar.css +65 -2
  175. package/src/stories/Molecules/Sidebar/Sidebar.jsx +66 -11
  176. package/src/stories/Molecules/Sidebar/Sidebar.stories.jsx +20 -5
  177. package/src/stories/Molecules/index.js +2 -1
  178. package/src/stories/Molecules/{Molecules.js → meta_Molecules.js} +6 -3
  179. package/src/stories/Templates/AdminDashboard/AdminDashboard.css +7 -0
  180. package/src/stories/Templates/AdminDashboard/AdminDashboard.jsx +24 -0
  181. package/src/stories/Templates/AdminDashboard/AdminDashboard.stories.jsx +20 -0
  182. package/src/stories/Templates/CallToAction/CallToAction.css +7 -0
  183. package/src/stories/Templates/CallToAction/CallToAction.jsx +24 -0
  184. package/src/stories/Templates/CallToAction/CallToAction.stories.jsx +20 -0
  185. package/src/stories/Templates/FeaturesList/FeaturesList.css +7 -0
  186. package/src/stories/Templates/FeaturesList/FeaturesList.jsx +24 -0
  187. package/src/stories/Templates/FeaturesList/FeaturesList.stories.jsx +20 -0
  188. package/src/stories/Templates/FormSection/FormSection.css +7 -0
  189. package/src/stories/Templates/FormSection/FormSection.jsx +24 -0
  190. package/src/stories/Templates/FormSection/FormSection.stories.jsx +20 -0
  191. package/src/stories/Templates/HeroSection/HeroSection.css +7 -0
  192. package/src/stories/Templates/HeroSection/HeroSection.jsx +24 -0
  193. package/src/stories/Templates/HeroSection/HeroSection.stories.jsx +20 -0
  194. package/src/stories/Templates/LocationInfo/LocationInfo.css +7 -0
  195. package/src/stories/Templates/LocationInfo/LocationInfo.jsx +24 -0
  196. package/src/stories/Templates/LocationInfo/LocationInfo.stories.jsx +20 -0
  197. package/src/stories/Templates/ProductPage/ProductPage.css +7 -0
  198. package/src/stories/Templates/ProductPage/ProductPage.jsx +24 -0
  199. package/src/stories/Templates/ProductPage/ProductPage.stories.jsx +20 -0
  200. package/src/stories/Templates/RegistrationPage/RegistrationPage.css +7 -0
  201. package/src/stories/Templates/RegistrationPage/RegistrationPage.jsx +24 -0
  202. package/src/stories/Templates/RegistrationPage/RegistrationPage.stories.jsx +20 -0
  203. package/src/stories/Templates/ShoppingCart/ShoppingCart.css +7 -0
  204. package/src/stories/Templates/ShoppingCart/ShoppingCart.jsx +24 -0
  205. package/src/stories/Templates/ShoppingCart/ShoppingCart.stories.jsx +20 -0
  206. package/src/stories/Templates/SidebarTopNav/SidebarTopNav.css +7 -0
  207. package/src/stories/Templates/SidebarTopNav/SidebarTopNav.jsx +24 -0
  208. package/src/stories/Templates/SidebarTopNav/SidebarTopNav.stories.jsx +20 -0
  209. package/src/stories/Templates/SignInPage/SignInPage.css +7 -0
  210. package/src/stories/Templates/SignInPage/SignInPage.jsx +24 -0
  211. package/src/stories/Templates/SignInPage/SignInPage.stories.jsx +20 -0
  212. package/src/stories/Templates/SocialMediaLinks/SocialMediaLinks.css +7 -0
  213. package/src/stories/Templates/SocialMediaLinks/SocialMediaLinks.jsx +24 -0
  214. package/src/stories/Templates/SocialMediaLinks/SocialMediaLinks.stories.jsx +20 -0
  215. package/src/stories/Templates/Testimonials/Testimonials.css +7 -0
  216. package/src/stories/Templates/Testimonials/Testimonials.jsx +24 -0
  217. package/src/stories/Templates/Testimonials/Testimonials.stories.jsx +20 -0
  218. package/src/stories/Templates/index.js +33 -0
  219. package/src/stories/Templates/{Templates.js → meta_Templates.js} +3 -1
  220. package/src/stories/assets/logo.png +0 -0
  221. package/src/stories/assets/logo.svg +106 -0
  222. package/src/stories/assets/test.svg +3 -0
  223. package/src/themes/README_Styles.md +301 -0
  224. package/src/themes/ThemeProvider.jsx +47 -22
  225. package/src/themes/styles/dracula/dark.css +0 -0
  226. package/src/themes/styles/dracula/light.css +0 -0
  227. package/src/themes/styles/github/dark.css +0 -0
  228. package/src/themes/styles/github/light.css +0 -0
  229. package/src/themes/styles/neurons/dark.css +247 -0
  230. package/src/themes/styles/neurons/light.css +280 -0
  231. package/dist/Styles.md +0 -446
  232. package/dist/context.md +0 -942
  233. package/dist/github-3688a83a.js +0 -5
  234. package/dist/gothic-94a7ecd6.js +0 -5
  235. package/dist/newsprint-32bf94d9.js +0 -5
  236. package/dist/night-4a954853.js +0 -5
  237. package/dist/pixyll-94de4610.js +0 -5
  238. package/dist/whitey-db68723e.js +0 -5
  239. package/src/MDXEditor.jsx +0 -32
  240. package/src/Theme.jsx +0 -28
  241. package/src/components/CodeBlock.jsx +0 -22
  242. package/src/components/ComponentFactory.jsx +0 -36
  243. package/src/components/ComponentRegistry.js +0 -21
  244. package/src/scripts/generateComponents.js +0 -166
  245. package/src/scripts/verifyMolecules.js +0 -158
  246. package/src/scripts/verify_and_install_atoms.js +0 -211
  247. package/src/stories/Atoms/RangeInput/RangeInput.css +0 -29
  248. package/src/stories/Atoms/RangeInput/RangeInput.jsx +0 -41
  249. package/src/stories/Atoms/RangeInput/RangeInput.stories.jsx +0 -41
  250. package/src/stories/Components.md +0 -189
  251. package/src/stories/Layouts/Grid/Grid.css +0 -4
  252. package/src/stories/Layouts/Grid/Grid.jsx +0 -15
  253. package/src/stories/Layouts/Grid/Grid.stories.jsx +0 -26
  254. package/src/stories/Layouts/Layout.js +0 -28
  255. package/src/styles/Header.modules.css +0 -32
  256. package/src/styles/global.css +0 -59
  257. package/src/themes/Themes.js +0 -44
  258. package/src/themes/dark.js +0 -22
  259. package/src/themes/light.js +0 -22
  260. package/src/themes/typ/Readme.md +0 -4
  261. package/src/themes/typ/github/open-sans-v17-latin-ext_latin-700.woff2 +0 -0
  262. package/src/themes/typ/github/open-sans-v17-latin-ext_latin-700italic.woff2 +0 -0
  263. package/src/themes/typ/github/open-sans-v17-latin-ext_latin-italic.woff2 +0 -0
  264. package/src/themes/typ/github/open-sans-v17-latin-ext_latin-regular.woff2 +0 -0
  265. package/src/themes/typ/github.css +0 -416
  266. package/src/themes/typ/gothic/GUST e-foundry License.txt +0 -29
  267. package/src/themes/typ/gothic/didact-gothic-c-ext.woff2 +0 -0
  268. package/src/themes/typ/gothic/didact-gothic-c.woff2 +0 -0
  269. package/src/themes/typ/gothic/texgyreadventor-bold.woff +0 -0
  270. package/src/themes/typ/gothic/texgyreadventor-bolditalic.woff +0 -0
  271. package/src/themes/typ/gothic/texgyreadventor-italic.woff +0 -0
  272. package/src/themes/typ/gothic/texgyreadventor-regular.woff +0 -0
  273. package/src/themes/typ/gothic.css +0 -410
  274. package/src/themes/typ/newsprint/pt-serif-v11-latin-700.woff2 +0 -0
  275. package/src/themes/typ/newsprint/pt-serif-v11-latin-700italic.woff2 +0 -0
  276. package/src/themes/typ/newsprint/pt-serif-v11-latin-italic.woff2 +0 -0
  277. package/src/themes/typ/newsprint/pt-serif-v11-latin-regular.woff2 +0 -0
  278. package/src/themes/typ/newsprint.css +0 -622
  279. package/src/themes/typ/night/codeblock.dark.css +0 -113
  280. package/src/themes/typ/night/credit.html +0 -1
  281. package/src/themes/typ/night/cursor.png +0 -0
  282. package/src/themes/typ/night/cursor@2x.png +0 -0
  283. package/src/themes/typ/night/mermaid.dark.css +0 -7
  284. package/src/themes/typ/night/sourcemode.dark.css +0 -38
  285. package/src/themes/typ/night.css +0 -1032
  286. package/src/themes/typ/pixyll/lato-v14-latin-300.woff +0 -0
  287. package/src/themes/typ/pixyll/lato-v14-latin-300italic.woff +0 -0
  288. package/src/themes/typ/pixyll/lato-v14-latin-900.woff +0 -0
  289. package/src/themes/typ/pixyll/lato-v14-latin-900italic.woff +0 -0
  290. package/src/themes/typ/pixyll/merriweather-v19-latin-300.woff +0 -0
  291. package/src/themes/typ/pixyll/merriweather-v19-latin-300italic.woff +0 -0
  292. package/src/themes/typ/pixyll/merriweather-v19-latin-700.woff +0 -0
  293. package/src/themes/typ/pixyll/merriweather-v19-latin-700italic.woff +0 -0
  294. package/src/themes/typ/pixyll.css +0 -528
  295. package/src/themes/typ/whitey.css +0 -299
  296. /package/src/stories/Organisms/{Organisms.js → meta_Organisms.js} +0 -0
package/package.json CHANGED
@@ -1,34 +1,33 @@
1
1
  {
2
2
  "name": "this.gui",
3
- "version": "1.0.15",
3
+ "version": "1.0.17",
4
4
  "description": "This Graphic User Interface.",
5
5
  "main": "dist/this-gui.umd.js",
6
6
  "module": "dist/this-gui.es.js",
7
+ "type": "module",
8
+ "author": "suiGn",
9
+ "license": "MIT",
7
10
  "repository": {
8
11
  "type": "git",
9
12
  "url": "git+https://github.com/neurons-me/GUI.git"
10
13
  },
11
14
  "scripts": {
12
- "start": "node ./src/scripts/logASCIIArt.js && concurrently \"vite --open\" \"storybook dev -p 6006 --no-open\"",
15
+ "start": "node ./src/scripts/logASCIIArt.js && concurrently \"vite --open\" \"storybook dev -p 6006 --no-open\"",
13
16
  "dev": "vite",
14
17
  "build": "vite build",
15
18
  "prepublishOnly": "npm run build",
16
19
  "storybook": "storybook dev -p ${STORYBOOK_PORT:-6006}",
17
20
  "build-storybook": "storybook build",
18
- "postinstall": "node src/scripts/postinstall.js"
21
+ "postinstall": "node src/scripts/postinstall.js"
19
22
  },
20
- "type": "module",
21
- "author": "suiGn",
22
- "license": "MIT",
23
23
  "dependencies": {
24
24
  "@storybook/builder-vite": "^8.2.9",
25
- "@vitejs/plugin-react": "^4.3.1",
26
- "autoprefixer": "^10.4.20",
25
+ "classnames": "^2.5.1",
27
26
  "dotenv": "^16.4.5",
28
27
  "figlet": "^1.7.0",
29
- "fs": "^0.0.1-security",
30
28
  "postcss": "^8.4.45",
31
- "tailwindcss": "^3.4.10"
29
+ "react-icons": "^5.3.0",
30
+ "react-router-dom": "^6.26.2"
32
31
  },
33
32
  "peerDependencies": {
34
33
  "react": "^18.0.0",
@@ -39,7 +38,7 @@
39
38
  "@mdx-js/loader": "^3.0.1",
40
39
  "@mdx-js/react": "^3.0.1",
41
40
  "@mdx-js/rollup": "^3.0.1",
42
- "@storybook/addon-docs": "^8.3.0",
41
+ "@storybook/addon-docs": "^8.3.4",
43
42
  "@storybook/addon-essentials": "^8.3.0",
44
43
  "@storybook/addon-interactions": "^8.3.0",
45
44
  "@storybook/addon-links": "^8.3.0",
@@ -47,20 +46,21 @@
47
46
  "@storybook/blocks": "^8.2.9",
48
47
  "@storybook/manager-api": "^8.2.9",
49
48
  "@storybook/react": "^8.3.0",
50
- "@storybook/react-vite": "^8.3.0",
49
+ "@storybook/react-vite": "^8.3.4",
51
50
  "@storybook/test": "^8.2.9",
52
51
  "@storybook/theming": "^8.2.9",
52
+ "@vitejs/plugin-react": "^4.3.2",
53
53
  "concurrently": "^9.0.1",
54
54
  "cross-env": "^7.0.3",
55
55
  "prop-types": "^15.8.1",
56
56
  "react": "^18.0.0",
57
57
  "react-dom": "^18.0.0",
58
58
  "storybook": "^8.2.9",
59
- "vite": "^4.5.3"
59
+ "vite": "^5.4.8"
60
60
  },
61
61
  "files": [
62
62
  "dist",
63
- "src",
63
+ "src",
64
64
  "README.md",
65
65
  "package.json"
66
66
  ]
package/src/App.jsx CHANGED
@@ -1,31 +1,63 @@
1
- // src/App.jsx
2
1
  import React from 'react';
3
- import { BrowserRouter as Router, Route, Switch, Link } from 'react-router-dom';
4
- import { ThemeProvider } from './themes/ThemeProvider'; // Import ThemeProvider
2
+ import { BrowserRouter as Router, Route, Routes, Link } from 'react-router-dom';
3
+ import { ThemeProvider } from './themes/ThemeProvider';
4
+ import MdxProvider from './MdxProvider'; // MDX Provider
5
+ import SiteBuilder from './SiteBuilder'; // Import the site builder component
6
+ import { SelectTheme } from './stories/Molecules/SelectTheme/SelectTheme'; // Import SelectTheme
7
+ import { useTheme } from './themes/ThemeProvider'; // Import the hook
8
+ import Page from './Page'; // Import the Page component
9
+ import example from './example.json'; // Example JSON for Page component
5
10
 
6
11
  const App = () => {
7
12
  return (
8
13
  <ThemeProvider>
9
- <Router>
10
- <Switch>
11
- <Route exact path="/">
12
- <div>
13
- <h1>Main App</h1>
14
- <Link to="/" style={{ marginRight: '20px' }}>Home</Link>
15
- <Link to="/storybook" style={{ marginRight: '20px' }}>Storybook</Link>
16
- </div>
17
- </Route>
18
- <Route path="/storybook">
19
- <iframe
20
- src="http://localhost:6006" // Adjust the URL based on your setup
21
- style={{ width: '100%', height: '100vh', border: 'none' }}
22
- title="Storybook"
23
- ></iframe>
24
- </Route>
25
- </Switch>
26
- </Router>
14
+ <MdxProvider>
15
+ <Router>
16
+ {/* Top navigation */}
17
+ <nav>
18
+ <Link to="/" style={{ marginRight: '20px' }}>Site Builder</Link>
19
+ <Link to="/storybook" style={{ marginRight: '20px' }}>Storybook</Link>
20
+ <Link to="/test-page" style={{ marginRight: '20px' }}>Test Page</Link> {/* New link */}
21
+ </nav>
22
+
23
+ {/* Render SelectTheme in the main app */}
24
+ <ThemeSwitcher />
25
+
26
+ {/* Route definitions */}
27
+ <Routes>
28
+ <Route path="/" element={<SiteBuilder />} /> {/* Site builder interface */}
29
+ <Route path="/storybook" element={<Storybook />} /> {/* Documentation */}
30
+ <Route path="/test-page" element={<Page config={example} />} /> {/* Test Page Route */}
31
+ </Routes>
32
+ </Router>
33
+ </MdxProvider>
27
34
  </ThemeProvider>
28
35
  );
29
36
  };
30
37
 
38
+ // Component to handle theme switching using the context
39
+ const ThemeSwitcher = () => {
40
+ const { setTheme, setMode } = useTheme();
41
+
42
+ return (
43
+ <SelectTheme
44
+ onThemeChange={(newTheme) => {
45
+ setTheme(newTheme);
46
+ }}
47
+ onModeChange={(newMode) => {
48
+ setMode(newMode);
49
+ }}
50
+ />
51
+ );
52
+ };
53
+
54
+ // Storybook IFrame for browsing documentation
55
+ const Storybook = () => (
56
+ <iframe
57
+ src="http://localhost:6006" // Adjust based on your Storybook setup
58
+ style={{ width: '100%', height: '100vh', border: 'none' }}
59
+ title="Storybook"
60
+ ></iframe>
61
+ );
62
+
31
63
  export default App;
package/src/Page.jsx ADDED
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { renderComponent } from './scripts/renderComponents';
3
+
4
+ const Page = ({ config }) => {
5
+ return (
6
+ <div>
7
+ {config.layout.map((item, index) => {
8
+ const Component = renderComponent(item.type);
9
+ return Component ? (
10
+ <Component key={index} {...item.props}>
11
+ {item.children && item.children.map((child, childIndex) => {
12
+ const ChildComponent = renderComponent(child.type);
13
+ return ChildComponent ? (
14
+ <ChildComponent key={childIndex} {...child.props} />
15
+ ) : (
16
+ <p key={childIndex}>Component "{child.type}" not found</p>
17
+ );
18
+ })}
19
+ </Component>
20
+ ) : (
21
+ <p key={index}>Component "{item.type}" not found</p>
22
+ );
23
+ })}
24
+ </div>
25
+ );
26
+ };
27
+
28
+ export default Page;
@@ -0,0 +1,39 @@
1
+ import React, { useState } from 'react';
2
+ import GUI from '../index';
3
+
4
+ const SiteBuilder = () => {
5
+ const [pageContent, setPageContent] = useState([]); // Store the page components
6
+
7
+ // Example links for the sidebar
8
+ const sidebarLinks = [
9
+ { label: 'Dashboard', url: '/dashboard' },
10
+ { label: 'Settings', url: '/settings' },
11
+ { label: 'Profile', url: '/profile' },
12
+ ];
13
+
14
+ // Function to handle adding components
15
+ const addComponent = (component) => {
16
+ setPageContent([...pageContent, component]);
17
+ };
18
+
19
+ return (
20
+ <div className="site-builder">
21
+ {/* Fixed Navbar at the top */}
22
+ <GUI.Molecules.Navbar links={sidebarLinks} /> {/* Using the same links for simplicity */}
23
+
24
+ <div style={{ display: 'flex' }}>
25
+ {/* Sidebar with components to drag and drop */}
26
+ <GUI.Molecules.Sidebar links={sidebarLinks} addComponent={addComponent} />
27
+
28
+ {/* Main content area where components are dropped */}
29
+ <main className="builder-content" style={{ flex: 1, padding: '20px' }}>
30
+ {pageContent.map((Component, idx) => (
31
+ <div key={idx}>{Component}</div>
32
+ ))}
33
+ </main>
34
+ </div>
35
+ </div>
36
+ );
37
+ };
38
+
39
+ export default SiteBuilder;
@@ -0,0 +1,43 @@
1
+ {
2
+ "layout": [
3
+ {
4
+ "type": "Card",
5
+ "props": {
6
+ "variant": "solid",
7
+ "color": "primary-color",
8
+ "width": "300px"
9
+ },
10
+ "children": [
11
+ {
12
+ "type": "Heading",
13
+ "props": {
14
+ "text": "Welcome to the Site!"
15
+ }
16
+ },
17
+ {
18
+ "type": "Paragraph",
19
+ "props": {
20
+ "text": "This is a description inside the card."
21
+ }
22
+ },
23
+ {
24
+ "type": "Button",
25
+ "props": {
26
+ "label": "Click Me",
27
+ "color": "secondary-color"
28
+ }
29
+ }
30
+ ]
31
+ },
32
+ {
33
+ "type": "Navbar",
34
+ "props": {
35
+ "links": [
36
+ { "label": "Home", "url": "/" },
37
+ { "label": "About", "url": "/about" },
38
+ { "label": "Contact", "url": "/contact" }
39
+ ]
40
+ }
41
+ }
42
+ ]
43
+ }
package/src/index.mdx CHANGED
@@ -15,6 +15,16 @@ import GUI from '../index';
15
15
  }
16
16
  />
17
17
 
18
+ <GUI.Molecules.Sidebar
19
+ links={[
20
+ { url: '#home', label: 'Home', isActive: true },
21
+ { url: '#about', label: 'About', isActive: false },
22
+ { url: '#services', label: 'Services', isActive: false },
23
+ ]}
24
+ logo={<img src="https://example.com/logo.png" alt="Logo" />}
25
+ userControls={<button>Logout</button>}
26
+ />
27
+
18
28
  # Welcome to THIS.GUI
19
29
 
20
30
  ## Understanding MDX (Markdown + JSX)
package/src/main.jsx CHANGED
@@ -1,18 +1,15 @@
1
- //this.GUI/src/mains.jsx
1
+ // main.jsx
2
2
  import React from 'react';
3
- import ReactDOM from 'react-dom';
4
- import MDXContent from './index.mdx';
5
- import MdxProvider from './MdxProvider';
6
- import { ThemeProvider } from './themes/ThemeProvider'; // Import ThemeProvider
7
- import './styles/global.css'; // Import the global CSS
3
+ import { createRoot } from 'react-dom/client';
4
+ import App from './App'; // Import App component
8
5
 
9
- ReactDOM.render(
6
+ // Grab the container element
7
+ const container = document.getElementById('root');
8
+ const root = createRoot(container);
9
+
10
+ // Render your app using createRoot
11
+ root.render(
10
12
  <React.StrictMode>
11
- <ThemeProvider>
12
- <MdxProvider>
13
- <MDXContent />
14
- </MdxProvider>
15
- </ThemeProvider>
16
- </React.StrictMode>,
17
- document.getElementById('root')
13
+ <App /> {/* Render the entire App component */}
14
+ </React.StrictMode>
18
15
  );
@@ -0,0 +1,70 @@
1
+ // src/ComponentRegistry.js
2
+ import Atoms from '../stories/Atoms/index';
3
+ import Molecules from '../stories/Molecules/index';
4
+ const ComponentRegistry = {
5
+ // Atoms
6
+ Alert: Atoms.Alert,
7
+ Audio: Atoms.Audio,
8
+ Badge: Atoms.Badge,
9
+ Button: Atoms.Button,
10
+ Caption: Atoms.Caption,
11
+ Checkbox: Atoms.Checkbox,
12
+ Container: Atoms.Container,
13
+ Divider: Atoms.Divider,
14
+ Grid: Atoms.Grid,
15
+ Heading: Atoms.Heading,
16
+ Icon: Atoms.Icon,
17
+ Image: Atoms.Image,
18
+ Label: Atoms.Label,
19
+ Link: Atoms.Link,
20
+ Loader: Atoms.Loader,
21
+ Logo: Atoms.Logo,
22
+ Paragraph: Atoms.Paragraph,
23
+ ProgressBar: Atoms.ProgressBar,
24
+ RadioButton: Atoms.RadioButton,
25
+ Range: Atoms.Range,
26
+ Section: Atoms.Section,
27
+ Select: Atoms.Select,
28
+ Slider: Atoms.Slider,
29
+ Snackbar: Atoms.Snackbar,
30
+ Spacer: Atoms.Spacer,
31
+ Spinner: Atoms.Spinner,
32
+ Tag: Atoms.Tag,
33
+ TextArea: Atoms.TextArea,
34
+ TextInput: Atoms.TextInput,
35
+ Toggle: Atoms.Toggle,
36
+ Tooltip: Atoms.Tooltip,
37
+ Video: Atoms.Video,
38
+
39
+ // Molecules
40
+ Accordion: Molecules.Accordion,
41
+ AudioPlayer: Molecules.AudioPlayer,
42
+ AvatarWithName: Molecules.AvatarWithName,
43
+ Breadcrumbs: Molecules.Breadcrumbs,
44
+ ButtonGroup: Molecules.ButtonGroup,
45
+ Card: Molecules.Card,
46
+ ComparisonTable: Molecules.ComparisonTable,
47
+ DataTable: Molecules.DataTable,
48
+ Dropdown: Molecules.Dropdown,
49
+ FileUpload: Molecules.FileUpload,
50
+ FormField: Molecules.FormField,
51
+ IconButton: Molecules.IconButton,
52
+ ImageWithCaption: Molecules.ImageWithCaption,
53
+ InputGroup: Molecules.InputGroup,
54
+ InputWithLabel: Molecules.InputWithLabel,
55
+ List: Molecules.List,
56
+ MediaCard: Molecules.MediaCard,
57
+ Modal: Molecules.Modal,
58
+ Navbar: Molecules.Navbar,
59
+ Notification: Molecules.Notification,
60
+ PricingTable: Molecules.PricingTable,
61
+ SearchBar: Molecules.SearchBar,
62
+ SelectTheme: Molecules.SelectTheme,
63
+ Sidebar: Molecules.Sidebar,
64
+ VideoWithDescription: Molecules.VideoWithDescription,
65
+
66
+ // Layouts and Templates
67
+ // Add more components as needed
68
+ };
69
+
70
+ export default ComponentRegistry;
@@ -2,12 +2,13 @@
2
2
  import { mkdir, writeFile, access } from 'fs/promises';
3
3
  import { join } from 'path';
4
4
 
5
- // Use process.env.INIT_CWD to get the root of the user's project during npm install
6
5
  const appRootDir = process.env.INIT_CWD || process.cwd();
7
6
 
8
7
  // Define paths for directories at the app level
9
8
  const guiDir = join(appRootDir, 'GUI');
10
9
  const componentsDir = join(guiDir, 'components');
10
+ const pagesDir = join(guiDir, 'pages'); // Pages directory for JSON layouts
11
+ const builderDir = join(guiDir, 'builder'); // Builder directory for site builder UI
11
12
  const mdxDir = join(guiDir, 'mdx');
12
13
  const stylesDir = join(guiDir, 'styles');
13
14
 
@@ -37,6 +38,8 @@ async function createFile(filePath, content) {
37
38
  async function initializeFiles() {
38
39
  const mdxWelcomeFile = join(mdxDir, 'Welcome.mdx');
39
40
  const stylesFile = join(stylesDir, 'global.css');
41
+ const samplePageFile = join(pagesDir, 'home.json'); // Sample JSON page
42
+ const builderIndexFile = join(builderDir, 'index.html'); // Entry point for builder UI
40
43
 
41
44
  await createFile(
42
45
  mdxWelcomeFile,
@@ -47,6 +50,40 @@ async function initializeFiles() {
47
50
  stylesFile,
48
51
  `/* Add your custom styles here */\nbody { font-family: 'Roboto', sans-serif; }`
49
52
  );
53
+
54
+ await createFile(
55
+ samplePageFile,
56
+ `{
57
+ "layout": [
58
+ {
59
+ "type": "Card",
60
+ "props": { "variant": "solid", "color": "primary-color", "width": "300px" },
61
+ "children": [
62
+ {
63
+ "type": "Paragraph",
64
+ "props": { "text": "Welcome to our site!" }
65
+ }
66
+ ]
67
+ }
68
+ ]
69
+ }`
70
+ );
71
+
72
+ await createFile(
73
+ builderIndexFile,
74
+ `<!DOCTYPE html>
75
+ <html lang="en">
76
+ <head>
77
+ <meta charset="UTF-8">
78
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
79
+ <title>GUI Builder</title>
80
+ </head>
81
+ <body>
82
+ <div id="builder-root"></div>
83
+ <script src="/path-to-your-builder-script.js"></script> <!-- Placeholder for the actual builder script -->
84
+ </body>
85
+ </html>`
86
+ );
50
87
  }
51
88
 
52
89
  // Create the directory structure and initialize files at the app level
@@ -55,6 +92,8 @@ async function initializeFiles() {
55
92
  await createDir(componentsDir);
56
93
  await createDir(mdxDir);
57
94
  await createDir(stylesDir);
95
+ await createDir(pagesDir); // New directory for JSON-based pages
96
+ await createDir(builderDir); // Directory for builder UI
58
97
  await initializeFiles();
59
98
 
60
99
  console.log('this.GUI setup complete at the app level!');
@@ -0,0 +1,11 @@
1
+ // this.GUI/src/renderComponent.js
2
+ import ComponentRegistry from './ComponentRegistry';
3
+
4
+ export function renderComponent(type) {
5
+ const Component = ComponentRegistry[type];
6
+ if (!Component) {
7
+ console.warn(`Component type "${type}" not found in the registry.`);
8
+ return null;
9
+ }
10
+ return Component;
11
+ }