@morphika/andami 0.1.2 → 0.1.5

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 (85) hide show
  1. package/app/(site)/[slug]/page.tsx +2 -2
  2. package/app/(site)/layout.tsx +1 -0
  3. package/app/(site)/page.tsx +2 -2
  4. package/app/(site)/preview/page.tsx +4 -4
  5. package/app/(site)/work/[slug]/page.tsx +2 -2
  6. package/app/admin/layout.tsx +2 -2
  7. package/app/admin/login/page.tsx +5 -5
  8. package/app/admin/navigation/page.tsx +255 -157
  9. package/app/api/admin/assets/relink/confirm/route.ts +1 -1
  10. package/app/api/admin/pages/[slug]/route.ts +1 -1
  11. package/app/api/admin/settings/route.ts +40 -15
  12. package/app/api/admin/setup/complete/route.ts +1 -1
  13. package/app/api/admin/setup/route.ts +6 -3
  14. package/components/admin/index.ts +7 -0
  15. package/components/admin/nav-builder/NavGeneralSettings.tsx +11 -15
  16. package/components/admin/nav-builder/NavItemSettings.tsx +29 -5
  17. package/components/admin/nav-builder/NavLivePreview.tsx +4 -1
  18. package/components/admin/nav-builder/NavMobileLivePreview.tsx +226 -0
  19. package/components/admin/nav-builder/NavMobileSettings.tsx +223 -0
  20. package/components/admin/nav-builder/index.ts +2 -0
  21. package/components/blocks/BlockRenderer.tsx +65 -13
  22. package/components/blocks/ButtonBlockRenderer.tsx +29 -6
  23. package/components/blocks/CoverBlockRenderer.tsx +36 -14
  24. package/components/blocks/ImageBlockRenderer.tsx +5 -3
  25. package/components/blocks/ImageGridBlockRenderer.tsx +13 -6
  26. package/components/blocks/PageRenderer.tsx +4 -2
  27. package/components/blocks/ProjectGridBlockRenderer.tsx +18 -3
  28. package/components/blocks/SectionRenderer.tsx +9 -8
  29. package/components/blocks/SectionV2Renderer.tsx +8 -8
  30. package/components/blocks/SpacerBlockRenderer.tsx +4 -2
  31. package/components/blocks/TextBlockRenderer.tsx +9 -4
  32. package/components/builder/BuilderCanvas.tsx +10 -4
  33. package/components/builder/ColorPicker.tsx +51 -243
  34. package/components/builder/ColorSwatchPicker.tsx +214 -274
  35. package/components/builder/DndWrapper.tsx +5 -2
  36. package/components/builder/SectionV2Canvas.tsx +15 -4
  37. package/components/builder/asset-browser/useAssetBrowser.ts +9 -1
  38. package/components/builder/color-picker/AlphaSlider.tsx +141 -0
  39. package/components/builder/color-picker/AngleControl.tsx +138 -0
  40. package/components/builder/color-picker/ColorInputs.tsx +105 -0
  41. package/components/builder/color-picker/EyedropperButton.tsx +74 -0
  42. package/components/builder/color-picker/GradientBar.tsx +222 -0
  43. package/components/builder/color-picker/GradientPreview.tsx +53 -0
  44. package/components/builder/color-picker/HueSlider.tsx +124 -0
  45. package/components/builder/color-picker/MeshCanvas.tsx +172 -0
  46. package/components/builder/color-picker/MeshPointEditor.tsx +133 -0
  47. package/components/builder/color-picker/MeshPointList.tsx +200 -0
  48. package/components/builder/color-picker/PositionControl.tsx +158 -0
  49. package/components/builder/color-picker/SaturationCanvas.tsx +142 -0
  50. package/components/builder/color-picker/StopEditor.tsx +178 -0
  51. package/components/builder/color-picker/SwatchBar.tsx +93 -0
  52. package/components/builder/color-picker/UnifiedColorPicker.tsx +713 -0
  53. package/components/builder/color-picker/index.ts +62 -0
  54. package/components/builder/color-picker/types.ts +115 -0
  55. package/components/builder/color-picker/utils.ts +138 -0
  56. package/components/builder/editors/CoverBlockEditor.tsx +86 -32
  57. package/components/builder/editors/ProjectGridEditor.tsx +51 -4
  58. package/components/builder/hooks/useColumnDrag.ts +25 -27
  59. package/components/builder/settings-panel/BlockLayoutTab.tsx +29 -7
  60. package/components/builder/settings-panel/LayoutTab.tsx +382 -310
  61. package/components/builder/settings-panel/PageSettings.tsx +6 -4
  62. package/components/builder/settings-panel/ParallaxSlideSettings.tsx +2 -2
  63. package/components/builder/settings-panel/SectionV2LayoutTab.tsx +392 -312
  64. package/components/builder/settings-panel/SectionV2Settings.tsx +65 -35
  65. package/components/ui/Navbar.tsx +95 -25
  66. package/components/ui/PortfolioTracker.tsx +3 -3
  67. package/lib/assets.ts +1 -1
  68. package/lib/auth.ts +1 -1
  69. package/lib/builder/gradient-presets.ts +128 -0
  70. package/lib/builder/layout-styles.ts +16 -10
  71. package/lib/builder/serializer.ts +1 -0
  72. package/lib/builder/store-blocks.ts +48 -61
  73. package/lib/builder/store-helpers.ts +31 -14
  74. package/lib/builder/store.ts +59 -41
  75. package/lib/builder/types.ts +14 -0
  76. package/lib/color-utils.ts +200 -0
  77. package/lib/config/index.ts +14 -43
  78. package/lib/revalidate.ts +2 -2
  79. package/lib/sanity/queries.ts +4 -3
  80. package/lib/sanity/types.ts +76 -1
  81. package/lib/setup/detect.ts +1 -1
  82. package/package.json +8 -12
  83. package/sanity/schemas/siteSettings.ts +34 -0
  84. package/styles/base.css +7 -51
  85. package/app/globals.css +0 -7
