this.gui 1.0.18 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.storybook/main.js +40 -0
- package/.storybook/manager-head.html +13 -0
- package/.storybook/manager.js +15 -0
- package/.storybook/preview.tsx +54 -0
- package/.storybook/vitest.setup.js +6 -0
- package/.storybook/withLayout.tsx +18 -0
- package/README.md +1 -220
- package/dist/GUI.png +0 -0
- package/dist/GUI2.png +0 -0
- package/dist/favicon.ico +0 -0
- package/dist/this-gui.es.js +108493 -5056
- package/dist/this-gui.umd.js +239 -44
- package/dist/this.GUI.png +0 -0
- package/nodes/overall approach.md +93 -0
- package/notes/Proyect.md +109 -0
- package/package.json +71 -54
- package/public/GUI.png +0 -0
- package/public/GUI2.png +0 -0
- package/public/favicon.ico +0 -0
- package/public/this.GUI.png +0 -0
- package/src/components/generics/Cards/Gridme.jsx +52 -0
- package/src/components/generics/Cards/LilBox.jsx +65 -0
- package/src/components/generics/Cards/ModuleCard.jsx +106 -0
- package/src/components/generics/Chats/FullChatBot.jsx +223 -0
- package/src/components/generics/Code/CodeBlock.jsx +33 -0
- package/src/components/generics/Feedback/Callout.jsx +92 -0
- package/src/components/generics/Layout/GridX.jsx +29 -0
- package/src/components/generics/Layout/Hero2.jsx +132 -0
- package/src/components/generics/Layout/PageContainer.jsx +29 -0
- package/src/components/generics/Layout/PageDivider.jsx +20 -0
- package/src/components/generics/Layout/Section.jsx +43 -0
- package/src/components/generics/Layout/SectionHeader.jsx +21 -0
- package/src/components/generics/Media/Img.jsx +58 -0
- package/src/components/generics/Media/VideoEmbed.jsx +51 -0
- package/src/components/generics/Organization/TableOfContents.jsx +51 -0
- package/src/components/generics/Organization/Tabs.jsx +45 -0
- package/src/components/generics/Text/TextList.jsx +41 -0
- package/src/components/generics/Text/TextParagraph.jsx +28 -0
- package/src/components/generics/Text/TextQuote.jsx +23 -0
- package/src/components/generics/Text/TextTitle.jsx +44 -0
- package/src/components/this.me/MeActive.jsx +24 -0
- package/src/components/this.me/MeFloating.jsx +183 -0
- package/src/components/this.me/MeInactive.jsx +21 -0
- package/src/components/this.me/MeListUs.jsx +40 -0
- package/src/components/this.me/MeState.jsx +25 -0
- package/src/components/this.me/hooks/useMe.js +43 -0
- package/src/context/GuiProvider.tsx +243 -0
- package/src/gui/atoms/AppBar/AppBar.resolver.tsx +77 -0
- package/src/gui/atoms/AppBar/AppBar.stories.tsx +232 -0
- package/src/gui/atoms/AppBar/AppBar.tsx +10 -0
- package/src/gui/atoms/Box/Box.resolver.tsx +171 -0
- package/src/gui/atoms/Box/Box.stories.tsx +271 -0
- package/src/gui/atoms/Box/Box.tsx +15 -0
- package/src/gui/atoms/Button/Button.resolver.tsx +98 -0
- package/src/gui/atoms/Button/Button.stories.tsx +225 -0
- package/src/gui/atoms/Button/Button.tsx +40 -0
- package/src/gui/atoms/Collapse/Collapse.resolver.tsx +85 -0
- package/src/gui/atoms/Collapse/Collapse.stories.tsx +136 -0
- package/src/gui/atoms/Collapse/Collapse.tsx +17 -0
- package/src/gui/atoms/Divider/Divider.resolver.tsx +95 -0
- package/src/gui/atoms/Divider/Divider.stories.tsx +109 -0
- package/src/gui/atoms/Divider/Divider.tsx +14 -0
- package/src/gui/atoms/Drawer/Drawer.resolver.tsx +116 -0
- package/src/gui/atoms/Drawer/Drawer.stories.tsx +229 -0
- package/src/gui/atoms/Drawer/Drawer.tsx +8 -0
- package/src/gui/atoms/IconButton/IconButton.resolver.tsx +135 -0
- package/src/gui/atoms/IconButton/IconButton.stories.tsx +141 -0
- package/src/gui/atoms/IconButton/IconButton.tsx +22 -0
- package/src/gui/atoms/Link/Link.resolver.tsx +75 -0
- package/src/gui/atoms/Link/Link.stories.tsx +164 -0
- package/src/gui/atoms/Link/Link.tsx +14 -0
- package/src/gui/atoms/List/List.resolver.tsx +95 -0
- package/src/gui/atoms/List/List.stories.tsx +143 -0
- package/src/gui/atoms/List/List.tsx +20 -0
- package/src/gui/atoms/ListItem/ListItem.resolver.tsx +88 -0
- package/src/gui/atoms/ListItem/ListItem.stories.tsx +157 -0
- package/src/gui/atoms/ListItem/ListItem.tsx +19 -0
- package/src/gui/atoms/ListItemButton/ListItemButton.resolver.tsx +208 -0
- package/src/gui/atoms/ListItemButton/ListItemButton.stories.tsx +161 -0
- package/src/gui/atoms/ListItemButton/ListItemButton.tsx +15 -0
- package/src/gui/atoms/ListItemIcon/ListItemIcon.resolver.tsx +102 -0
- package/src/gui/atoms/ListItemIcon/ListItemIcon.stories.tsx +135 -0
- package/src/gui/atoms/ListItemIcon/ListItemIcon.tsx +11 -0
- package/src/gui/atoms/ListItemText/ListItemText.resolver.tsx +112 -0
- package/src/gui/atoms/ListItemText/ListItemText.stories.tsx +162 -0
- package/src/gui/atoms/ListItemText/ListItemText.tsx +15 -0
- package/src/gui/atoms/Menu/Menu.resolver.tsx +112 -0
- package/src/gui/atoms/Menu/Menu.stories.tsx +168 -0
- package/src/gui/atoms/Menu/Menu.tsx +17 -0
- package/src/gui/atoms/MenuItem/MenuItem.resolver.tsx +183 -0
- package/src/gui/atoms/MenuItem/MenuItem.stories.tsx +138 -0
- package/src/gui/atoms/MenuItem/MenuItem.tsx +14 -0
- package/src/gui/atoms/Paper/Paper.resolver.tsx +98 -0
- package/src/gui/atoms/Paper/Paper.stories.tsx +191 -0
- package/src/gui/atoms/Paper/Paper.tsx +17 -0
- package/src/gui/atoms/Stack/Stack.resolver.tsx +94 -0
- package/src/gui/atoms/Stack/Stack.stories.tsx +166 -0
- package/src/gui/atoms/Stack/Stack.tsx +15 -0
- package/src/gui/atoms/Switch/Switch.resolver.tsx +53 -0
- package/src/gui/atoms/Switch/Switch.stories.tsx +242 -0
- package/src/gui/atoms/Switch/Switch.tsx +22 -0
- package/src/gui/atoms/Toolbar/Toolbar.resolver.tsx +60 -0
- package/src/gui/atoms/Toolbar/Toolbar.stories.tsx +163 -0
- package/src/gui/atoms/Toolbar/Toolbar.tsx +16 -0
- package/src/gui/atoms/Tooltip/Tooltip.resolver.tsx +142 -0
- package/src/gui/atoms/Tooltip/Tooltip.stories.tsx +118 -0
- package/src/gui/atoms/Tooltip/Tooltip.tsx +78 -0
- package/src/gui/atoms/Typography/Typography.resolver.tsx +158 -0
- package/src/gui/atoms/Typography/Typography.stories.tsx +228 -0
- package/src/gui/atoms/Typography/Typography.tsx +27 -0
- package/src/gui/atoms.tsx +129 -0
- package/src/gui/index.ts +69 -0
- package/src/gui/molecules/AppBars/Footer/Footer.resolver.tsx +104 -0
- package/src/gui/molecules/AppBars/Footer/Footer.stories.tsx +499 -0
- package/src/gui/molecules/AppBars/Footer/Footer.tsx +307 -0
- package/src/gui/molecules/AppBars/LeftSidebar/LeftSidebar.resolver.tsx +75 -0
- package/src/gui/molecules/AppBars/LeftSidebar/LeftSidebar.stories.tsx +61 -0
- package/src/gui/molecules/AppBars/LeftSidebar/LeftSidebar.tsx +511 -0
- package/src/gui/molecules/AppBars/LeftSidebar/SidebarToggleButton.tsx +51 -0
- package/src/gui/molecules/AppBars/RightSidebar/RightSidebar.resolver.tsx +97 -0
- package/src/gui/molecules/AppBars/RightSidebar/RightSidebar.stories.tsx +294 -0
- package/src/gui/molecules/AppBars/RightSidebar/RightSidebar.tsx +295 -0
- package/src/gui/molecules/AppBars/StickyOptions/StickyOptionsTop.stories.tsx +480 -0
- package/src/gui/molecules/AppBars/StickyOptions/StickyOptionsTop.tsx +484 -0
- package/src/gui/molecules/AppBars/TopBar/TopBar.resolver.tsx +84 -0
- package/src/gui/molecules/AppBars/TopBar/TopBar.stories.tsx +297 -0
- package/src/gui/molecules/AppBars/TopBar/TopBar.tsx +299 -0
- package/src/gui/molecules/Utilities/ThemeModeToggle/ThemeModeToggle.resolver.tsx +72 -0
- package/src/gui/molecules/Utilities/ThemeModeToggle/ThemeModeToggle.stories.tsx +154 -0
- package/src/gui/molecules/Utilities/ThemeModeToggle/ThemeModeToggle.tsx +100 -0
- package/src/gui/molecules/Utilities/ThemeSelector.jsx +281 -0
- package/src/gui/utils/nodeID.ts +8 -0
- package/src/index.js +111 -0
- package/src/registry/GuiRegistry.ts +19 -0
- package/src/registry/factory.ts +12 -0
- package/src/registry/index.ts +3 -0
- package/src/registry/types.ts +6 -0
- package/src/stories/01.Home.mdx +22 -0
- package/src/stories/02.Understanding.This.GUI.md +149 -0
- package/src/stories/03.Themes.mdx +235 -0
- package/src/stories/04.GuiProvider.md +126 -0
- package/src/stories/04.GuiProvider.mdx +129 -0
- package/src/stories/Theme/BreakPointsAndGrids.stories.jsx +185 -0
- package/src/stories/Theme/Colors.stories.jsx +245 -0
- package/src/stories/Theme/Icons.stories.jsx +313 -0
- package/src/stories/Theme/Motion.stories.jsx +206 -0
- package/src/stories/Theme/ShadowAndElevation.stories.jsx +95 -0
- package/src/stories/Theme/SpacingAndRadius.stories.jsx +129 -0
- package/src/stories/Theme/Typography.stories.jsx +211 -0
- package/src/stories/assets/this.GUI.png +0 -0
- package/src/templates/BrowserExtension.jsx +56 -0
- package/src/templates/Layout.tsx +36 -0
- package/src/templates/Minimal.jsx +123 -0
- package/src/templates/Shell/Shell.jsx +107 -0
- package/src/themes/fromTokens.ts +352 -0
- package/src/themes/icons/Icon.tsx +137 -0
- package/src/themes/icons/packs/Lucide.ts +72 -0
- package/src/themes/icons/packs/Material.ts +87 -0
- package/src/themes/icons/registry.tsx +178 -0
- package/src/themes/index.js +116 -0
- package/src/themes/theme.d.ts +116 -0
- package/src/themes/tokens/global.tokens.json +107 -0
- package/src/themes/tokens/neurons/dark.tokens.json +45 -0
- package/src/themes/tokens/neurons/light.tokens.json +51 -0
- package/src/themes/tokens/neurons/manifest.json +23 -0
- package/src/types/theme.d.ts +32 -0
- package/src/types/viewport.ts +132 -0
- package/tsconfig.json +24 -0
- package/vite.config.js +74 -0
- package/dist/style.css +0 -1
- package/src/App.jsx +0 -39
- package/src/CreatePage.jsx +0 -61
- package/src/MDXEditor.jsx +0 -51
- package/src/MdxProvider.jsx +0 -20
- package/src/Page.jsx +0 -28
- package/src/PageDashboard.jsx +0 -56
- package/src/SiteBuilder.jsx +0 -108
- package/src/example.json +0 -43
- package/src/index.mdx +0 -164
- package/src/main.jsx +0 -15
- package/src/scripts/ComponentRegistry.js +0 -70
- package/src/scripts/logASCIIArt.js +0 -12
- package/src/scripts/postinstall.js +0 -111
- package/src/scripts/renderComponents.js +0 -11
- package/src/stories/Atoms/Alert/Alert.css +0 -211
- package/src/stories/Atoms/Alert/Alert.jsx +0 -56
- package/src/stories/Atoms/Alert/Alert.stories.jsx +0 -167
- package/src/stories/Atoms/Audio/Audio.css +0 -259
- package/src/stories/Atoms/Audio/Audio.jsx +0 -216
- package/src/stories/Atoms/Audio/Audio.stories.jsx +0 -191
- package/src/stories/Atoms/Badge/Badge.css +0 -249
- package/src/stories/Atoms/Badge/Badge.jsx +0 -54
- package/src/stories/Atoms/Badge/Badge.stories.jsx +0 -121
- package/src/stories/Atoms/Button/Button.css +0 -332
- package/src/stories/Atoms/Button/Button.jsx +0 -44
- package/src/stories/Atoms/Button/Button.stories.jsx +0 -209
- package/src/stories/Atoms/Caption/Caption.css +0 -169
- package/src/stories/Atoms/Caption/Caption.jsx +0 -72
- package/src/stories/Atoms/Caption/Caption.stories.jsx +0 -207
- package/src/stories/Atoms/Checkbox/Checkbox.css +0 -182
- package/src/stories/Atoms/Checkbox/Checkbox.jsx +0 -83
- package/src/stories/Atoms/Checkbox/Checkbox.stories.jsx +0 -112
- package/src/stories/Atoms/Container/Container.css +0 -470
- package/src/stories/Atoms/Container/Container.jsx +0 -116
- package/src/stories/Atoms/Container/Container.stories.jsx +0 -145
- package/src/stories/Atoms/Divider/Divider.css +0 -147
- package/src/stories/Atoms/Divider/Divider.jsx +0 -62
- package/src/stories/Atoms/Divider/Divider.stories.jsx +0 -105
- package/src/stories/Atoms/Grid/Grid.css +0 -160
- package/src/stories/Atoms/Grid/Grid.jsx +0 -43
- package/src/stories/Atoms/Grid/Grid.stories.jsx +0 -84
- package/src/stories/Atoms/Heading/Heading.css +0 -112
- package/src/stories/Atoms/Heading/Heading.jsx +0 -69
- package/src/stories/Atoms/Heading/Heading.stories.jsx +0 -130
- package/src/stories/Atoms/Icon/Icon.css +0 -240
- package/src/stories/Atoms/Icon/Icon.jsx +0 -80
- package/src/stories/Atoms/Icon/Icon.stories.jsx +0 -177
- package/src/stories/Atoms/Image/Image.css +0 -245
- package/src/stories/Atoms/Image/Image.jsx +0 -175
- package/src/stories/Atoms/Image/Image.stories.jsx +0 -332
- package/src/stories/Atoms/Label/Label.css +0 -171
- package/src/stories/Atoms/Label/Label.jsx +0 -71
- package/src/stories/Atoms/Label/Label.stories.jsx +0 -180
- package/src/stories/Atoms/Link/Link.css +0 -51
- package/src/stories/Atoms/Link/Link.jsx +0 -72
- package/src/stories/Atoms/Link/Link.stories.jsx +0 -153
- package/src/stories/Atoms/Loader/Loader.css +0 -106
- package/src/stories/Atoms/Loader/Loader.jsx +0 -58
- package/src/stories/Atoms/Loader/Loader.stories.jsx +0 -99
- package/src/stories/Atoms/Logo/Logo.css +0 -94
- package/src/stories/Atoms/Logo/Logo.jsx +0 -53
- package/src/stories/Atoms/Logo/Logo.stories.jsx +0 -120
- package/src/stories/Atoms/Paragraph/Paragraph.css +0 -180
- package/src/stories/Atoms/Paragraph/Paragraph.jsx +0 -77
- package/src/stories/Atoms/Paragraph/Paragraph.stories.jsx +0 -143
- package/src/stories/Atoms/ProgressBar/ProgressBar.css +0 -127
- package/src/stories/Atoms/ProgressBar/ProgressBar.jsx +0 -40
- package/src/stories/Atoms/ProgressBar/ProgressBar.stories.jsx +0 -86
- package/src/stories/Atoms/RadioButton/RadioButton.css +0 -130
- package/src/stories/Atoms/RadioButton/RadioButton.jsx +0 -87
- package/src/stories/Atoms/RadioButton/RadioButton.stories.jsx +0 -113
- package/src/stories/Atoms/Range/Range.css +0 -169
- package/src/stories/Atoms/Range/Range.jsx +0 -87
- package/src/stories/Atoms/Range/Range.stories.jsx +0 -110
- package/src/stories/Atoms/Section/Section.css +0 -268
- package/src/stories/Atoms/Section/Section.jsx +0 -63
- package/src/stories/Atoms/Section/Section.stories.jsx +0 -46
- package/src/stories/Atoms/Select/Select.css +0 -87
- package/src/stories/Atoms/Select/Select.jsx +0 -73
- package/src/stories/Atoms/Select/Select.stories.jsx +0 -109
- package/src/stories/Atoms/Slider/Slider.css +0 -90
- package/src/stories/Atoms/Slider/Slider.jsx +0 -129
- package/src/stories/Atoms/Slider/Slider.stories.jsx +0 -90
- package/src/stories/Atoms/Snackbar/Snackbar.css +0 -313
- package/src/stories/Atoms/Snackbar/Snackbar.jsx +0 -72
- package/src/stories/Atoms/Snackbar/Snackbar.stories.jsx +0 -78
- package/src/stories/Atoms/Spacer/Spacer.css +0 -114
- package/src/stories/Atoms/Spacer/Spacer.jsx +0 -35
- package/src/stories/Atoms/Spacer/Spacer.stories.jsx +0 -61
- package/src/stories/Atoms/Spinner/Spinner.css +0 -110
- package/src/stories/Atoms/Spinner/Spinner.jsx +0 -65
- package/src/stories/Atoms/Spinner/Spinner.stories.jsx +0 -58
- package/src/stories/Atoms/Tag/Tag.css +0 -112
- package/src/stories/Atoms/Tag/Tag.jsx +0 -75
- package/src/stories/Atoms/Tag/Tag.stories.jsx +0 -67
- package/src/stories/Atoms/TextArea/TextArea.css +0 -99
- package/src/stories/Atoms/TextArea/TextArea.jsx +0 -118
- package/src/stories/Atoms/TextArea/TextArea.stories.jsx +0 -36
- package/src/stories/Atoms/TextInput/TextInput.css +0 -102
- package/src/stories/Atoms/TextInput/TextInput.jsx +0 -133
- package/src/stories/Atoms/TextInput/TextInput.stories.jsx +0 -69
- package/src/stories/Atoms/Toggle/Toggle.css +0 -118
- package/src/stories/Atoms/Toggle/Toggle.jsx +0 -69
- package/src/stories/Atoms/Toggle/Toggle.stories.jsx +0 -35
- package/src/stories/Atoms/Tooltip/Tooltip.css +0 -383
- package/src/stories/Atoms/Tooltip/Tooltip.jsx +0 -46
- package/src/stories/Atoms/Tooltip/Tooltip.stories.jsx +0 -52
- package/src/stories/Atoms/Video/Video.css +0 -39
- package/src/stories/Atoms/Video/Video.jsx +0 -78
- package/src/stories/Atoms/Video/Video.stories.jsx +0 -41
- package/src/stories/Atoms/index.js +0 -72
- package/src/stories/Atoms/meta_Atoms.js +0 -51
- package/src/stories/Components.js +0 -198
- package/src/stories/Getting Started.mdx +0 -239
- package/src/stories/Layouts/Accordion/Accordion.css +0 -293
- package/src/stories/Layouts/Accordion/Accordion.jsx +0 -74
- package/src/stories/Layouts/Accordion/Accordion.stories.jsx +0 -39
- package/src/stories/Layouts/Flexbox/Flexbox.css +0 -16
- package/src/stories/Layouts/Flexbox/Flexbox.jsx +0 -11
- package/src/stories/Layouts/Flexbox/Flexbox.stories.jsx +0 -28
- package/src/stories/Layouts/Footer/Footer.css +0 -16
- package/src/stories/Layouts/Footer/Footer.jsx +0 -31
- package/src/stories/Layouts/Footer/Footer.stories.jsx +0 -28
- package/src/stories/Layouts/Header/Header.css +0 -16
- package/src/stories/Layouts/Header/Header.jsx +0 -31
- package/src/stories/Layouts/Header/Header.stories.jsx +0 -28
- package/src/stories/Layouts/HeroBanner/HeroBanner.css +0 -16
- package/src/stories/Layouts/HeroBanner/HeroBanner.jsx +0 -31
- package/src/stories/Layouts/HeroBanner/HeroBanner.stories.jsx +0 -28
- package/src/stories/Layouts/HeroImageVideo/HeroImageVideo.css +0 -16
- package/src/stories/Layouts/HeroImageVideo/HeroImageVideo.jsx +0 -31
- package/src/stories/Layouts/HeroImageVideo/HeroImageVideo.stories.jsx +0 -28
- package/src/stories/Layouts/Pagination/Pagination.css +0 -16
- package/src/stories/Layouts/Pagination/Pagination.jsx +0 -31
- package/src/stories/Layouts/Pagination/Pagination.stories.jsx +0 -28
- package/src/stories/Layouts/Sidebar/Sidebar.css +0 -16
- package/src/stories/Layouts/Sidebar/Sidebar.jsx +0 -71
- package/src/stories/Layouts/Sidebar/Sidebar.stories.jsx +0 -28
- package/src/stories/Layouts/Tabs/Tabs.css +0 -16
- package/src/stories/Layouts/Tabs/Tabs.jsx +0 -31
- package/src/stories/Layouts/Tabs/Tabs.stories.jsx +0 -28
- package/src/stories/Layouts/index.js +0 -25
- package/src/stories/Layouts/meta_Layouts.js +0 -28
- package/src/stories/MDX.mdx +0 -118
- package/src/stories/Miscellaneous/Miscellaneous.js +0 -24
- package/src/stories/Molecules/Accordion/Accordion.css +0 -4
- package/src/stories/Molecules/Accordion/Accordion.jsx +0 -25
- package/src/stories/Molecules/Accordion/Accordion.stories.jsx +0 -20
- package/src/stories/Molecules/AudioPlayer/AudioPlayer.css +0 -97
- package/src/stories/Molecules/AudioPlayer/AudioPlayer.jsx +0 -244
- package/src/stories/Molecules/AudioPlayer/AudioPlayer.stories.jsx +0 -55
- package/src/stories/Molecules/AvatarWithName/AvatarWithName.css +0 -130
- package/src/stories/Molecules/AvatarWithName/AvatarWithName.jsx +0 -80
- package/src/stories/Molecules/AvatarWithName/AvatarWithName.stories.jsx +0 -20
- package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.css +0 -147
- package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.jsx +0 -51
- package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.stories.jsx +0 -36
- package/src/stories/Molecules/ButtonGroup/ButtonGroup.css +0 -465
- package/src/stories/Molecules/ButtonGroup/ButtonGroup.jsx +0 -47
- package/src/stories/Molecules/ButtonGroup/ButtonGroup.stories.jsx +0 -44
- package/src/stories/Molecules/Card/Card.css +0 -41
- package/src/stories/Molecules/Card/Card.jsx +0 -92
- package/src/stories/Molecules/Card/Card.stories.jsx +0 -34
- package/src/stories/Molecules/ComparisonTable/ComparisonTable.css +0 -35
- package/src/stories/Molecules/ComparisonTable/ComparisonTable.jsx +0 -104
- package/src/stories/Molecules/ComparisonTable/ComparisonTable.stories.jsx +0 -81
- package/src/stories/Molecules/DataTable/DataTable.css +0 -4
- package/src/stories/Molecules/DataTable/DataTable.jsx +0 -25
- package/src/stories/Molecules/DataTable/DataTable.stories.jsx +0 -20
- package/src/stories/Molecules/Dropdown/Dropdown.css +0 -192
- package/src/stories/Molecules/Dropdown/Dropdown.jsx +0 -96
- package/src/stories/Molecules/Dropdown/Dropdown.stories.jsx +0 -45
- package/src/stories/Molecules/FileUpload/FileUpload.css +0 -4
- package/src/stories/Molecules/FileUpload/FileUpload.jsx +0 -25
- package/src/stories/Molecules/FileUpload/FileUpload.stories.jsx +0 -20
- package/src/stories/Molecules/FormField/FormField.css +0 -4
- package/src/stories/Molecules/FormField/FormField.jsx +0 -25
- package/src/stories/Molecules/FormField/FormField.stories.jsx +0 -20
- package/src/stories/Molecules/Header/Header.css +0 -35
- package/src/stories/Molecules/Header/Header.jsx +0 -76
- package/src/stories/Molecules/Header/Header.stories.jsx +0 -28
- package/src/stories/Molecules/IconButton/IconButton.css +0 -4
- package/src/stories/Molecules/IconButton/IconButton.jsx +0 -25
- package/src/stories/Molecules/IconButton/IconButton.stories.jsx +0 -20
- package/src/stories/Molecules/ImageWithCaption/ImageWithCaption.css +0 -4
- package/src/stories/Molecules/ImageWithCaption/ImageWithCaption.jsx +0 -25
- package/src/stories/Molecules/ImageWithCaption/ImageWithCaption.stories.jsx +0 -20
- package/src/stories/Molecules/InputGroup/InputGroup.css +0 -4
- package/src/stories/Molecules/InputGroup/InputGroup.jsx +0 -25
- package/src/stories/Molecules/InputGroup/InputGroup.stories.jsx +0 -20
- package/src/stories/Molecules/InputWithLabel/InputWithLabel.css +0 -4
- package/src/stories/Molecules/InputWithLabel/InputWithLabel.jsx +0 -25
- package/src/stories/Molecules/InputWithLabel/InputWithLabel.stories.jsx +0 -20
- package/src/stories/Molecules/List/List.css +0 -4
- package/src/stories/Molecules/List/List.jsx +0 -25
- package/src/stories/Molecules/List/List.stories.jsx +0 -20
- package/src/stories/Molecules/MediaCard/MediaCard.css +0 -4
- package/src/stories/Molecules/MediaCard/MediaCard.jsx +0 -25
- package/src/stories/Molecules/MediaCard/MediaCard.stories.jsx +0 -20
- package/src/stories/Molecules/Modal/Modal.css +0 -4
- package/src/stories/Molecules/Modal/Modal.jsx +0 -25
- package/src/stories/Molecules/Modal/Modal.stories.jsx +0 -20
- package/src/stories/Molecules/Navbar/Navbar.css +0 -91
- package/src/stories/Molecules/Navbar/Navbar.jsx +0 -82
- package/src/stories/Molecules/Navbar/Navbar.stories.jsx +0 -70
- package/src/stories/Molecules/Notification/Notification.css +0 -4
- package/src/stories/Molecules/Notification/Notification.jsx +0 -25
- package/src/stories/Molecules/Notification/Notification.stories.jsx +0 -20
- package/src/stories/Molecules/PricingTable/PricingTable.css +0 -4
- package/src/stories/Molecules/PricingTable/PricingTable.jsx +0 -25
- package/src/stories/Molecules/PricingTable/PricingTable.stories.jsx +0 -20
- package/src/stories/Molecules/SearchBar/SearchBar.css +0 -69
- package/src/stories/Molecules/SearchBar/SearchBar.jsx +0 -73
- package/src/stories/Molecules/SearchBar/SearchBar.stories.jsx +0 -29
- package/src/stories/Molecules/SelectTheme/SelectTheme.css +0 -25
- package/src/stories/Molecules/SelectTheme/SelectTheme.jsx +0 -22
- package/src/stories/Molecules/SelectTheme/SelectTheme.stories.jsx +0 -24
- package/src/stories/Molecules/Sidebar/Sidebar.css +0 -67
- package/src/stories/Molecules/Sidebar/Sidebar.jsx +0 -80
- package/src/stories/Molecules/Sidebar/Sidebar.stories.jsx +0 -35
- package/src/stories/Molecules/VideoWithDescription/VideoWithDescription.css +0 -4
- package/src/stories/Molecules/VideoWithDescription/VideoWithDescription.jsx +0 -25
- package/src/stories/Molecules/VideoWithDescription/VideoWithDescription.stories.jsx +0 -20
- package/src/stories/Molecules/index.js +0 -58
- package/src/stories/Molecules/meta_Molecules.js +0 -47
- package/src/stories/Organisms/Profile/UserFriends/UserFriends.context.jsx +0 -15
- package/src/stories/Organisms/Profile/UserFriends/UserFriends.css +0 -4
- package/src/stories/Organisms/Profile/UserFriends/UserFriends.jsx +0 -13
- package/src/stories/Organisms/Profile/UserFriends/UserFriends.stories.jsx +0 -26
- package/src/stories/Organisms/Profile/UserPosts/UserPosts.context.jsx +0 -15
- package/src/stories/Organisms/Profile/UserPosts/UserPosts.css +0 -4
- package/src/stories/Organisms/Profile/UserPosts/UserPosts.jsx +0 -13
- package/src/stories/Organisms/Profile/UserPosts/UserPosts.stories.jsx +0 -26
- package/src/stories/Organisms/Profile/UserProfile/UserProfile.context.jsx +0 -15
- package/src/stories/Organisms/Profile/UserProfile/UserProfile.css +0 -4
- package/src/stories/Organisms/Profile/UserProfile/UserProfile.jsx +0 -13
- package/src/stories/Organisms/Profile/UserProfile/UserProfile.stories.jsx +0 -26
- package/src/stories/Organisms/meta_Organisms.js +0 -39
- package/src/stories/Pages/Page/Page.css +0 -69
- package/src/stories/Pages/Page/Page.jsx +0 -69
- package/src/stories/Pages/Page/Page.stories.js +0 -26
- package/src/stories/Pages/Page/Pages.js +0 -31
- package/src/stories/Templates/AdminDashboard/AdminDashboard.css +0 -7
- package/src/stories/Templates/AdminDashboard/AdminDashboard.jsx +0 -24
- package/src/stories/Templates/AdminDashboard/AdminDashboard.stories.jsx +0 -20
- package/src/stories/Templates/CallToAction/CallToAction.css +0 -7
- package/src/stories/Templates/CallToAction/CallToAction.jsx +0 -24
- package/src/stories/Templates/CallToAction/CallToAction.stories.jsx +0 -20
- package/src/stories/Templates/FeaturesList/FeaturesList.css +0 -7
- package/src/stories/Templates/FeaturesList/FeaturesList.jsx +0 -24
- package/src/stories/Templates/FeaturesList/FeaturesList.stories.jsx +0 -20
- package/src/stories/Templates/FormSection/FormSection.css +0 -7
- package/src/stories/Templates/FormSection/FormSection.jsx +0 -24
- package/src/stories/Templates/FormSection/FormSection.stories.jsx +0 -20
- package/src/stories/Templates/HeroSection/HeroSection.css +0 -7
- package/src/stories/Templates/HeroSection/HeroSection.jsx +0 -24
- package/src/stories/Templates/HeroSection/HeroSection.stories.jsx +0 -20
- package/src/stories/Templates/LocationInfo/LocationInfo.css +0 -7
- package/src/stories/Templates/LocationInfo/LocationInfo.jsx +0 -24
- package/src/stories/Templates/LocationInfo/LocationInfo.stories.jsx +0 -20
- package/src/stories/Templates/ProductPage/ProductPage.css +0 -7
- package/src/stories/Templates/ProductPage/ProductPage.jsx +0 -24
- package/src/stories/Templates/ProductPage/ProductPage.stories.jsx +0 -20
- package/src/stories/Templates/RegistrationPage/RegistrationPage.css +0 -7
- package/src/stories/Templates/RegistrationPage/RegistrationPage.jsx +0 -24
- package/src/stories/Templates/RegistrationPage/RegistrationPage.stories.jsx +0 -20
- package/src/stories/Templates/ShoppingCart/ShoppingCart.css +0 -7
- package/src/stories/Templates/ShoppingCart/ShoppingCart.jsx +0 -24
- package/src/stories/Templates/ShoppingCart/ShoppingCart.stories.jsx +0 -20
- package/src/stories/Templates/SidebarTopNav/SidebarTopNav.css +0 -7
- package/src/stories/Templates/SidebarTopNav/SidebarTopNav.jsx +0 -24
- package/src/stories/Templates/SidebarTopNav/SidebarTopNav.stories.jsx +0 -20
- package/src/stories/Templates/SignInPage/SignInPage.css +0 -7
- package/src/stories/Templates/SignInPage/SignInPage.jsx +0 -24
- package/src/stories/Templates/SignInPage/SignInPage.stories.jsx +0 -20
- package/src/stories/Templates/SocialMediaLinks/SocialMediaLinks.css +0 -7
- package/src/stories/Templates/SocialMediaLinks/SocialMediaLinks.jsx +0 -24
- package/src/stories/Templates/SocialMediaLinks/SocialMediaLinks.stories.jsx +0 -20
- package/src/stories/Templates/Testimonials/Testimonials.css +0 -7
- package/src/stories/Templates/Testimonials/Testimonials.jsx +0 -24
- package/src/stories/Templates/Testimonials/Testimonials.stories.jsx +0 -20
- package/src/stories/Templates/index.js +0 -33
- package/src/stories/Templates/meta_Templates.js +0 -29
- package/src/stories/assets/accessibility.png +0 -0
- package/src/stories/assets/accessibility.svg +0 -1
- package/src/stories/assets/addon-library.png +0 -0
- package/src/stories/assets/assets.png +0 -0
- package/src/stories/assets/avif-test-image.avif +0 -0
- package/src/stories/assets/context.png +0 -0
- package/src/stories/assets/discord.svg +0 -1
- package/src/stories/assets/docs.png +0 -0
- package/src/stories/assets/figma-plugin.png +0 -0
- package/src/stories/assets/github.svg +0 -1
- package/src/stories/assets/logo.png +0 -0
- package/src/stories/assets/logo.svg +0 -106
- package/src/stories/assets/share.png +0 -0
- package/src/stories/assets/styling.png +0 -0
- package/src/stories/assets/test.svg +0 -3
- package/src/stories/assets/testing.png +0 -0
- package/src/stories/assets/theming.png +0 -0
- package/src/stories/assets/tutorials.svg +0 -1
- package/src/stories/assets/youtube.svg +0 -1
- package/src/themes/README_Styles.md +0 -301
- package/src/themes/ThemeProvider.jsx +0 -61
- package/src/themes/styles/github/dark.css +0 -0
- package/src/themes/styles/github/light.css +0 -0
- package/src/themes/styles/neurons/dark.css +0 -247
- package/src/themes/styles/neurons/light.css +0 -170
- /package/{src/themes/styles/dracula/dark.css → .storybook/preview-head.html} +0 -0
- /package/src/{themes/styles/dracula/light.css → components/this.me/MeCard.jsx} +0 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This.GUI — primitives
|
|
3
|
+
* Thin wrappers around MUI components to present a stable, library-owned API.
|
|
4
|
+
* Internally we use MUI, but components in the design system should import from
|
|
5
|
+
* "@/gui/primitives" instead of "@mui/material". This lets us swap engines later.
|
|
6
|
+
*
|
|
7
|
+
* La regla estándar en tu wrapper
|
|
8
|
+
* • Si MUI lo declaró polimórfico → usa OverridableComponent en tu wrapper.
|
|
9
|
+
* • Si no lo es → usa forwardRef normal.
|
|
10
|
+
*
|
|
11
|
+
* Así garantizas dos cosas:
|
|
12
|
+
* ✅ Tu wrapper no pierde nada de lo que MUI ofrece.
|
|
13
|
+
* ✅ No te complicas agregando polimorfismo donde MUI no lo soporta.
|
|
14
|
+
*/
|
|
15
|
+
import * as React from 'react';
|
|
16
|
+
import type { SxProps, Theme } from '@mui/material/styles';
|
|
17
|
+
// AppBar is not polymorphic so we wrap it with forwardRef
|
|
18
|
+
import AppBar from './atoms/AppBar/AppBar';
|
|
19
|
+
export { default as AppBar } from './atoms/AppBar/AppBar';
|
|
20
|
+
// Box is polymorphic so we re-export it directly
|
|
21
|
+
import Box, { type BoxProps } from './atoms/Box/Box';
|
|
22
|
+
export { default as Box } from './atoms/Box/Box';
|
|
23
|
+
export type { BoxProps } from './atoms/Box/Box';
|
|
24
|
+
//Button is polymorphic so we re-export it directly
|
|
25
|
+
import Button from './atoms/Button/Button';
|
|
26
|
+
export { default as Button } from './atoms/Button/Button';
|
|
27
|
+
export type { GuiButtonProps as ButtonProps } from './atoms/Button/Button';
|
|
28
|
+
//Collapse is not polymorphic so we wrap it with forwardRef
|
|
29
|
+
import Collapse, { type CollapseProps } from './atoms/Collapse/Collapse';
|
|
30
|
+
export { default as Collapse } from './atoms/Collapse/Collapse';
|
|
31
|
+
export type { CollapseProps } from './atoms/Collapse/Collapse';
|
|
32
|
+
//IconButton is polymorphic so we re-export it directly
|
|
33
|
+
import IconButton, { type IconButtonProps } from './atoms/IconButton/IconButton';
|
|
34
|
+
export { default as IconButton } from './atoms/IconButton/IconButton';
|
|
35
|
+
export type { IconButtonProps } from './atoms/IconButton/IconButton';
|
|
36
|
+
//Divider is not polymorphic so we wrap it with forwardRef
|
|
37
|
+
import Divider, { type DividerProps } from './atoms/Divider/Divider';
|
|
38
|
+
export { default as Divider } from './atoms/Divider/Divider';
|
|
39
|
+
export type { DividerProps } from './atoms/Divider/Divider';
|
|
40
|
+
//Drawer is not polymorphic so we wrap it with forwardRef
|
|
41
|
+
import Drawer, { type DrawerProps } from './atoms/Drawer/Drawer';
|
|
42
|
+
export { default as Drawer } from './atoms/Drawer/Drawer';
|
|
43
|
+
export type { DrawerProps } from './atoms/Drawer/Drawer';
|
|
44
|
+
//Link is polymorphic so we re-export it directly
|
|
45
|
+
import Link from './atoms/Link/Link';
|
|
46
|
+
export { default as Link } from './atoms/Link/Link';
|
|
47
|
+
export type { LinkProps } from './atoms/Link/Link';
|
|
48
|
+
// List and related are not polymorphic so we wrap them with forwardRef
|
|
49
|
+
import List, { type ListProps } from './atoms/List/List';
|
|
50
|
+
export { default as List } from './atoms/List/List';
|
|
51
|
+
export type { ListProps } from './atoms/List/List';
|
|
52
|
+
import ListItem, { type ListItemProps } from './atoms/ListItem/ListItem';
|
|
53
|
+
export { default as ListItem } from './atoms/ListItem/ListItem';
|
|
54
|
+
export type { ListItemProps } from './atoms/ListItem/ListItem';
|
|
55
|
+
import ListItemButton, { type ListItemButtonProps } from './atoms/ListItemButton/ListItemButton';
|
|
56
|
+
export { default as ListItemButton } from './atoms/ListItemButton/ListItemButton';
|
|
57
|
+
export type { ListItemButtonProps } from './atoms/ListItemButton/ListItemButton';
|
|
58
|
+
import ListItemIcon, { type ListItemIconProps } from './atoms/ListItemIcon/ListItemIcon';
|
|
59
|
+
export { default as ListItemIcon } from './atoms/ListItemIcon/ListItemIcon';
|
|
60
|
+
export type { ListItemIconProps } from './atoms/ListItemIcon/ListItemIcon';
|
|
61
|
+
import ListItemText, { type ListItemTextProps } from './atoms/ListItemText/ListItemText';
|
|
62
|
+
export { default as ListItemText } from './atoms/ListItemText/ListItemText';
|
|
63
|
+
export type { ListItemTextProps } from './atoms/ListItemText/ListItemText';
|
|
64
|
+
//Menu and related are polymorphic so we re-export them directly
|
|
65
|
+
import Menu, { type MenuProps } from './atoms/Menu/Menu';
|
|
66
|
+
export { default as Menu } from './atoms/Menu/Menu';
|
|
67
|
+
export type { MenuProps } from './atoms/Menu/Menu';
|
|
68
|
+
import MenuItem, { type MenuItemProps } from './atoms/MenuItem/MenuItem';
|
|
69
|
+
export { default as MenuItem } from './atoms/MenuItem/MenuItem';
|
|
70
|
+
export type { MenuItemProps } from './atoms/MenuItem/MenuItem';
|
|
71
|
+
//Paper is not polymorphic so we wrap it with forwardRef
|
|
72
|
+
import Paper, { type PaperProps } from './atoms/Paper/Paper';
|
|
73
|
+
export { default as Paper } from './atoms/Paper/Paper';
|
|
74
|
+
export type { PaperProps } from './atoms/Paper/Paper';
|
|
75
|
+
//Stack is not polymorphic so we wrap it with forwardRef
|
|
76
|
+
import Stack, { type StackProps } from './atoms/Stack/Stack';
|
|
77
|
+
export { default as Stack } from './atoms/Stack/Stack';
|
|
78
|
+
export type { StackProps } from './atoms/Stack/Stack';
|
|
79
|
+
//Switch is not polymorphic so we wrap it with forwardRef
|
|
80
|
+
import Switch, { type SwitchProps } from './atoms/Switch/Switch';
|
|
81
|
+
export { default as Switch } from './atoms/Switch/Switch';
|
|
82
|
+
export type { SwitchProps } from './atoms/Switch/Switch';
|
|
83
|
+
//Toolbar is not polymorphic so we wrap it with forwardRef
|
|
84
|
+
import Toolbar from './atoms/Toolbar/Toolbar';
|
|
85
|
+
export { default as Toolbar } from './atoms/Toolbar/Toolbar';
|
|
86
|
+
export type { ToolbarProps } from './atoms/Toolbar/Toolbar';
|
|
87
|
+
//Tooltip is not polymorphic so we wrap it with forwardRef
|
|
88
|
+
import Tooltip from './atoms/Tooltip/Tooltip';
|
|
89
|
+
export { default as Tooltip } from './atoms/Tooltip/Tooltip';
|
|
90
|
+
export type { TooltipProps } from './atoms/Tooltip/Tooltip';
|
|
91
|
+
//Typography is polymorphic so we re-export it directly
|
|
92
|
+
import Typography, { type TypographyProps } from './atoms/Typography/Typography';
|
|
93
|
+
export { default as Typography } from './atoms/Typography/Typography';
|
|
94
|
+
export type { TypographyProps } from './atoms/Typography/Typography';
|
|
95
|
+
|
|
96
|
+
/* -------------------------------------------------------------------------------------------------
|
|
97
|
+
* GuiSx — re-export of MUI’s SxProps<Theme>
|
|
98
|
+
* -------------------------------------------------------------------------------------------------*/
|
|
99
|
+
|
|
100
|
+
/** Public sx type (kept for now to ease migration). */
|
|
101
|
+
export type GuiSx = SxProps<Theme>;
|
|
102
|
+
|
|
103
|
+
/* -------------------------------------------------------------------------------------------------
|
|
104
|
+
* Named bundle export (optional ergonomic import)
|
|
105
|
+
* -------------------------------------------------------------------------------------------------*/
|
|
106
|
+
export const Atoms = {
|
|
107
|
+
Box,
|
|
108
|
+
Typography,
|
|
109
|
+
Link,
|
|
110
|
+
Stack,
|
|
111
|
+
Divider,
|
|
112
|
+
AppBar,
|
|
113
|
+
Toolbar,
|
|
114
|
+
IconButton,
|
|
115
|
+
Menu,
|
|
116
|
+
MenuItem,
|
|
117
|
+
Drawer,
|
|
118
|
+
List,
|
|
119
|
+
ListItem,
|
|
120
|
+
ListItemButton,
|
|
121
|
+
ListItemIcon,
|
|
122
|
+
ListItemText,
|
|
123
|
+
Collapse,
|
|
124
|
+
Button,
|
|
125
|
+
Tooltip,
|
|
126
|
+
Switch,
|
|
127
|
+
Paper,
|
|
128
|
+
} as const;
|
|
129
|
+
export default Atoms;
|
package/src/gui/index.ts
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// src/gui/index.ts
|
|
2
|
+
import { useTheme as useMuiTheme } from '@mui/material/styles';
|
|
3
|
+
import useMuiMediaQuery from '@mui/material/useMediaQuery';
|
|
4
|
+
import type { Theme } from '@mui/material/styles';
|
|
5
|
+
import { keyForWidth, resolveViewportProp } from '@/types/viewport';
|
|
6
|
+
// —— Tipos que expones como “contrato” de this.GUI
|
|
7
|
+
export type GuiTheme = Theme; // por ahora es el de MUI extendido (theme.d.ts)
|
|
8
|
+
// —— Hook central de tema (no importes MUI en los componentes)
|
|
9
|
+
export function useGuiTheme(): GuiTheme {
|
|
10
|
+
return useMuiTheme() as GuiTheme;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// —— Wrapper genérico sobre useMediaQuery de MUI
|
|
14
|
+
export function useGuiMediaQuery(query: string | ((theme: GuiTheme) => string)): boolean {
|
|
15
|
+
const theme = useGuiTheme();
|
|
16
|
+
const finalQuery = typeof query === 'function' ? query(theme) : query;
|
|
17
|
+
return useMuiMediaQuery(finalQuery);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// —— Breakpoints “portables”
|
|
21
|
+
export function useViewportKey(): 'xs'|'sm'|'md'|'lg'|'xl' {
|
|
22
|
+
// si mañana cambias motor, reimplementas adentro y listo
|
|
23
|
+
const theme = useGuiTheme();
|
|
24
|
+
// usa window.innerWidth para no obligar a cada comp a pasar queries
|
|
25
|
+
const width = typeof window !== 'undefined' ? window.innerWidth : 0;
|
|
26
|
+
return keyForWidth(width, theme);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function useIsMobile(): boolean {
|
|
30
|
+
const theme = useGuiTheme();
|
|
31
|
+
return useMuiMediaQuery(theme.breakpoints.down('sm'));
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// —— Insets coordinados (ya los inyectas en GuiProvider)
|
|
35
|
+
export function useInsets() {
|
|
36
|
+
const theme = useGuiTheme();
|
|
37
|
+
return theme?.layout?.insets ?? { left: 0, right: 0, nav: 0 };
|
|
38
|
+
}
|
|
39
|
+
export function useUpdateInsets() {
|
|
40
|
+
const theme = useGuiTheme();
|
|
41
|
+
return theme?.updateInsets ?? (() => {});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// —— Resolver genérico de viewport para props declarativas
|
|
45
|
+
export function useViewportProp<T extends string|number|boolean|object>(
|
|
46
|
+
prop: T | Partial<Record<'xs'|'sm'|'md'|'lg'|'xl', T>> & { default?: T },
|
|
47
|
+
opts?: { widthOverride?: number }
|
|
48
|
+
): T | undefined {
|
|
49
|
+
const theme = useGuiTheme();
|
|
50
|
+
return resolveViewportProp(prop as any, theme, opts);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// —— Resolver de color por token (unifica MUI/Lucide/htmlColor/color)
|
|
54
|
+
export function resolveColorToken(token?: string, theme?: GuiTheme): string | undefined {
|
|
55
|
+
if (!token) return undefined;
|
|
56
|
+
const pal: any = (theme ?? useGuiTheme()).palette;
|
|
57
|
+
if (/^#|^rgb\(|^hsl\(/i.test(token)) return token; // CSS color directo
|
|
58
|
+
if (token.includes('.')) {
|
|
59
|
+
// "text.secondary", "action.active", etc.
|
|
60
|
+
const v = token.split('.').reduce<any>((acc, k) => (acc ? acc[k] : undefined), pal);
|
|
61
|
+
if (typeof v === 'string') return v;
|
|
62
|
+
if (v && typeof v === 'object') return v.main ?? v.default;
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
const v = pal[token];
|
|
66
|
+
if (typeof v === 'string') return v;
|
|
67
|
+
if (v && typeof v === 'object') return v.main ?? v.default;
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// src/gui/molecules/AppBars/Footer/Footer.resolver.tsx
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import Footer from './Footer';
|
|
4
|
+
import type { RegistryEntry, ResolveCtx } from '@/registry/types';
|
|
5
|
+
import { Link as GuiLink } from '@/gui/atoms';
|
|
6
|
+
|
|
7
|
+
export type FooterSpec = {
|
|
8
|
+
type: 'Footer';
|
|
9
|
+
props?: {
|
|
10
|
+
// Branding
|
|
11
|
+
title?: string;
|
|
12
|
+
logoSrc?: string;
|
|
13
|
+
homeHref?: string;
|
|
14
|
+
|
|
15
|
+
// SPA routing for Brand
|
|
16
|
+
brandComponent?: string; // e.g., "Link" (string token resolved by resolver)
|
|
17
|
+
brandTo?: string; // router destination (e.g., "/")
|
|
18
|
+
|
|
19
|
+
// Links
|
|
20
|
+
links?: Array<{ label: string; href: string; external?: boolean }>;
|
|
21
|
+
|
|
22
|
+
// Social icons
|
|
23
|
+
socialLinks?: Array<{ icon: string; href: string; iconColor?: string }>;
|
|
24
|
+
|
|
25
|
+
// Insets
|
|
26
|
+
leftInset?: number;
|
|
27
|
+
rightInset?: number;
|
|
28
|
+
|
|
29
|
+
// Slots via ctx.slots
|
|
30
|
+
startSlotId?: string;
|
|
31
|
+
endSlotId?: string;
|
|
32
|
+
|
|
33
|
+
// Granular styling (deben existir en FooterProps)
|
|
34
|
+
sx?: any;
|
|
35
|
+
leftSx?: any;
|
|
36
|
+
centerSx?: any;
|
|
37
|
+
rightSx?: any;
|
|
38
|
+
brandSx?: any;
|
|
39
|
+
logoSx?: any;
|
|
40
|
+
titleSx?: any;
|
|
41
|
+
socialLinkSx?: any;
|
|
42
|
+
navLinkSx?: any;
|
|
43
|
+
|
|
44
|
+
// Passthrough adicionales
|
|
45
|
+
linkProps?: Record<string, any>;
|
|
46
|
+
iconProps?: Record<string, any>;
|
|
47
|
+
id?: string;
|
|
48
|
+
className?: string;
|
|
49
|
+
'data-testid'?: string;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const FooterResolver: RegistryEntry = {
|
|
54
|
+
type: 'Footer',
|
|
55
|
+
resolve(spec: FooterSpec, ctx?: ResolveCtx) {
|
|
56
|
+
const p = spec.props ?? {};
|
|
57
|
+
|
|
58
|
+
const startSlot = p.startSlotId && ctx?.slots ? ctx.slots[p.startSlotId] : undefined;
|
|
59
|
+
const endSlot = p.endSlotId && ctx?.slots ? ctx.slots[p.endSlotId] : undefined;
|
|
60
|
+
|
|
61
|
+
// Resolve brand component for SPA routing
|
|
62
|
+
let brandComponent: any | undefined = undefined;
|
|
63
|
+
if (p.brandComponent === 'Link') {
|
|
64
|
+
brandComponent = GuiLink;
|
|
65
|
+
} else if (!p.brandComponent && p.brandTo) {
|
|
66
|
+
// If a brandTo is provided without an explicit component token, default to This.GUI Link
|
|
67
|
+
brandComponent = GuiLink;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return (
|
|
71
|
+
<Footer
|
|
72
|
+
title={p.title ?? 'neurons.me'}
|
|
73
|
+
logoSrc={p.logoSrc}
|
|
74
|
+
homeHref={p.homeHref}
|
|
75
|
+
brandComponent={brandComponent}
|
|
76
|
+
brandTo={p.brandTo}
|
|
77
|
+
links={p.links ?? []}
|
|
78
|
+
socialLinks={p.socialLinks ?? []}
|
|
79
|
+
leftInset={p.leftInset}
|
|
80
|
+
rightInset={p.rightInset}
|
|
81
|
+
startSlot={startSlot}
|
|
82
|
+
endSlot={endSlot}
|
|
83
|
+
linkProps={p.linkProps as any}
|
|
84
|
+
iconProps={p.iconProps}
|
|
85
|
+
|
|
86
|
+
// granular styling (sin ts-expect-error)
|
|
87
|
+
sx={p.sx}
|
|
88
|
+
leftSx={p.leftSx}
|
|
89
|
+
centerSx={p.centerSx}
|
|
90
|
+
rightSx={p.rightSx}
|
|
91
|
+
brandSx={p.brandSx}
|
|
92
|
+
logoSx={p.logoSx}
|
|
93
|
+
titleSx={p.titleSx}
|
|
94
|
+
socialLinkSx={p.socialLinkSx}
|
|
95
|
+
navLinkSx={p.navLinkSx}
|
|
96
|
+
id={p.id}
|
|
97
|
+
className={p.className}
|
|
98
|
+
data-testid={p['data-testid']}
|
|
99
|
+
/>
|
|
100
|
+
);
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export default FooterResolver;
|