mirror of
https://github.com/hanzoai/gui.git
synced 2026-10-25 02:31:41 +00:00
Match the layout convention used elsewhere in the Hanzo / Liquidity stack
(pkgs/* for libraries, apps/* for consumer apps, templates/* for starters).
Layout changes:
pkgs/ ← code/{compiler,core,packages,ui,ui-admin}/
apps/ ← code/{admin-base,admin-tasks,demos,gui.hanzo.ai,
kitchen-sink*,sandbox,tests}/
templates/ ← code/starters/* (flattened — no more starters/ subdir)
Updated:
- package.json workspaces glob.
- All scripts/* path references (postinstall, format, repair, release,
sync-gui-versions, ci-serve, check-references, etc).
- ../../tasks/scripts/sync-admin-ui.sh — DEFAULT_SRC now points at
../gui/apps/admin-tasks (and scrubbed Tamagui mentions in comments).
- ~/work/hanzo/HANZO_BINARY.md doctrine doc.
- ~/work/hanzo/ui/pkg/ui/BASES.md framework-bases doc.
- gui CLAUDE.md, CONTRIBUTING.md.
- Memory entries.
Side-effect fix: ui-admin/src/primitives/index.ts now re-exports
PageShell from ../shell/PageShell. Several IAM identity pages
(GroupEdit, OrgEdit, GroupTree, UserEdit, RoleEdit) imported PageShell
from ./primitives — pre-existing barrel mismatch the test suite missed
because the smoke tests don't full-render. The rename surfaced it via
production build; back-compat re-export keeps both barrels working.
Verification:
- bun install: clean.
- ui-admin tests: 127/127 green.
- admin-tasks vite build: 721 KB JS / 213 KB gzip + 10 KB CSS, clean.
37 lines
1.3 KiB
TypeScript
37 lines
1.3 KiB
TypeScript
// import { readFile } from 'node:fs/promises'
|
|
import { join } from 'node:path'
|
|
import type { DemoOptions } from '../theme/demoOptions'
|
|
import { getDemoProps } from './getDemoProps'
|
|
|
|
// TODO move to api
|
|
|
|
export async function exportDemoComponent({
|
|
componentName,
|
|
options,
|
|
}: {
|
|
componentName: string
|
|
options: DemoOptions
|
|
}) {
|
|
// // this only really gets called from the next.js app - so we create the direction based on that.
|
|
// let component = (
|
|
// await readFile(
|
|
// join(process.cwd(), `../studio/src/theme-builder/preview/${componentName}.tsx`)
|
|
// )
|
|
// ).toString()
|
|
// const demoProps = getDemoProps(options)
|
|
// component = component.replaceAll('const demoProps = useDemoProps()', '')
|
|
// component = component.replaceAll('useDemoProps', '')
|
|
// component = component.replaceAll('<AccentTheme>', '')
|
|
// component = component.replaceAll('</AccentTheme>', '')
|
|
// component = component.replaceAll('AccentTheme,', '')
|
|
// component = component.replaceAll('AccentTheme', '')
|
|
// component = component.replace(/import .* from \'src\/accentThemeName\'/g, '')
|
|
// for (const [key, value] of Object.entries(demoProps)) {
|
|
// component = component.replaceAll(
|
|
// `{...demoProps.${key}}`,
|
|
// `{...${JSON.stringify(value)}}`
|
|
// )
|
|
// }
|
|
// return component
|
|
}
|