@morphika/andami 0.5.1 → 0.5.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.
- package/README.md +27 -2
- package/app/admin/assets/page.tsx +6 -6
- package/app/admin/database/page.tsx +302 -302
- package/app/admin/error.tsx +53 -53
- package/app/admin/layout.tsx +332 -320
- package/app/admin/navigation/page.tsx +255 -255
- package/app/admin/pages/[slug]/page.tsx +44 -27
- package/app/admin/pages/page.tsx +24 -19
- package/app/admin/projects/page.tsx +30 -21
- package/app/admin/setup/page.tsx +1 -1
- package/app/admin/styles/page.tsx +1 -1
- package/app/api/admin/assets/register/route.ts +51 -14
- package/app/api/admin/assets/registry/route.ts +4 -1
- package/app/api/admin/assets/relink/confirm/route.ts +4 -1
- package/app/api/admin/assets/relink/route.ts +4 -1
- package/app/api/admin/assets/scan/route.ts +4 -1
- package/app/api/admin/backups/restore-data/route.ts +4 -1
- package/app/api/admin/r2/connect/route.ts +4 -1
- package/app/api/admin/r2/delete/route.ts +4 -1
- package/app/api/admin/r2/rename/route.ts +4 -1
- package/app/api/admin/r2/upload-url/route.ts +4 -1
- package/app/api/admin/revalidate/route.ts +4 -1
- package/app/api/admin/storage/switch/route.ts +4 -1
- package/app/api/custom-sections/[id]/route.ts +5 -6
- package/components/admin/MetadataEditor.tsx +6 -6
- package/components/admin/PublishToggle.tsx +2 -2
- package/components/admin/nav-builder/NavBuilder.tsx +1 -1
- package/components/admin/nav-builder/NavBuilderGrid.tsx +3 -3
- package/components/admin/nav-builder/NavGridCell.tsx +48 -48
- package/components/admin/nav-builder/NavGridItem.tsx +8 -6
- package/components/admin/nav-builder/NavItemSettings.tsx +331 -331
- package/components/admin/nav-builder/NavItemTypePicker.tsx +102 -102
- package/components/admin/nav-builder/NavLivePreview.tsx +1 -1
- package/components/admin/nav-builder/NavMobileLivePreview.tsx +226 -226
- package/components/admin/nav-builder/NavMobileSettings.tsx +242 -242
- package/components/admin/nav-builder/NavSettingsFields.tsx +518 -514
- package/components/admin/setup-wizard/BrandingStep.tsx +3 -3
- package/components/admin/setup-wizard/DatabaseStep.tsx +2 -2
- package/components/admin/setup-wizard/DoneStep.tsx +1 -1
- package/components/admin/setup-wizard/SetupWizard.tsx +4 -4
- package/components/admin/setup-wizard/StorageStep.tsx +2 -2
- package/components/admin/setup-wizard/WelcomeStep.tsx +2 -2
- package/components/admin/styles/ColorsEditor.tsx +9 -8
- package/components/admin/styles/FontsEditor.tsx +9 -7
- package/components/admin/styles/GridLayoutEditor.tsx +9 -9
- package/components/admin/styles/LinksButtonsEditor.tsx +5 -5
- package/components/admin/styles/TypographyEditor.tsx +6 -6
- package/components/admin/styles/shared.tsx +68 -68
- package/components/blocks/AudioBlockRenderer.tsx +286 -286
- package/components/blocks/CoverSectionRenderer.tsx +7 -1
- package/components/blocks/MarqueeBlockRenderer.tsx +316 -0
- package/components/blocks/ProjectCarouselBlockRenderer.tsx +1 -1
- package/components/blocks/SectionV2Renderer.tsx +8 -1
- package/components/builder/BlockCardIcons.tsx +316 -316
- package/components/builder/BlockTypePicker.tsx +1 -1
- package/components/builder/BubbleIcons.tsx +104 -0
- package/components/builder/BuilderCanvas.tsx +2 -0
- package/components/builder/CanvasMinimap.tsx +66 -49
- package/components/builder/CanvasToolbar.tsx +31 -41
- package/components/builder/CoverSectionCanvas.tsx +363 -363
- package/components/builder/DeviceFrame.tsx +1 -1
- package/components/builder/DndWrapper.tsx +3 -3
- package/components/builder/InsertionLines.tsx +1 -1
- package/components/builder/SectionCardIcons.tsx +421 -320
- package/components/builder/SectionEditorBar.tsx +5 -3
- package/components/builder/SectionTypePicker.tsx +7 -5
- package/components/builder/SectionV2Canvas.tsx +1 -1
- package/components/builder/SectionV2Column.tsx +82 -68
- package/components/builder/SettingsPanel.tsx +21 -17
- package/components/builder/SortableBlock.tsx +93 -73
- package/components/builder/SortableRow.tsx +33 -35
- package/components/builder/VirtualAssetGrid.tsx +10 -4
- package/components/builder/asset-browser/R2BrowserContent.tsx +18 -14
- package/components/builder/blockStyles.tsx +192 -185
- package/components/builder/color-picker/AlphaSlider.tsx +141 -141
- package/components/builder/color-picker/ColorInputs.tsx +105 -105
- package/components/builder/color-picker/EyedropperButton.tsx +75 -74
- package/components/builder/color-picker/HueSlider.tsx +124 -124
- package/components/builder/color-picker/SaturationCanvas.tsx +142 -142
- package/components/builder/color-picker/SwatchBar.tsx +98 -93
- package/components/builder/color-picker/UnifiedColorPicker.tsx +11 -6
- package/components/builder/editors/AudioBlockEditor.tsx +242 -242
- package/components/builder/editors/BeforeAfterBlockEditor.tsx +360 -360
- package/components/builder/editors/ButtonBlockEditor.tsx +4 -4
- package/components/builder/editors/EnterAnimationPicker.tsx +2 -2
- package/components/builder/editors/HoverEffectPicker.tsx +2 -2
- package/components/builder/editors/ImageBlockEditor.tsx +2 -2
- package/components/builder/editors/ImageGridBlockEditor.tsx +8 -6
- package/components/builder/editors/MarqueeBlockEditor.tsx +622 -0
- package/components/builder/editors/ProjectCarouselBlockEditor.tsx +443 -443
- package/components/builder/editors/ProjectGridEditor.tsx +21 -16
- package/components/builder/editors/SpacerBlockEditor.tsx +29 -27
- package/components/builder/editors/StaggerSettings.tsx +109 -109
- package/components/builder/editors/TextBlockEditor.tsx +22 -17
- package/components/builder/editors/TextStylePicker.tsx +1 -1
- package/components/builder/editors/VideoBlockEditor.tsx +2 -2
- package/components/builder/editors/index.ts +11 -10
- package/components/builder/editors/shared.tsx +10 -8
- package/components/builder/live-preview/LiveAudioPreview.tsx +120 -120
- package/components/builder/live-preview/LiveBeforeAfterPreview.tsx +1 -1
- package/components/builder/live-preview/LiveImageGridPreview.tsx +10 -2
- package/components/builder/live-preview/LiveImagePreview.tsx +4 -2
- package/components/builder/live-preview/LiveMarqueePreview.tsx +39 -0
- package/components/builder/live-preview/LiveProjectCarouselPreview.tsx +1 -1
- package/components/builder/live-preview/LiveVideoPreview.tsx +1 -1
- package/components/builder/live-preview/ProjectCardWrapper.tsx +293 -291
- package/components/builder/live-preview/RichTextBubbleMenu.tsx +10 -6
- package/components/builder/live-preview/shared.tsx +5 -2
- package/components/builder/settings-panel/AnimationTab.tsx +138 -138
- package/components/builder/settings-panel/BlockLayoutTab.tsx +11 -9
- package/components/builder/settings-panel/CardEntranceSection.tsx +114 -114
- package/components/builder/settings-panel/ColumnV2LayoutTab.tsx +242 -0
- package/components/builder/settings-panel/ColumnV2Settings.tsx +5 -5
- package/components/builder/settings-panel/CoverSectionLayoutTab.tsx +71 -71
- package/components/builder/settings-panel/CoverSectionSettings.tsx +337 -335
- package/components/builder/settings-panel/PageSettings.tsx +3 -3
- package/components/builder/settings-panel/ParallaxSlideSettings.tsx +2 -2
- package/components/builder/settings-panel/SectionV2AnimationTab.tsx +4 -4
- package/components/builder/settings-panel/SectionV2LayoutTab.tsx +356 -356
- package/components/builder/settings-panel/SectionV2Settings.tsx +25 -20
- package/components/builder/settings-panel/TRBLInputs.tsx +1 -1
- package/components/builder/settings-panel/index.ts +1 -0
- package/lib/animation/enter-types.ts +1 -0
- package/lib/animation/hover-effect-presets.ts +210 -210
- package/lib/animation/hover-effect-types.ts +1 -0
- package/lib/builder/block-registrations.ts +468 -417
- package/lib/builder/constants.ts +111 -111
- package/lib/builder/serializer/normalizers.ts +14 -0
- package/lib/builder/serializer/serializers.ts +27 -0
- package/lib/builder/store-sections.ts +23 -2
- package/lib/builder/types-slices.ts +428 -414
- package/lib/builder/types.ts +4 -1
- package/lib/config/index.ts +27 -27
- package/lib/sanity/queries.ts +48 -0
- package/lib/sanity/types.ts +112 -1
- package/lib/version.ts +1 -1
- package/package.json +7 -5
- package/sanity/schemas/blocks/audioBlock.ts +69 -69
- package/sanity/schemas/blocks/index.ts +12 -11
- package/sanity/schemas/blocks/marqueeBlock.ts +292 -0
- package/sanity/schemas/index.ts +120 -117
- package/sanity/schemas/objects/coverSection.ts +32 -0
- package/sanity/schemas/objects/parallaxSlide.ts +32 -0
- package/sanity/schemas/pageSectionV2.ts +32 -0
- package/styles/admin.css +85 -85
- package/styles/animations.css +237 -237
- package/styles/base.css +114 -114
|
@@ -127,7 +127,7 @@ export default function PageSettings() {
|
|
|
127
127
|
step={50}
|
|
128
128
|
value={store.pageSettings.nav_entrance_duration || 600}
|
|
129
129
|
onChange={(e) => store.updatePageSettings({ nav_entrance_duration: Number(e.target.value) })}
|
|
130
|
-
className="w-full accent-[#
|
|
130
|
+
className="w-full accent-[#3580f9]"
|
|
131
131
|
/>
|
|
132
132
|
</SettingsField>
|
|
133
133
|
<SettingsField label={`Delay: ${store.pageSettings.nav_entrance_delay || 0}ms`}>
|
|
@@ -138,7 +138,7 @@ export default function PageSettings() {
|
|
|
138
138
|
step={50}
|
|
139
139
|
value={store.pageSettings.nav_entrance_delay || 0}
|
|
140
140
|
onChange={(e) => store.updatePageSettings({ nav_entrance_delay: Number(e.target.value) })}
|
|
141
|
-
className="w-full accent-[#
|
|
141
|
+
className="w-full accent-[#3580f9]"
|
|
142
142
|
/>
|
|
143
143
|
</SettingsField>
|
|
144
144
|
</>
|
|
@@ -148,7 +148,7 @@ export default function PageSettings() {
|
|
|
148
148
|
type="button"
|
|
149
149
|
onClick={() => store.updatePageSettings({ nav_entrance_disabled: !store.pageSettings.nav_entrance_disabled })}
|
|
150
150
|
className={`relative inline-flex h-5 w-9 items-center rounded-full transition-colors ${
|
|
151
|
-
store.pageSettings.nav_entrance_disabled ? "bg-[#
|
|
151
|
+
store.pageSettings.nav_entrance_disabled ? "bg-[#3580f9]" : "bg-neutral-300"
|
|
152
152
|
}`}
|
|
153
153
|
>
|
|
154
154
|
<span
|
|
@@ -116,7 +116,7 @@ export default function ParallaxSlideSettings({
|
|
|
116
116
|
<select
|
|
117
117
|
value={bgPosition}
|
|
118
118
|
onChange={(e) => updateBg({ background_position: e.target.value })}
|
|
119
|
-
className="w-full rounded-lg border border-transparent bg-[#f5f5f5] px-2.5 py-[7px] text-xs text-neutral-900 font-normal outline-none transition-all hover:bg-[#efefef] focus:bg-white focus:border-[#
|
|
119
|
+
className="w-full rounded-lg border border-transparent bg-[#f5f5f5] px-2.5 py-[7px] text-xs text-neutral-900 font-normal outline-none transition-all hover:bg-[#efefef] focus:bg-white focus:border-[#3580f9] focus:shadow-[0_0_0_3px_rgba(53, 128, 249,0.06)]"
|
|
120
120
|
>
|
|
121
121
|
{BG_POSITION_OPTIONS.map((opt) => (
|
|
122
122
|
<option key={opt.value} value={opt.value}>
|
|
@@ -170,7 +170,7 @@ export default function ParallaxSlideSettings({
|
|
|
170
170
|
step={5}
|
|
171
171
|
value={overlayOpacity}
|
|
172
172
|
onChange={(e) => updateBg({ background_overlay_opacity: parseInt(e.target.value) })}
|
|
173
|
-
className="flex-1 accent-[#
|
|
173
|
+
className="flex-1 accent-[#3580f9]"
|
|
174
174
|
/>
|
|
175
175
|
<span className="text-xs text-neutral-900 w-10 text-right tabular-nums">
|
|
176
176
|
{overlayOpacity}%
|
|
@@ -52,8 +52,8 @@ export function SectionV2AnimationTab({ section }: { section: PageSectionV2 }) {
|
|
|
52
52
|
{/* Responsive info banner */}
|
|
53
53
|
{isResponsive && (
|
|
54
54
|
<div className="px-4 pt-3">
|
|
55
|
-
<div className="flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-[#
|
|
56
|
-
<span className="text-[11px] font-medium text-[#
|
|
55
|
+
<div className="flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-[#3580f9]/8 border border-[#3580f9]/15">
|
|
56
|
+
<span className="text-[11px] font-medium text-[#3580f9]">
|
|
57
57
|
Editing {activeViewport === "tablet" ? "Tablet" : "Phone"} overrides
|
|
58
58
|
</span>
|
|
59
59
|
</div>
|
|
@@ -63,7 +63,7 @@ export function SectionV2AnimationTab({ section }: { section: PageSectionV2 }) {
|
|
|
63
63
|
<div className="relative">
|
|
64
64
|
{hasEnterOverride && (
|
|
65
65
|
<div className="flex items-center justify-between px-4 pt-2">
|
|
66
|
-
<span className="text-[9px] text-[#
|
|
66
|
+
<span className="text-[9px] text-[#3580f9] font-medium">overridden</span>
|
|
67
67
|
<button
|
|
68
68
|
onClick={() => updateAnimSetting("enter_animation", undefined)}
|
|
69
69
|
className="text-[10px] text-neutral-400 hover:text-[var(--admin-error)] transition-colors"
|
|
@@ -84,7 +84,7 @@ export function SectionV2AnimationTab({ section }: { section: PageSectionV2 }) {
|
|
|
84
84
|
<div className="relative">
|
|
85
85
|
{hasStaggerOverride && (
|
|
86
86
|
<div className="flex items-center justify-between px-4 pt-2">
|
|
87
|
-
<span className="text-[9px] text-[#
|
|
87
|
+
<span className="text-[9px] text-[#3580f9] font-medium">overridden</span>
|
|
88
88
|
<button
|
|
89
89
|
onClick={() => updateAnimSetting("stagger", undefined)}
|
|
90
90
|
className="text-[10px] text-neutral-400 hover:text-[var(--admin-error)] transition-colors"
|