@frontlit/page-builder 0.1.0-alpha.2 → 0.1.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/README.md +32 -0
  2. package/dist/blocks/index.d.ts +33 -21
  3. package/dist/blocks/index.js +3 -3
  4. package/dist/builder/index.d.ts +7 -8
  5. package/dist/builder/index.js +6 -5
  6. package/dist/{button-Bzt1GDO-.d.ts → button-OLKN3wPf.d.ts} +2 -2
  7. package/dist/{chunk-H4P5MFJI.js → chunk-36QHCIPM.js} +205 -251
  8. package/dist/chunk-36QHCIPM.js.map +1 -0
  9. package/dist/chunk-BBI7UHOA.js +56 -0
  10. package/dist/chunk-BBI7UHOA.js.map +1 -0
  11. package/dist/{chunk-KQKSLI3L.js → chunk-GIKTOAQS.js} +335 -122
  12. package/dist/chunk-GIKTOAQS.js.map +1 -0
  13. package/dist/chunk-HWOVSHIW.js +4 -0
  14. package/dist/{chunk-RUYOL7JZ.js.map → chunk-HWOVSHIW.js.map} +1 -1
  15. package/dist/{chunk-HDINUNI2.js → chunk-IU4KATI2.js} +69 -96
  16. package/dist/chunk-IU4KATI2.js.map +1 -0
  17. package/dist/{chunk-SGNRWWG3.js → chunk-J7Z4UW45.js} +530 -135
  18. package/dist/chunk-J7Z4UW45.js.map +1 -0
  19. package/dist/{chunk-UO7XGBGM.js → chunk-K4WCLHMS.js} +1182 -1033
  20. package/dist/chunk-K4WCLHMS.js.map +1 -0
  21. package/dist/components/index.d.ts +33 -8
  22. package/dist/components/index.js +42 -2
  23. package/dist/components/index.js.map +1 -1
  24. package/dist/data-slots.d.ts +3 -3
  25. package/dist/fonts/archivo/archivo-latin-variable.woff2 +0 -0
  26. package/dist/fonts/hanken-grotesk/hanken-grotesk-latin-variable.woff2 +0 -0
  27. package/dist/fonts/jetbrains-mono/jetbrains-mono-latin-variable.woff2 +0 -0
  28. package/dist/fonts/spline-sans-mono/spline-sans-mono-latin-variable.woff2 +0 -0
  29. package/dist/heading-DQCxQt38.d.ts +20 -0
  30. package/dist/image-Bk8kPXwP.d.ts +52 -0
  31. package/dist/index.d.ts +17 -10
  32. package/dist/index.js +7 -6
  33. package/dist/models/index.d.ts +5 -5
  34. package/dist/models/index.js +1 -1
  35. package/dist/{page-W3hQga4w.d.ts → page-B5Gmm-Ys.d.ts} +1 -1
  36. package/dist/primitives/index.d.ts +44 -9
  37. package/dist/primitives/index.js +1 -1
  38. package/dist/renderer/index.d.ts +12 -8
  39. package/dist/renderer/index.js +5 -4
  40. package/dist/{section-background-MsdE40Rk.d.ts → section-background-6V_LCi5e.d.ts} +1 -1
  41. package/dist/server/index.d.ts +103 -0
  42. package/dist/server/index.js +2649 -0
  43. package/dist/server/index.js.map +1 -0
  44. package/dist/server/islands/code-snippet.d.ts +17 -0
  45. package/dist/server/islands/code-snippet.js +72 -0
  46. package/dist/server/islands/code-snippet.js.map +1 -0
  47. package/dist/server/islands/email-form.d.ts +50 -0
  48. package/dist/server/islands/email-form.js +406 -0
  49. package/dist/server/islands/email-form.js.map +1 -0
  50. package/dist/server/islands/header-mobile-menu.d.ts +22 -0
  51. package/dist/server/islands/header-mobile-menu.js +422 -0
  52. package/dist/server/islands/header-mobile-menu.js.map +1 -0
  53. package/dist/server/islands/inline-embed.d.ts +28 -0
  54. package/dist/server/islands/inline-embed.js +84 -0
  55. package/dist/server/islands/inline-embed.js.map +1 -0
  56. package/dist/server/islands/marquee-track.d.ts +18 -0
  57. package/dist/server/islands/marquee-track.js +67 -0
  58. package/dist/server/islands/marquee-track.js.map +1 -0
  59. package/dist/server/islands/nav-link.d.ts +37 -0
  60. package/dist/server/islands/nav-link.js +67 -0
  61. package/dist/server/islands/nav-link.js.map +1 -0
  62. package/dist/server/islands/support-form.d.ts +17 -0
  63. package/dist/server/islands/support-form.js +469 -0
  64. package/dist/server/islands/support-form.js.map +1 -0
  65. package/dist/server/islands/theme-mode-switcher.d.ts +38 -0
  66. package/dist/server/islands/theme-mode-switcher.js +169 -0
  67. package/dist/server/islands/theme-mode-switcher.js.map +1 -0
  68. package/dist/server/islands/video-with-preview.d.ts +13 -0
  69. package/dist/server/islands/video-with-preview.js +269 -0
  70. package/dist/server/islands/video-with-preview.js.map +1 -0
  71. package/dist/server/primitives.d.ts +200 -0
  72. package/dist/server/primitives.js +888 -0
  73. package/dist/server/primitives.js.map +1 -0
  74. package/dist/server/schema.d.ts +11308 -0
  75. package/dist/server/schema.js +6179 -0
  76. package/dist/server/schema.js.map +1 -0
  77. package/dist/server/theme-CF3fIKvw.d.ts +9 -0
  78. package/dist/server/theme-style-5_AGy-4V.d.ts +183 -0
  79. package/dist/server/theme-style-BPaMwk88.d.ts +183 -0
  80. package/dist/server/theme.d.ts +28 -0
  81. package/dist/server/theme.js +1671 -0
  82. package/dist/server/theme.js.map +1 -0
  83. package/dist/server/widget-YH9BrOwY.d.ts +77 -0
  84. package/dist/styles.css +121 -15
  85. package/dist/{theme-style-Cbl7NM-T.d.ts → theme-style-BVd5tOsc.d.ts} +20 -0
  86. package/dist/theme.css +12 -0
  87. package/dist/{widget-B_RoG6se.d.ts → widget-CpE2HdgU.d.ts} +17 -14
  88. package/package.json +60 -12
  89. package/schema/page.v1.json +3855 -0
  90. package/schema/site.v1.json +3811 -0
  91. package/dist/alignment-dZDzN96G.d.ts +0 -5
  92. package/dist/chunk-H4P5MFJI.js.map +0 -1
  93. package/dist/chunk-HDINUNI2.js.map +0 -1
  94. package/dist/chunk-KQKSLI3L.js.map +0 -1
  95. package/dist/chunk-RUYOL7JZ.js +0 -4
  96. package/dist/chunk-SGNRWWG3.js.map +0 -1
  97. package/dist/chunk-UO7XGBGM.js.map +0 -1
  98. package/dist/image-DAWVx1zQ.d.ts +0 -31