@@ -17,6 +17,7 @@ import {
17
17
  INPUT_CLASS,
18
18
  } from "../editors/shared";
19
19
  import ColorSwatchPicker, { usePaletteSwatches } from "../ColorSwatchPicker";
20
+ import { serializeColorField, parseColorField } from "../../../lib/color-utils";
20
21
 
21
22
  /** Convert a title to a URL-safe slug. Handles unicode (é, ñ, ü, etc.). */
22
23
  function slugify(text: string): string {
@@ -75,15 +76,16 @@ export default function PageSettings() {
75
76
  <SettingsSection title="Appearance" defaultOpen>
76
77
  <SettingsField label="Background">
77
78
  <ColorSwatchPicker
78
- value={store.pageSettings.background_color || ""}
79
- onChange={(hex) => store.updatePageSettings({ background_color: hex || "transparent" })}
79
+ value={parseColorField(store.pageSettings.background_color || "")}
80
+ onChange={(val) => store.updatePageSettings({ background_color: serializeColorField(val) || "transparent" })}
80
81
  swatches={paletteSwatches}
82
+ allowGradients
81
83
  />
82
84
  </SettingsField>
83
85
  <SettingsField label="Text Color">
84
86
  <ColorSwatchPicker
85
87
  value={store.pageSettings.text_color || ""}
86
- onChange={(hex) => store.updatePageSettings({ text_color: hex })}
88
+ onChange={(val) => store.updatePageSettings({ text_color: typeof val === "string" ? val : "" })}
87
89
  swatches={paletteSwatches}
88
90
  />
89
91
  </SettingsField>
@@ -93,7 +95,7 @@ export default function PageSettings() {
93
95
  <SettingsField label="Nav Color">
94
96
  <ColorSwatchPicker
95
97
  value={store.pageSettings.nav_color || ""}
96
- onChange={(hex) => store.updatePageSettings({ nav_color: hex })}
98
+ onChange={(val) => store.updatePageSettings({ nav_color: typeof val === "string" ? val : "" })}
97
99
  swatches={paletteSwatches}
98
100
  />
99
101
  </SettingsField>
@@ -128,7 +128,7 @@ export default function ParallaxSlideSettings({
128
128
  <div className="flex items-center gap-2">
129
129
  <ColorSwatchPicker
130
130
  value={slide.nav_color || ""}
131
- onChange={(hex) => updateBg({ nav_color: hex })}
131
+ onChange={(val) => updateBg({ nav_color: typeof val === "string" ? val : undefined })}
132
132
  swatches={paletteSwatches}
133
133
  />
134
134
  {slide.nav_color && (
@@ -151,7 +151,7 @@ export default function ParallaxSlideSettings({
151
151
  <SettingsField label="Color">
152
152
  <ColorSwatchPicker
153
153
  value={overlayColor}
154
- onChange={(hex) => updateBg({ background_overlay_color: hex })}
154
+ onChange={(val) => updateBg({ background_overlay_color: typeof val === "string" ? val : "" })}
155
155
  swatches={paletteSwatches}
156
156
  />
157
157
  </SettingsField>