@riverbankcms/sdk 0.60.1 → 0.60.3

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 (83) hide show
  1. package/dist/_dts/api/src/bookingRecords.d.ts +7 -0
  2. package/dist/_dts/api/src/communications.d.ts +1 -0
  3. package/dist/_dts/api/src/contentRuntime.d.ts +8 -0
  4. package/dist/_dts/api/src/endpoints.d.ts +17 -0
  5. package/dist/_dts/api/src/index.d.ts +1 -1
  6. package/dist/_dts/api/src/media.d.ts +1 -1
  7. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +45 -1
  8. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +24 -1
  9. package/dist/_dts/api/src/siteSettings.d.ts +7 -0
  10. package/dist/_dts/api/src/types.d.ts +1 -1
  11. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -0
  12. package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +1 -0
  13. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.server.d.ts +4 -0
  14. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.shared.d.ts +38 -0
  15. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.view.d.ts +2 -1
  16. package/dist/_dts/core/src/business-address.d.ts +38 -0
  17. package/dist/_dts/core/src/index.d.ts +1 -0
  18. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +22 -0
  19. package/dist/_dts/preview-next/src/client/blocks/runOptimisticCustomizeAction.d.ts +44 -0
  20. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +7 -1
  21. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +12 -1
  22. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +6 -1
  23. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +20 -0
  24. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +99 -0
  25. package/dist/_dts/sdk/src/public-api/contracts.d.ts +11 -1
  26. package/dist/_dts/sdk/src/version.d.ts +1 -1
  27. package/dist/_dts/theme-core/src/buttons/constants.d.ts +9 -1
  28. package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +16 -11
  29. package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +9 -16
  30. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
  31. package/dist/_dts/theme-core/src/buttons/personalities/brushed-wash.d.ts +11 -0
  32. package/dist/_dts/theme-core/src/buttons/personalities/confident-chip.d.ts +11 -0
  33. package/dist/_dts/theme-core/src/buttons/personalities/editorial-link.d.ts +11 -0
  34. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +14 -0
  35. package/dist/_dts/theme-core/src/buttons/personalities/ink-stamp.d.ts +11 -0
  36. package/dist/_dts/theme-core/src/buttons/personalities/pebble.d.ts +11 -0
  37. package/dist/_dts/theme-core/src/buttons/personalities/soft-pill.d.ts +11 -0
  38. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +268 -0
  39. package/dist/_dts/theme-core/src/buttons/types.d.ts +253 -72
  40. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +69 -15
  41. package/dist/_dts/theme-core/src/palette/index.d.ts +1 -0
  42. package/dist/_dts/theme-core/src/palette/variants/brand-led.d.ts +28 -0
  43. package/dist/_dts/theme-core/src/palette/variants/high-contrast.d.ts +28 -0
  44. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +17 -0
  45. package/dist/_dts/theme-core/src/palette/variants/soft-natural.d.ts +28 -0
  46. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +154 -0
  47. package/dist/_dts/theme-core/src/palette/variants/warm-neutral.d.ts +28 -0
  48. package/dist/_dts/theme-core/src/schema.d.ts +122 -10
  49. package/dist/_dts/theme-core/src/site-styles/compatibility.d.ts +109 -0
  50. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +193 -0
  51. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
  52. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +4 -0
  53. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +43 -2
  54. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +23 -1
  55. package/dist/_dts/ui/src/badge.d.ts +1 -1
  56. package/dist/_dts/ui/src/callout.d.ts +1 -1
  57. package/dist/cli/index.mjs +1471 -263
  58. package/dist/client/bookings.mjs +294 -144
  59. package/dist/client/client.mjs +3483 -2219
  60. package/dist/client/hooks.mjs +2765 -1654
  61. package/dist/client/rendering/client.mjs +3251 -2134
  62. package/dist/client/rendering/islands.mjs +1842 -728
  63. package/dist/client/rendering.mjs +41242 -39978
  64. package/dist/preview-next/before-render.mjs +17 -0
  65. package/dist/preview-next/client/runtime.mjs +10110 -8271
  66. package/dist/preview-next/middleware.mjs +17 -0
  67. package/dist/server/components.mjs +3500 -2364
  68. package/dist/server/config-validation.mjs +2996 -1885
  69. package/dist/server/config.mjs +2996 -1885
  70. package/dist/server/data.mjs +2765 -1654
  71. package/dist/server/index.mjs +18 -1
  72. package/dist/server/next.mjs +3215 -2079
  73. package/dist/server/page-converter.mjs +2910 -1816
  74. package/dist/server/prebuild.mjs +1 -1
  75. package/dist/server/rendering/server.mjs +3500 -2364
  76. package/dist/server/rendering.mjs +3500 -2364
  77. package/dist/server/routing.mjs +2943 -1704
  78. package/dist/server/server.mjs +2766 -1655
  79. package/dist/server/theme-bridge.mjs +1435 -481
  80. package/dist/server/theme.mjs +1087 -492
  81. package/package.json +1 -1
  82. package/dist/_dts/preview-next/src/client/preview/PreviewSiteStyleSwitcher.d.ts +0 -11
  83. package/dist/_dts/preview-next/src/client/preview/PreviewSiteStyleSwitcher.state.d.ts +0 -43
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import z39, { z, ZodError } from 'zod';
2
+ import z42, { z, ZodError } from 'zod';
3
3
  import 'react/jsx-runtime';
4
4
  import { createJiti } from 'jiti';
5
5
  import * as path3 from 'path';
@@ -137,6 +137,12 @@ var init_location = __esm({
137
137
  }
138
138
  });
139
139
 
140
+ // ../core/src/business-address.ts
141
+ var init_business_address = __esm({
142
+ "../core/src/business-address.ts"() {
143
+ }
144
+ });
145
+
140
146
  // ../core/src/assert-never.ts