package/README.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  Block-based page builder and renderer for React. Self-contained — no backend and no framework lock-in. Themes, blocks, and the WYSIWYG builder all run client-side.
4
4
 
5
+ **You and your agents can collaborate on the same pages.** People edit visually in the WYSIWYG builder. AI agents edit the same page data, which is plain JSON (blocks plus their settings), with no screenshots or browser automation involved. Both kinds of edit go through the same draft and publish flow, so you can review an agent's changes in the builder before they go live, and an agent can pick up where you left off.
6
+
7
+ - **In FrontLit**, agents use the MCP server's page and theme tools: `list_pages`, `get_page`, `create_page`, `update_page`, `publish_page`, `discard_page_draft`, `list_themes`, `create_theme`, `update_theme` and the matching delete tools.
8
+ - **To teach a coding agent to write good FrontLit pages**, install [frontlit-skills](https://github.com/codelitdev/frontlit-skills).
9
+ - **In your own app**, the layout the builder emits through `onChange` is the same JSON your agent reads and writes. See [`docs/ai-editing.md`](./docs/ai-editing.md) for the planned in-builder AI editing design.
10
+
5
11
  Rich text editing and rendering live in [`@frontlit/text-editor`](https://www.npmjs.com/package/@frontlit/text-editor), which this package depends on and installs automatically.
6
12
 
7
13
  ## Installation
@@ -79,6 +85,28 @@ function AppLink(props: PageBuilderLinkProps) {
79
85
 
80
86
  `PageBuilder` accepts the same `linkComponent` prop and forwards it to the live preview.
81
87
 
88
+ ### Server rendering (React Server Components)
89
+
90
+ `PageRenderer` is a client component. To render published pages on the server, use `ServerPageRenderer` from `@frontlit/page-builder/server`: static blocks render on the server and ship no JavaScript; only the interactive parts (mobile menu, marquee, email/support forms, copy buttons, links) are client islands.
91
+
92
+ ```tsx
93
+ import { ServerPageRenderer } from "@frontlit/page-builder/server";
94
+ import { resolveTheme } from "@frontlit/page-builder/theme";
95
+
96
+ const theme = resolveTheme(themeId, themeStyle);
97
+
98
+ <ServerPageRenderer layout={layout} theme={theme} pageData={pageData} />;
99
+ ```
100
+
101
+ Because nothing crosses the server/client boundary as a function, it takes no callbacks. Instead:
102
+
103
+ - **Links** — wrap the page in a client component that renders `PageBuilderLinkProvider` (from `@frontlit/page-builder/islands/nav-link`) with your router's link.
104
+ - **Light/dark control** — pass a ready client element as `themeSwitcher` (e.g. one built on `@frontlit/page-builder/islands/theme-mode-switcher`); it is shown in the footer.
105
+ - **Images** — call `setImageAttributesResolver` once at start-up to swap an image's `src`/`srcSet` for your optimizer's URLs (the sites app uses Next's `getImageProps`).
106
+ - **Dark mode** — section backgrounds switch with the `dark` class on an ancestor, so the server needs no colour mode.
107
+
108
+ The server build is separate from the main bundle (`tsup.server.config.ts`): its client islands are listed in `tsup.islands.ts`, built on their own with a `"use client"` banner, and imported — not bundled — by the server entry. A block that needs state or effects must either live in that list or be split so only its interactive part does. The block lookup used by the server renderer is `src/server/registry.ts`; keep it in step with `src/registry.ts` when adding a block.
109
+
82
110
  ## What's inside
83
111
 
84
112
  | Subpath | What it exports |
@@ -91,6 +119,10 @@ function AppLink(props: PageBuilderLinkProps) {
91
119
  | `@frontlit/page-builder/renderer` | `PageRenderer` — renders a page's `WidgetInstance[]` layout, with an `editing` mode for use inside the builder |
92
120
  | `@frontlit/page-builder/builder` | `PageBuilder` — the full WYSIWYG editor (add/remove/reorder blocks, edit settings, switch themes) |
93
121
  | `@frontlit/page-builder/data-slots` | Server-safe helper for hosts to resolve named data slots before rendering |
122
+ | `@frontlit/page-builder/server` | `ServerPageRenderer`, `setImageAttributesResolver` — server-component page rendering (see above) |
123
+ | `@frontlit/page-builder/theme` | `resolveTheme`, `themes`, `generateThemeStyles` — server-callable and light enough for client components |
124
+ | `@frontlit/page-builder/primitives/server` | The hook-free primitives, callable from server components |
125
+ | `@frontlit/page-builder/islands/*` | Small client islands (`nav-link`, `theme-mode-switcher`) hosts can import without the full client bundle |
94
126
 
95
127
  `createDefaultLayout()` / `getDefaultTheme()` (exported from the root) build a ready-to-render starter landing page.
96
128
 
@@ -1,11 +1,11 @@
1
- import { a as WidgetDefaultSettings, W as Widget } from '../widget-B_RoG6se.js';
1
+ import { a as WidgetDefaultSettings, W as Widget } from '../widget-CpE2HdgU.js';
2
2
  import { M as Media } from '../media-CnLImjVC.js';
3
- import { A as Alignment, H as HorizontalAlignment } from '../alignment-dZDzN96G.js';
3
+ import { T as TitleSettings, A as Alignment, a as HorizontalAlignment } from '../heading-DQCxQt38.js';
4
4
  import { TextEditorContent } from '@frontlit/text-editor';
5
- import { A as AspectRatio, a as ImageObjectFit } from '../image-DAWVx1zQ.js';
5
+ import { A as AspectRatio, c as ImageObjectFit } from '../image-Bk8kPXwP.js';
6
6
  import 'react';
7
- import '../section-background-MsdE40Rk.js';
8
- import '../theme-style-Cbl7NM-T.js';
7
+ import '../section-background-6V_LCi5e.js';
8
+ import '../theme-style-BVd5tOsc.js';
9
9
 
10
10
  interface HeaderNavLink {
11
11
  id: string;
@@ -14,22 +14,18 @@ interface HeaderNavLink {
14
14
  isButton?: boolean;
15
15
  }
16
16
  interface HeaderSettings extends WidgetDefaultSettings {
17
- logoText?: string;
18
- logoImage?: string;
19
17
  logoCorners?: number;
20
- logoRadius?: number;
21
18
  links?: HeaderNavLink[];
22
19
  ctaLabel?: string;
23
20
  ctaHref?: string;
24
21
  linkAlignment?: "left" | "center" | "right";
25
22
  layout?: "fixed" | "floating" | "centered";
26
23
  backdropBlur?: boolean;
27
- showThemeSwitcher?: boolean;
28
24
  }
29
25
 
30
26
  declare const Header: Widget<HeaderSettings>;
31
27
 
32
- interface HeroSettings extends WidgetDefaultSettings {
28
+ interface HeroSettings extends WidgetDefaultSettings, TitleSettings {
33
29
  /** Small label rendered above the title, e.g. a section eyebrow like "Careers". */
34
30
  preTitle?: string;
35
31
  title?: string;
@@ -38,6 +34,10 @@ interface HeroSettings extends WidgetDefaultSettings {
38
34
  buttonAction?: string;
39
35
  secondaryButtonCaption?: string;
40
36
  secondaryButtonAction?: string;
37
+ /** Optional line of small print under the buttons, e.g. "No credit card required". */
38
+ smallPrint?: string;
39
+ /** Optional install command shown in a copyable code box under the buttons. */
40
+ command?: string;
41
41
  media?: Media;
42
42
  youtubeLink?: string;
43
43
  alignment?: Alignment | "right";
@@ -48,7 +48,7 @@ interface HeroSettings extends WidgetDefaultSettings {
48
48
 
49
49
  declare const Hero: Widget<HeroSettings>;
50
50
 
51
- interface ContentSettings extends WidgetDefaultSettings {
51
+ interface ContentSettings extends WidgetDefaultSettings, TitleSettings {
52
52
  title?: string;
53
53
  body?: TextEditorContent;
54
54
  media?: Media;
@@ -66,7 +66,7 @@ interface FeatureItem {
66
66
  /** Name of a lucide-react icon, e.g. "Globe" or "Mail". */
67
67
  icon?: string;
68
68
  }
69
- interface FeaturedSettings extends WidgetDefaultSettings {
69
+ interface FeaturedSettings extends WidgetDefaultSettings, TitleSettings {
70
70
  title?: string;
71
71
  description?: TextEditorContent;
72
72
  headerAlignment?: Alignment;
@@ -81,7 +81,7 @@ interface FaqItem {
81
81
  question: string;
82
82
  answer: string;
83
83
  }
84
- interface FaqSettings extends WidgetDefaultSettings {
84
+ interface FaqSettings extends WidgetDefaultSettings, TitleSettings {
85
85
  title?: string;
86
86
  headerAlignment?: Alignment;
87
87
  items?: FaqItem[];
@@ -100,7 +100,7 @@ interface PricingTier {
100
100
  buttonAction?: string;
101
101
  highlighted?: boolean;
102
102
  }
103
- interface PricingSettings extends WidgetDefaultSettings {
103
+ interface PricingSettings extends WidgetDefaultSettings, TitleSettings {
104
104
  title?: string;
105
105
  description?: TextEditorContent;
106
106
  headerAlignment?: Alignment;
@@ -110,7 +110,7 @@ interface PricingSettings extends WidgetDefaultSettings {
110
110
 
111
111
  declare const Pricing: Widget<PricingSettings>;
112
112
 
113
- interface BannerSettings extends WidgetDefaultSettings {
113
+ interface BannerSettings extends WidgetDefaultSettings, TitleSettings {
114
114
  title?: string;
115
115
  description?: TextEditorContent;
116
116
  buttonCaption?: string;
@@ -123,7 +123,7 @@ interface BannerSettings extends WidgetDefaultSettings {
123
123
 
124
124
  declare const Banner: Widget<BannerSettings>;
125
125
 
126
- interface EmailFormSettings extends WidgetDefaultSettings {
126
+ interface EmailFormSettings extends WidgetDefaultSettings, TitleSettings {
127
127
  title?: string;
128
128
  description?: TextEditorContent;
129
129
  buttonCaption?: string;
@@ -134,7 +134,7 @@ interface EmailFormSettings extends WidgetDefaultSettings {
134
134
 
135
135
  declare const EmailForm: Widget<EmailFormSettings>;
136
136
 
137
- interface SupportFormSettings extends WidgetDefaultSettings {
137
+ interface SupportFormSettings extends WidgetDefaultSettings, TitleSettings {
138
138
  title?: string;
139
139
  description?: TextEditorContent;
140
140
  buttonCaption?: string;
@@ -155,11 +155,11 @@ interface FooterColumn {
155
155
  links: FooterLink[];
156
156
  }
157
157
  interface FooterSettings extends WidgetDefaultSettings {
158
- logoText?: string;
159
158
  tagline?: string;
160
159
  columns?: FooterColumn[];
161
160
  copyrightText?: string;
162
161
  layout?: "columns" | "centered" | "minimal";
162
+ showThemeSwitcher?: boolean;
163
163
  }
164
164
 
165
165
  declare const Footer: Widget<FooterSettings>;
@@ -187,7 +187,7 @@ interface GridItem {
187
187
  /** Card destination. In the "overlay" layout the whole card becomes a link when this is set, even without a caption. */
188
188
  buttonAction?: string;
189
189
  }
190
- interface GridSettings extends WidgetDefaultSettings {
190
+ interface GridSettings extends WidgetDefaultSettings, TitleSettings {
191
191
  title?: string;
192
192
  description?: TextEditorContent;
193
193
  headerAlignment?: Alignment;
@@ -241,12 +241,24 @@ interface EmbedSettings extends WidgetDefaultSettings {
241
241
  content?: string;
242
242
  /** Colon-separated, matching common video-embed aspect ratio labels. */
243
243
  aspectRatio?: "16:9" | "4:3" | "1:1" | "default";
244
- /** Fixed height in px, used only when `aspectRatio` is "default". */
244
+ /** Fixed height in px for URL embeds, used only when `aspectRatio` is "default". */
245
245
  height?: number;
246
246
  }
247
247
 
248
248
  declare const Embed: Widget<EmbedSettings>;
249
249
 
250
+ interface CodeSnippetSettings extends WidgetDefaultSettings {
251
+ /** The command or code to show and copy. */
252
+ code?: string;
253
+ /** Show a "$" prompt before the first line. */
254
+ showPrompt?: boolean;
255
+ /** Small line under the snippet, e.g. "macOS · Linux · Windows". */
256
+ caption?: string;
257
+ contentAlignment?: Alignment;
258
+ }
259
+
260
+ declare const CodeSnippetBlock: Widget<CodeSnippetSettings>;
261
+
250
262
  interface DataSlotSettings extends WidgetDefaultSettings {
251
263
  /** Name matched against the host application's data-slot loaders. */
252
264
  slot: string;
@@ -254,4 +266,4 @@ interface DataSlotSettings extends WidgetDefaultSettings {
254
266
 
255
267
  declare const DataSlot: Widget<DataSlotSettings>;
256
268
 
257
- export { Banner, type BannerSettings, Content, type ContentSettings, DataSlot, type DataSlotSettings, EmailForm, type EmailFormSettings, Embed, type EmbedSettings, Faq, type FaqItem, type FaqSettings, type FeatureItem, Featured, type FeaturedSettings, Footer, type FooterColumn, type FooterLink, type FooterSettings, Grid, type GridItem, type GridSettings, Header, type HeaderNavLink, type HeaderSettings, Hero, type HeroSettings, Marquee, type MarqueeItem, type MarqueeSettings, MediaBlock, type MediaSettings, Pricing, type PricingSettings, type PricingTier, RichText, type RichTextSettings, SupportForm, type SupportFormSettings };
269
+ export { Banner, type BannerSettings, CodeSnippetBlock, type CodeSnippetSettings, Content, type ContentSettings, DataSlot, type DataSlotSettings, EmailForm, type EmailFormSettings, Embed, type EmbedSettings, Faq, type FaqItem, type FaqSettings, type FeatureItem, Featured, type FeaturedSettings, Footer, type FooterColumn, type FooterLink, type FooterSettings, Grid, type GridItem, type GridSettings, Header, type HeaderNavLink, type HeaderSettings, Hero, type HeroSettings, Marquee, type MarqueeItem, type MarqueeSettings, MediaBlock, type MediaSettings, Pricing, type PricingSettings, type PricingTier, RichText, type RichTextSettings, SupportForm, type SupportFormSettings };
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- export { Banner, Content, DataSlot, EmailForm, Embed, Faq, Featured, Footer, Grid, Header, Hero, Marquee, MediaBlock, Pricing, RichText, SupportForm } from '../chunk-UO7XGBGM.js';
3
- import '../chunk-H4P5MFJI.js';
4
- import '../chunk-SGNRWWG3.js';
2
+ export { Banner, CodeSnippetBlock, Content, DataSlot, EmailForm, Embed, Faq, Featured, Footer, Grid, Header, Hero, Marquee, MediaBlock, Pricing, RichText, SupportForm } from '../chunk-K4WCLHMS.js';
3
+ import '../chunk-36QHCIPM.js';
4
+ import '../chunk-J7Z4UW45.js';
5
5
  import '../chunk-XU7ALPGQ.js';
6
6
  //# sourceMappingURL=index.js.map
7
7
  //# sourceMappingURL=index.js.map
@@ -1,11 +1,11 @@
1
1
  import React__default from 'react';
2
- import { T as Theme, S as SectionBackground } from '../section-background-MsdE40Rk.js';
3
- import { c as WidgetInstance, P as PageData, W as Widget } from '../widget-B_RoG6se.js';
4
- import { a as PageSeo } from '../page-W3hQga4w.js';
2
+ import { T as Theme, S as SectionBackground } from '../section-background-6V_LCi5e.js';
3
+ import { c as WidgetInstance, P as PageData, W as Widget } from '../widget-CpE2HdgU.js';
4
+ import { a as PageSeo } from '../page-B5Gmm-Ys.js';
5
5
  import { P as PageBuilderLinkComponent } from '../nav-link-BfxvQ1s6.js';
6
6
  import { LucideIcon } from 'lucide-react';
7
7
  import { R as ResolvedColorMode } from '../color-mode-DIEEt9WP.js';
8
- import { T as ThemeStyle } from '../theme-style-Cbl7NM-T.js';
8
+ import { T as ThemeStyle } from '../theme-style-BVd5tOsc.js';
9
9
  import '../media-CnLImjVC.js';
10
10
 
11
11
  interface PageBuilderState {
@@ -30,7 +30,7 @@ interface PageBuilderProps {
30
30
  system?: Theme[];
31
31
  custom?: Theme[];
32
32
  };
33
- pageData?: PageData;
33
+ pageData: PageData;
34
34
  onChange?: (state: PageBuilderState) => void;
35
35
  /** Whether the editor may alter team-wide theme data. */
36
36
  allowThemeEditing?: boolean;
@@ -91,15 +91,14 @@ declare function PageBuilderPropertyHeader({ label, tooltip, }: {
91
91
  * PageBuilderSlider. Uses a native range input instead of Radix Slider so it
92
92
  * adds no dependencies.
93
93
  */
94
- declare function PageBuilderSlider({ title, min, max, value, onChange, tooltip, className, allowsReset, unit, }: {
94
+ declare function PageBuilderSlider({ title, min, max, value, onChange, tooltip, className, unit, }: {
95
95
  title: string;
96
96
  min: number;
97
97
  max: number;
98
98
  value: number;
99
- onChange: (value?: number) => void;
99
+ onChange: (value: number) => void;
100
100
  tooltip?: string;
101
101
  className?: string;
102
- allowsReset?: boolean;
103
102
  unit?: string;
104
103
  }): React__default.JSX.Element;
105
104
 
@@ -1,9 +1,10 @@
1
1
  "use client";
2
- export { BlockPicker, BuilderTopBar, ColorSelector, ContentPaddingSelector, MaxWidthSelector, PATTERN_PRESETS, PageBuilder, PageBuilderPropertyHeader, PageBuilderSlider, SectionBackgroundPanel, SeoEditor, SettingsPanel, ThemeEditor, VerticalPaddingSelector, getMaxWidthTWClass, getVerticalPaddingTWClass } from '../chunk-KQKSLI3L.js';
3
- import '../chunk-HDINUNI2.js';
4
- import '../chunk-UO7XGBGM.js';
5
- import '../chunk-H4P5MFJI.js';
6
- import '../chunk-SGNRWWG3.js';
2
+ export { BlockPicker, BuilderTopBar, ColorSelector, ContentPaddingSelector, MaxWidthSelector, PATTERN_PRESETS, PageBuilder, PageBuilderPropertyHeader, PageBuilderSlider, SectionBackgroundPanel, SeoEditor, SettingsPanel, ThemeEditor, VerticalPaddingSelector, getMaxWidthTWClass, getVerticalPaddingTWClass } from '../chunk-GIKTOAQS.js';
3
+ import '../chunk-IU4KATI2.js';
4
+ import '../chunk-BBI7UHOA.js';
5
+ import '../chunk-K4WCLHMS.js';
6
+ import '../chunk-36QHCIPM.js';
7
+ import '../chunk-J7Z4UW45.js';
7
8
  import '../chunk-XU7ALPGQ.js';
8
9
  //# sourceMappingURL=index.js.map
9
10
  //# sourceMappingURL=index.js.map
@@ -1,12 +1,12 @@
1
1
  import * as React from 'react';
2
2
  import React__default from 'react';
3
- import { T as ThemeStyle } from './theme-style-Cbl7NM-T.js';
3
+ import { T as ThemeStyle } from './theme-style-BVd5tOsc.js';
4
4
  import * as class_variance_authority_types from 'class-variance-authority/types';
5
5
  import { VariantProps } from 'class-variance-authority';
6
6
 
7
7
  declare const buttonVariants: (props?: {
8
8
  variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "ghost";
9
- size?: "default" | "icon" | "sm" | "lg";
9
+ size?: "default" | "sm" | "lg" | "icon";
10
10
  } & class_variance_authority_types.ClassProp) => string;
11
11
  interface ButtonProps$1 extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
12
12
  asChild?: boolean;