@morphika/andami 0.1.8 → 0.1.10
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 +3 -0
- package/components/admin/nav-builder/NavBuilder.tsx +90 -14
- package/components/admin/nav-builder/NavGeneralSettings.tsx +521 -271
- package/components/admin/nav-builder/NavItemSettings.tsx +331 -312
- package/components/admin/nav-builder/NavMobileSettings.tsx +159 -140
- package/components/admin/nav-builder/NavSettingsFields.tsx +287 -21
- package/components/admin/nav-builder/NavSettingsPanel.tsx +137 -127
- package/components/blocks/TextBlockRenderer.tsx +1 -1
- package/components/builder/SettingsPanel.tsx +29 -543
- package/components/builder/editors/ButtonBlockEditor.tsx +8 -3
- package/components/builder/editors/CoverBlockEditor.tsx +14 -6
- package/components/builder/editors/ImageBlockEditor.tsx +8 -3
- package/components/builder/editors/ImageGridBlockEditor.tsx +8 -3
- package/components/builder/editors/ProjectGridEditor.tsx +7 -46
- package/components/builder/editors/SpacerBlockEditor.tsx +4 -1
- package/components/builder/editors/StaggerSettings.tsx +2 -1
- package/components/builder/editors/TextBlockEditor.tsx +8 -3
- package/components/builder/editors/VideoBlockEditor.tsx +10 -4
- package/components/builder/editors/section-icons.tsx +492 -0
- package/components/builder/editors/shared.tsx +23 -4
- package/components/builder/live-preview/GhostCard.tsx +84 -0
- package/components/builder/live-preview/LiveProjectGridPreview.tsx +294 -1010
- package/components/builder/live-preview/LiveTextEditor.tsx +1 -1
- package/components/builder/live-preview/ProjectCardWrapper.tsx +291 -0
- package/components/builder/live-preview/drag-utils.tsx +89 -0
- package/components/builder/live-preview/useDragReorder.ts +370 -0
- package/components/builder/settings-panel/AnimationTab.tsx +152 -0
- package/components/builder/settings-panel/BlockLayoutTab.tsx +13 -58
- package/components/builder/settings-panel/CardEntranceSection.tsx +114 -0
- package/components/builder/settings-panel/ColumnV2AnimationTab.tsx +32 -0
- package/components/builder/settings-panel/ColumnV2Settings.tsx +4 -1
- package/components/builder/settings-panel/CustomSectionSettings.tsx +150 -0
- package/components/builder/settings-panel/LayoutTab.tsx +11 -47
- package/components/builder/settings-panel/PageSettings.tsx +10 -4
- package/components/builder/settings-panel/ParallaxGroupSettings.tsx +6 -2
- package/components/builder/settings-panel/ParallaxSlideSettings.tsx +8 -3
- package/components/builder/settings-panel/SectionV2LayoutTab.tsx +11 -47
- package/components/builder/settings-panel/SectionV2Settings.tsx +6 -27
- package/components/builder/settings-panel/index.ts +6 -0
- package/components/builder/settings-panel/useSettingsPanelSelection.ts +184 -0
- package/components/ui/Navbar.tsx +151 -30
- package/lib/builder/serializer/migrations.ts +107 -0
- package/lib/builder/serializer/normalizers.ts +278 -0
- package/lib/builder/serializer/serializers.ts +393 -0
- package/lib/builder/serializer/shared.ts +102 -0
- package/lib/builder/serializer.ts +11 -846
- package/lib/sanity/types.ts +22 -0
- package/package.json +13 -10
- package/styles/base.css +7 -3
package/lib/sanity/types.ts
CHANGED
|
@@ -704,6 +704,28 @@ export interface NavDesign {
|
|
|
704
704
|
entrance_delay?: number; // ms, default 0
|
|
705
705
|
entrance_stagger?: boolean; // stagger items, default false
|
|
706
706
|
entrance_stagger_delay?: number; // ms between items, default 80
|
|
707
|
+
|
|
708
|
+
/** Per-viewport overrides for responsive nav settings.
|
|
709
|
+
* Only typography + spacing fields are overridable.
|
|
710
|
+
* Missing fields = inherit from desktop. */
|
|
711
|
+
responsive?: {
|
|
712
|
+
tablet?: NavDesignResponsiveOverride;
|
|
713
|
+
phone?: NavDesignResponsiveOverride;
|
|
714
|
+
};
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
/** Subset of NavDesign fields that can be overridden per viewport */
|
|
718
|
+
export interface NavDesignResponsiveOverride {
|
|
719
|
+
font_size?: number;
|
|
720
|
+
font_weight?: string;
|
|
721
|
+
text_align?: "left" | "center" | "right";
|
|
722
|
+
vertical_align?: "top" | "middle" | "bottom";
|
|
723
|
+
text_transform?: "none" | "uppercase" | "lowercase" | "capitalize";
|
|
724
|
+
padding_h?: number;
|
|
725
|
+
padding_v?: number;
|
|
726
|
+
margin_h?: number;
|
|
727
|
+
margin_v?: number;
|
|
728
|
+
items_gap?: number;
|
|
707
729
|
}
|
|
708
730
|
|
|
709
731
|
// ============================================
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@morphika/andami",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.10",
|
|
4
4
|
"description": "Visual Page Builder — core library. A reusable website builder with visual editing, CMS integration, and asset management.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -17,6 +17,9 @@
|
|
|
17
17
|
"page-builder",
|
|
18
18
|
"morphika"
|
|
19
19
|
],
|
|
20
|
+
"publishConfig": {
|
|
21
|
+
"access": "public"
|
|
22
|
+
},
|
|
20
23
|
"files": [
|
|
21
24
|
"admin/",
|
|
22
25
|
"app/",
|
|
@@ -37,7 +40,6 @@
|
|
|
37
40
|
],
|
|
38
41
|
"scripts": {
|
|
39
42
|
"prepack": "node scripts/prepack.mjs",
|
|
40
|
-
"postpack": "node scripts/postpack.mjs",
|
|
41
43
|
"test": "vitest",
|
|
42
44
|
"test:run": "vitest run",
|
|
43
45
|
"lint": "eslint",
|
|
@@ -184,26 +186,27 @@
|
|
|
184
186
|
"@dnd-kit/sortable": "^10.0.0",
|
|
185
187
|
"@dnd-kit/utilities": "^3.2.2",
|
|
186
188
|
"next-sanity": "^12.1.5",
|
|
189
|
+
"ogl": "^1.0.8",
|
|
187
190
|
"sanity": "^5.17.1",
|
|
188
|
-
"zustand": "^5.0.12"
|
|
189
|
-
"ogl": "^1.0.8"
|
|
191
|
+
"zustand": "^5.0.12"
|
|
190
192
|
},
|
|
191
193
|
"devDependencies": {
|
|
192
194
|
"@tailwindcss/postcss": "^4",
|
|
195
|
+
"@testing-library/dom": "^10.4.1",
|
|
196
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
197
|
+
"@testing-library/react": "^16.3.0",
|
|
198
|
+
"@testing-library/user-event": "^14.6.1",
|
|
193
199
|
"@types/node": "^20",
|
|
194
200
|
"@types/react": "^19",
|
|
195
201
|
"@types/react-dom": "^19",
|
|
196
202
|
"eslint": "^9",
|
|
197
203
|
"eslint-config-next": "16.2.1",
|
|
204
|
+
"jsdom": "^26.1.0",
|
|
198
205
|
"next": "16.2.1",
|
|
199
206
|
"react": "19.2.4",
|
|
200
207
|
"react-dom": "19.2.4",
|
|
201
208
|
"tailwindcss": "^4",
|
|
202
209
|
"typescript": "^5",
|
|
203
|
-
"vitest": "^4.1.2"
|
|
204
|
-
"@testing-library/react": "^16.3.0",
|
|
205
|
-
"@testing-library/jest-dom": "^6.6.3",
|
|
206
|
-
"@testing-library/user-event": "^14.6.1",
|
|
207
|
-
"jsdom": "^26.1.0"
|
|
210
|
+
"vitest": "^4.1.2"
|
|
208
211
|
}
|
|
209
|
-
}
|
|
212
|
+
}
|
package/styles/base.css
CHANGED
|
@@ -57,15 +57,19 @@ body {
|
|
|
57
57
|
overflow-x: clip;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
/* Prevent text overflow in grid columns on narrow viewports
|
|
60
|
+
/* Prevent text overflow in grid columns on narrow viewports.
|
|
61
|
+
* overflow-wrap: anywhere — only breaks mid-word when the ENTIRE word
|
|
62
|
+
* cannot fit on a fresh line. Unlike word-break: break-word, this keeps
|
|
63
|
+
* whole words together and wraps at natural word boundaries first.
|
|
64
|
+
* Prevents ugly splits like "Collecti" + "on" on narrow mobile viewports. */
|
|
61
65
|
[data-site] p,
|
|
62
66
|
[data-site] h1,
|
|
63
67
|
[data-site] h2,
|
|
64
68
|
[data-site] h3,
|
|
65
69
|
[data-site] h4,
|
|
66
70
|
[data-site] span {
|
|
67
|
-
overflow-wrap:
|
|
68
|
-
word-break:
|
|
71
|
+
overflow-wrap: anywhere;
|
|
72
|
+
word-break: normal;
|
|
69
73
|
}
|
|
70
74
|
|
|
71
75
|
[data-custom-cursor] {
|