141
147
  var init_assert_never = __esm({
142
148
  "../core/src/assert-never.ts"() {
@@ -211,6 +217,7 @@ var init_src = __esm({
211
217
  init_person_records();
212
218
  init_rectification();
213
219
  init_location();
220
+ init_business_address();
214
221
  init_result();
215
222
  init_assert_never();
216
223
  init_try_async();
@@ -1523,6 +1530,172 @@ var init_typeGuards = __esm({
1523
1530
  "../blocks/src/lib/typeGuards.ts"() {
1524
1531
  }
1525
1532
  });
1533
+ var STYLE_AXIS_VALUES, styleTagsSchema;
1534
+ var init_compatibility = __esm({
1535
+ "../theme-core/src/site-styles/compatibility.ts"() {
1536
+ STYLE_AXIS_VALUES = {
1537
+ tone: ["minimal", "classic", "bold"],
1538
+ energy: ["calm", "vibrant"],
1539
+ motion: ["subtle", "standard", "expressive"],
1540
+ era: ["editorial", "modern", "organic", "technical", "retro"]
1541
+ };
1542
+ styleTagsSchema = z.object({
1543
+ tone: z.enum(STYLE_AXIS_VALUES.tone).optional(),
1544
+ energy: z.enum(STYLE_AXIS_VALUES.energy).optional(),
1545
+ motion: z.enum(STYLE_AXIS_VALUES.motion).optional(),
1546
+ era: z.enum(STYLE_AXIS_VALUES.era).optional()
1547
+ });
1548
+ }
1549
+ });
1550
+ var VARIANT_ROLES, cornerStyleSchema, shadowSizeSchema, textTransformSchema, fontWeightSchema, buttonTypographySchema, letterSpacingSchema, hoverTransformSchema, hoverColorSchema, buttonPaddingPresetSchema, gradientStyleSchema, gradientSharpnessSchema, prioritySchema, buttonSizeNameSchema, PADDING_TOKEN_PATTERN, paddingShorthandSchema, buttonSizeConfigSchema, buttonSizesSchema, buttonGlobalSettingsSchema, gradientDirectionSchema, buttonBackgroundSchema, effectApplicationSchema, buttonBorderSchema, variantShadowSchema, variantEffectsSchema, variantSizeOverridesSchema, buttonVariantSchema, buttonSystemSchema;
1551
+ var init_types2 = __esm({
1552
+ "../theme-core/src/buttons/types.ts"() {
1553
+ VARIANT_ROLES = [
1554
+ "primary",
1555
+ "secondary",
1556
+ "outline",
1557
+ "ghost",
1558
+ "link",
1559
+ "tertiary",
1560
+ "accent"
1561
+ ];
1562
+ cornerStyleSchema = z.enum(["square", "rounded", "pill"]);
1563
+ shadowSizeSchema = z.enum(["none", "low", "medium", "high"]);
1564
+ textTransformSchema = z.enum(["none", "uppercase", "lowercase", "capitalize"]);
1565
+ fontWeightSchema = z.union([z.literal(500), z.literal(600), z.literal(700)]);
1566
+ buttonTypographySchema = z.enum(["body", "heading"]);
1567
+ letterSpacingSchema = z.enum(["tight", "normal", "loose"]);
1568
+ hoverTransformSchema = z.enum(["none", "lift", "scale", "press"]);
1569
+ hoverColorSchema = z.enum(["none", "brighten", "darken", "saturate", "token"]);
1570
+ buttonPaddingPresetSchema = z.enum(["compact", "default", "spacious"]);
1571
+ gradientStyleSchema = z.enum(["linear", "radial", "conic"]);
1572
+ gradientSharpnessSchema = z.enum(["smooth", "medium", "hard"]);
1573
+ prioritySchema = z.union([z.literal(1), z.literal(2), z.literal(3)]);
1574
+ z.enum(VARIANT_ROLES);
1575
+ buttonSizeNameSchema = z.enum(["sm", "md", "lg", "xl"]);
1576
+ PADDING_TOKEN_PATTERN = /^(?:0|\d+(?:\.\d+)?(?:rem|em|px|%))$/;
1577
+ paddingShorthandSchema = z.string().refine(
1578
+ (value) => {
1579
+ const parts = value.split(/\s+/).filter(Boolean);
1580
+ return parts.length === 2 && parts.every((token) => PADDING_TOKEN_PATTERN.test(token));
1581
+ },
1582
+ {
1583
+ message: 'Padding must be two space-separated CSS length tokens (e.g. "0.5rem 1rem"). Use `0` for zero.'
1584
+ }
1585
+ );
1586
+ buttonSizeConfigSchema = z.object({
1587
+ padding: paddingShorthandSchema,
1588
+ fontSize: z.string().optional()
1589
+ });
1590
+ buttonSizesSchema = z.object({
1591
+ sm: buttonSizeConfigSchema,
1592
+ md: buttonSizeConfigSchema,
1593
+ lg: buttonSizeConfigSchema,
1594
+ xl: buttonSizeConfigSchema.optional()
1595
+ }).transform(({ sm, md, lg, xl }) => ({
1596
+ sm,
1597
+ md,
1598
+ lg,
1599
+ xl: xl ?? lg
1600
+ }));
1601
+ buttonGlobalSettingsSchema = z.object({
1602
+ cornerStyle: cornerStyleSchema,
1603
+ cornerRadius: z.number().min(0).max(24).optional(),
1604
+ shadow: shadowSizeSchema,
1605
+ textTransform: textTransformSchema,
1606
+ fontWeight: fontWeightSchema,
1607
+ /**
1608
+ * @deprecated Set per-variant via `variant.border.widthClass` instead.
1609
+ * Schema field is preserved so existing presets parse; the value is unread
1610
+ * by the current generator and will be removed once the legacy
1611
+ * `primitives/content/components/Button.tsx` slot exports are deleted.
1612
+ */
1613
+ borderWidth: z.union([z.literal(1), z.literal(2), z.literal(3)]),
1614
+ // === Family-level typography ===
1615
+ // Typography source (body or heading) — selects which theme typography pool to inherit
1616
+ typography: buttonTypographySchema.optional(),
1617
+ // Font size for all variants in the family (Tailwind token, e.g. "text-xs", "text-sm")
1618
+ // Sized variants get this as default; fixed variants inherit unless they override.
1619
+ // Size class CSS may still override at run time for sized variants.
1620
+ fontSize: z.string().optional(),
1621
+ // Letter spacing applied to all variants
1622
+ letterSpacing: letterSpacingSchema.optional(),
1623
+ // Italic style
1624
+ italic: z.boolean().optional(),
1625
+ // Padding preset (applies to sized variants without a sizes config)
1626
+ paddingPreset: buttonPaddingPresetSchema.optional(),
1627
+ hoverTransform: hoverTransformSchema,
1628
+ hoverColor: hoverColorSchema,
1629
+ // When hoverColor is 'token', this specifies which token to use
1630
+ hoverColorToken: z.string().optional(),
1631
+ // Gradient settings (if any variant uses gradients)
1632
+ gradientStyle: gradientStyleSchema.optional(),
1633
+ gradientAngle: z.number().min(0).max(360).optional(),
1634
+ gradientSharpness: gradientSharpnessSchema.optional()
1635
+ });
1636
+ gradientDirectionSchema = z.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
1637
+ buttonBackgroundSchema = z.discriminatedUnion("type", [
1638
+ z.object({ type: z.literal("solid"), colorToken: z.string() }),
1639
+ z.object({
1640
+ type: z.literal("gradient"),
1641
+ stops: z.array(z.string()).min(2),
1642
+ direction: gradientDirectionSchema
1643
+ }),
1644
+ z.object({ type: z.literal("transparent") })
1645
+ ]);
1646
+ effectApplicationSchema = z.object({
1647
+ effectId: z.string(),
1648
+ options: z.record(z.string(), z.any()).optional()
1649
+ });
1650
+ buttonBorderSchema = z.object({
1651
+ widthClass: z.string(),
1652
+ colorToken: z.string()
1653
+ });
1654
+ variantShadowSchema = z.object({
1655
+ elevation: z.enum(["none", "low", "medium", "high"]),
1656
+ softness: z.enum(["crisp", "soft", "hard"]).nullable(),
1657
+ position: z.enum(["bottom", "bottom-right"]).default("bottom")
1658
+ });
1659
+ variantEffectsSchema = z.object({
1660
+ base: z.array(effectApplicationSchema).optional(),
1661
+ hover: z.array(effectApplicationSchema).optional(),
1662
+ active: z.array(effectApplicationSchema).optional(),
1663
+ focus: z.array(effectApplicationSchema).optional()
1664
+ });
1665
+ variantSizeOverridesSchema = z.object({
1666
+ sm: buttonSizeConfigSchema.optional(),
1667
+ md: buttonSizeConfigSchema.optional(),
1668
+ lg: buttonSizeConfigSchema.optional(),
1669
+ xl: buttonSizeConfigSchema.optional()
1670
+ });
1671
+ buttonVariantSchema = z.object({
1672
+ id: z.string(),
1673
+ name: z.string().min(1).max(20),
1674
+ enabled: z.boolean(),
1675
+ priority: prioritySchema,
1676
+ // Base appearance (token-based)
1677
+ background: buttonBackgroundSchema,
1678
+ textColorToken: z.string(),
1679
+ /** Tailwind radius token (e.g. `'rounded-md'`). Omit to inherit from `global.cornerStyle`. */
1680
+ borderRadius: z.string().optional(),
1681
+ // Optional shadow override (uses theme.shadow if not specified)
1682
+ shadow: variantShadowSchema.optional(),
1683
+ // Border (optional)
1684
+ border: buttonBorderSchema.optional(),
1685
+ // Hover background token (per-variant override, takes precedence over global hoverColorToken)
1686
+ hoverBackgroundToken: z.string().optional(),
1687
+ // Effect composition
1688
+ effects: variantEffectsSchema.optional(),
1689
+ // Per-variant size overrides — see VariantSizeOverrides
1690
+ sizes: variantSizeOverridesSchema.optional()
1691
+ });
1692
+ buttonSystemSchema = z.object({
1693
+ global: buttonGlobalSettingsSchema,
1694
+ variants: z.array(buttonVariantSchema).min(1).max(6),
1695
+ sizes: buttonSizesSchema.optional()
1696
+ });
1697
+ }
1698
+ });
1526
1699
 
1527
1700
  // ../theme-core/src/tokens/resolver.ts
1528
1701
  var init_resolver = __esm({
@@ -1639,14 +1812,650 @@ var init_generateDefaultButtonSystem = __esm({
1639
1812
  init_contrast();
1640
1813
  }
1641
1814
  });
1642
-
1643
- // ../theme-core/src/buttons/generateButtonCss.ts
1644
1815
  var init_generateButtonCss = __esm({
1645
1816
  "../theme-core/src/buttons/generateButtonCss.ts"() {
1817
+ init_types2();
1646
1818
  init_resolver();
1647
1819
  init_generateEffectsCSS();
1648
1820
  init_constants();
1649
1821
  init_generateDefaultButtonSystem();
1822
+ buttonSizeNameSchema.options;
1823
+ }
1824
+ });
1825
+
1826
+ // ../theme-core/src/buttons/presets.ts
1827
+ var init_presets = __esm({
1828
+ "../theme-core/src/buttons/presets.ts"() {
1829
+ }
1830
+ });
1831
+ function asButtonPersonalityId(value) {
1832
+ if (value.length === 0) {
1833
+ throw new Error("ButtonPersonalityId must be a non-empty string");
1834
+ }
1835
+ return value;
1836
+ }
1837
+ function defineButtonPersonality(input) {
1838
+ return {
1839
+ id: asButtonPersonalityId(input.id),
1840
+ name: input.name,
1841
+ description: input.description,
1842
+ tags: input.tags,
1843
+ buttonSystem: input.buttonSystem
1844
+ };
1845
+ }
1846
+ var buttonPersonalityIdSchema;
1847
+ var init_types3 = __esm({
1848
+ "../theme-core/src/buttons/personalities/types.ts"() {
1849
+ init_types2();
1850
+ init_compatibility();
1851
+ buttonPersonalityIdSchema = z.string().min(1).transform((value) => asButtonPersonalityId(value));
1852
+ z.object({
1853
+ id: buttonPersonalityIdSchema,
1854
+ name: z.string().min(1),
1855
+ description: z.string().min(1),
1856
+ tags: styleTagsSchema,
1857
+ buttonSystem: buttonSystemSchema
1858
+ });
1859
+ }
1860
+ });
1861
+
1862
+ // ../theme-core/src/buttons/personalities/brushed-wash.ts
1863
+ var brushedWash;
1864
+ var init_brushed_wash = __esm({
1865
+ "../theme-core/src/buttons/personalities/brushed-wash.ts"() {
1866
+ init_types3();
1867
+ brushedWash = defineButtonPersonality({
1868
+ id: "brushed-wash",
1869
+ name: "Brushed Wash",
1870
+ description: "Watercolour-gradient buttons with soft shadows and generous padding.",
1871
+ tags: { tone: "classic", energy: "vibrant", motion: "standard", era: "organic" },
1872
+ buttonSystem: {
1873
+ global: {
1874
+ cornerStyle: "rounded",
1875
+ shadow: "low",
1876
+ textTransform: "none",
1877
+ fontWeight: 500,
1878
+ borderWidth: 1,
1879
+ hoverTransform: "none",
1880
+ hoverColor: "none"
1881
+ },
1882
+ sizes: {
1883
+ sm: { padding: "0.75rem 2rem", fontSize: "text-sm" },
1884
+ md: { padding: "1rem 2.5rem" },
1885
+ lg: { padding: "1.25rem 3rem", fontSize: "text-lg" },
1886
+ xl: { padding: "1.625rem 3.75rem", fontSize: "text-xl" }
1887
+ },
1888
+ variants: [
1889
+ {
1890
+ id: "primary",
1891
+ name: "Primary",
1892
+ enabled: true,
1893
+ priority: 1,
1894
+ background: {
1895
+ type: "gradient",
1896
+ stops: ["primary", "accent"],
1897
+ direction: "to-r"
1898
+ },
1899
+ textColorToken: "primaryForeground",
1900
+ borderRadius: "rounded-lg",
1901
+ shadow: { elevation: "low", softness: "soft", position: "bottom" },
1902
+ effects: {
1903
+ hover: [{ effectId: "opacity-reduce", options: { reduction: -15 } }]
1904
+ }
1905
+ },
1906
+ {
1907
+ id: "secondary",
1908
+ name: "Secondary",
1909
+ enabled: true,
1910
+ priority: 2,
1911
+ background: {
1912
+ type: "gradient",
1913
+ stops: ["secondary", "accent"],
1914
+ direction: "to-br"
1915
+ },
1916
+ textColorToken: "primaryForeground",
1917
+ borderRadius: "rounded-lg",
1918
+ shadow: { elevation: "low", softness: "soft", position: "bottom" },
1919
+ effects: {
1920
+ hover: [{ effectId: "opacity-reduce", options: { reduction: -15 } }]
1921
+ }
1922
+ },
1923
+ {
1924
+ id: "outline",
1925
+ name: "Outline",
1926
+ enabled: true,
1927
+ priority: 3,
1928
+ background: { type: "transparent" },
1929
+ textColorToken: "primary",
1930
+ borderRadius: "rounded-lg",
1931
+ border: { widthClass: "border", colorToken: "primary" },
1932
+ effects: {
1933
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
1934
+ }
1935
+ },
1936
+ {
1937
+ id: "ghost",
1938
+ name: "Ghost",
1939
+ enabled: true,
1940
+ priority: 3,
1941
+ background: { type: "transparent" },
1942
+ textColorToken: "text",
1943
+ borderRadius: "rounded-lg",
1944
+ effects: {
1945
+ hover: [
1946
+ { effectId: "background-on-hover", options: { colorToken: "surface" } }
1947
+ ]
1948
+ }
1949
+ }
1950
+ ]
1951
+ }
1952
+ });
1953
+ }
1954
+ });
1955
+
1956
+ // ../theme-core/src/buttons/personalities/confident-chip.ts
1957
+ var confidentChip;
1958
+ var init_confident_chip = __esm({
1959
+ "../theme-core/src/buttons/personalities/confident-chip.ts"() {
1960
+ init_types3();
1961
+ confidentChip = defineButtonPersonality({
1962
+ id: "confident-chip",
1963
+ name: "Confident Chip",
1964
+ description: "Mid-radius solid buttons with a crisp hover.",
1965
+ tags: { tone: "classic", energy: "calm", motion: "standard", era: "modern" },
1966
+ buttonSystem: {
1967
+ global: {
1968
+ cornerStyle: "rounded",
1969
+ shadow: "medium",
1970
+ textTransform: "none",
1971
+ fontWeight: 600,
1972
+ borderWidth: 1,
1973
+ hoverTransform: "none",
1974
+ hoverColor: "none"
1975
+ },
1976
+ variants: [
1977
+ {
1978
+ id: "primary",
1979
+ name: "Primary",
1980
+ enabled: true,
1981
+ priority: 1,
1982
+ background: { type: "solid", colorToken: "primary" },
1983
+ textColorToken: "primaryForeground",
1984
+ borderRadius: "rounded-md",
1985
+ shadow: { elevation: "medium", softness: "soft", position: "bottom" },
1986
+ effects: {
1987
+ hover: [{ effectId: "darken-background", options: { amount: 60 } }],
1988
+ active: [{ effectId: "scale-down", options: { scale: "0.97" } }]
1989
+ }
1990
+ },
1991
+ {
1992
+ id: "secondary",
1993
+ name: "Secondary",
1994
+ enabled: true,
1995
+ priority: 2,
1996
+ background: { type: "solid", colorToken: "surface" },
1997
+ textColorToken: "text",
1998
+ borderRadius: "rounded-md",
1999
+ border: { widthClass: "border", colorToken: "border" },
2000
+ effects: {
2001
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "background" } }]
2002
+ }
2003
+ },
2004
+ {
2005
+ id: "outline",
2006
+ name: "Outline",
2007
+ enabled: true,
2008
+ priority: 3,
2009
+ background: { type: "transparent" },
2010
+ textColorToken: "primary",
2011
+ borderRadius: "rounded-md",
2012
+ border: { widthClass: "border", colorToken: "primary" },
2013
+ effects: {
2014
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
2015
+ }
2016
+ },
2017
+ {
2018
+ id: "ghost",
2019
+ name: "Ghost",
2020
+ enabled: true,
2021
+ priority: 3,
2022
+ background: { type: "transparent" },
2023
+ textColorToken: "primary",
2024
+ borderRadius: "rounded-md",
2025
+ effects: {
2026
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
2027
+ }
2028
+ }
2029
+ ]
2030
+ }
2031
+ });
2032
+ }
2033
+ });
2034
+
2035
+ // ../theme-core/src/buttons/personalities/editorial-link.ts
2036
+ var editorialLink;
2037
+ var init_editorial_link = __esm({
2038
+ "../theme-core/src/buttons/personalities/editorial-link.ts"() {
2039
+ init_types3();
2040
+ editorialLink = defineButtonPersonality({
2041
+ id: "editorial-link",
2042
+ name: "Editorial Link",
2043
+ description: "Link-style with a growing underline. Refined, typographic.",
2044
+ tags: { tone: "minimal", energy: "calm", motion: "subtle", era: "editorial" },
2045
+ buttonSystem: {
2046
+ global: {
2047
+ cornerStyle: "square",
2048
+ shadow: "none",
2049
+ textTransform: "none",
2050
+ fontWeight: 500,
2051
+ borderWidth: 1,
2052
+ hoverTransform: "none",
2053
+ hoverColor: "none"
2054
+ },
2055
+ variants: [
2056
+ {
2057
+ id: "primary",
2058
+ name: "Primary",
2059
+ enabled: true,
2060
+ priority: 1,
2061
+ background: { type: "transparent" },
2062
+ textColorToken: "text",
2063
+ borderRadius: "rounded-none",
2064
+ shadow: { elevation: "none", softness: null, position: "bottom" },
2065
+ sizes: {
2066
+ sm: { padding: "0.25rem 0" },
2067
+ md: { padding: "0.5rem 0" },
2068
+ lg: { padding: "0.625rem 0" },
2069
+ xl: { padding: "0.75rem 0" }
2070
+ },
2071
+ effects: {
2072
+ base: [
2073
+ { effectId: "border-bottom-grow", options: { height: 2, colorToken: "text", origin: "left" } }
2074
+ ]
2075
+ }
2076
+ },
2077
+ {
2078
+ id: "secondary",
2079
+ name: "Secondary",
2080
+ enabled: true,
2081
+ priority: 2,
2082
+ background: { type: "transparent" },
2083
+ textColorToken: "mutedText",
2084
+ borderRadius: "rounded-none",
2085
+ shadow: { elevation: "none", softness: null, position: "bottom" },
2086
+ sizes: {
2087
+ sm: { padding: "0.25rem 0" },
2088
+ md: { padding: "0.5rem 0" },
2089
+ lg: { padding: "0.625rem 0" },
2090
+ xl: { padding: "0.75rem 0" }
2091
+ },
2092
+ effects: {
2093
+ base: [
2094
+ { effectId: "border-bottom-grow", options: { height: 1, colorToken: "mutedText", origin: "left" } }
2095
+ ]
2096
+ }
2097
+ },
2098
+ {
2099
+ id: "outline",
2100
+ name: "Outline",
2101
+ enabled: true,
2102
+ priority: 3,
2103
+ background: { type: "transparent" },
2104
+ textColorToken: "accent",
2105
+ borderRadius: "rounded-none",
2106
+ shadow: { elevation: "none", softness: null, position: "bottom" },
2107
+ sizes: {
2108
+ sm: { padding: "0.25rem 0" },
2109
+ md: { padding: "0.5rem 0" },
2110
+ lg: { padding: "0.625rem 0" },
2111
+ xl: { padding: "0.75rem 0" }
2112
+ },
2113
+ effects: {
2114
+ base: [
2115
+ { effectId: "border-bottom-grow", options: { height: 1, colorToken: "accent", origin: "left" } }
2116
+ ]
2117
+ }
2118
+ },
2119
+ {
2120
+ id: "ghost",
2121
+ name: "Ghost",
2122
+ enabled: true,
2123
+ priority: 3,
2124
+ background: { type: "transparent" },
2125
+ textColorToken: "mutedText",
2126
+ borderRadius: "rounded-none",
2127
+ shadow: { elevation: "none", softness: null, position: "bottom" },
2128
+ sizes: {
2129
+ sm: { padding: "0.25rem 0" },
2130
+ md: { padding: "0.5rem 0" },
2131
+ lg: { padding: "0.625rem 0" },
2132
+ xl: { padding: "0.75rem 0" }
2133
+ },
2134
+ effects: {
2135
+ hover: [{ effectId: "opacity-reduce", options: { reduction: -20 } }]
2136
+ }
2137
+ }
2138
+ ]
2139
+ }
2140
+ });
2141
+ }
2142
+ });
2143
+
2144
+ // ../theme-core/src/buttons/personalities/ink-stamp.ts
2145
+ var inkStamp;
2146
+ var init_ink_stamp = __esm({
2147
+ "../theme-core/src/buttons/personalities/ink-stamp.ts"() {
2148
+ init_types3();
2149
+ inkStamp = defineButtonPersonality({
2150
+ id: "ink-stamp",
2151
+ name: "Ink Stamp",
2152
+ description: "Hand-stamped block-print buttons with a slight lift on hover.",
2153
+ tags: { tone: "bold", energy: "vibrant", motion: "standard", era: "organic" },
2154
+ buttonSystem: {
2155
+ global: {
2156
+ cornerStyle: "rounded",
2157
+ shadow: "none",
2158
+ textTransform: "uppercase",
2159
+ fontWeight: 600,
2160
+ borderWidth: 1,
2161
+ hoverTransform: "none",
2162
+ hoverColor: "none",
2163
+ letterSpacing: "loose"
2164
+ },
2165
+ sizes: {
2166
+ sm: { padding: "0.5rem 1.25rem", fontSize: "text-xs" },
2167
+ md: { padding: "0.75rem 1.75rem", fontSize: "text-sm" },
2168
+ lg: { padding: "0.875rem 2.25rem", fontSize: "text-base" },
2169
+ xl: { padding: "1.125rem 2.75rem", fontSize: "text-lg" }
2170
+ },
2171
+ variants: [
2172
+ {
2173
+ id: "primary",
2174
+ name: "Primary",
2175
+ enabled: true,
2176
+ priority: 1,
2177
+ background: { type: "solid", colorToken: "primary" },
2178
+ textColorToken: "primaryForeground",
2179
+ borderRadius: "rounded-md",
2180
+ effects: {
2181
+ hover: [
2182
+ { effectId: "drop-shadow", options: { intensity: "medium" } },
2183
+ { effectId: "scale-up", options: { scale: "1.02" } }
2184
+ ],
2185
+ active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
2186
+ }
2187
+ },
2188
+ {
2189
+ id: "secondary",
2190
+ name: "Secondary",
2191
+ enabled: true,
2192
+ priority: 2,
2193
+ background: { type: "transparent" },
2194
+ textColorToken: "primary",
2195
+ borderRadius: "rounded-md",
2196
+ border: { widthClass: "border-2", colorToken: "primary" },
2197
+ effects: {
2198
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
2199
+ }
2200
+ },
2201
+ {
2202
+ id: "outline",
2203
+ name: "Outline",
2204
+ enabled: true,
2205
+ priority: 3,
2206
+ background: { type: "transparent" },
2207
+ textColorToken: "text",
2208
+ borderRadius: "rounded-md",
2209
+ border: { widthClass: "border-2", colorToken: "border" },
2210
+ effects: {
2211
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
2212
+ }
2213
+ },
2214
+ {
2215
+ id: "ghost",
2216
+ name: "Ghost",
2217
+ enabled: true,
2218
+ priority: 3,
2219
+ background: { type: "transparent" },
2220
+ textColorToken: "accent",
2221
+ borderRadius: "rounded-none",
2222
+ sizes: {
2223
+ sm: { padding: "0.375rem 0", fontSize: "text-xs" },
2224
+ md: { padding: "0.5rem 0", fontSize: "text-sm" },
2225
+ lg: { padding: "0.625rem 0", fontSize: "text-base" },
2226
+ xl: { padding: "0.75rem 0", fontSize: "text-lg" }
2227
+ },
2228
+ effects: {
2229
+ base: [{ effectId: "border-bottom-grow", options: { height: 1, colorToken: "accent", origin: "left" } }]
2230
+ }
2231
+ }
2232
+ ]
2233
+ }
2234
+ });
2235
+ }
2236
+ });
2237
+
2238
+ // ../theme-core/src/buttons/personalities/pebble.ts
2239
+ var pebble;
2240
+ var init_pebble = __esm({
2241
+ "../theme-core/src/buttons/personalities/pebble.ts"() {
2242
+ init_types3();
2243
+ pebble = defineButtonPersonality({
2244
+ id: "pebble",
2245
+ name: "Pebble",
2246
+ description: "Generous pill buttons with a soft hover lift.",
2247
+ tags: { tone: "classic", energy: "calm", motion: "standard", era: "organic" },
2248
+ buttonSystem: {
2249
+ global: {
2250
+ cornerStyle: "pill",
2251
+ shadow: "none",
2252
+ textTransform: "none",
2253
+ fontWeight: 500,
2254
+ borderWidth: 2,
2255
+ hoverTransform: "none",
2256
+ hoverColor: "none"
2257
+ },
2258
+ sizes: {
2259
+ sm: { padding: "0.625rem 1.75rem", fontSize: "text-sm" },
2260
+ md: { padding: "0.875rem 2.25rem" },
2261
+ lg: { padding: "1.125rem 2.75rem", fontSize: "text-lg" },
2262
+ xl: { padding: "1.5rem 3.5rem", fontSize: "text-xl" }
2263
+ },
2264
+ variants: [
2265
+ {
2266
+ id: "primary",
2267
+ name: "Primary",
2268
+ enabled: true,
2269
+ priority: 1,
2270
+ background: { type: "solid", colorToken: "primary" },
2271
+ textColorToken: "primaryForeground",
2272
+ borderRadius: "rounded-full",
2273
+ effects: {
2274
+ hover: [
2275
+ { effectId: "scale-up", options: { scale: "1.03" } },
2276
+ { effectId: "drop-shadow", options: { intensity: "medium" } }
2277
+ ]
2278
+ }
2279
+ },
2280
+ {
2281
+ id: "secondary",
2282
+ name: "Secondary",
2283
+ enabled: true,
2284
+ priority: 2,
2285
+ background: { type: "transparent" },
2286
+ textColorToken: "primary",
2287
+ borderRadius: "rounded-full",
2288
+ border: { widthClass: "border-2", colorToken: "accent" },
2289
+ effects: {
2290
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "accent" } }]
2291
+ }
2292
+ },
2293
+ {
2294
+ id: "outline",
2295
+ name: "Outline",
2296
+ enabled: true,
2297
+ priority: 3,
2298
+ background: { type: "transparent" },
2299
+ textColorToken: "text",
2300
+ borderRadius: "rounded-full",
2301
+ border: { widthClass: "border", colorToken: "border" },
2302
+ effects: {
2303
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
2304
+ }
2305
+ },
2306
+ {
2307
+ id: "ghost",
2308
+ name: "Ghost",
2309
+ enabled: true,
2310
+ priority: 3,
2311
+ background: { type: "transparent" },
2312
+ textColorToken: "primary",
2313
+ borderRadius: "rounded-full",
2314
+ sizes: {
2315
+ sm: { padding: "0.375rem 0.875rem", fontSize: "text-sm" },
2316
+ md: { padding: "0.5rem 1rem" },
2317
+ lg: { padding: "0.625rem 1.25rem", fontSize: "text-lg" },
2318
+ xl: { padding: "0.75rem 1.5rem", fontSize: "text-xl" }
2319
+ },
2320
+ effects: {
2321
+ hover: [{ effectId: "opacity-reduce", options: { reduction: 30 } }]
2322
+ }
2323
+ }
2324
+ ]
2325
+ }
2326
+ });
2327
+ }
2328
+ });
2329
+
2330
+ // ../theme-core/src/buttons/personalities/soft-pill.ts
2331
+ var softPill;
2332
+ var init_soft_pill = __esm({
2333
+ "../theme-core/src/buttons/personalities/soft-pill.ts"() {
2334
+ init_types3();
2335
+ softPill = defineButtonPersonality({
2336
+ id: "soft-pill",
2337
+ name: "Soft Pill",
2338
+ description: "Rounded pills with a gentle lift on hover. Quietly modern.",
2339
+ tags: { tone: "classic", energy: "calm", motion: "subtle", era: "organic" },
2340
+ buttonSystem: {
2341
+ global: {
2342
+ cornerStyle: "pill",
2343
+ shadow: "low",
2344
+ textTransform: "none",
2345
+ fontWeight: 500,
2346
+ borderWidth: 2,
2347
+ hoverTransform: "lift",
2348
+ hoverColor: "none"
2349
+ },
2350
+ variants: [
2351
+ {
2352
+ id: "primary",
2353
+ name: "Primary",
2354
+ enabled: true,
2355
+ priority: 1,
2356
+ background: { type: "solid", colorToken: "primary" },
2357
+ textColorToken: "primaryForeground",
2358
+ borderRadius: "rounded-full",
2359
+ shadow: { elevation: "low", softness: "soft", position: "bottom" },
2360
+ effects: {
2361
+ hover: [{ effectId: "lift", options: { translateY: "-1px" } }],
2362
+ active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
2363
+ }
2364
+ },
2365
+ {
2366
+ id: "secondary",
2367
+ name: "Secondary",
2368
+ enabled: true,
2369
+ priority: 2,
2370
+ background: { type: "transparent" },
2371
+ textColorToken: "primary",
2372
+ borderRadius: "rounded-full",
2373
+ border: { widthClass: "border-2", colorToken: "primary" },
2374
+ effects: {
2375
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
2376
+ }
2377
+ },
2378
+ {
2379
+ id: "outline",
2380
+ name: "Outline",
2381
+ enabled: true,
2382
+ priority: 3,
2383
+ background: { type: "transparent" },
2384
+ textColorToken: "text",
2385
+ borderRadius: "rounded-full",
2386
+ border: { widthClass: "border", colorToken: "border" },
2387
+ effects: {
2388
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
2389
+ }
2390
+ },
2391
+ {
2392
+ id: "ghost",
2393
+ name: "Ghost",
2394
+ enabled: true,
2395
+ priority: 3,
2396
+ background: { type: "transparent" },
2397
+ textColorToken: "text",
2398
+ borderRadius: "rounded-full",
2399
+ effects: {
2400
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
2401
+ }
2402
+ }
2403
+ ]
2404
+ }
2405
+ });
2406
+ }
2407
+ });
2408
+
2409
+ // ../theme-core/src/buttons/personalities/index.ts
2410
+ var buttonPersonalities;
2411
+ var init_personalities = __esm({
2412
+ "../theme-core/src/buttons/personalities/index.ts"() {
2413
+ init_brushed_wash();
2414
+ init_confident_chip();
2415
+ init_editorial_link();
2416
+ init_ink_stamp();
2417
+ init_pebble();
2418
+ init_soft_pill();
2419
+ init_types3();
2420
+ buttonPersonalities = [
2421
+ softPill,
2422
+ confidentChip,
2423
+ editorialLink,
2424
+ pebble,
2425
+ inkStamp,
2426
+ brushedWash
2427
+ ];
2428
+ new Map(
2429
+ buttonPersonalities.map((p) => [p.id, p])
2430
+ );
2431
+ }
2432
+ });
2433
+
2434
+ // ../theme-core/src/buttons/effects/types.ts
2435
+ var init_types4 = __esm({
2436
+ "../theme-core/src/buttons/effects/types.ts"() {
2437
+ }
2438
+ });
2439
+
2440
+ // ../theme-core/src/buttons/core.ts
2441
+ var init_core = __esm({
2442
+ "../theme-core/src/buttons/core.ts"() {
2443
+ }
2444
+ });
2445
+
2446
+ // ../theme-core/src/buttons/index.ts
2447
+ var init_buttons = __esm({
2448
+ "../theme-core/src/buttons/index.ts"() {
2449
+ init_types2();
2450
+ init_generateButtonCss();
2451
+ init_generateDefaultButtonSystem();
2452
+ init_constants();
2453
+ init_presets();
2454
+ init_personalities();
2455
+ init_types4();
2456
+ init_registry();
2457
+ init_transform();
2458
+ init_core();
1650
2459
  }
1651
2460
  });
