@olonjs/cli 3.0.139 → 3.0.140
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.
|
@@ -1661,7 +1661,7 @@ cat << 'END_OF_FILE_CONTENT' > "package.json"
|
|
|
1661
1661
|
"dev": "vite",
|
|
1662
1662
|
"dev:clean": "vite --force",
|
|
1663
1663
|
"verify:webmcp": "node scripts/webmcp-feature-check.mjs",
|
|
1664
|
-
"prebuild": "node scripts/sync-pages-to-public.mjs && node scripts/generate-llms-txt.mjs",
|
|
1664
|
+
"prebuild": "node scripts/sync-pages-to-public.mjs && node scripts/generate-llms-txt.mjs && node scripts/bake.mjs",
|
|
1665
1665
|
"build": "tsc && vite build",
|
|
1666
1666
|
"dist": "bash ./src2Code.sh --template alpha src .cursor vercel.json components.json index.html tsconfig.json package.json tsconfig.node.json vite.config.ts scripts ",
|
|
1667
1667
|
"preview": "vite preview",
|
|
@@ -1674,7 +1674,7 @@ cat << 'END_OF_FILE_CONTENT' > "package.json"
|
|
|
1674
1674
|
"@tiptap/extension-link": "^2.11.5",
|
|
1675
1675
|
"@tiptap/react": "^2.11.5",
|
|
1676
1676
|
"@tiptap/starter-kit": "^2.11.5",
|
|
1677
|
-
"@olonjs/core": "^1.1.
|
|
1677
|
+
"@olonjs/core": "^1.1.4",
|
|
1678
1678
|
"class-variance-authority": "^0.7.1",
|
|
1679
1679
|
"clsx": "^2.1.1",
|
|
1680
1680
|
"lucide-react": "^0.474.0",
|
|
@@ -2582,20 +2582,18 @@ cat << 'END_OF_FILE_CONTENT' > "src/App.tsx"
|
|
|
2582
2582
|
* Data from getHydratedData (file-backed or draft); assets from public/assets/images.
|
|
2583
2583
|
* Supports Hybrid Persistence: Local Filesystem (Dev) or Cloud Bridge (Prod).
|
|
2584
2584
|
*/
|
|
2585
|
-
import { useCallback, useEffect, useMemo, useRef, useState
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
import {
|
|
2589
|
-
import type { JsonPagesConfig, LibraryImageEntry, ProjectState } from '@olonjs/core/runtime';
|
|
2590
|
-
import { normalizeBasePath, withBasePath } from '@olonjs/core/runtime';
|
|
2585
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
2586
|
+
import { JsonPagesEngine } from '@olonjs/core';
|
|
2587
|
+
import type { JsonPagesConfig, LibraryImageEntry, ProjectState } from '@olonjs/core';
|
|
2588
|
+
import { normalizeBasePath, withBasePath } from '@olonjs/core';
|
|
2591
2589
|
import { ComponentRegistry } from '@/lib/ComponentRegistry';
|
|
2592
2590
|
import { SECTION_SCHEMAS, SECTION_SUBMISSION_SCHEMAS } from '@/lib/schemas';
|
|
2593
2591
|
import { addSectionConfig } from '@/lib/addSectionConfig';
|
|
2594
2592
|
import { getHydratedData } from '@/lib/draftStorage';
|
|
2595
2593
|
import type { SiteConfig, ThemeConfig, MenuConfig, PageConfig } from '@/types';
|
|
2596
|
-
import type { DeployPhase, StepId } from '@olonjs/core
|
|
2597
|
-
import { DEPLOY_STEPS } from '@olonjs/core
|
|
2598
|
-
import { startCloudSaveStream } from '@olonjs/core
|
|
2594
|
+
import type { DeployPhase, StepId } from '@olonjs/core';
|
|
2595
|
+
import { DEPLOY_STEPS } from '@olonjs/core';
|
|
2596
|
+
import { startCloudSaveStream } from '@olonjs/core';
|
|
2599
2597
|
import siteData from '@/data/config/site.json';
|
|
2600
2598
|
import themeData from '@/data/config/theme.json';
|
|
2601
2599
|
import menuData from '@/data/config/menu.json';
|
|
@@ -2605,23 +2603,9 @@ import { EmptyTenantView } from '@/components/empty-tenant';
|
|
|
2605
2603
|
import { Skeleton } from '@/components/ui/skeleton';
|
|
2606
2604
|
import { ThemeProvider } from '@/components/ThemeProvider';
|
|
2607
2605
|
import { useOlonForms } from '@/lib/useOlonForms';
|
|
2608
|
-
import { OlonFormsContext } from '@olonjs/core
|
|
2606
|
+
import { OlonFormsContext } from '@olonjs/core';
|
|
2609
2607
|
import { iconMap } from '@/lib/IconResolver';
|
|
2610
2608
|
|
|
2611
|
-
/**
|
|
2612
|
-
* Engine selector. Visitors get OlonJSEngine (~28 KB gz); /admin paths
|
|
2613
|
-
* lazy-load the full JsonPagesEngine (~128 KB gz) which mounts the
|
|
2614
|
-
* Studio editor surface. The check runs at module load time — once per
|
|
2615
|
-
* page, before React mounts — so Vite statically splits the chunks.
|
|
2616
|
-
* See ADR-0008 + ADR-0009 + docs/plans/core-studio-split.md (Task 3.1).
|
|
2617
|
-
*/
|
|
2618
|
-
const isAdminPath =
|
|
2619
|
-
typeof window !== 'undefined' && window.location.pathname.startsWith('/admin');
|
|
2620
|
-
|
|
2621
|
-
const LazyJsonPagesEngine = lazy(() =>
|
|
2622
|
-
import('@olonjs/core').then((m) => ({ default: m.JsonPagesEngine })),
|
|
2623
|
-
);
|
|
2624
|
-
|
|
2625
2609
|
import tenantCss from './index.css?inline';
|
|
2626
2610
|
|
|
2627
2611
|
// Cloud Configuration (Injected by Vercel/Netlify Env Vars)
|
|
@@ -3683,12 +3667,8 @@ function App() {
|
|
|
3683
3667
|
{shouldRenderEngine ? (
|
|
3684
3668
|
isTenantEmpty ? (
|
|
3685
3669
|
<EmptyTenantView />
|
|
3686
|
-
) : isAdminPath ? (
|
|
3687
|
-
<Suspense fallback={null}>
|
|
3688
|
-
<LazyJsonPagesEngine config={config} />
|
|
3689
|
-
</Suspense>
|
|
3690
3670
|
) : (
|
|
3691
|
-
<
|
|
3671
|
+
<JsonPagesEngine config={config} />
|
|
3692
3672
|
)
|
|
3693
3673
|
) : null}
|
|
3694
3674
|
{isCloudMode && (contentMode === 'error' || contentFallback?.reasonCode === 'CLOUD_REFRESH_FAILED') ? (
|
|
@@ -3864,7 +3844,7 @@ END_OF_FILE_CONTENT
|
|
|
3864
3844
|
echo "Creating src/components/empty-tenant/schema.ts..."
|
|
3865
3845
|
cat << 'END_OF_FILE_CONTENT' > "src/components/empty-tenant/schema.ts"
|
|
3866
3846
|
import { z } from 'zod';
|
|
3867
|
-
import { BaseSectionData } from '@olonjs/core
|
|
3847
|
+
import { BaseSectionData } from '@olonjs/core';
|
|
3868
3848
|
|
|
3869
3849
|
export const EmptyTenantSchema = BaseSectionData.extend({
|
|
3870
3850
|
title: z.string().optional().describe('ui:text'),
|
|
@@ -3887,7 +3867,7 @@ mkdir -p "src/components/form-demo"
|
|
|
3887
3867
|
echo "Creating src/components/form-demo/View.tsx..."
|
|
3888
3868
|
cat << 'END_OF_FILE_CONTENT' > "src/components/form-demo/View.tsx"
|
|
3889
3869
|
import { Icon } from '@/lib/IconResolver';
|
|
3890
|
-
import { useFormState } from '@olonjs/core
|
|
3870
|
+
import { useFormState } from '@olonjs/core';
|
|
3891
3871
|
import type { FormDemoData } from './types';
|
|
3892
3872
|
|
|
3893
3873
|
type FormDemoViewProps = {
|
|
@@ -4051,7 +4031,7 @@ END_OF_FILE_CONTENT
|
|
|
4051
4031
|
echo "Creating src/components/form-demo/schema.ts..."
|
|
4052
4032
|
cat << 'END_OF_FILE_CONTENT' > "src/components/form-demo/schema.ts"
|
|
4053
4033
|
import { z } from 'zod';
|
|
4054
|
-
import { BaseSectionData, WithFormRecipient } from '@olonjs/core
|
|
4034
|
+
import { BaseSectionData, WithFormRecipient } from '@olonjs/core';
|
|
4055
4035
|
|
|
4056
4036
|
export const FormDemoSchema = BaseSectionData.merge(WithFormRecipient).extend({
|
|
4057
4037
|
icon: z.string().optional().describe('ui:icon-picker'),
|
|
@@ -4090,7 +4070,7 @@ END_OF_FILE_CONTENT
|
|
|
4090
4070
|
mkdir -p "src/components/save-drawer"
|
|
4091
4071
|
echo "Creating src/components/save-drawer/DeployConnector.tsx..."
|
|
4092
4072
|
cat << 'END_OF_FILE_CONTENT' > "src/components/save-drawer/DeployConnector.tsx"
|
|
4093
|
-
import type { StepState } from '@olonjs/core
|
|
4073
|
+
import type { StepState } from '@olonjs/core';
|
|
4094
4074
|
|
|
4095
4075
|
interface DeployConnectorProps {
|
|
4096
4076
|
fromState: StepState;
|
|
@@ -4136,7 +4116,7 @@ END_OF_FILE_CONTENT
|
|
|
4136
4116
|
echo "Creating src/components/save-drawer/DeployNode.tsx..."
|
|
4137
4117
|
cat << 'END_OF_FILE_CONTENT' > "src/components/save-drawer/DeployNode.tsx"
|
|
4138
4118
|
import type { CSSProperties } from 'react';
|
|
4139
|
-
import type { DeployStep, StepState } from '@olonjs/core
|
|
4119
|
+
import type { DeployStep, StepState } from '@olonjs/core';
|
|
4140
4120
|
|
|
4141
4121
|
interface DeployNodeProps {
|
|
4142
4122
|
step: DeployStep;
|
|
@@ -4224,8 +4204,8 @@ echo "Creating src/components/save-drawer/DopaDrawer.tsx..."
|
|
|
4224
4204
|
cat << 'END_OF_FILE_CONTENT' > "src/components/save-drawer/DopaDrawer.tsx"
|
|
4225
4205
|
import { useEffect, useMemo, useState } from 'react';
|
|
4226
4206
|
import { createPortal } from 'react-dom';
|
|
4227
|
-
import type { StepId, StepState } from '@olonjs/core
|
|
4228
|
-
import { DEPLOY_STEPS } from '@olonjs/core
|
|
4207
|
+
import type { StepId, StepState } from '@olonjs/core';
|
|
4208
|
+
import { DEPLOY_STEPS } from '@olonjs/core';
|
|
4229
4209
|
import fontsCss from '@/fonts.css?inline';
|
|
4230
4210
|
import saverStyleCss from './saverStyle.css?inline';
|
|
4231
4211
|
import { DeployNode } from './DeployNode';
|
|
@@ -5432,7 +5412,7 @@ import {
|
|
|
5432
5412
|
Code2, Quote, SquareCode,
|
|
5433
5413
|
Link2, Unlink2, ImagePlus, Eraser,
|
|
5434
5414
|
} from 'lucide-react';
|
|
5435
|
-
import { STUDIO_EVENTS, useConfig, useStudio } from '@olonjs/core
|
|
5415
|
+
import { STUDIO_EVENTS, useConfig, useStudio } from '@olonjs/core';
|
|
5436
5416
|
import type { TiptapData, TiptapSettings } from './types';
|
|
5437
5417
|
|
|
5438
5418
|
// ── UI primitives ─────────────────────────────────────────────────
|
|
@@ -5755,7 +5735,7 @@ END_OF_FILE_CONTENT
|
|
|
5755
5735
|
echo "Creating src/components/tiptap/schema.ts..."
|
|
5756
5736
|
cat << 'END_OF_FILE_CONTENT' > "src/components/tiptap/schema.ts"
|
|
5757
5737
|
import { z } from 'zod';
|
|
5758
|
-
import { BaseSectionData } from '@olonjs/core
|
|
5738
|
+
import { BaseSectionData } from '@olonjs/core';
|
|
5759
5739
|
|
|
5760
5740
|
export const TiptapSchema = BaseSectionData.extend({
|
|
5761
5741
|
content: z.string().default('').describe('ui:editorial-markdown'),
|
|
@@ -5776,7 +5756,7 @@ END_OF_FILE_CONTENT
|
|
|
5776
5756
|
mkdir -p "src/components/ui"
|
|
5777
5757
|
echo "Creating src/components/ui/OlonMark.tsx..."
|
|
5778
5758
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/OlonMark.tsx"
|
|
5779
|
-
import { cn } from '@olonjs/core
|
|
5759
|
+
import { cn } from '@olonjs/core'
|
|
5780
5760
|
|
|
5781
5761
|
interface OlonMarkProps {
|
|
5782
5762
|
size?: number
|
|
@@ -5866,7 +5846,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/accordion.tsx"
|
|
|
5866
5846
|
import * as React from "react"
|
|
5867
5847
|
import { Accordion as AccordionPrimitive } from "radix-ui"
|
|
5868
5848
|
|
|
5869
|
-
import { cn } from "@olonjs/core
|
|
5849
|
+
import { cn } from "@olonjs/core"
|
|
5870
5850
|
import { ChevronDownIcon, ChevronUpIcon } from "lucide-react"
|
|
5871
5851
|
|
|
5872
5852
|
function Accordion({
|
|
@@ -5970,7 +5950,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/avatar.tsx"
|
|
|
5970
5950
|
import * as React from "react"
|
|
5971
5951
|
import { Avatar as AvatarPrimitive } from "radix-ui"
|
|
5972
5952
|
|
|
5973
|
-
import { cn } from "@olonjs/core
|
|
5953
|
+
import { cn } from "@olonjs/core"
|
|
5974
5954
|
|
|
5975
5955
|
function Avatar({
|
|
5976
5956
|
className,
|
|
@@ -6085,7 +6065,7 @@ echo "Creating src/components/ui/badge.tsx..."
|
|
|
6085
6065
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/badge.tsx"
|
|
6086
6066
|
import * as React from 'react'
|
|
6087
6067
|
import { cva, type VariantProps } from 'class-variance-authority'
|
|
6088
|
-
import { cn } from '@olonjs/core
|
|
6068
|
+
import { cn } from '@olonjs/core'
|
|
6089
6069
|
|
|
6090
6070
|
const badgeVariants = cva(
|
|
6091
6071
|
'inline-flex items-center px-2.5 py-0.5 text-xs font-medium transition-colors',
|
|
@@ -6120,7 +6100,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/breadcrumb.tsx"
|
|
|
6120
6100
|
import * as React from "react"
|
|
6121
6101
|
import { Slot } from "radix-ui"
|
|
6122
6102
|
|
|
6123
|
-
import { cn } from "@olonjs/core
|
|
6103
|
+
import { cn } from "@olonjs/core"
|
|
6124
6104
|
import { ChevronRightIcon, MoreHorizontalIcon } from "lucide-react"
|
|
6125
6105
|
|
|
6126
6106
|
function Breadcrumb({ className, ...props }: React.ComponentProps<"nav">) {
|
|
@@ -6247,7 +6227,7 @@ echo "Creating src/components/ui/button.tsx..."
|
|
|
6247
6227
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/button.tsx"
|
|
6248
6228
|
import * as React from 'react'
|
|
6249
6229
|
import { cva, type VariantProps } from 'class-variance-authority'
|
|
6250
|
-
import { cn } from '@olonjs/core
|
|
6230
|
+
import { cn } from '@olonjs/core'
|
|
6251
6231
|
|
|
6252
6232
|
const buttonVariants = cva(
|
|
6253
6233
|
'inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-40 shrink-0',
|
|
@@ -6308,7 +6288,7 @@ END_OF_FILE_CONTENT
|
|
|
6308
6288
|
echo "Creating src/components/ui/card.tsx..."
|
|
6309
6289
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/card.tsx"
|
|
6310
6290
|
import * as React from 'react'
|
|
6311
|
-
import { cn } from '@olonjs/core
|
|
6291
|
+
import { cn } from '@olonjs/core'
|
|
6312
6292
|
|
|
6313
6293
|
const Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
|
6314
6294
|
({ className, ...props }, ref) => (
|
|
@@ -6367,7 +6347,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/checkbox.tsx"
|
|
|
6367
6347
|
import * as React from "react"
|
|
6368
6348
|
import { Checkbox as CheckboxPrimitive } from "radix-ui"
|
|
6369
6349
|
|
|
6370
|
-
import { cn } from "@olonjs/core
|
|
6350
|
+
import { cn } from "@olonjs/core"
|
|
6371
6351
|
import { CheckIcon } from "lucide-react"
|
|
6372
6352
|
|
|
6373
6353
|
function Checkbox({
|
|
@@ -6407,7 +6387,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/dialog.tsx"
|
|
|
6407
6387
|
import * as React from "react"
|
|
6408
6388
|
import { Dialog as DialogPrimitive } from "radix-ui"
|
|
6409
6389
|
|
|
6410
|
-
import { cn } from "@olonjs/core
|
|
6390
|
+
import { cn } from "@olonjs/core"
|
|
6411
6391
|
import { Button } from "@/components/ui/button"
|
|
6412
6392
|
import { XIcon } from "lucide-react"
|
|
6413
6393
|
|
|
@@ -6579,7 +6559,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/dropdown-menu.tsx"
|
|
|
6579
6559
|
import * as React from "react"
|
|
6580
6560
|
import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui"
|
|
6581
6561
|
|
|
6582
|
-
import { cn } from "@olonjs/core
|
|
6562
|
+
import { cn } from "@olonjs/core"
|
|
6583
6563
|
import { CheckIcon, ChevronRightIcon } from "lucide-react"
|
|
6584
6564
|
|
|
6585
6565
|
function DropdownMenu({
|
|
@@ -6854,7 +6834,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/hover-card.tsx"
|
|
|
6854
6834
|
import * as React from "react"
|
|
6855
6835
|
import { HoverCard as HoverCardPrimitive } from "radix-ui"
|
|
6856
6836
|
|
|
6857
|
-
import { cn } from "@olonjs/core
|
|
6837
|
+
import { cn } from "@olonjs/core"
|
|
6858
6838
|
|
|
6859
6839
|
function HoverCard({
|
|
6860
6840
|
...props
|
|
@@ -6900,7 +6880,7 @@ END_OF_FILE_CONTENT
|
|
|
6900
6880
|
echo "Creating src/components/ui/input.tsx..."
|
|
6901
6881
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/input.tsx"
|
|
6902
6882
|
import * as React from 'react'
|
|
6903
|
-
import { cn } from '@olonjs/core
|
|
6883
|
+
import { cn } from '@olonjs/core'
|
|
6904
6884
|
|
|
6905
6885
|
export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {}
|
|
6906
6886
|
|
|
@@ -6931,7 +6911,7 @@ END_OF_FILE_CONTENT
|
|
|
6931
6911
|
echo "Creating src/components/ui/label.tsx..."
|
|
6932
6912
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/label.tsx"
|
|
6933
6913
|
import * as React from 'react'
|
|
6934
|
-
import { cn } from '@olonjs/core
|
|
6914
|
+
import { cn } from '@olonjs/core'
|
|
6935
6915
|
|
|
6936
6916
|
const Label = React.forwardRef<
|
|
6937
6917
|
HTMLLabelElement,
|
|
@@ -6955,7 +6935,7 @@ import * as React from "react"
|
|
|
6955
6935
|
import { cva } from "class-variance-authority"
|
|
6956
6936
|
import { NavigationMenu as NavigationMenuPrimitive } from "radix-ui"
|
|
6957
6937
|
|
|
6958
|
-
import { cn } from "@olonjs/core
|
|
6938
|
+
import { cn } from "@olonjs/core"
|
|
6959
6939
|
import { ChevronDownIcon } from "lucide-react"
|
|
6960
6940
|
|
|
6961
6941
|
function NavigationMenu({
|
|
@@ -7124,7 +7104,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/progress.tsx"
|
|
|
7124
7104
|
import * as React from "react"
|
|
7125
7105
|
import { Progress as ProgressPrimitive } from "radix-ui"
|
|
7126
7106
|
|
|
7127
|
-
import { cn } from "@olonjs/core
|
|
7107
|
+
import { cn } from "@olonjs/core"
|
|
7128
7108
|
|
|
7129
7109
|
function Progress({
|
|
7130
7110
|
className,
|
|
@@ -7159,7 +7139,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/scroll-area.tsx"
|
|
|
7159
7139
|
import * as React from "react"
|
|
7160
7140
|
import { ScrollArea as ScrollAreaPrimitive } from "radix-ui"
|
|
7161
7141
|
|
|
7162
|
-
import { cn } from "@olonjs/core
|
|
7142
|
+
import { cn } from "@olonjs/core"
|
|
7163
7143
|
|
|
7164
7144
|
function ScrollArea({
|
|
7165
7145
|
className,
|
|
@@ -7218,7 +7198,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/select.tsx"
|
|
|
7218
7198
|
import * as React from "react"
|
|
7219
7199
|
import { Select as SelectPrimitive } from "radix-ui"
|
|
7220
7200
|
|
|
7221
|
-
import { cn } from "@olonjs/core
|
|
7201
|
+
import { cn } from "@olonjs/core"
|
|
7222
7202
|
import { ChevronDownIcon, CheckIcon, ChevronUpIcon } from "lucide-react"
|
|
7223
7203
|
|
|
7224
7204
|
function Select({
|
|
@@ -7604,7 +7584,7 @@ END_OF_FILE_CONTENT
|
|
|
7604
7584
|
echo "Creating src/components/ui/separator.tsx..."
|
|
7605
7585
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/separator.tsx"
|
|
7606
7586
|
import * as React from 'react'
|
|
7607
|
-
import { cn } from '@olonjs/core
|
|
7587
|
+
import { cn } from '@olonjs/core'
|
|
7608
7588
|
|
|
7609
7589
|
const Separator = React.forwardRef<
|
|
7610
7590
|
HTMLDivElement,
|
|
@@ -7633,7 +7613,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/sheet.tsx"
|
|
|
7633
7613
|
import * as React from "react"
|
|
7634
7614
|
import { Dialog as SheetPrimitive } from "radix-ui"
|
|
7635
7615
|
|
|
7636
|
-
import { cn } from "@olonjs/core
|
|
7616
|
+
import { cn } from "@olonjs/core"
|
|
7637
7617
|
import { Button } from "@/components/ui/button"
|
|
7638
7618
|
import { XIcon } from "lucide-react"
|
|
7639
7619
|
|
|
@@ -7781,7 +7761,7 @@ END_OF_FILE_CONTENT
|
|
|
7781
7761
|
# SKIP: src/components/ui/sheet.tsx:Zone.Identifier is binary and cannot be embedded as text.
|
|
7782
7762
|
echo "Creating src/components/ui/skeleton.tsx..."
|
|
7783
7763
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/skeleton.tsx"
|
|
7784
|
-
import { cn } from '@olonjs/core
|
|
7764
|
+
import { cn } from '@olonjs/core';
|
|
7785
7765
|
import type { HTMLAttributes } from 'react';
|
|
7786
7766
|
|
|
7787
7767
|
function Skeleton({
|
|
@@ -7805,7 +7785,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/switch.tsx"
|
|
|
7805
7785
|
import * as React from "react"
|
|
7806
7786
|
import { Switch as SwitchPrimitive } from "radix-ui"
|
|
7807
7787
|
|
|
7808
|
-
import { cn } from "@olonjs/core
|
|
7788
|
+
import { cn } from "@olonjs/core"
|
|
7809
7789
|
|
|
7810
7790
|
function Switch({
|
|
7811
7791
|
className,
|
|
@@ -7841,7 +7821,7 @@ echo "Creating src/components/ui/table.tsx..."
|
|
|
7841
7821
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/table.tsx"
|
|
7842
7822
|
import * as React from "react"
|
|
7843
7823
|
|
|
7844
|
-
import { cn } from "@olonjs/core
|
|
7824
|
+
import { cn } from "@olonjs/core"
|
|
7845
7825
|
|
|
7846
7826
|
function Table({ className, ...props }: React.ComponentProps<"table">) {
|
|
7847
7827
|
return (
|
|
@@ -7965,7 +7945,7 @@ import * as React from "react"
|
|
|
7965
7945
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
7966
7946
|
import { Tabs as TabsPrimitive } from "radix-ui"
|
|
7967
7947
|
|
|
7968
|
-
import { cn } from "@olonjs/core
|
|
7948
|
+
import { cn } from "@olonjs/core"
|
|
7969
7949
|
|
|
7970
7950
|
function Tabs({
|
|
7971
7951
|
className,
|
|
@@ -8057,7 +8037,7 @@ echo "Creating src/components/ui/textarea.tsx..."
|
|
|
8057
8037
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/textarea.tsx"
|
|
8058
8038
|
import * as React from "react"
|
|
8059
8039
|
|
|
8060
|
-
import { cn } from "@olonjs/core
|
|
8040
|
+
import { cn } from "@olonjs/core"
|
|
8061
8041
|
|
|
8062
8042
|
function Textarea({ className, ...props }: React.ComponentProps<"textarea">) {
|
|
8063
8043
|
return (
|
|
@@ -8086,7 +8066,7 @@ import * as React from "react"
|
|
|
8086
8066
|
import { type VariantProps } from "class-variance-authority"
|
|
8087
8067
|
import { ToggleGroup as ToggleGroupPrimitive } from "radix-ui"
|
|
8088
8068
|
|
|
8089
|
-
import { cn } from "@olonjs/core
|
|
8069
|
+
import { cn } from "@olonjs/core"
|
|
8090
8070
|
import { toggleVariants } from "@/components/ui/toggle"
|
|
8091
8071
|
|
|
8092
8072
|
const ToggleGroupContext = React.createContext<
|
|
@@ -8181,7 +8161,7 @@ import * as React from "react"
|
|
|
8181
8161
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
8182
8162
|
import { Toggle as TogglePrimitive } from "radix-ui"
|
|
8183
8163
|
|
|
8184
|
-
import { cn } from "@olonjs/core
|
|
8164
|
+
import { cn } from "@olonjs/core"
|
|
8185
8165
|
|
|
8186
8166
|
const toggleVariants = cva(
|
|
8187
8167
|
"group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted data-[state=on]:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
@@ -8233,7 +8213,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/tooltip.tsx"
|
|
|
8233
8213
|
import * as React from "react"
|
|
8234
8214
|
import { Tooltip as TooltipPrimitive } from "radix-ui"
|
|
8235
8215
|
|
|
8236
|
-
import { cn } from "@olonjs/core
|
|
8216
|
+
import { cn } from "@olonjs/core"
|
|
8237
8217
|
|
|
8238
8218
|
function TooltipProvider({
|
|
8239
8219
|
delayDuration = 0,
|
|
@@ -8936,7 +8916,7 @@ echo "Creating src/entry-ssg.tsx..."
|
|
|
8936
8916
|
cat << 'END_OF_FILE_CONTENT' > "src/entry-ssg.tsx"
|
|
8937
8917
|
import { renderToString } from 'react-dom/server';
|
|
8938
8918
|
import { StaticRouter } from 'react-router-dom/server';
|
|
8939
|
-
import { ConfigProvider, PageRenderer, StudioProvider, resolveRuntimeConfig } from '@olonjs/core
|
|
8919
|
+
import { ConfigProvider, PageRenderer, StudioProvider, resolveRuntimeConfig } from '@olonjs/core';
|
|
8940
8920
|
import type { JsonPagesConfig, PageConfig, SiteConfig, ThemeConfig } from '@/types';
|
|
8941
8921
|
import { ThemeProvider } from '@/components/ThemeProvider';
|
|
8942
8922
|
import { ComponentRegistry } from '@/lib/ComponentRegistry';
|
|
@@ -10144,7 +10124,7 @@ export const Icon: React.FC<IconProps> = ({ name, size = 20, className }) => {
|
|
|
10144
10124
|
END_OF_FILE_CONTENT
|
|
10145
10125
|
echo "Creating src/lib/addSectionConfig.ts..."
|
|
10146
10126
|
cat << 'END_OF_FILE_CONTENT' > "src/lib/addSectionConfig.ts"
|
|
10147
|
-
import type { AddSectionConfig } from '@olonjs/core
|
|
10127
|
+
import type { AddSectionConfig } from '@olonjs/core';
|
|
10148
10128
|
|
|
10149
10129
|
const addableSectionTypes = ['empty-tenant', 'form-demo'] as const;
|
|
10150
10130
|
|
|
@@ -10285,7 +10265,7 @@ export {
|
|
|
10285
10265
|
BaseSectionSettingsSchema,
|
|
10286
10266
|
CtaSchema,
|
|
10287
10267
|
ImageSelectionSchema,
|
|
10288
|
-
} from '@olonjs/core
|
|
10268
|
+
} from '@olonjs/core';
|
|
10289
10269
|
|
|
10290
10270
|
END_OF_FILE_CONTENT
|
|
10291
10271
|
echo "Creating src/lib/useFormSubmit.ts..."
|
|
@@ -10380,7 +10360,7 @@ END_OF_FILE_CONTENT
|
|
|
10380
10360
|
echo "Creating src/lib/useOlonForms.ts..."
|
|
10381
10361
|
cat << 'END_OF_FILE_CONTENT' > "src/lib/useOlonForms.ts"
|
|
10382
10362
|
import { useCallback, useEffect, useState } from 'react';
|
|
10383
|
-
import type { FormState } from '@olonjs/core
|
|
10363
|
+
import type { FormState } from '@olonjs/core';
|
|
10384
10364
|
|
|
10385
10365
|
const API_BASE =
|
|
10386
10366
|
(import.meta.env.VITE_OLONJS_CLOUD_URL as string | undefined) ??
|
|
@@ -10581,12 +10561,6 @@ export type SectionComponentPropsMap = {
|
|
|
10581
10561
|
'form-demo': { data: FormDemoData; settings?: FormDemoSettings };
|
|
10582
10562
|
};
|
|
10583
10563
|
|
|
10584
|
-
// MTRP module augmentation. TypeScript treats `@olonjs/core` and
|
|
10585
|
-
// `@olonjs/core/runtime` as separate module identifiers (different
|
|
10586
|
-
// import specifiers). After ADR-0009 the tenant imports JsonPagesConfig
|
|
10587
|
-
// from `/runtime` for the visitor path, so the section registries must
|
|
10588
|
-
// be augmented for *both* identifiers, otherwise PageConfig.sections
|
|
10589
|
-
// resolves to a generic FallbackSection on the runtime side.
|
|
10590
10564
|
declare module '@olonjs/core' {
|
|
10591
10565
|
export interface SectionDataRegistry {
|
|
10592
10566
|
'empty-tenant': EmptyTenantData;
|
|
@@ -10598,26 +10572,7 @@ declare module '@olonjs/core' {
|
|
|
10598
10572
|
}
|
|
10599
10573
|
}
|
|
10600
10574
|
|
|
10601
|
-
|
|
10602
|
-
export interface SectionDataRegistry {
|
|
10603
|
-
'empty-tenant': EmptyTenantData;
|
|
10604
|
-
'form-demo': FormDemoData;
|
|
10605
|
-
}
|
|
10606
|
-
export interface SectionSettingsRegistry {
|
|
10607
|
-
'empty-tenant': EmptyTenantSettings;
|
|
10608
|
-
'form-demo': FormDemoSettings;
|
|
10609
|
-
}
|
|
10610
|
-
}
|
|
10611
|
-
|
|
10612
|
-
// ADR-0009 D7: tenant types re-export from the runtime subpath, NOT the
|
|
10613
|
-
// full @olonjs/core. This is a value re-export — even though every
|
|
10614
|
-
// consumer in this codebase only does `import type`, Vite's static
|
|
10615
|
-
// graph treats `export *` as a runtime dependency edge. Pointing it at
|
|
10616
|
-
// '@olonjs/core' would pull the full Studio bundle (AdminSidebar,
|
|
10617
|
-
// FormFactory, StudioStage, admin-skin) into the visitor main chunk.
|
|
10618
|
-
// Pointing it at '@olonjs/core/runtime' anchors the graph to the
|
|
10619
|
-
// runtime-only bundle (~28 KB gz) so the visitor entry stays clean.
|
|
10620
|
-
export * from '@olonjs/core/runtime';
|
|
10575
|
+
export * from '@olonjs/core';
|
|
10621
10576
|
|
|
10622
10577
|
END_OF_FILE_CONTENT
|
|
10623
10578
|
echo "Creating src/vite-env.d.ts..."
|
|
@@ -1661,7 +1661,7 @@ cat << 'END_OF_FILE_CONTENT' > "package.json"
|
|
|
1661
1661
|
"dev": "vite",
|
|
1662
1662
|
"dev:clean": "vite --force",
|
|
1663
1663
|
"verify:webmcp": "node scripts/webmcp-feature-check.mjs",
|
|
1664
|
-
"prebuild": "node scripts/sync-pages-to-public.mjs && node scripts/generate-llms-txt.mjs",
|
|
1664
|
+
"prebuild": "node scripts/sync-pages-to-public.mjs && node scripts/generate-llms-txt.mjs && node scripts/bake.mjs",
|
|
1665
1665
|
"build": "tsc && vite build",
|
|
1666
1666
|
"dist": "bash ./src2Code.sh --template alpha src .cursor vercel.json components.json index.html tsconfig.json package.json tsconfig.node.json vite.config.ts scripts ",
|
|
1667
1667
|
"preview": "vite preview",
|
|
@@ -1674,7 +1674,7 @@ cat << 'END_OF_FILE_CONTENT' > "package.json"
|
|
|
1674
1674
|
"@tiptap/extension-link": "^2.11.5",
|
|
1675
1675
|
"@tiptap/react": "^2.11.5",
|
|
1676
1676
|
"@tiptap/starter-kit": "^2.11.5",
|
|
1677
|
-
"@olonjs/core": "^1.1.
|
|
1677
|
+
"@olonjs/core": "^1.1.4",
|
|
1678
1678
|
"class-variance-authority": "^0.7.1",
|
|
1679
1679
|
"clsx": "^2.1.1",
|
|
1680
1680
|
"lucide-react": "^0.474.0",
|
|
@@ -2582,20 +2582,18 @@ cat << 'END_OF_FILE_CONTENT' > "src/App.tsx"
|
|
|
2582
2582
|
* Data from getHydratedData (file-backed or draft); assets from public/assets/images.
|
|
2583
2583
|
* Supports Hybrid Persistence: Local Filesystem (Dev) or Cloud Bridge (Prod).
|
|
2584
2584
|
*/
|
|
2585
|
-
import { useCallback, useEffect, useMemo, useRef, useState
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
import {
|
|
2589
|
-
import type { JsonPagesConfig, LibraryImageEntry, ProjectState } from '@olonjs/core/runtime';
|
|
2590
|
-
import { normalizeBasePath, withBasePath } from '@olonjs/core/runtime';
|
|
2585
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
2586
|
+
import { JsonPagesEngine } from '@olonjs/core';
|
|
2587
|
+
import type { JsonPagesConfig, LibraryImageEntry, ProjectState } from '@olonjs/core';
|
|
2588
|
+
import { normalizeBasePath, withBasePath } from '@olonjs/core';
|
|
2591
2589
|
import { ComponentRegistry } from '@/lib/ComponentRegistry';
|
|
2592
2590
|
import { SECTION_SCHEMAS, SECTION_SUBMISSION_SCHEMAS } from '@/lib/schemas';
|
|
2593
2591
|
import { addSectionConfig } from '@/lib/addSectionConfig';
|
|
2594
2592
|
import { getHydratedData } from '@/lib/draftStorage';
|
|
2595
2593
|
import type { SiteConfig, ThemeConfig, MenuConfig, PageConfig } from '@/types';
|
|
2596
|
-
import type { DeployPhase, StepId } from '@olonjs/core
|
|
2597
|
-
import { DEPLOY_STEPS } from '@olonjs/core
|
|
2598
|
-
import { startCloudSaveStream } from '@olonjs/core
|
|
2594
|
+
import type { DeployPhase, StepId } from '@olonjs/core';
|
|
2595
|
+
import { DEPLOY_STEPS } from '@olonjs/core';
|
|
2596
|
+
import { startCloudSaveStream } from '@olonjs/core';
|
|
2599
2597
|
import siteData from '@/data/config/site.json';
|
|
2600
2598
|
import themeData from '@/data/config/theme.json';
|
|
2601
2599
|
import menuData from '@/data/config/menu.json';
|
|
@@ -2605,23 +2603,9 @@ import { EmptyTenantView } from '@/components/empty-tenant';
|
|
|
2605
2603
|
import { Skeleton } from '@/components/ui/skeleton';
|
|
2606
2604
|
import { ThemeProvider } from '@/components/ThemeProvider';
|
|
2607
2605
|
import { useOlonForms } from '@/lib/useOlonForms';
|
|
2608
|
-
import { OlonFormsContext } from '@olonjs/core
|
|
2606
|
+
import { OlonFormsContext } from '@olonjs/core';
|
|
2609
2607
|
import { iconMap } from '@/lib/IconResolver';
|
|
2610
2608
|
|
|
2611
|
-
/**
|
|
2612
|
-
* Engine selector. Visitors get OlonJSEngine (~28 KB gz); /admin paths
|
|
2613
|
-
* lazy-load the full JsonPagesEngine (~128 KB gz) which mounts the
|
|
2614
|
-
* Studio editor surface. The check runs at module load time — once per
|
|
2615
|
-
* page, before React mounts — so Vite statically splits the chunks.
|
|
2616
|
-
* See ADR-0008 + ADR-0009 + docs/plans/core-studio-split.md (Task 3.1).
|
|
2617
|
-
*/
|
|
2618
|
-
const isAdminPath =
|
|
2619
|
-
typeof window !== 'undefined' && window.location.pathname.startsWith('/admin');
|
|
2620
|
-
|
|
2621
|
-
const LazyJsonPagesEngine = lazy(() =>
|
|
2622
|
-
import('@olonjs/core').then((m) => ({ default: m.JsonPagesEngine })),
|
|
2623
|
-
);
|
|
2624
|
-
|
|
2625
2609
|
import tenantCss from './index.css?inline';
|
|
2626
2610
|
|
|
2627
2611
|
// Cloud Configuration (Injected by Vercel/Netlify Env Vars)
|
|
@@ -3683,12 +3667,8 @@ function App() {
|
|
|
3683
3667
|
{shouldRenderEngine ? (
|
|
3684
3668
|
isTenantEmpty ? (
|
|
3685
3669
|
<EmptyTenantView />
|
|
3686
|
-
) : isAdminPath ? (
|
|
3687
|
-
<Suspense fallback={null}>
|
|
3688
|
-
<LazyJsonPagesEngine config={config} />
|
|
3689
|
-
</Suspense>
|
|
3690
3670
|
) : (
|
|
3691
|
-
<
|
|
3671
|
+
<JsonPagesEngine config={config} />
|
|
3692
3672
|
)
|
|
3693
3673
|
) : null}
|
|
3694
3674
|
{isCloudMode && (contentMode === 'error' || contentFallback?.reasonCode === 'CLOUD_REFRESH_FAILED') ? (
|
|
@@ -3864,7 +3844,7 @@ END_OF_FILE_CONTENT
|
|
|
3864
3844
|
echo "Creating src/components/empty-tenant/schema.ts..."
|
|
3865
3845
|
cat << 'END_OF_FILE_CONTENT' > "src/components/empty-tenant/schema.ts"
|
|
3866
3846
|
import { z } from 'zod';
|
|
3867
|
-
import { BaseSectionData } from '@olonjs/core
|
|
3847
|
+
import { BaseSectionData } from '@olonjs/core';
|
|
3868
3848
|
|
|
3869
3849
|
export const EmptyTenantSchema = BaseSectionData.extend({
|
|
3870
3850
|
title: z.string().optional().describe('ui:text'),
|
|
@@ -3887,7 +3867,7 @@ mkdir -p "src/components/form-demo"
|
|
|
3887
3867
|
echo "Creating src/components/form-demo/View.tsx..."
|
|
3888
3868
|
cat << 'END_OF_FILE_CONTENT' > "src/components/form-demo/View.tsx"
|
|
3889
3869
|
import { Icon } from '@/lib/IconResolver';
|
|
3890
|
-
import { useFormState } from '@olonjs/core
|
|
3870
|
+
import { useFormState } from '@olonjs/core';
|
|
3891
3871
|
import type { FormDemoData } from './types';
|
|
3892
3872
|
|
|
3893
3873
|
type FormDemoViewProps = {
|
|
@@ -4051,7 +4031,7 @@ END_OF_FILE_CONTENT
|
|
|
4051
4031
|
echo "Creating src/components/form-demo/schema.ts..."
|
|
4052
4032
|
cat << 'END_OF_FILE_CONTENT' > "src/components/form-demo/schema.ts"
|
|
4053
4033
|
import { z } from 'zod';
|
|
4054
|
-
import { BaseSectionData, WithFormRecipient } from '@olonjs/core
|
|
4034
|
+
import { BaseSectionData, WithFormRecipient } from '@olonjs/core';
|
|
4055
4035
|
|
|
4056
4036
|
export const FormDemoSchema = BaseSectionData.merge(WithFormRecipient).extend({
|
|
4057
4037
|
icon: z.string().optional().describe('ui:icon-picker'),
|
|
@@ -4090,7 +4070,7 @@ END_OF_FILE_CONTENT
|
|
|
4090
4070
|
mkdir -p "src/components/save-drawer"
|
|
4091
4071
|
echo "Creating src/components/save-drawer/DeployConnector.tsx..."
|
|
4092
4072
|
cat << 'END_OF_FILE_CONTENT' > "src/components/save-drawer/DeployConnector.tsx"
|
|
4093
|
-
import type { StepState } from '@olonjs/core
|
|
4073
|
+
import type { StepState } from '@olonjs/core';
|
|
4094
4074
|
|
|
4095
4075
|
interface DeployConnectorProps {
|
|
4096
4076
|
fromState: StepState;
|
|
@@ -4136,7 +4116,7 @@ END_OF_FILE_CONTENT
|
|
|
4136
4116
|
echo "Creating src/components/save-drawer/DeployNode.tsx..."
|
|
4137
4117
|
cat << 'END_OF_FILE_CONTENT' > "src/components/save-drawer/DeployNode.tsx"
|
|
4138
4118
|
import type { CSSProperties } from 'react';
|
|
4139
|
-
import type { DeployStep, StepState } from '@olonjs/core
|
|
4119
|
+
import type { DeployStep, StepState } from '@olonjs/core';
|
|
4140
4120
|
|
|
4141
4121
|
interface DeployNodeProps {
|
|
4142
4122
|
step: DeployStep;
|
|
@@ -4224,8 +4204,8 @@ echo "Creating src/components/save-drawer/DopaDrawer.tsx..."
|
|
|
4224
4204
|
cat << 'END_OF_FILE_CONTENT' > "src/components/save-drawer/DopaDrawer.tsx"
|
|
4225
4205
|
import { useEffect, useMemo, useState } from 'react';
|
|
4226
4206
|
import { createPortal } from 'react-dom';
|
|
4227
|
-
import type { StepId, StepState } from '@olonjs/core
|
|
4228
|
-
import { DEPLOY_STEPS } from '@olonjs/core
|
|
4207
|
+
import type { StepId, StepState } from '@olonjs/core';
|
|
4208
|
+
import { DEPLOY_STEPS } from '@olonjs/core';
|
|
4229
4209
|
import fontsCss from '@/fonts.css?inline';
|
|
4230
4210
|
import saverStyleCss from './saverStyle.css?inline';
|
|
4231
4211
|
import { DeployNode } from './DeployNode';
|
|
@@ -5432,7 +5412,7 @@ import {
|
|
|
5432
5412
|
Code2, Quote, SquareCode,
|
|
5433
5413
|
Link2, Unlink2, ImagePlus, Eraser,
|
|
5434
5414
|
} from 'lucide-react';
|
|
5435
|
-
import { STUDIO_EVENTS, useConfig, useStudio } from '@olonjs/core
|
|
5415
|
+
import { STUDIO_EVENTS, useConfig, useStudio } from '@olonjs/core';
|
|
5436
5416
|
import type { TiptapData, TiptapSettings } from './types';
|
|
5437
5417
|
|
|
5438
5418
|
// ── UI primitives ─────────────────────────────────────────────────
|
|
@@ -5755,7 +5735,7 @@ END_OF_FILE_CONTENT
|
|
|
5755
5735
|
echo "Creating src/components/tiptap/schema.ts..."
|
|
5756
5736
|
cat << 'END_OF_FILE_CONTENT' > "src/components/tiptap/schema.ts"
|
|
5757
5737
|
import { z } from 'zod';
|
|
5758
|
-
import { BaseSectionData } from '@olonjs/core
|
|
5738
|
+
import { BaseSectionData } from '@olonjs/core';
|
|
5759
5739
|
|
|
5760
5740
|
export const TiptapSchema = BaseSectionData.extend({
|
|
5761
5741
|
content: z.string().default('').describe('ui:editorial-markdown'),
|
|
@@ -5776,7 +5756,7 @@ END_OF_FILE_CONTENT
|
|
|
5776
5756
|
mkdir -p "src/components/ui"
|
|
5777
5757
|
echo "Creating src/components/ui/OlonMark.tsx..."
|
|
5778
5758
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/OlonMark.tsx"
|
|
5779
|
-
import { cn } from '@olonjs/core
|
|
5759
|
+
import { cn } from '@olonjs/core'
|
|
5780
5760
|
|
|
5781
5761
|
interface OlonMarkProps {
|
|
5782
5762
|
size?: number
|
|
@@ -5866,7 +5846,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/accordion.tsx"
|
|
|
5866
5846
|
import * as React from "react"
|
|
5867
5847
|
import { Accordion as AccordionPrimitive } from "radix-ui"
|
|
5868
5848
|
|
|
5869
|
-
import { cn } from "@olonjs/core
|
|
5849
|
+
import { cn } from "@olonjs/core"
|
|
5870
5850
|
import { ChevronDownIcon, ChevronUpIcon } from "lucide-react"
|
|
5871
5851
|
|
|
5872
5852
|
function Accordion({
|
|
@@ -5970,7 +5950,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/avatar.tsx"
|
|
|
5970
5950
|
import * as React from "react"
|
|
5971
5951
|
import { Avatar as AvatarPrimitive } from "radix-ui"
|
|
5972
5952
|
|
|
5973
|
-
import { cn } from "@olonjs/core
|
|
5953
|
+
import { cn } from "@olonjs/core"
|
|
5974
5954
|
|
|
5975
5955
|
function Avatar({
|
|
5976
5956
|
className,
|
|
@@ -6085,7 +6065,7 @@ echo "Creating src/components/ui/badge.tsx..."
|
|
|
6085
6065
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/badge.tsx"
|
|
6086
6066
|
import * as React from 'react'
|
|
6087
6067
|
import { cva, type VariantProps } from 'class-variance-authority'
|
|
6088
|
-
import { cn } from '@olonjs/core
|
|
6068
|
+
import { cn } from '@olonjs/core'
|
|
6089
6069
|
|
|
6090
6070
|
const badgeVariants = cva(
|
|
6091
6071
|
'inline-flex items-center px-2.5 py-0.5 text-xs font-medium transition-colors',
|
|
@@ -6120,7 +6100,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/breadcrumb.tsx"
|
|
|
6120
6100
|
import * as React from "react"
|
|
6121
6101
|
import { Slot } from "radix-ui"
|
|
6122
6102
|
|
|
6123
|
-
import { cn } from "@olonjs/core
|
|
6103
|
+
import { cn } from "@olonjs/core"
|
|
6124
6104
|
import { ChevronRightIcon, MoreHorizontalIcon } from "lucide-react"
|
|
6125
6105
|
|
|
6126
6106
|
function Breadcrumb({ className, ...props }: React.ComponentProps<"nav">) {
|
|
@@ -6247,7 +6227,7 @@ echo "Creating src/components/ui/button.tsx..."
|
|
|
6247
6227
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/button.tsx"
|
|
6248
6228
|
import * as React from 'react'
|
|
6249
6229
|
import { cva, type VariantProps } from 'class-variance-authority'
|
|
6250
|
-
import { cn } from '@olonjs/core
|
|
6230
|
+
import { cn } from '@olonjs/core'
|
|
6251
6231
|
|
|
6252
6232
|
const buttonVariants = cva(
|
|
6253
6233
|
'inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-40 shrink-0',
|
|
@@ -6308,7 +6288,7 @@ END_OF_FILE_CONTENT
|
|
|
6308
6288
|
echo "Creating src/components/ui/card.tsx..."
|
|
6309
6289
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/card.tsx"
|
|
6310
6290
|
import * as React from 'react'
|
|
6311
|
-
import { cn } from '@olonjs/core
|
|
6291
|
+
import { cn } from '@olonjs/core'
|
|
6312
6292
|
|
|
6313
6293
|
const Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
|
6314
6294
|
({ className, ...props }, ref) => (
|
|
@@ -6367,7 +6347,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/checkbox.tsx"
|
|
|
6367
6347
|
import * as React from "react"
|
|
6368
6348
|
import { Checkbox as CheckboxPrimitive } from "radix-ui"
|
|
6369
6349
|
|
|
6370
|
-
import { cn } from "@olonjs/core
|
|
6350
|
+
import { cn } from "@olonjs/core"
|
|
6371
6351
|
import { CheckIcon } from "lucide-react"
|
|
6372
6352
|
|
|
6373
6353
|
function Checkbox({
|
|
@@ -6407,7 +6387,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/dialog.tsx"
|
|
|
6407
6387
|
import * as React from "react"
|
|
6408
6388
|
import { Dialog as DialogPrimitive } from "radix-ui"
|
|
6409
6389
|
|
|
6410
|
-
import { cn } from "@olonjs/core
|
|
6390
|
+
import { cn } from "@olonjs/core"
|
|
6411
6391
|
import { Button } from "@/components/ui/button"
|
|
6412
6392
|
import { XIcon } from "lucide-react"
|
|
6413
6393
|
|
|
@@ -6579,7 +6559,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/dropdown-menu.tsx"
|
|
|
6579
6559
|
import * as React from "react"
|
|
6580
6560
|
import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui"
|
|
6581
6561
|
|
|
6582
|
-
import { cn } from "@olonjs/core
|
|
6562
|
+
import { cn } from "@olonjs/core"
|
|
6583
6563
|
import { CheckIcon, ChevronRightIcon } from "lucide-react"
|
|
6584
6564
|
|
|
6585
6565
|
function DropdownMenu({
|
|
@@ -6854,7 +6834,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/hover-card.tsx"
|
|
|
6854
6834
|
import * as React from "react"
|
|
6855
6835
|
import { HoverCard as HoverCardPrimitive } from "radix-ui"
|
|
6856
6836
|
|
|
6857
|
-
import { cn } from "@olonjs/core
|
|
6837
|
+
import { cn } from "@olonjs/core"
|
|
6858
6838
|
|
|
6859
6839
|
function HoverCard({
|
|
6860
6840
|
...props
|
|
@@ -6900,7 +6880,7 @@ END_OF_FILE_CONTENT
|
|
|
6900
6880
|
echo "Creating src/components/ui/input.tsx..."
|
|
6901
6881
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/input.tsx"
|
|
6902
6882
|
import * as React from 'react'
|
|
6903
|
-
import { cn } from '@olonjs/core
|
|
6883
|
+
import { cn } from '@olonjs/core'
|
|
6904
6884
|
|
|
6905
6885
|
export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {}
|
|
6906
6886
|
|
|
@@ -6931,7 +6911,7 @@ END_OF_FILE_CONTENT
|
|
|
6931
6911
|
echo "Creating src/components/ui/label.tsx..."
|
|
6932
6912
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/label.tsx"
|
|
6933
6913
|
import * as React from 'react'
|
|
6934
|
-
import { cn } from '@olonjs/core
|
|
6914
|
+
import { cn } from '@olonjs/core'
|
|
6935
6915
|
|
|
6936
6916
|
const Label = React.forwardRef<
|
|
6937
6917
|
HTMLLabelElement,
|
|
@@ -6955,7 +6935,7 @@ import * as React from "react"
|
|
|
6955
6935
|
import { cva } from "class-variance-authority"
|
|
6956
6936
|
import { NavigationMenu as NavigationMenuPrimitive } from "radix-ui"
|
|
6957
6937
|
|
|
6958
|
-
import { cn } from "@olonjs/core
|
|
6938
|
+
import { cn } from "@olonjs/core"
|
|
6959
6939
|
import { ChevronDownIcon } from "lucide-react"
|
|
6960
6940
|
|
|
6961
6941
|
function NavigationMenu({
|
|
@@ -7124,7 +7104,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/progress.tsx"
|
|
|
7124
7104
|
import * as React from "react"
|
|
7125
7105
|
import { Progress as ProgressPrimitive } from "radix-ui"
|
|
7126
7106
|
|
|
7127
|
-
import { cn } from "@olonjs/core
|
|
7107
|
+
import { cn } from "@olonjs/core"
|
|
7128
7108
|
|
|
7129
7109
|
function Progress({
|
|
7130
7110
|
className,
|
|
@@ -7159,7 +7139,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/scroll-area.tsx"
|
|
|
7159
7139
|
import * as React from "react"
|
|
7160
7140
|
import { ScrollArea as ScrollAreaPrimitive } from "radix-ui"
|
|
7161
7141
|
|
|
7162
|
-
import { cn } from "@olonjs/core
|
|
7142
|
+
import { cn } from "@olonjs/core"
|
|
7163
7143
|
|
|
7164
7144
|
function ScrollArea({
|
|
7165
7145
|
className,
|
|
@@ -7218,7 +7198,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/select.tsx"
|
|
|
7218
7198
|
import * as React from "react"
|
|
7219
7199
|
import { Select as SelectPrimitive } from "radix-ui"
|
|
7220
7200
|
|
|
7221
|
-
import { cn } from "@olonjs/core
|
|
7201
|
+
import { cn } from "@olonjs/core"
|
|
7222
7202
|
import { ChevronDownIcon, CheckIcon, ChevronUpIcon } from "lucide-react"
|
|
7223
7203
|
|
|
7224
7204
|
function Select({
|
|
@@ -7604,7 +7584,7 @@ END_OF_FILE_CONTENT
|
|
|
7604
7584
|
echo "Creating src/components/ui/separator.tsx..."
|
|
7605
7585
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/separator.tsx"
|
|
7606
7586
|
import * as React from 'react'
|
|
7607
|
-
import { cn } from '@olonjs/core
|
|
7587
|
+
import { cn } from '@olonjs/core'
|
|
7608
7588
|
|
|
7609
7589
|
const Separator = React.forwardRef<
|
|
7610
7590
|
HTMLDivElement,
|
|
@@ -7633,7 +7613,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/sheet.tsx"
|
|
|
7633
7613
|
import * as React from "react"
|
|
7634
7614
|
import { Dialog as SheetPrimitive } from "radix-ui"
|
|
7635
7615
|
|
|
7636
|
-
import { cn } from "@olonjs/core
|
|
7616
|
+
import { cn } from "@olonjs/core"
|
|
7637
7617
|
import { Button } from "@/components/ui/button"
|
|
7638
7618
|
import { XIcon } from "lucide-react"
|
|
7639
7619
|
|
|
@@ -7781,7 +7761,7 @@ END_OF_FILE_CONTENT
|
|
|
7781
7761
|
# SKIP: src/components/ui/sheet.tsx:Zone.Identifier is binary and cannot be embedded as text.
|
|
7782
7762
|
echo "Creating src/components/ui/skeleton.tsx..."
|
|
7783
7763
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/skeleton.tsx"
|
|
7784
|
-
import { cn } from '@olonjs/core
|
|
7764
|
+
import { cn } from '@olonjs/core';
|
|
7785
7765
|
import type { HTMLAttributes } from 'react';
|
|
7786
7766
|
|
|
7787
7767
|
function Skeleton({
|
|
@@ -7805,7 +7785,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/switch.tsx"
|
|
|
7805
7785
|
import * as React from "react"
|
|
7806
7786
|
import { Switch as SwitchPrimitive } from "radix-ui"
|
|
7807
7787
|
|
|
7808
|
-
import { cn } from "@olonjs/core
|
|
7788
|
+
import { cn } from "@olonjs/core"
|
|
7809
7789
|
|
|
7810
7790
|
function Switch({
|
|
7811
7791
|
className,
|
|
@@ -7841,7 +7821,7 @@ echo "Creating src/components/ui/table.tsx..."
|
|
|
7841
7821
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/table.tsx"
|
|
7842
7822
|
import * as React from "react"
|
|
7843
7823
|
|
|
7844
|
-
import { cn } from "@olonjs/core
|
|
7824
|
+
import { cn } from "@olonjs/core"
|
|
7845
7825
|
|
|
7846
7826
|
function Table({ className, ...props }: React.ComponentProps<"table">) {
|
|
7847
7827
|
return (
|
|
@@ -7965,7 +7945,7 @@ import * as React from "react"
|
|
|
7965
7945
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
7966
7946
|
import { Tabs as TabsPrimitive } from "radix-ui"
|
|
7967
7947
|
|
|
7968
|
-
import { cn } from "@olonjs/core
|
|
7948
|
+
import { cn } from "@olonjs/core"
|
|
7969
7949
|
|
|
7970
7950
|
function Tabs({
|
|
7971
7951
|
className,
|
|
@@ -8057,7 +8037,7 @@ echo "Creating src/components/ui/textarea.tsx..."
|
|
|
8057
8037
|
cat << 'END_OF_FILE_CONTENT' > "src/components/ui/textarea.tsx"
|
|
8058
8038
|
import * as React from "react"
|
|
8059
8039
|
|
|
8060
|
-
import { cn } from "@olonjs/core
|
|
8040
|
+
import { cn } from "@olonjs/core"
|
|
8061
8041
|
|
|
8062
8042
|
function Textarea({ className, ...props }: React.ComponentProps<"textarea">) {
|
|
8063
8043
|
return (
|
|
@@ -8086,7 +8066,7 @@ import * as React from "react"
|
|
|
8086
8066
|
import { type VariantProps } from "class-variance-authority"
|
|
8087
8067
|
import { ToggleGroup as ToggleGroupPrimitive } from "radix-ui"
|
|
8088
8068
|
|
|
8089
|
-
import { cn } from "@olonjs/core
|
|
8069
|
+
import { cn } from "@olonjs/core"
|
|
8090
8070
|
import { toggleVariants } from "@/components/ui/toggle"
|
|
8091
8071
|
|
|
8092
8072
|
const ToggleGroupContext = React.createContext<
|
|
@@ -8181,7 +8161,7 @@ import * as React from "react"
|
|
|
8181
8161
|
import { cva, type VariantProps } from "class-variance-authority"
|
|
8182
8162
|
import { Toggle as TogglePrimitive } from "radix-ui"
|
|
8183
8163
|
|
|
8184
|
-
import { cn } from "@olonjs/core
|
|
8164
|
+
import { cn } from "@olonjs/core"
|
|
8185
8165
|
|
|
8186
8166
|
const toggleVariants = cva(
|
|
8187
8167
|
"group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted data-[state=on]:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
@@ -8233,7 +8213,7 @@ cat << 'END_OF_FILE_CONTENT' > "src/components/ui/tooltip.tsx"
|
|
|
8233
8213
|
import * as React from "react"
|
|
8234
8214
|
import { Tooltip as TooltipPrimitive } from "radix-ui"
|
|
8235
8215
|
|
|
8236
|
-
import { cn } from "@olonjs/core
|
|
8216
|
+
import { cn } from "@olonjs/core"
|
|
8237
8217
|
|
|
8238
8218
|
function TooltipProvider({
|
|
8239
8219
|
delayDuration = 0,
|
|
@@ -8936,7 +8916,7 @@ echo "Creating src/entry-ssg.tsx..."
|
|
|
8936
8916
|
cat << 'END_OF_FILE_CONTENT' > "src/entry-ssg.tsx"
|
|
8937
8917
|
import { renderToString } from 'react-dom/server';
|
|
8938
8918
|
import { StaticRouter } from 'react-router-dom/server';
|
|
8939
|
-
import { ConfigProvider, PageRenderer, StudioProvider, resolveRuntimeConfig } from '@olonjs/core
|
|
8919
|
+
import { ConfigProvider, PageRenderer, StudioProvider, resolveRuntimeConfig } from '@olonjs/core';
|
|
8940
8920
|
import type { JsonPagesConfig, PageConfig, SiteConfig, ThemeConfig } from '@/types';
|
|
8941
8921
|
import { ThemeProvider } from '@/components/ThemeProvider';
|
|
8942
8922
|
import { ComponentRegistry } from '@/lib/ComponentRegistry';
|
|
@@ -10144,7 +10124,7 @@ export const Icon: React.FC<IconProps> = ({ name, size = 20, className }) => {
|
|
|
10144
10124
|
END_OF_FILE_CONTENT
|
|
10145
10125
|
echo "Creating src/lib/addSectionConfig.ts..."
|
|
10146
10126
|
cat << 'END_OF_FILE_CONTENT' > "src/lib/addSectionConfig.ts"
|
|
10147
|
-
import type { AddSectionConfig } from '@olonjs/core
|
|
10127
|
+
import type { AddSectionConfig } from '@olonjs/core';
|
|
10148
10128
|
|
|
10149
10129
|
const addableSectionTypes = ['empty-tenant', 'form-demo'] as const;
|
|
10150
10130
|
|
|
@@ -10285,7 +10265,7 @@ export {
|
|
|
10285
10265
|
BaseSectionSettingsSchema,
|
|
10286
10266
|
CtaSchema,
|
|
10287
10267
|
ImageSelectionSchema,
|
|
10288
|
-
} from '@olonjs/core
|
|
10268
|
+
} from '@olonjs/core';
|
|
10289
10269
|
|
|
10290
10270
|
END_OF_FILE_CONTENT
|
|
10291
10271
|
echo "Creating src/lib/useFormSubmit.ts..."
|
|
@@ -10380,7 +10360,7 @@ END_OF_FILE_CONTENT
|
|
|
10380
10360
|
echo "Creating src/lib/useOlonForms.ts..."
|
|
10381
10361
|
cat << 'END_OF_FILE_CONTENT' > "src/lib/useOlonForms.ts"
|
|
10382
10362
|
import { useCallback, useEffect, useState } from 'react';
|
|
10383
|
-
import type { FormState } from '@olonjs/core
|
|
10363
|
+
import type { FormState } from '@olonjs/core';
|
|
10384
10364
|
|
|
10385
10365
|
const API_BASE =
|
|
10386
10366
|
(import.meta.env.VITE_OLONJS_CLOUD_URL as string | undefined) ??
|
|
@@ -10581,12 +10561,6 @@ export type SectionComponentPropsMap = {
|
|
|
10581
10561
|
'form-demo': { data: FormDemoData; settings?: FormDemoSettings };
|
|
10582
10562
|
};
|
|
10583
10563
|
|
|
10584
|
-
// MTRP module augmentation. TypeScript treats `@olonjs/core` and
|
|
10585
|
-
// `@olonjs/core/runtime` as separate module identifiers (different
|
|
10586
|
-
// import specifiers). After ADR-0009 the tenant imports JsonPagesConfig
|
|
10587
|
-
// from `/runtime` for the visitor path, so the section registries must
|
|
10588
|
-
// be augmented for *both* identifiers, otherwise PageConfig.sections
|
|
10589
|
-
// resolves to a generic FallbackSection on the runtime side.
|
|
10590
10564
|
declare module '@olonjs/core' {
|
|
10591
10565
|
export interface SectionDataRegistry {
|
|
10592
10566
|
'empty-tenant': EmptyTenantData;
|
|
@@ -10598,26 +10572,7 @@ declare module '@olonjs/core' {
|
|
|
10598
10572
|
}
|
|
10599
10573
|
}
|
|
10600
10574
|
|
|
10601
|
-
|
|
10602
|
-
export interface SectionDataRegistry {
|
|
10603
|
-
'empty-tenant': EmptyTenantData;
|
|
10604
|
-
'form-demo': FormDemoData;
|
|
10605
|
-
}
|
|
10606
|
-
export interface SectionSettingsRegistry {
|
|
10607
|
-
'empty-tenant': EmptyTenantSettings;
|
|
10608
|
-
'form-demo': FormDemoSettings;
|
|
10609
|
-
}
|
|
10610
|
-
}
|
|
10611
|
-
|
|
10612
|
-
// ADR-0009 D7: tenant types re-export from the runtime subpath, NOT the
|
|
10613
|
-
// full @olonjs/core. This is a value re-export — even though every
|
|
10614
|
-
// consumer in this codebase only does `import type`, Vite's static
|
|
10615
|
-
// graph treats `export *` as a runtime dependency edge. Pointing it at
|
|
10616
|
-
// '@olonjs/core' would pull the full Studio bundle (AdminSidebar,
|
|
10617
|
-
// FormFactory, StudioStage, admin-skin) into the visitor main chunk.
|
|
10618
|
-
// Pointing it at '@olonjs/core/runtime' anchors the graph to the
|
|
10619
|
-
// runtime-only bundle (~28 KB gz) so the visitor entry stays clean.
|
|
10620
|
-
export * from '@olonjs/core/runtime';
|
|
10575
|
+
export * from '@olonjs/core';
|
|
10621
10576
|
|
|
10622
10577
|
END_OF_FILE_CONTENT
|
|
10623
10578
|
echo "Creating src/vite-env.d.ts..."
|