1652
2461
 
@@ -1671,7 +2480,7 @@ var init_generateCardCss = __esm({
1671
2480
  }
1672
2481
  });
1673
2482
  var accordionIconSchema, accordionSystemSchema;
1674
- var init_types2 = __esm({
2483
+ var init_types5 = __esm({
1675
2484
  "../theme-core/src/accordions/types.ts"() {
1676
2485
  accordionIconSchema = z.enum([
1677
2486
  "plus-minus",
@@ -1733,7 +2542,7 @@ var init_types2 = __esm({
1733
2542
  }
1734
2543
  });
1735
2544
  var inputSystemSchema;
1736
- var init_types3 = __esm({
2545
+ var init_types6 = __esm({
1737
2546
  "../theme-core/src/inputs/types.ts"() {
1738
2547
  inputSystemSchema = z.object({
1739
2548
  // Base styling (applied to all inputs)
@@ -1826,7 +2635,7 @@ var init_baseSchema = __esm({
1826
2635
  }
1827
2636
  });
1828
2637
  var navLinkPaddingSchema, navLinkPaddingXSchema, navLinkBorderRadiusSchema, navLinkTextSizeSchema, navLinkLetterSpacingSchema, navLinkStyleSchema;
1829
- var init_types4 = __esm({
2638
+ var init_types7 = __esm({
1830
2639
  "../theme-core/src/navigation/types.ts"() {
1831
2640
  init_baseSchema();
1832
2641
  navLinkPaddingSchema = z.enum(["none", "compact", "default"]);
@@ -2631,7 +3440,7 @@ function validateProps(props2, context = "node builder") {
2631
3440
  }
2632
3441
  }
2633
3442
  var RESERVED_KEYS;
2634
- var init_types5 = __esm({
3443
+ var init_types8 = __esm({
2635
3444
  "../blocks/src/system/node/types.ts"() {
2636
3445
  init_env();
2637
3446
  RESERVED_KEYS = [
@@ -2758,7 +3567,7 @@ var section, headerSection, stack, inline, accordion, accordionItem, carousel, t
2758
3567
  var init_builder = __esm({
2759
3568
  "../blocks/src/system/node/builder.ts"() {
2760
3569
  init_schema();
2761
- init_types5();
3570
+ init_types8();
2762
3571
  init_env();
2763
3572
  section = (props2, children, ...mods) => el("section", props2, children, ...mods);
2764
3573
  headerSection = (props2, children, ...mods) => el("headerSection", props2, children, ...mods);
@@ -3639,7 +4448,7 @@ function createTransformRegistry(definitions) {
3639
4448
  }
3640
4449
  return registry;
3641
4450
  }
3642
- var init_core = __esm({
4451
+ var init_core2 = __esm({
3643
4452
  "../blocks/src/system/transforms/registry/core.ts"() {
3644
4453
  }
3645
4454
  });
@@ -3767,7 +4576,7 @@ function hasVisualContainerStyles(value) {
3767
4576
  var spacingTransform, raisedTransform, roundedTransform, boxStylesCompositeTransform, boxStylesBorderColorTransform, sectionClassNameTransform, containerStylesResolveClassName, containerStylesResolveBoxClassName, sectionTextColorStyleTransform, sectionHeadingColorStyleTransform, sectionColorsStyleTransform, GAP_CLASS_MAP, GAP_VALUE_MAP, semanticGapTransform, semanticGapValueTransform, boxStylesTransforms;
3768
4577
  var init_boxStyles2 = __esm({
3769
4578
  "../blocks/src/system/transforms/registry/boxStyles.ts"() {
3770
- init_core();
4579
+ init_core2();
3771
4580
  init_spacing();
3772
4581
  init_colorStyles();
3773
4582
  init_colorResolution();
@@ -4691,7 +5500,7 @@ function scopeContentPath(path21, scope) {
4691
5500
  return `content.${scope}.${path21}`;
4692
5501
  }
4693
5502
  var FRAGMENT_ID_PATTERN, FIELD_ID_PATTERN, dataLoaderSchema, fragmentDataSchema, fragmentConfigSchema, FragmentConfigError;
4694
- var init_types6 = __esm({
5503
+ var init_types9 = __esm({
4695
5504
  "../blocks/src/system/fragments/types.ts"() {
4696
5505
  init_schema2();
4697
5506
  init_node();
@@ -4824,7 +5633,7 @@ function buildFragmentDataLoaders(composition2) {
4824
5633
  var FragmentCompositionError, DOT_SCOPE_REGEX;
4825
5634
  var init_builder2 = __esm({
4826
5635
  "../blocks/src/system/fragments/builder.ts"() {
4827
- init_types6();
5636
+ init_types9();
4828
5637
  FragmentCompositionError = class extends Error {
4829
5638
  constructor(message) {
4830
5639
  super(message);
@@ -4839,7 +5648,7 @@ var init_builder2 = __esm({
4839
5648
  var bodyCopyFragment;
4840
5649
  var init_bodyCopy = __esm({
4841
5650
  "../blocks/src/system/fragments/library/bodyCopy.ts"() {
4842
- init_types6();
5651
+ init_types9();
4843
5652
  init_builder();
4844
5653
  bodyCopyFragment = defineFragment({
4845
5654
  id: "bodyCopy",
@@ -4938,7 +5747,7 @@ var init_bodyCopy = __esm({
4938
5747
  var heroCopyFragment;
4939
5748
  var init_heroCopy = __esm({
4940
5749
  "../blocks/src/system/fragments/library/heroCopy.ts"() {
4941
- init_types6();
5750
+ init_types9();
4942
5751
  init_builder();
4943
5752
  heroCopyFragment = defineFragment({
4944
5753
  id: "heroCopy",
@@ -5022,7 +5831,7 @@ function createButtonGroup(options = {}) {
5022
5831
  { value: "outline", label: "Outline" }
5023
5832
  ],
5024
5833
  defaultVariant,
5025
- includeSize = false,
5834
+ includeSize = true,
5026
5835
  defaultSize = "md",
5027
5836
  showGroupLabel = false,
5028
5837
  groupId = "button",
@@ -5164,7 +5973,7 @@ var init_ctas = __esm({
5164
5973
  var ctaRowFragment;
5165
5974
  var init_ctaRow2 = __esm({
5166
5975
  "../blocks/src/system/fragments/library/ctaRow.ts"() {
5167
- init_types6();
5976
+ init_types9();
5168
5977
  init_fragments();
5169
5978
  init_ctas();
5170
5979
  ctaRowFragment = defineFragment({
@@ -5183,7 +5992,7 @@ var init_ctaRow2 = __esm({
5183
5992
  var heroCtaRowFragment;
5184
5993
  var init_heroCtaRow = __esm({
5185
5994
  "../blocks/src/system/fragments/library/heroCtaRow.ts"() {
5186
- init_types6();
5995
+ init_types9();
5187
5996
  init_fragments();
5188
5997
  init_ctas();
5189
5998
  heroCtaRowFragment = defineFragment({
@@ -5229,7 +6038,7 @@ var init_heroCtaRow = __esm({
5229
6038
  var ctaCopyFragment;
5230
6039
  var init_ctaCopy = __esm({
5231
6040
  "../blocks/src/system/fragments/library/ctaCopy.ts"() {
5232
- init_types6();
6041
+ init_types9();
5233
6042
  init_fragments();
5234
6043
  init_builder();
5235
6044
  ctaCopyFragment = defineFragment({
@@ -5281,7 +6090,7 @@ var init_ctaCopy = __esm({
5281
6090
  var testimonialsHeadingFragment;
5282
6091
  var init_testimonialsHeading = __esm({
5283
6092
  "../blocks/src/system/fragments/library/testimonialsHeading.ts"() {
5284
- init_types6();
6093
+ init_types9();
5285
6094
  init_builder();
5286
6095
  init_colorStyles();
5287
6096
  testimonialsHeadingFragment = defineFragment({
@@ -5463,7 +6272,7 @@ function buildGridLayout() {
5463
6272
  var grid, testimonialsCarouselFragment;
5464
6273
  var init_testimonialsCarousel = __esm({
5465
6274
  "../blocks/src/system/fragments/library/testimonialsCarousel.ts"() {
5466
- init_types6();
6275
+ init_types9();
5467
6276
  init_builder();
5468
6277
  init_colorStyles();
5469
6278
  init_fragments();
@@ -5597,7 +6406,7 @@ var init_testimonialsCarousel = __esm({
5597
6406
  var formCopyFragment;
5598
6407
  var init_formCopy = __esm({
5599
6408
  "../blocks/src/system/fragments/library/formCopy.ts"() {
5600
- init_types6();
6409
+ init_types9();
5601
6410
  init_builder();
5602
6411
  formCopyFragment = defineFragment({
5603
6412
  id: "formCopy",
@@ -5658,7 +6467,7 @@ var init_api_bindings = __esm({
5658
6467
  var formEmbedFragment;
5659
6468
  var init_formEmbed = __esm({
5660
6469
  "../blocks/src/system/fragments/library/formEmbed.ts"() {
5661
- init_types6();
6470
+ init_types9();
5662
6471
  init_builder();
5663
6472
  init_api_bindings();
5664
6473
  formEmbedFragment = defineFragment({
@@ -5718,7 +6527,7 @@ var init_formEmbed = __esm({
5718
6527
  var footerBottomTextFragment;
5719
6528
  var init_footerBottomText = __esm({
5720
6529
  "../blocks/src/system/fragments/library/footerBottomText.ts"() {
5721
- init_types6();
6530
+ init_types9();
5722
6531
  init_builder();
5723
6532
  init_colorStyles();
5724
6533
  footerBottomTextFragment = defineFragment({
@@ -5785,7 +6594,7 @@ var init_footerBottomText = __esm({
5785
6594
  var headerCtaFragment;
5786
6595
  var init_headerCta = __esm({
5787
6596
  "../blocks/src/system/fragments/library/headerCta.ts"() {
5788
- init_types6();
6597
+ init_types9();
5789
6598
  init_fragments();
5790
6599
  headerCtaFragment = defineFragment({
5791
6600
  id: "headerCta",
@@ -5842,7 +6651,7 @@ var init_headerCta = __esm({
5842
6651
  var singleButtonFragment;
5843
6652
  var init_singleButton = __esm({
5844
6653
  "../blocks/src/system/fragments/library/singleButton.ts"() {
5845
- init_types6();
6654
+ init_types9();
5846
6655
  init_fragments();
5847
6656
  init_button();
5848
6657
  singleButtonFragment = defineFragment({
@@ -5878,7 +6687,7 @@ var init_singleButton = __esm({
5878
6687
  var blogFeaturedPostFragment;
5879
6688
  var init_blogFeaturedPost = __esm({
5880
6689
  "../blocks/src/system/fragments/library/blogFeaturedPost.ts"() {
5881
- init_types6();
6690
+ init_types9();
5882
6691
  init_fragments();
5883
6692
  init_builder();
5884
6693
  init_colorStyles();
@@ -6036,7 +6845,7 @@ var init_blogFeaturedPost = __esm({
6036
6845
  var faqHeadingFragment;
6037
6846
  var init_faqHeading = __esm({
6038
6847
  "../blocks/src/system/fragments/library/faqHeading.ts"() {
6039
- init_types6();
6848
+ init_types9();
6040
6849
  init_builder();
6041
6850
  init_colorStyles();
6042
6851
  faqHeadingFragment = defineFragment({
@@ -6110,7 +6919,7 @@ var faqAccordionFragment;
6110
6919
  var init_faqAccordion = __esm({
6111
6920
  "../blocks/src/system/fragments/library/faqAccordion.ts"() {
6112
6921
  init_builder();
6113
- init_types6();
6922
+ init_types9();
6114
6923
  faqAccordionFragment = defineFragment({
6115
6924
  id: "faqAccordion",
6116
6925
  title: "FAQ Accordion",
@@ -6185,7 +6994,7 @@ var init_faqAccordion = __esm({
6185
6994
  var cardFragment;
6186
6995
  var init_card = __esm({
6187
6996
  "../blocks/src/system/fragments/library/card.ts"() {
6188
- init_types6();
6997
+ init_types9();
6189
6998
  init_builder();
6190
6999
  init_ctas();
6191
7000
  init_ctaRow();
@@ -6321,7 +7130,7 @@ var init_card = __esm({
6321
7130
  var headingFragment;
6322
7131
  var init_heading = __esm({
6323
7132
  "../blocks/src/system/fragments/library/heading.ts"() {
6324
- init_types6();
7133
+ init_types9();
6325
7134
  init_builder();
6326
7135
  headingFragment = defineFragment({
6327
7136
  id: "heading",
@@ -6367,7 +7176,7 @@ var init_heading = __esm({
6367
7176
  var richTextFragment;
6368
7177
  var init_richText = __esm({
6369
7178
  "../blocks/src/system/fragments/library/richText.ts"() {
6370
- init_types6();
7179
+ init_types9();
6371
7180
  init_builder();
6372
7181
  richTextFragment = defineFragment({
6373
7182
  id: "richText",
@@ -6447,7 +7256,7 @@ var init_toRepeaterSchema = __esm({
6447
7256
  var heroLayoutControlsFragment;
6448
7257
  var init_heroLayoutControls = __esm({
6449
7258
  "../blocks/src/system/fragments/library/heroLayoutControls.ts"() {
6450
- init_types6();
7259
+ init_types9();
6451
7260
  heroLayoutControlsFragment = defineFragment({
6452
7261
  id: "heroLayoutControls",
6453
7262
  title: "Hero Layout",
@@ -6504,7 +7313,7 @@ var init_heroLayoutControls = __esm({
6504
7313
  var bookingFormFragment;
6505
7314
  var init_bookingForm = __esm({
6506
7315
  "../blocks/src/system/fragments/library/bookingForm.ts"() {
6507
- init_types6();
7316
+ init_types9();
6508
7317
  init_builder();
6509
7318
  init_api_bindings();
6510
7319
  bookingFormFragment = defineFragment({
@@ -6572,7 +7381,7 @@ var init_bookingForm = __esm({
6572
7381
  var quoteFragment;
6573
7382
  var init_quote = __esm({
6574
7383
  "../blocks/src/system/fragments/library/quote.ts"() {
6575
- init_types6();
7384
+ init_types9();
6576
7385
  init_builder();
6577
7386
  quoteFragment = defineFragment({
6578
7387
  id: "quote",
@@ -6639,7 +7448,7 @@ var init_quote = __esm({
6639
7448
  var imageFragment;
6640
7449
  var init_image = __esm({
6641
7450
  "../blocks/src/system/fragments/library/image.ts"() {
6642
- init_types6();
7451
+ init_types9();
6643
7452
  init_builder();
6644
7453
  init_colorStyles();
6645
7454
  imageFragment = defineFragment({
@@ -6753,7 +7562,7 @@ var init_image = __esm({
6753
7562
  var videoEmbedFragment;
6754
7563
  var init_videoEmbed = __esm({
6755
7564
  "../blocks/src/system/fragments/library/videoEmbed.ts"() {
6756
- init_types6();
7565
+ init_types9();
6757
7566
  init_builder();
6758
7567
  init_colorStyles();
6759
7568
  videoEmbedFragment = defineFragment({
@@ -6819,7 +7628,7 @@ var init_videoEmbed = __esm({
6819
7628
  var feedbackCalloutFragment;
6820
7629
  var init_feedbackCallout2 = __esm({
6821
7630
  "../blocks/src/system/fragments/library/feedbackCallout.ts"() {
6822
- init_types6();
7631
+ init_types9();
6823
7632
  init_ctas();
6824
7633
  init_fragments();
6825
7634
  feedbackCalloutFragment = defineFragment({
@@ -6894,7 +7703,7 @@ var init_feedbackCallout2 = __esm({
6894
7703
  var SECTION_STATE_KIND_LABELS, sectionStateFragment;
6895
7704
  var init_sectionState2 = __esm({
6896
7705
  "../blocks/src/system/fragments/library/sectionState.ts"() {
6897
- init_types6();
7706
+ init_types9();
6898
7707
  init_ctas();
6899
7708
  init_fragments();
6900
7709
  SECTION_STATE_KIND_LABELS = {
@@ -6973,7 +7782,7 @@ var init_sectionState2 = __esm({
6973
7782
  var columnContentFragment;
6974
7783
  var init_columnContent = __esm({
6975
7784
  "../blocks/src/system/fragments/library/columnContent.ts"() {
6976
- init_types6();
7785
+ init_types9();
6977
7786
  init_builder();
6978
7787
  init_toRepeaterSchema();
6979
7788
  init_image();
@@ -7040,7 +7849,7 @@ var init_columnContent = __esm({
7040
7849
  var spinnerFragment;
7041
7850
  var init_spinner = __esm({
7042
7851
  "../blocks/src/system/fragments/library/spinner.ts"() {
7043
- init_types6();
7852
+ init_types9();
7044
7853
  init_builder();
7045
7854
  spinnerFragment = defineFragment({
7046
7855
  id: "spinner",
@@ -7162,7 +7971,7 @@ var init_init = __esm({
7162
7971
  var newsletterCopyFragment;
7163
7972
  var init_newsletterCopy = __esm({
7164
7973
  "../blocks/src/system/fragments/library/newsletterCopy.ts"() {
7165
- init_types6();
7974
+ init_types9();
7166
7975
  init_builder();
7167
7976
  newsletterCopyFragment = defineFragment({
7168
7977
  id: "newsletterCopy",
@@ -7207,7 +8016,7 @@ var init_newsletterCopy = __esm({
7207
8016
  var newsletterFormFragment;
7208
8017
  var init_newsletterForm = __esm({
7209
8018
  "../blocks/src/system/fragments/library/newsletterForm.ts"() {
7210
- init_types6();
8019
+ init_types9();
7211
8020
  init_builder();
7212
8021
  init_api_bindings();
7213
8022
  newsletterFormFragment = defineFragment({
@@ -7297,7 +8106,7 @@ var init_newsletterForm = __esm({
7297
8106
  var teamMemberFragment;
7298
8107
  var init_teamMember = __esm({
7299
8108
  "../blocks/src/system/fragments/library/teamMember.ts"() {
7300
- init_types6();
8109
+ init_types9();
7301
8110
  init_builder();
7302
8111
  teamMemberFragment = defineFragment({
7303
8112
  id: "teamMember",
@@ -7368,7 +8177,7 @@ var init_teamMember = __esm({
7368
8177
  // ../blocks/src/system/fragments/index.ts
7369
8178
  var init_fragments2 = __esm({
7370
8179
  "../blocks/src/system/fragments/index.ts"() {
7371
- init_types6();
8180
+ init_types9();
7372
8181
  init_builder2();
7373
8182
  init_registry2();
7374
8183
  init_toRepeaterSchema();
@@ -7834,7 +8643,7 @@ var init_shared2 = __esm({
7834
8643
  });
7835
8644
 
7836
8645
  // ../blocks/src/system/blocks/events/shared/types.ts
7837
- var init_types7 = __esm({
8646
+ var init_types10 = __esm({
7838
8647
  "../blocks/src/system/blocks/events/shared/types.ts"() {
7839
8648
  }
7840
8649
  });
@@ -7848,52 +8657,52 @@ var init_media = __esm({
7848
8657
  "audio",
7849
8658
  "video"
7850
8659
  ];
7851
- hotspotSchema2 = z39.object({
7852
- x: z39.number().min(0).max(1),
7853
- y: z39.number().min(0).max(1),
7854
- radius: z39.number().optional()
7855
- });
7856
- rotationSchema2 = z39.union([z39.literal(0), z39.literal(90), z39.literal(180), z39.literal(270)]);
7857
- rectSchema2 = z39.tuple([z39.number(), z39.number(), z39.number(), z39.number()]);
7858
- aspectCropSchema2 = z39.object({
7859
- aspect: z39.preprocess((value) => value == null ? void 0 : value, z39.string().optional()),
7860
- rect: z39.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
7861
- hotspot: z39.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
7862
- rotation: z39.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
7863
- });
7864
- transformSchema2 = z39.object({
7865
- aspectCrops: z39.preprocess((value) => {
8660
+ hotspotSchema2 = z42.object({
8661
+ x: z42.number().min(0).max(1),
8662
+ y: z42.number().min(0).max(1),
8663
+ radius: z42.number().optional()
8664
+ });
8665
+ rotationSchema2 = z42.union([z42.literal(0), z42.literal(90), z42.literal(180), z42.literal(270)]);
8666
+ rectSchema2 = z42.tuple([z42.number(), z42.number(), z42.number(), z42.number()]);
8667
+ aspectCropSchema2 = z42.object({
8668
+ aspect: z42.preprocess((value) => value == null ? void 0 : value, z42.string().optional()),
8669
+ rect: z42.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
8670
+ hotspot: z42.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
8671
+ rotation: z42.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
8672
+ });
8673
+ transformSchema2 = z42.object({
8674
+ aspectCrops: z42.preprocess((value) => {
7866
8675
  if (!value || typeof value !== "object" || Array.isArray(value)) {
7867
8676
  return void 0;
7868
8677
  }
7869
8678
  return value;
7870
- }, z39.record(z39.string(), aspectCropSchema2.catch({}))).optional(),
8679
+ }, z42.record(z42.string(), aspectCropSchema2.catch({}))).optional(),
7871
8680
  rect: rectSchema2.optional(),
7872
8681
  hotspot: hotspotSchema2.optional(),
7873
8682
  rotation: rotationSchema2.optional()
7874
8683
  });
7875
- mediaBaseSchema = z39.object({
7876
- purpose: z39.string().optional(),
7877
- placeholder: z39.boolean().default(true).optional(),
7878
- assetId: z39.string().optional(),
7879
- identifier: z39.string().optional(),
7880
- src: z39.string().optional(),
7881
- alt: z39.string().optional(),
7882
- filename: z39.string().optional(),
7883
- mimeType: z39.string().optional(),
7884
- width: z39.number().optional(),
7885
- height: z39.number().optional(),
7886
- storageBucket: z39.string().optional(),
7887
- storagePath: z39.string().optional(),
8684
+ mediaBaseSchema = z42.object({
8685
+ purpose: z42.string().optional(),
8686
+ placeholder: z42.boolean().default(true).optional(),
8687
+ assetId: z42.string().optional(),
8688
+ identifier: z42.string().optional(),
8689
+ src: z42.string().optional(),
8690
+ alt: z42.string().optional(),
8691
+ filename: z42.string().optional(),
8692
+ mimeType: z42.string().optional(),
8693
+ width: z42.number().optional(),
8694
+ height: z42.number().optional(),
8695
+ storageBucket: z42.string().optional(),
8696
+ storagePath: z42.string().optional(),
7888
8697
  transform: transformSchema2.optional()
7889
8698
  });
7890
- imageMediaSchema = mediaBaseSchema.extend({ type: z39.literal("image") });
7891
- videoMediaSchema = mediaBaseSchema.extend({ type: z39.literal("video") });
7892
- audioMediaSchema = mediaBaseSchema.extend({ type: z39.literal("audio") });
7893
- documentMediaSchema = mediaBaseSchema.extend({ type: z39.literal("document") });
7894
- spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z39.literal("spreadsheet") });
7895
- archiveMediaSchema = mediaBaseSchema.extend({ type: z39.literal("archive") });
7896
- mediaSchema2 = z39.discriminatedUnion("type", [
8699
+ imageMediaSchema = mediaBaseSchema.extend({ type: z42.literal("image") });
8700
+ videoMediaSchema = mediaBaseSchema.extend({ type: z42.literal("video") });
8701
+ audioMediaSchema = mediaBaseSchema.extend({ type: z42.literal("audio") });
8702
+ documentMediaSchema = mediaBaseSchema.extend({ type: z42.literal("document") });
8703
+ spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z42.literal("spreadsheet") });
8704
+ archiveMediaSchema = mediaBaseSchema.extend({ type: z42.literal("archive") });
8705
+ mediaSchema2 = z42.discriminatedUnion("type", [
7897
8706
  imageMediaSchema,
7898
8707
  videoMediaSchema,
7899
8708
  audioMediaSchema,
@@ -8379,7 +9188,7 @@ var init_filtering = __esm({
8379
9188
  // ../blocks/src/system/blocks/events/shared/index.ts
8380
9189
  var init_shared3 = __esm({
8381
9190
  "../blocks/src/system/blocks/events/shared/index.ts"() {
8382
- init_types7();
9191
+ init_types10();
8383
9192
  init_schemas2();
8384
9193
  init_fields();
8385
9194
  init_filtering();
@@ -8706,7 +9515,7 @@ var init_event_registration = __esm({
8706
9515
  });
8707
9516
 
8708
9517
  // ../blocks/src/system/blocks/courses/shared/types.ts
8709
- var init_types8 = __esm({
9518
+ var init_types11 = __esm({
8710
9519
  "../blocks/src/system/blocks/courses/shared/types.ts"() {
8711
9520
  }
8712
9521
  });
@@ -8720,7 +9529,7 @@ var init_pricing = __esm({
8720
9529
  // ../blocks/src/system/blocks/courses/shared/index.ts
8721
9530
  var init_shared4 = __esm({
8722
9531
  "../blocks/src/system/blocks/courses/shared/index.ts"() {
8723
- init_types8();
9532
+ init_types11();
8724
9533
  init_schemas();
8725
9534
  init_pricing();
8726
9535
  }
@@ -12244,8 +13053,9 @@ function normalizeBoolean(value, fallback) {
12244
13053
  return fallback;
12245
13054
  }
12246
13055
  function normalizeLocationMapValueRecord(record) {
13056
+ const addressText = typeof record.addressText === "string" ? record.addressText : typeof record.displayAddress === "string" ? record.displayAddress : null;
12247
13057
  const normalized = {
12248
- addressText: normalizeLocationAddressText(typeof record.addressText === "string" ? record.addressText : null),
13058
+ addressText: normalizeLocationAddressText(addressText),
12249
13059
  lat: normalizeOptionalNumber(record.lat),
12250
13060
  lng: normalizeOptionalNumber(record.lng)
12251
13061
  };
@@ -12260,11 +13070,49 @@ function normalizeLocationMapValue(value) {
12260
13070
  }
12261
13071
  return normalizeLocationMapValueRecord(value);
12262
13072
  }
12263
- function normalizeLocationMapProps(input) {
13073
+ function normalizeLocationMapSource(value) {
13074
+ return value === "business_address" || value === "venue" ? value : "custom";
13075
+ }
13076
+ function resolveLocationMapLocation(input) {
13077
+ const source = normalizeLocationMapSource(input.locationSource);
13078
+ if (source === "business_address") {
13079
+ const locationValue2 = normalizeLocationMapValue(input.businessAddress ?? input.location);
13080
+ return locationValue2 ? { kind: "business_address", locationValue: locationValue2 } : { kind: "unresolved", source, reason: "missing_business_address" };
13081
+ }
13082
+ if (source === "venue") {
13083
+ const venueId = typeof input.venueId === "string" && input.venueId.trim() ? input.venueId.trim() : null;
13084
+ if (!venueId) {
13085
+ return { kind: "unresolved", source, reason: "missing_venue_id" };
13086
+ }
13087
+ const locationValue2 = input.venuesById ? normalizeLocationMapValue(input.venuesById[venueId] ?? null) : null;
13088
+ return locationValue2 ? { kind: "venue", venueId, locationValue: locationValue2 } : { kind: "unresolved", source, reason: "missing_venue_location" };
13089
+ }
12264
13090
  const locationValue = normalizeLocationMapValue(input.location);
13091
+ return locationValue ? { kind: "custom", locationValue } : { kind: "unresolved", source, reason: "missing_custom_location" };
13092
+ }
13093
+ function describeUnresolvedLocationMapLocation(resolvedLocation) {
13094
+ if (resolvedLocation.kind !== "unresolved") {
13095
+ return null;
13096
+ }
13097
+ switch (resolvedLocation.reason) {
13098
+ case "missing_business_address":
13099
+ return "Business address details are not configured yet.";
13100
+ case "missing_venue_id":
13101
+ return "Choose a venue to show this map.";
13102
+ case "missing_venue_location":
13103
+ return "The selected venue does not have location details yet.";
13104
+ case "missing_custom_location":
13105
+ return "Location details coming soon.";
13106
+ }
13107
+ }
13108
+ function normalizeLocationMapProps(input) {
13109
+ const resolvedLocation = resolveLocationMapLocation(input);
13110
+ const locationValue = resolvedLocation.kind === "unresolved" ? null : resolvedLocation.locationValue;
12265
13111
  const directionsLabel = normalizeLocationAddressText(input.directionsLabel) ?? LOCATION_MAP_DEFAULTS.directionsLabel;
12266
13112
  return {
13113
+ resolvedLocation,
12267
13114
  locationValue,
13115
+ unresolvedMessage: describeUnresolvedLocationMapLocation(resolvedLocation),
12268
13116
  addressText: locationValue?.addressText ?? null,
12269
13117
  location: toLocationCoordinates(locationValue),
12270
13118
  zoom: Math.min(
@@ -12378,7 +13226,7 @@ var init_border2 = __esm({
12378
13226
  // ../theme-core/src/accordions/generateAccordionCss.ts
12379
13227
  var init_generateAccordionCss = __esm({
12380
13228
  "../theme-core/src/accordions/generateAccordionCss.ts"() {
12381
- init_types2();
13229
+ init_types5();
12382
13230
  init_constants2();
12383
13231
  init_border2();
12384
13232
  }
@@ -12393,7 +13241,7 @@ var init_defaults = __esm({
12393
13241
  // ../theme-core/src/inputs/generateInputCss.ts
12394
13242
  var init_generateInputCss = __esm({
12395
13243
  "../theme-core/src/inputs/generateInputCss.ts"() {
12396
- init_types3();
13244
+ init_types6();
12397
13245
  init_constants();
12398
13246
  init_border2();
12399
13247
  }
@@ -12414,12 +13262,12 @@ var init_generateBaseCSS = __esm({
12414
13262
  // ../theme-core/src/navigation/generateNavLinkCSS.ts
12415
13263
  var init_generateNavLinkCSS = __esm({
12416
13264
  "../theme-core/src/navigation/generateNavLinkCSS.ts"() {
12417
- init_types4();
13265
+ init_types7();
12418
13266
  init_generateBaseCSS();
12419
13267
  init_generateEffectsCSS();
12420
13268
  }
12421
13269
  });
12422
- var init_presets = __esm({
13270
+ var init_presets2 = __esm({
12423
13271
  "../theme-core/src/navigation/presets.ts"() {
12424
13272
  }
12425
13273
  });
@@ -12429,7 +13277,7 @@ var init_generateHeaderCss = __esm({
12429
13277
  "../theme-core/src/header/generateHeaderCss.ts"() {
12430
13278
  init_resolver();
12431
13279
  init_generateNavLinkCSS();
12432
- init_presets();
13280
+ init_presets2();
12433
13281
  init_shared();
12434
13282
  init_breakpoints();
12435
13283
  }
@@ -12447,7 +13295,7 @@ var init_generateFooterCss = __esm({
12447
13295
  "../theme-core/src/footer/generateFooterCss.ts"() {
12448
13296
  init_resolver();
12449
13297
  init_generateNavLinkCSS();
12450
- init_presets();
13298
+ init_presets2();
12451
13299
  }
12452
13300
  });
12453
13301
 
@@ -15007,6 +15855,23 @@ var ENDPOINT_DEFINITIONS = {
15007
15855
  auth: "user",
15008
15856
  responseKind: "json"
15009
15857
  },
15858
+ getSiteBusinessAddress: {
15859
+ path: "/sites/{siteId}/settings/business-address",
15860
+ method: "GET",
15861
+ revalidate: 120,
15862
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings],
15863
+ auth: "user",
15864
+ responseKind: "json",
15865
+ errors: ["auth:forbidden", "server:internal_error"]
15866
+ },
15867
+ updateSiteBusinessAddress: {
15868
+ path: "/sites/{siteId}/settings/business-address",
15869
+ method: "POST",
15870
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteSettings],
15871
+ auth: "user",
15872
+ responseKind: "json",
15873
+ errors: ["auth:forbidden", "server:internal_error"]
15874
+ },
15010
15875
  getSiteGenerationIntake: {
15011
15876
  path: "/sites/{siteId}/settings/site-generation-intake",
15012
15877
  method: "GET",
@@ -20742,6 +21607,9 @@ function assertUniqueLayoutProfileKeys(profiles) {
20742
21607
  }
20743
21608
  }
20744
21609
 
21610
+ // ../theme-core/src/site-styles/index.ts
21611
+ init_compatibility();
21612
+
20745
21613
  // ../theme-core/src/site-styles/sourceCatalogs.ts
20746
21614
  var generatedContentFrames = [
20747
21615
  plainFrame,
@@ -20839,7 +21707,14 @@ function defineCuratedSiteStyle(input) {
20839
21707
  supportedContentFrames: generatedContentFrameKinds,
20840
21708
  supportedItemSurfaces: generatedDesignOptionCatalog.itemSurfaces,
20841
21709
  supportedTransitions: generatedDesignOptionCatalog.transitions
20842
- }
21710
+ },
21711
+ // The library IDs are already branded at construction (`asButtonPersonalityId`
21712
+ // / `asPaletteVariantId`); the closed-union input type guarantees only
21713
+ // shipped IDs reach this branch.
21714
+ defaultButtonPersonalityId: input.defaultButtonPersonalityId,
21715
+ acceptedButtons: input.acceptedButtons,
21716
+ defaultPaletteVariantId: input.defaultPaletteVariantId,
21717
+ acceptedPalettes: input.acceptedPalettes
20843
21718
  };
20844
21719
  }
20845
21720
  var curatedSiteStyles = [
@@ -20857,7 +21732,11 @@ var curatedSiteStyles = [
20857
21732
  spacing: "airy",
20858
21733
  motion: "subtle"
20859
21734
  },
20860
- compositionBudget: quietBudget
21735
+ compositionBudget: quietBudget,
21736
+ defaultButtonPersonalityId: "soft-pill",
21737
+ acceptedButtons: { tone: ["minimal", "classic"], era: ["organic", "editorial"] },
21738
+ defaultPaletteVariantId: "soft-natural-sage",
21739
+ acceptedPalettes: { tone: ["minimal", "classic"], era: ["organic"] }
20861
21740
  }),
20862
21741
  defineCuratedSiteStyle({
20863
21742
  id: "site-style:clear-professional",
@@ -20873,7 +21752,11 @@ var curatedSiteStyles = [
20873
21752
  spacing: "regular",
20874
21753
  motion: "subtle"
20875
21754
  },
20876
- compositionBudget: balancedBudget
21755
+ compositionBudget: balancedBudget,
21756
+ defaultButtonPersonalityId: "confident-chip",
21757
+ acceptedButtons: { tone: ["minimal", "classic"], era: ["modern", "editorial"] },
21758
+ defaultPaletteVariantId: "brand-led-cool",
21759
+ acceptedPalettes: { tone: ["minimal", "classic"], era: ["modern", "editorial"] }
20877
21760
  }),
20878
21761
  defineCuratedSiteStyle({
20879
21762
  id: "site-style:warm-editorial",
@@ -20889,7 +21772,11 @@ var curatedSiteStyles = [
20889
21772
  spacing: "airy",
20890
21773
  motion: "subtle"
20891
21774
  },
20892
- compositionBudget: balancedBudget
21775
+ compositionBudget: balancedBudget,
21776
+ defaultButtonPersonalityId: "editorial-link",
21777
+ acceptedButtons: { tone: ["minimal", "classic"], era: ["editorial", "organic"] },
21778
+ defaultPaletteVariantId: "warm-neutral-cream",
21779
+ acceptedPalettes: { tone: ["minimal", "classic"], era: ["editorial", "organic"] }
20893
21780
  }),
20894
21781
  defineCuratedSiteStyle({
20895
21782
  id: "site-style:bright-community",
@@ -20905,7 +21792,11 @@ var curatedSiteStyles = [
20905
21792
  spacing: "regular",
20906
21793
  motion: "expressive"
20907
21794
  },
20908
- compositionBudget: balancedBudget
21795
+ compositionBudget: balancedBudget,
21796
+ defaultButtonPersonalityId: "pebble",
21797
+ acceptedButtons: { tone: ["classic", "bold"], era: ["organic", "modern"] },
21798
+ defaultPaletteVariantId: "brand-led-warm",
21799
+ acceptedPalettes: { tone: ["classic", "bold"], era: ["modern", "organic"] }
20909
21800
  }),
20910
21801
  defineCuratedSiteStyle({
20911
21802
  id: "site-style:quiet-luxury",
@@ -20928,7 +21819,11 @@ var curatedSiteStyles = [
20928
21819
  spacing: "airy",
20929
21820
  motion: "none"
20930
21821
  },
20931
- compositionBudget: quietBudget
21822
+ compositionBudget: quietBudget,
21823
+ defaultButtonPersonalityId: "editorial-link",
21824
+ acceptedButtons: { tone: ["minimal", "classic"], era: ["editorial", "organic"] },
21825
+ defaultPaletteVariantId: "high-contrast-charcoal",
21826
+ acceptedPalettes: { tone: ["minimal", "classic"], era: ["editorial", "organic"] }
20932
21827
  }),
20933
21828
  defineCuratedSiteStyle({
20934
21829
  id: "site-style:practical-services",
@@ -20952,7 +21847,11 @@ var curatedSiteStyles = [
20952
21847
  spacing: "compact",
20953
21848
  motion: "none"
20954
21849
  },
20955
- compositionBudget: quietBudget
21850
+ compositionBudget: quietBudget,
21851
+ defaultButtonPersonalityId: "confident-chip",
21852
+ acceptedButtons: { tone: ["minimal", "classic", "bold"], era: ["modern", "editorial"] },
21853
+ defaultPaletteVariantId: "brand-led-cool",
21854
+ acceptedPalettes: { tone: ["minimal", "classic", "bold"], era: ["modern", "editorial"] }
20956
21855
  }),
20957
21856
  defineCuratedSiteStyle({
20958
21857
  id: "site-style:modern-wellness",
@@ -20968,7 +21867,11 @@ var curatedSiteStyles = [
20968
21867
  spacing: "airy",
20969
21868
  motion: "subtle"
20970
21869
  },
20971
- compositionBudget: balancedBudget
21870
+ compositionBudget: balancedBudget,
21871
+ defaultButtonPersonalityId: "soft-pill",
21872
+ acceptedButtons: { tone: ["minimal", "classic"], era: ["organic", "modern"] },
21873
+ defaultPaletteVariantId: "soft-natural-sage",
21874
+ acceptedPalettes: { tone: ["minimal", "classic"], era: ["organic"] }
20972
21875
  }),
20973
21876
  defineCuratedSiteStyle({
20974
21877
  id: "site-style:bold-launch",
@@ -20992,7 +21895,11 @@ var curatedSiteStyles = [
20992
21895
  spacing: "regular",
20993
21896
  motion: "expressive"
20994
21897
  },
20995
- compositionBudget: expressiveBudget
21898
+ compositionBudget: expressiveBudget,
21899
+ defaultButtonPersonalityId: "ink-stamp",
21900
+ acceptedButtons: { tone: ["classic", "bold"], era: ["editorial", "organic", "modern"] },
21901
+ defaultPaletteVariantId: "high-contrast-monochrome",
21902
+ acceptedPalettes: { tone: ["bold"], era: ["editorial", "modern"] }
20996
21903
  })
20997
21904
  ];
20998
21905
  new Map(
@@ -21275,170 +22182,49 @@ function addDuplicateStringIssues(ctx, input) {
21275
22182
  function boundaryKey(previousBlockId, nextBlockId) {
21276
22183
  return makeBoundaryId(previousBlockId, nextBlockId);
21277
22184
  }
21278
- var hotspotSchema = z39.object({
21279
- x: z39.number().min(0).max(1),
21280
- y: z39.number().min(0).max(1),
21281
- radius: z39.number().optional()
21282
- });
21283
- var rotationSchema = z39.union([z39.literal(0), z39.literal(90), z39.literal(180), z39.literal(270)]);
21284
- var rectSchema = z39.tuple([z39.number(), z39.number(), z39.number(), z39.number()]);
21285
- var aspectCropSchema = z39.object({
21286
- aspect: z39.preprocess((value) => value == null ? void 0 : value, z39.string().optional()),
21287
- rect: z39.preprocess((value) => value == null ? void 0 : value, rectSchema.optional()),
21288
- hotspot: z39.preprocess((value) => value == null ? void 0 : value, hotspotSchema.optional()),
21289
- rotation: z39.preprocess((value) => value == null ? void 0 : value, rotationSchema.optional())
21290
- });
21291
- var transformSchema = z39.object({
21292
- aspectCrops: z39.preprocess((value) => {
22185
+ var hotspotSchema = z42.object({
22186
+ x: z42.number().min(0).max(1),
22187
+ y: z42.number().min(0).max(1),
22188
+ radius: z42.number().optional()
22189
+ });
22190
+ var rotationSchema = z42.union([z42.literal(0), z42.literal(90), z42.literal(180), z42.literal(270)]);
22191
+ var rectSchema = z42.tuple([z42.number(), z42.number(), z42.number(), z42.number()]);
22192
+ var aspectCropSchema = z42.object({
22193
+ aspect: z42.preprocess((value) => value == null ? void 0 : value, z42.string().optional()),
22194
+ rect: z42.preprocess((value) => value == null ? void 0 : value, rectSchema.optional()),
22195
+ hotspot: z42.preprocess((value) => value == null ? void 0 : value, hotspotSchema.optional()),
22196
+ rotation: z42.preprocess((value) => value == null ? void 0 : value, rotationSchema.optional())
22197
+ });
22198
+ var transformSchema = z42.object({
22199
+ aspectCrops: z42.preprocess((value) => {
21293
22200
  if (!value || typeof value !== "object" || Array.isArray(value)) {
21294
22201
  return void 0;
21295
22202
  }
21296
22203
  return value;
21297
- }, z39.record(z39.string(), aspectCropSchema.catch({}))).optional(),
22204
+ }, z42.record(z42.string(), aspectCropSchema.catch({}))).optional(),
21298
22205
  rect: rectSchema.optional(),
21299
22206
  hotspot: hotspotSchema.optional(),
21300
22207
  rotation: rotationSchema.optional()
21301
22208
  });
21302
- var mediaSchema = z39.object({
21303
- type: z39.enum(["image", "video", "audio", "document", "spreadsheet", "archive"]),
21304
- purpose: z39.string().optional(),
21305
- placeholder: z39.boolean().default(true).optional(),
21306
- assetId: z39.string().optional(),
21307
- identifier: z39.string().optional(),
21308
- src: z39.string().optional(),
21309
- alt: z39.string().optional(),
21310
- filename: z39.string().optional(),
21311
- mimeType: z39.string().optional(),
21312
- width: z39.number().optional(),
21313
- height: z39.number().optional(),
21314
- storageBucket: z39.string().optional(),
21315
- storagePath: z39.string().optional(),
22209
+ var mediaSchema = z42.object({
22210
+ type: z42.enum(["image", "video", "audio", "document", "spreadsheet", "archive"]),
22211
+ purpose: z42.string().optional(),
22212
+ placeholder: z42.boolean().default(true).optional(),
22213
+ assetId: z42.string().optional(),
22214
+ identifier: z42.string().optional(),
22215
+ src: z42.string().optional(),
22216
+ alt: z42.string().optional(),
22217
+ filename: z42.string().optional(),
22218
+ mimeType: z42.string().optional(),
22219
+ width: z42.number().optional(),
22220
+ height: z42.number().optional(),
22221
+ storageBucket: z42.string().optional(),
22222
+ storagePath: z42.string().optional(),
21316
22223
  transform: transformSchema.optional()
21317
22224
  });
21318
- var cornerStyleSchema = z.enum(["square", "rounded", "pill"]);
21319
- var shadowSizeSchema = z.enum(["none", "low", "medium", "high"]);
21320
- var textTransformSchema = z.enum(["none", "uppercase", "lowercase", "capitalize"]);
21321
- var fontWeightSchema = z.union([z.literal(500), z.literal(600), z.literal(700)]);
21322
- var buttonTypographySchema = z.enum(["body", "heading"]);
21323
- var hoverTransformSchema = z.enum(["none", "lift", "scale", "press"]);
21324
- var hoverColorSchema = z.enum(["none", "brighten", "darken", "saturate", "token"]);
21325
- var buttonPaddingPresetSchema = z.enum(["compact", "default", "spacious"]);
21326
- var gradientStyleSchema = z.enum(["linear", "radial", "conic"]);
21327
- var gradientSharpnessSchema = z.enum(["smooth", "medium", "hard"]);
21328
- z.enum(["sm", "md", "lg", "xl"]);
21329
- var buttonSizeConfigSchema = z.object({
21330
- padding: z.string(),
21331
- fontSize: z.string().optional()
21332
- });
21333
- var buttonSizesSchema = z.object({
21334
- sm: buttonSizeConfigSchema,
21335
- md: buttonSizeConfigSchema,
21336
- lg: buttonSizeConfigSchema,
21337
- xl: buttonSizeConfigSchema.optional()
21338
- });
21339
- var backgroundTreatmentSchema = z.enum(["solid", "gradient", "outline", "ghost"]);
21340
- var outlineHoverEffectSchema = z.enum([
21341
- "border-glow",
21342
- "border-shift",
21343
- "border-grow",
21344
- "fill-transition",
21345
- "border-trace"
21346
- ]);
21347
- var buttonGlobalSettingsSchema = z.object({
21348
- cornerStyle: cornerStyleSchema,
21349
- cornerRadius: z.number().min(0).max(24).optional(),
21350
- shadow: shadowSizeSchema,
21351
- textTransform: textTransformSchema,
21352
- fontWeight: fontWeightSchema,
21353
- borderWidth: z.union([z.literal(1), z.literal(2), z.literal(3)]),
21354
- // Typography source (body or heading)
21355
- typography: buttonTypographySchema.optional(),
21356
- // Italic style
21357
- italic: z.boolean().optional(),
21358
- // Padding preset (applies to all variants unless overridden)
21359
- paddingPreset: buttonPaddingPresetSchema.optional(),
21360
- hoverTransform: hoverTransformSchema,
21361
- hoverColor: hoverColorSchema,
21362
- // When hoverColor is 'token', this specifies which token to use
21363
- hoverColorToken: z.string().optional(),
21364
- // Gradient settings (if any variant uses gradients)
21365
- gradientStyle: gradientStyleSchema.optional(),
21366
- gradientAngle: z.number().min(0).max(360).optional(),
21367
- gradientSharpness: gradientSharpnessSchema.optional()
21368
- });
21369
- var gradientDirectionSchema = z.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
21370
- var buttonBackgroundSchema = z.discriminatedUnion("type", [
21371
- z.object({ type: z.literal("solid"), colorToken: z.string() }),
21372
- z.object({
21373
- type: z.literal("gradient"),
21374
- stops: z.array(z.string()).min(2),
21375
- direction: gradientDirectionSchema
21376
- }),
21377
- z.object({ type: z.literal("transparent") })
21378
- ]);
21379
- var effectApplicationSchema = z.object({
21380
- effectId: z.string(),
21381
- options: z.record(z.string(), z.any()).optional()
21382
- });
21383
- var buttonBorderSchema = z.object({
21384
- widthClass: z.string(),
21385
- colorToken: z.string()
21386
- });
21387
- z.object({
21388
- id: z.string(),
21389
- name: z.string().min(1).max(20),
21390
- enabled: z.boolean(),
21391
- priority: z.union([z.literal(1), z.literal(2), z.literal(3)]),
21392
- backgroundTreatment: backgroundTreatmentSchema,
21393
- color: z.string().optional(),
21394
- gradientColors: z.tuple([z.string(), z.string()]).optional(),
21395
- borderColor: z.string().optional(),
21396
- outlineHoverEffect: outlineHoverEffectSchema.optional(),
21397
- effectPreset: z.string().optional()
21398
- });
21399
- var buttonVariantSchema = z.object({
21400
- id: z.string(),
21401
- name: z.string().min(1).max(20),
21402
- enabled: z.boolean(),
21403
- priority: z.union([z.literal(1), z.literal(2), z.literal(3)]),
21404
- // Base appearance (token-based)
21405
- background: buttonBackgroundSchema,
21406
- textColorToken: z.string(),
21407
- borderRadius: z.string(),
21408
- // Optional shadow override (uses theme.shadow if not specified)
21409
- shadow: z.object({
21410
- elevation: z.enum(["none", "low", "medium", "high"]),
21411
- softness: z.enum(["crisp", "soft", "hard"]).nullable(),
21412
- position: z.enum(["bottom", "bottom-right"]).default("bottom")
21413
- }).optional(),
21414
- // Border (optional)
21415
- border: buttonBorderSchema.optional(),
21416
- // Padding (optional, defaults to "0.5rem 1rem")
21417
- padding: z.string().optional(),
21418
- // Font size (optional, Tailwind text size class)
21419
- fontSize: z.string().optional(),
21420
- // Hover background token (per-variant override, takes precedence over global hoverColorToken)
21421
- hoverBackgroundToken: z.string().optional(),
21422
- // Effect composition
21423
- effects: z.object({
21424
- base: z.array(effectApplicationSchema).optional(),
21425
- hover: z.array(effectApplicationSchema).optional(),
21426
- active: z.array(effectApplicationSchema).optional(),
21427
- focus: z.array(effectApplicationSchema).optional()
21428
- }).optional()
21429
- });
21430
- var buttonSystemSchema = z.object({
21431
- global: buttonGlobalSettingsSchema,
21432
- variants: z.array(buttonVariantSchema).min(1).max(6),
21433
- sizes: buttonSizesSchema.optional()
21434
- });
21435
22225
 
21436
- // ../theme-core/src/buttons/index.ts
21437
- init_generateButtonCss();
21438
- init_generateDefaultButtonSystem();
21439
- init_constants();
21440
- init_registry();
21441
- init_transform();
22226
+ // ../theme-core/src/schema.ts
22227
+ init_buttons();
21442
22228
  var cardSpacingSchema = z.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
21443
22229
  var gradientDirectionSchema2 = z.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
21444
22230
  var cardBackgroundSchema = z.discriminatedUnion("type", [
@@ -21483,8 +22269,8 @@ init_generateCardCss();
21483
22269
  init_generateDefaultCardSystem();
21484
22270
 
21485
22271
  // ../theme-core/src/schema.ts
21486
- init_types2();
21487
- init_types3();
22272
+ init_types5();
22273
+ init_types6();
21488
22274
  var gradientStopSchema = z.object({
21489
22275
  color: z.string(),
21490
22276
  // Theme color token name (e.g., 'primary-500')
@@ -21501,7 +22287,7 @@ var gradientConfigSchema = z.object({
21501
22287
  });
21502
22288
 
21503
22289
  // ../theme-core/src/schema.ts
21504
- init_types4();
22290
+ init_types7();
21505
22291
  init_validation();
21506
22292
  init_atRuleValidation();
21507
22293
  init_shared();
@@ -21988,6 +22774,368 @@ z.object({
21988
22774
  message: z.string().min(1),
21989
22775
  themes: z.array(themeSchema).length(3)
21990
22776
  });
22777
+
22778
+ // ../theme-core/src/site-styles/runtimeCompiler.ts
22779
+ init_personalities();
22780
+
22781
+ // ../theme-core/src/palette/variants/types.ts
22782
+ init_compatibility();
22783
+ function asPaletteVariantId(value) {
22784
+ if (value.length === 0) {
22785
+ throw new Error("PaletteVariantId must be a non-empty string");
22786
+ }
22787
+ return value;
22788
+ }
22789
+ var paletteVariantIdSchema = z.string().min(1).transform((value) => asPaletteVariantId(value));
22790
+ var PALETTE_TOKEN_NAMES = [
22791
+ "primary",
22792
+ "primaryForeground",
22793
+ "secondary",
22794
+ "accent",
22795
+ "success",
22796
+ "warning",
22797
+ "destructive",
22798
+ "background",
22799
+ "surface",
22800
+ "surfaceAlt",
22801
+ "muted",
22802
+ "text",
22803
+ "border"
22804
+ ];
22805
+ var paletteTokenNameSchema = z.enum(PALETTE_TOKEN_NAMES);
22806
+ var HEX_COLOR_REGEX = /^#[0-9a-f]{6}$/;
22807
+ var hexColorSchema = z.string().regex(HEX_COLOR_REGEX, "Hex must be #RRGGBB (lowercase)").transform((value) => value);
22808
+ var variantPaletteColorSchema = paletteColorSchema.extend({
22809
+ name: paletteTokenNameSchema
22810
+ });
22811
+ z.object({
22812
+ id: paletteVariantIdSchema,
22813
+ name: z.string().min(1),
22814
+ description: z.string().min(1),
22815
+ tags: styleTagsSchema,
22816
+ mode: z.enum(["light", "dark"]),
22817
+ colors: z.array(variantPaletteColorSchema).min(1)
22818
+ });
22819
+ function definePaletteVariant(input) {
22820
+ return {
22821
+ id: asPaletteVariantId(input.id),
22822
+ name: input.name,
22823
+ description: input.description,
22824
+ tags: input.tags,
22825
+ mode: input.mode,
22826
+ colors: input.colors
22827
+ };
22828
+ }
22829
+ z.object({
22830
+ primary: hexColorSchema.optional(),
22831
+ primaryForeground: hexColorSchema.optional(),
22832
+ secondary: hexColorSchema.optional(),
22833
+ accent: hexColorSchema.optional(),
22834
+ success: hexColorSchema.optional(),
22835
+ warning: hexColorSchema.optional(),
22836
+ destructive: hexColorSchema.optional(),
22837
+ background: hexColorSchema.optional(),
22838
+ surface: hexColorSchema.optional(),
22839
+ surfaceAlt: hexColorSchema.optional(),
22840
+ muted: hexColorSchema.optional(),
22841
+ text: hexColorSchema.optional(),
22842
+ border: hexColorSchema.optional()
22843
+ }).strict().transform((value) => value);
22844
+
22845
+ // ../theme-core/src/palette/variants/brand-led.ts
22846
+ var brandLedCool = definePaletteVariant({
22847
+ id: "brand-led-cool",
22848
+ name: "Brand-led \u2014 Cool",
22849
+ description: "Confident blue primary with slate neutrals.",
22850
+ tags: { tone: "classic", energy: "calm", era: "modern" },
22851
+ mode: "light",
22852
+ colors: [
22853
+ { name: "primary", hex: "#2563eb" },
22854
+ { name: "secondary", hex: "#64748b" },
22855
+ { name: "accent", hex: "#0f766e" },
22856
+ { name: "success", hex: "#16a34a" },
22857
+ { name: "warning", hex: "#d97706" },
22858
+ { name: "destructive", hex: "#dc2626" },
22859
+ { name: "background", hex: "#ffffff" },
22860
+ { name: "surface", hex: "#ffffff" },
22861
+ { name: "surfaceAlt", hex: "#f8fafc" },
22862
+ { name: "muted", hex: "#f1f5f9" },
22863
+ { name: "text", hex: "#0f172a" },
22864
+ { name: "primaryForeground", hex: "#ffffff" },
22865
+ { name: "border", hex: "#cbd5e1" }
22866
+ ]
22867
+ });
22868
+ var brandLedWarm = definePaletteVariant({
22869
+ id: "brand-led-warm",
22870
+ name: "Brand-led \u2014 Warm",
22871
+ description: "Sunset orange primary with warm grey neutrals.",
22872
+ tags: { tone: "classic", energy: "vibrant", era: "modern" },
22873
+ mode: "light",
22874
+ colors: [
22875
+ { name: "primary", hex: "#ea580c" },
22876
+ { name: "secondary", hex: "#78716c" },
22877
+ { name: "accent", hex: "#a16207" },
22878
+ { name: "success", hex: "#16a34a" },
22879
+ { name: "warning", hex: "#d97706" },
22880
+ { name: "destructive", hex: "#b91c1c" },
22881
+ { name: "background", hex: "#fffaf3" },
22882
+ { name: "surface", hex: "#ffffff" },
22883
+ { name: "surfaceAlt", hex: "#fbeee0" },
22884
+ { name: "muted", hex: "#f4e2cd" },
22885
+ { name: "text", hex: "#1c1917" },
22886
+ { name: "primaryForeground", hex: "#fffaf3" },
22887
+ { name: "border", hex: "#d6c4ad" }
22888
+ ]
22889
+ });
22890
+ var brandLedJewel = definePaletteVariant({
22891
+ id: "brand-led-jewel",
22892
+ name: "Brand-led \u2014 Jewel",
22893
+ description: "Deep emerald primary with rich neutrals.",
22894
+ tags: { tone: "bold", energy: "vibrant", era: "modern" },
22895
+ mode: "light",
22896
+ colors: [
22897
+ { name: "primary", hex: "#047857" },
22898
+ { name: "secondary", hex: "#4b5563" },
22899
+ { name: "accent", hex: "#7c3aed" },
22900
+ { name: "success", hex: "#15803d" },
22901
+ { name: "warning", hex: "#b45309" },
22902
+ { name: "destructive", hex: "#b91c1c" },
22903
+ { name: "background", hex: "#ffffff" },
22904
+ { name: "surface", hex: "#ffffff" },
22905
+ { name: "surfaceAlt", hex: "#f5f5f4" },
22906
+ { name: "muted", hex: "#e7e5e4" },
22907
+ { name: "text", hex: "#0c0a09" },
22908
+ { name: "primaryForeground", hex: "#ffffff" },
22909
+ { name: "border", hex: "#a8a29e" }
22910
+ ]
22911
+ });
22912
+
22913
+ // ../theme-core/src/palette/variants/high-contrast.ts
22914
+ var highContrastInk = definePaletteVariant({
22915
+ id: "high-contrast-ink",
22916
+ name: "High Contrast \u2014 Ink",
22917
+ description: "Near-black primary with cool greys.",
22918
+ tags: { tone: "bold", energy: "calm", era: "editorial" },
22919
+ mode: "light",
22920
+ colors: [
22921
+ { name: "primary", hex: "#111827" },
22922
+ { name: "secondary", hex: "#374151" },
22923
+ { name: "accent", hex: "#1d4ed8" },
22924
+ { name: "success", hex: "#047857" },
22925
+ { name: "warning", hex: "#b45309" },
22926
+ { name: "destructive", hex: "#b91c1c" },
22927
+ { name: "background", hex: "#ffffff" },
22928
+ { name: "surface", hex: "#ffffff" },
22929
+ { name: "surfaceAlt", hex: "#f3f4f6" },
22930
+ { name: "muted", hex: "#e5e7eb" },
22931
+ { name: "text", hex: "#030712" },
22932
+ { name: "primaryForeground", hex: "#ffffff" },
22933
+ { name: "border", hex: "#6b7280" }
22934
+ ]
22935
+ });
22936
+ var highContrastCharcoal = definePaletteVariant({
22937
+ id: "high-contrast-charcoal",
22938
+ name: "High Contrast \u2014 Charcoal",
22939
+ description: "Warm charcoal primary on a soft cream ground.",
22940
+ tags: { tone: "minimal", energy: "calm", era: "editorial" },
22941
+ mode: "light",
22942
+ colors: [
22943
+ { name: "primary", hex: "#1f2937" },
22944
+ { name: "secondary", hex: "#52525b" },
22945
+ { name: "accent", hex: "#a16207" },
22946
+ { name: "success", hex: "#15803d" },
22947
+ { name: "warning", hex: "#b45309" },
22948
+ { name: "destructive", hex: "#991b1b" },
22949
+ { name: "background", hex: "#fafaf9" },
22950
+ { name: "surface", hex: "#ffffff" },
22951
+ { name: "surfaceAlt", hex: "#f5f5f4" },
22952
+ { name: "muted", hex: "#e7e5e4" },
22953
+ { name: "text", hex: "#0c0a09" },
22954
+ { name: "primaryForeground", hex: "#fafaf9" },
22955
+ { name: "border", hex: "#a8a29e" }
22956
+ ]
22957
+ });
22958
+ var highContrastMonochrome = definePaletteVariant({
22959
+ id: "high-contrast-monochrome",
22960
+ name: "High Contrast \u2014 Monochrome",
22961
+ description: "Pure black-on-white with a single saturated accent.",
22962
+ tags: { tone: "bold", energy: "vibrant", era: "editorial" },
22963
+ mode: "light",
22964
+ colors: [
22965
+ { name: "primary", hex: "#000000" },
22966
+ { name: "secondary", hex: "#404040" },
22967
+ { name: "accent", hex: "#dc2626" },
22968
+ { name: "success", hex: "#000000" },
22969
+ { name: "warning", hex: "#000000" },
22970
+ { name: "destructive", hex: "#dc2626" },
22971
+ { name: "background", hex: "#ffffff" },
22972
+ { name: "surface", hex: "#ffffff" },
22973
+ { name: "surfaceAlt", hex: "#f5f5f5" },
22974
+ { name: "muted", hex: "#e5e5e5" },
22975
+ { name: "text", hex: "#000000" },
22976
+ { name: "primaryForeground", hex: "#ffffff" },
22977
+ { name: "border", hex: "#525252" }
22978
+ ]
22979
+ });
22980
+
22981
+ // ../theme-core/src/palette/variants/soft-natural.ts
22982
+ var softNaturalSage = definePaletteVariant({
22983
+ id: "soft-natural-sage",
22984
+ name: "Soft Natural \u2014 Sage",
22985
+ description: "Olive sage primary on an off-white ground.",
22986
+ tags: { tone: "classic", energy: "calm", era: "organic" },
22987
+ mode: "light",
22988
+ colors: [
22989
+ { name: "primary", hex: "#3f6212" },
22990
+ { name: "secondary", hex: "#6b7280" },
22991
+ { name: "accent", hex: "#0f766e" },
22992
+ { name: "success", hex: "#15803d" },
22993
+ { name: "warning", hex: "#a16207" },
22994
+ { name: "destructive", hex: "#b91c1c" },
22995
+ { name: "background", hex: "#fbfdf7" },
22996
+ { name: "surface", hex: "#ffffff" },
22997
+ { name: "surfaceAlt", hex: "#eef5e8" },
22998
+ { name: "muted", hex: "#e7efdf" },
22999
+ { name: "text", hex: "#1f2a1d" },
23000
+ { name: "primaryForeground", hex: "#ffffff" },
23001
+ { name: "border", hex: "#cbd8c0" }
23002
+ ]
23003
+ });
23004
+ var softNaturalStone = definePaletteVariant({
23005
+ id: "soft-natural-stone",
23006
+ name: "Soft Natural \u2014 Stone",
23007
+ description: "River-stone grey-green primary with cool neutrals.",
23008
+ tags: { tone: "minimal", energy: "calm", era: "organic" },
23009
+ mode: "light",
23010
+ colors: [
23011
+ { name: "primary", hex: "#5a7a5d" },
23012
+ { name: "secondary", hex: "#8a9a8c" },
23013
+ { name: "accent", hex: "#c9b88f" },
23014
+ { name: "success", hex: "#5a7a5d" },
23015
+ { name: "warning", hex: "#a89466" },
23016
+ { name: "destructive", hex: "#a3503e" },
23017
+ { name: "background", hex: "#faf6ec" },
23018
+ { name: "surface", hex: "#ffffff" },
23019
+ { name: "surfaceAlt", hex: "#f0ecdf" },
23020
+ { name: "muted", hex: "#e6e1d0" },
23021
+ { name: "text", hex: "#2f3d31" },
23022
+ { name: "primaryForeground", hex: "#faf6ec" },
23023
+ { name: "border", hex: "#c9c1ad" }
23024
+ ]
23025
+ });
23026
+ var softNaturalWatercolor = definePaletteVariant({
23027
+ id: "soft-natural-watercolor",
23028
+ name: "Soft Natural \u2014 Watercolor",
23029
+ description: "Soft sand primary with watercolour sage accents.",
23030
+ tags: { tone: "classic", energy: "vibrant", era: "organic" },
23031
+ mode: "light",
23032
+ colors: [
23033
+ { name: "primary", hex: "#a8825f" },
23034
+ { name: "secondary", hex: "#88a888" },
23035
+ { name: "accent", hex: "#c8a78e" },
23036
+ { name: "success", hex: "#7d8a5f" },
23037
+ { name: "warning", hex: "#c89a4d" },
23038
+ { name: "destructive", hex: "#a3503e" },
23039
+ { name: "background", hex: "#fefdfa" },
23040
+ { name: "surface", hex: "#ffffff" },
23041
+ { name: "surfaceAlt", hex: "#f6f1e6" },
23042
+ { name: "muted", hex: "#eee7d1" },
23043
+ { name: "text", hex: "#4a3d30" },
23044
+ { name: "primaryForeground", hex: "#fefdfa" },
23045
+ { name: "border", hex: "#d8c9a8" }
23046
+ ]
23047
+ });
23048
+
23049
+ // ../theme-core/src/palette/variants/warm-neutral.ts
23050
+ var warmNeutralClay = definePaletteVariant({
23051
+ id: "warm-neutral-clay",
23052
+ name: "Warm Neutral \u2014 Clay",
23053
+ description: "Terracotta primary on a cream ground.",
23054
+ tags: { tone: "classic", energy: "calm", era: "organic" },
23055
+ mode: "light",
23056
+ colors: [
23057
+ { name: "primary", hex: "#8b5e34" },
23058
+ { name: "secondary", hex: "#7c6f64" },
23059
+ { name: "accent", hex: "#a15c38" },
23060
+ { name: "success", hex: "#527853" },
23061
+ { name: "warning", hex: "#b7791f" },
23062
+ { name: "destructive", hex: "#b91c1c" },
23063
+ { name: "background", hex: "#fffaf3" },
23064
+ { name: "surface", hex: "#ffffff" },
23065
+ { name: "surfaceAlt", hex: "#f5eadc" },
23066
+ { name: "muted", hex: "#efe2d0" },
23067
+ { name: "text", hex: "#2f241c" },
23068
+ { name: "primaryForeground", hex: "#fffaf3" },
23069
+ { name: "border", hex: "#d8c6b3" }
23070
+ ]
23071
+ });
23072
+ var warmNeutralCream = definePaletteVariant({
23073
+ id: "warm-neutral-cream",
23074
+ name: "Warm Neutral \u2014 Cream",
23075
+ description: "Soft sand primary with pale cream surfaces.",
23076
+ tags: { tone: "minimal", energy: "calm", era: "organic" },
23077
+ mode: "light",
23078
+ colors: [
23079
+ { name: "primary", hex: "#b08864" },
23080
+ { name: "secondary", hex: "#9a8c7e" },
23081
+ { name: "accent", hex: "#c2956a" },
23082
+ { name: "success", hex: "#7d8a5f" },
23083
+ { name: "warning", hex: "#c89a4d" },
23084
+ { name: "destructive", hex: "#a3503e" },
23085
+ { name: "background", hex: "#fdf8ee" },
23086
+ { name: "surface", hex: "#ffffff" },
23087
+ { name: "surfaceAlt", hex: "#f4ebd9" },
23088
+ { name: "muted", hex: "#ede3cf" },
23089
+ { name: "text", hex: "#3b2f24" },
23090
+ { name: "primaryForeground", hex: "#fdf8ee" },
23091
+ { name: "border", hex: "#e0d2b8" }
23092
+ ]
23093
+ });
23094
+ var warmNeutralForest = definePaletteVariant({
23095
+ id: "warm-neutral-forest",
23096
+ name: "Warm Neutral \u2014 Forest",
23097
+ description: "Deep forest green primary with earthy neutrals.",
23098
+ tags: { tone: "classic", energy: "calm", era: "organic" },
23099
+ mode: "light",
23100
+ colors: [
23101
+ { name: "primary", hex: "#3d5840" },
23102
+ { name: "secondary", hex: "#7a6f5d" },
23103
+ { name: "accent", hex: "#b06b50" },
23104
+ { name: "success", hex: "#5a7a5d" },
23105
+ { name: "warning", hex: "#b7791f" },
23106
+ { name: "destructive", hex: "#b91c1c" },
23107
+ { name: "background", hex: "#fbf8f0" },
23108
+ { name: "surface", hex: "#ffffff" },
23109
+ { name: "surfaceAlt", hex: "#f2ecdb" },
23110
+ { name: "muted", hex: "#ebe3cc" },
23111
+ { name: "text", hex: "#2a2a2a" },
23112
+ { name: "primaryForeground", hex: "#fbf8f0" },
23113
+ { name: "border", hex: "#cdc1a4" }
23114
+ ]
23115
+ });
23116
+
23117
+ // ../theme-core/src/palette/variants/index.ts
23118
+ var paletteVariants = [
23119
+ // Brand-led family
23120
+ brandLedCool,
23121
+ brandLedWarm,
23122
+ brandLedJewel,
23123
+ // Warm-neutral family
23124
+ warmNeutralClay,
23125
+ warmNeutralCream,
23126
+ warmNeutralForest,
23127
+ // High-contrast family
23128
+ highContrastInk,
23129
+ highContrastCharcoal,
23130
+ highContrastMonochrome,
23131
+ // Soft-natural family
23132
+ softNaturalSage,
23133
+ softNaturalStone,
23134
+ softNaturalWatercolor
23135
+ ];
23136
+ new Map(
23137
+ paletteVariants.map((v) => [v.id, v])
23138
+ );
21991
23139
  var nonEmptyStringSchema = z.string().min(1);
21992
23140
  var blockContentVersionIdSchema = nonEmptyStringSchema.transform(asBlockContentVersionId);
21993
23141
  var designBlockIdSchema = nonEmptyStringSchema.transform(asDesignBlockId);
@@ -22104,6 +23252,8 @@ var noneBoundaryOption = {
22104
23252
  id: asBoundaryOptionId("break:none")};
22105
23253
  var softBoundaryOption = {
22106
23254
  id: asBoundaryOptionId("break:soft")};
23255
+ ({
23256
+ id: asBoundaryOptionId("break:wave")});
22107
23257
  var spaciousBoundaryOption = {
22108
23258
  id: asBoundaryOptionId("break:spacious")};
22109
23259
  [
@@ -22991,7 +24141,7 @@ var formattingTransforms = [
22991
24141
  ];
22992
24142
 
22993
24143
  // ../blocks/src/system/transforms/registry/ui.ts
22994
- init_core();
24144
+ init_core2();
22995
24145
  init_colorStyles();
22996
24146
  init_blockColorTokens();
22997
24147
  init_sectionState_shared();
@@ -23452,7 +24602,7 @@ var uiTransforms = [
23452
24602
 
23453
24603
  // ../blocks/src/system/transforms/registry/layout.ts
23454
24604
  init_colorConversion();
23455
- init_core();
24605
+ init_core2();
23456
24606
  init_colorStyles();
23457
24607
  var joinClasses4 = (parts) => parts.filter(
23458
24608
  (part) => typeof part === "string" && part.trim().length > 0
@@ -24491,6 +25641,16 @@ var bodyTextLayout = () => {
24491
25641
  const bodyTextNode = layout[0];
24492
25642
  return bodyTextNode ? [bodyTextNode] : [];
24493
25643
  };
25644
+ var businessAddressLayout = () => [
25645
+ text(
25646
+ {
25647
+ as: "p",
25648
+ className: "rb-caption rb-opacity-80"
25649
+ },
25650
+ bind("site.businessAddress.displayAddress"),
25651
+ when("content.showBusinessAddress", { equals: true })
25652
+ )
25653
+ ];
24494
25654
  var inlineBottomTextLayout = () => {
24495
25655
  const layout = footerTextLayout();
24496
25656
  const bottomTextNode = layout[1];
@@ -24526,6 +25686,7 @@ var simpleFooterLayout = stack(
24526
25686
  linkClassName: "footer-nav-link rb-inline-flex rb-items-center rb-px-4 rb-py-2 rb-nav-text transition-theme-standard"
24527
25687
  }),
24528
25688
  ...bodyTextLayout(),
25689
+ ...businessAddressLayout(),
24529
25690
  ...inlineBottomTextLayout()
24530
25691
  ],
24531
25692
  when("$root.theme.footer.variant", { equals: "simple" })
@@ -24574,6 +25735,7 @@ var columnsFooterLayout = stack(
24574
25735
  ]
24575
25736
  ),
24576
25737
  ...bodyTextLayout(),
25738
+ ...businessAddressLayout(),
24577
25739
  ...inlineBottomTextLayout()
24578
25740
  ],
24579
25741
  when("$root.theme.footer.variant", { equals: "columns" })
@@ -24676,6 +25838,7 @@ var splitFooterLayout = stack(
24676
25838
  )
24677
25839
  ]
24678
25840
  ),
25841
+ ...businessAddressLayout(),
24679
25842
  ...inlineBottomTextLayout()
24680
25843
  ],
24681
25844
  when("$root.theme.footer.variant", { equals: "split" })
@@ -24756,6 +25919,16 @@ var siteFooterManifest = createBlockManifest({
24756
25919
  fragments: [{ fragment: footerBottomTextFragment, fieldPriority: 0 }],
24757
25920
  // Skip section styles - this block uses theme-based styling
24758
25921
  skipSectionStyles: true,
25922
+ additionalFields: [
25923
+ {
25924
+ id: "showBusinessAddress",
25925
+ type: "boolean",
25926
+ label: "Add business address to site footer?",
25927
+ required: false,
25928
+ defaultValue: false,
25929
+ ui: { intent: "content" }
25930
+ }
25931
+ ],
24759
25932
  layout: footerLayout,
24760
25933
  description: "Site-wide footer with navigation links and optional columns.",
24761
25934
  styleTokens: {
@@ -28110,15 +29283,21 @@ function normalizeLocationMapContent(content) {
28110
29283
  const record = typeof content === "object" && content !== null ? content : {};
28111
29284
  const normalized = normalizeLocationMapProps({
28112
29285
  location: record.location,
29286
+ locationSource: record.locationSource,
29287
+ venueId: typeof record.venueId === "string" ? record.venueId : null,
28113
29288
  zoom: record.zoom,
28114
29289
  heightPx: record.heightPx,
28115
29290
  showAddressText: record.showAddressText,
28116
29291
  showDirections: record.showDirections,
28117
29292
  directionsLabel: typeof record.directionsLabel === "string" ? record.directionsLabel : null
28118
29293
  });
29294
+ const locationSource = normalizeLocationMapSource(record.locationSource);
29295
+ const venueId = typeof record.venueId === "string" && record.venueId.trim() ? record.venueId.trim() : null;
28119
29296
  return {
28120
29297
  heading: typeof record.heading === "string" ? record.heading : null,
28121
- location: normalized.locationValue,
29298
+ locationSource,
29299
+ venueId: locationSource === "venue" ? venueId : null,
29300
+ location: locationSource === "custom" ? normalized.locationValue : null,
28122
29301
  showAddressText: normalized.showAddressText,
28123
29302
  showDirections: normalized.showDirections,
28124
29303
  directionsLabel: normalized.directionsLabel,
@@ -28143,13 +29322,37 @@ var locationMapManifest = createBlockManifest({
28143
29322
  required: false,
28144
29323
  maxLength: 120
28145
29324
  }),
29325
+ parseFieldDefinition({
29326
+ id: "locationSource",
29327
+ type: "select",
29328
+ label: "Location source",
29329
+ defaultValue: "custom",
29330
+ options: [
29331
+ { value: "business_address", label: "Use business address" },
29332
+ { value: "venue", label: "Use a venue" },
29333
+ { value: "custom", label: "Custom address" }
29334
+ ],
29335
+ ui: { intent: "content", widget: "locationSourceSelect" }
29336
+ }),
29337
+ createSiteOptionSelectField({
29338
+ id: "venueId",
29339
+ label: "Venue",
29340
+ required: false,
29341
+ multiple: false,
29342
+ optionSource: "venues",
29343
+ ui: { intent: "content", visibleWhen: { field: "locationSource", equals: "venue" } }
29344
+ }),
28146
29345
  parseFieldDefinition({
28147
29346
  id: "location",
28148
29347
  type: "group",
28149
29348
  label: "Location",
28150
29349
  description: "Enter the address and place the map pin.",
28151
29350
  required: true,
28152
- ui: { widget: "locationPicker", intent: "content" },
29351
+ ui: {
29352
+ widget: "locationPicker",
29353
+ intent: "content",
29354
+ visibleWhen: { field: "locationSource", equals: "custom" }
29355
+ },
28153
29356
  schema: {
28154
29357
  fields: [
28155
29358
  {
@@ -28232,6 +29435,10 @@ var locationMapManifest = createBlockManifest({
28232
29435
  text({ as: "h2" }, bind("content.heading"), when("content.heading")),
28233
29436
  el("location-map", {
28234
29437
  location: { $bind: { from: "content.location", fallback: null } },
29438
+ businessAddress: { $bind: { from: "site.businessAddress", fallback: null } },
29439
+ locationSource: { $bind: { from: "content.locationSource", fallback: "custom" } },
29440
+ venueId: { $bind: { from: "content.venueId", fallback: null } },
29441
+ venuesById: { $bind: { from: "site.venuesById", fallback: null } },
28235
29442
  zoom: { $bind: { from: "content.zoom", fallback: LOCATION_MAP_DEFAULTS.zoom } },
28236
29443
  heightPx: { $bind: { from: "content.heightPx", fallback: LOCATION_MAP_DEFAULTS.heightPx } },
28237
29444
  showAddressText: { $bind: { from: "content.showAddressText", fallback: LOCATION_MAP_DEFAULTS.showAddressText } },
@@ -28709,7 +29916,7 @@ function listBlockDefinitions() {
28709
29916
  }
28710
29917
 
28711
29918
  // ../blocks/src/system/transforms/registry/index.ts
28712
- init_core();
29919
+ init_core2();
28713
29920
 
28714
29921
  // ../blocks/src/system/transforms/registry/background.ts
28715
29922
  init_background2();
@@ -30453,6 +31660,7 @@ init_generateShades();
30453
31660
  init_expandPalette();
30454
31661
 
30455
31662
  // ../blocks/src/index.ts
31663
+ init_buttons();
30456
31664
  init_tokens2();
30457
31665
 
30458
31666
  // ../theme-core/src/ThemeScope.tsx
@@ -43569,7 +44777,7 @@ var SimpleCache = class {
43569
44777
  };
43570
44778
 
43571
44779
  // src/version.ts
43572
- var SDK_VERSION = "0.60.1";
44780
+ var SDK_VERSION = "0.60.3";
43573
44781
 
43574
44782
  // src/client/error.ts
43575
44783
  var RiverbankApiError = class _RiverbankApiError extends Error {