@morphika/andami 0.5.1 → 0.5.2

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 (117) hide show
  1. package/app/admin/assets/page.tsx +6 -6
  2. package/app/admin/database/page.tsx +302 -302
  3. package/app/admin/error.tsx +53 -53
  4. package/app/admin/layout.tsx +320 -320
  5. package/app/admin/navigation/page.tsx +255 -255
  6. package/app/admin/pages/[slug]/page.tsx +6 -6
  7. package/app/admin/pages/page.tsx +11 -11
  8. package/app/admin/projects/page.tsx +14 -14
  9. package/app/admin/setup/page.tsx +1 -1
  10. package/app/admin/styles/page.tsx +1 -1
  11. package/components/admin/MetadataEditor.tsx +6 -6
  12. package/components/admin/nav-builder/NavBuilder.tsx +1 -1
  13. package/components/admin/nav-builder/NavBuilderGrid.tsx +3 -3
  14. package/components/admin/nav-builder/NavGridCell.tsx +48 -48
  15. package/components/admin/nav-builder/NavGridItem.tsx +4 -4
  16. package/components/admin/nav-builder/NavItemSettings.tsx +331 -331
  17. package/components/admin/nav-builder/NavItemTypePicker.tsx +102 -102
  18. package/components/admin/nav-builder/NavLivePreview.tsx +1 -1
  19. package/components/admin/nav-builder/NavMobileLivePreview.tsx +226 -226
  20. package/components/admin/nav-builder/NavMobileSettings.tsx +242 -242
  21. package/components/admin/nav-builder/NavSettingsFields.tsx +514 -514
  22. package/components/admin/setup-wizard/BrandingStep.tsx +3 -3
  23. package/components/admin/setup-wizard/DatabaseStep.tsx +2 -2
  24. package/components/admin/setup-wizard/DoneStep.tsx +1 -1
  25. package/components/admin/setup-wizard/SetupWizard.tsx +4 -4
  26. package/components/admin/setup-wizard/StorageStep.tsx +2 -2
  27. package/components/admin/setup-wizard/WelcomeStep.tsx +2 -2
  28. package/components/admin/styles/ColorsEditor.tsx +2 -2
  29. package/components/admin/styles/FontsEditor.tsx +6 -6
  30. package/components/admin/styles/GridLayoutEditor.tsx +9 -9
  31. package/components/admin/styles/LinksButtonsEditor.tsx +5 -5
  32. package/components/admin/styles/TypographyEditor.tsx +6 -6
  33. package/components/admin/styles/shared.tsx +68 -68
  34. package/components/blocks/AudioBlockRenderer.tsx +286 -286
  35. package/components/blocks/MarqueeBlockRenderer.tsx +316 -0
  36. package/components/blocks/ProjectCarouselBlockRenderer.tsx +1 -1
  37. package/components/builder/BlockCardIcons.tsx +316 -316
  38. package/components/builder/BlockTypePicker.tsx +1 -1
  39. package/components/builder/BubbleIcons.tsx +90 -0
  40. package/components/builder/BuilderCanvas.tsx +2 -0
  41. package/components/builder/CanvasMinimap.tsx +2 -2
  42. package/components/builder/CoverSectionCanvas.tsx +363 -363
  43. package/components/builder/DeviceFrame.tsx +1 -1
  44. package/components/builder/DndWrapper.tsx +3 -3
  45. package/components/builder/InsertionLines.tsx +1 -1
  46. package/components/builder/SectionCardIcons.tsx +421 -320
  47. package/components/builder/SectionEditorBar.tsx +1 -1
  48. package/components/builder/SectionTypePicker.tsx +4 -4
  49. package/components/builder/SectionV2Canvas.tsx +1 -1
  50. package/components/builder/SectionV2Column.tsx +69 -67
  51. package/components/builder/SortableBlock.tsx +93 -73
  52. package/components/builder/SortableRow.tsx +27 -26
  53. package/components/builder/VirtualAssetGrid.tsx +2 -2
  54. package/components/builder/asset-browser/R2BrowserContent.tsx +11 -11
  55. package/components/builder/blockStyles.tsx +192 -185
  56. package/components/builder/color-picker/AlphaSlider.tsx +141 -141
  57. package/components/builder/color-picker/ColorInputs.tsx +105 -105
  58. package/components/builder/color-picker/EyedropperButton.tsx +74 -74
  59. package/components/builder/color-picker/HueSlider.tsx +124 -124
  60. package/components/builder/color-picker/SaturationCanvas.tsx +142 -142
  61. package/components/builder/color-picker/SwatchBar.tsx +93 -93
  62. package/components/builder/editors/AudioBlockEditor.tsx +242 -242
  63. package/components/builder/editors/BeforeAfterBlockEditor.tsx +360 -360
  64. package/components/builder/editors/ButtonBlockEditor.tsx +4 -4
  65. package/components/builder/editors/EnterAnimationPicker.tsx +2 -2
  66. package/components/builder/editors/HoverEffectPicker.tsx +2 -2
  67. package/components/builder/editors/ImageBlockEditor.tsx +2 -2
  68. package/components/builder/editors/ImageGridBlockEditor.tsx +4 -4
  69. package/components/builder/editors/MarqueeBlockEditor.tsx +621 -0
  70. package/components/builder/editors/ProjectCarouselBlockEditor.tsx +443 -443
  71. package/components/builder/editors/ProjectGridEditor.tsx +9 -9
  72. package/components/builder/editors/SpacerBlockEditor.tsx +5 -5
  73. package/components/builder/editors/StaggerSettings.tsx +109 -109
  74. package/components/builder/editors/TextBlockEditor.tsx +3 -3
  75. package/components/builder/editors/TextStylePicker.tsx +1 -1
  76. package/components/builder/editors/VideoBlockEditor.tsx +2 -2
  77. package/components/builder/editors/index.ts +11 -10
  78. package/components/builder/editors/shared.tsx +6 -6
  79. package/components/builder/live-preview/LiveAudioPreview.tsx +120 -120
  80. package/components/builder/live-preview/LiveBeforeAfterPreview.tsx +1 -1
  81. package/components/builder/live-preview/LiveImageGridPreview.tsx +10 -2
  82. package/components/builder/live-preview/LiveImagePreview.tsx +1 -1
  83. package/components/builder/live-preview/LiveMarqueePreview.tsx +39 -0
  84. package/components/builder/live-preview/LiveProjectCarouselPreview.tsx +1 -1
  85. package/components/builder/live-preview/LiveVideoPreview.tsx +1 -1
  86. package/components/builder/live-preview/ProjectCardWrapper.tsx +291 -291
  87. package/components/builder/settings-panel/AnimationTab.tsx +138 -138
  88. package/components/builder/settings-panel/BlockLayoutTab.tsx +7 -7
  89. package/components/builder/settings-panel/CardEntranceSection.tsx +114 -114
  90. package/components/builder/settings-panel/ColumnV2Settings.tsx +5 -5
  91. package/components/builder/settings-panel/CoverSectionLayoutTab.tsx +71 -71
  92. package/components/builder/settings-panel/CoverSectionSettings.tsx +335 -335
  93. package/components/builder/settings-panel/PageSettings.tsx +3 -3
  94. package/components/builder/settings-panel/ParallaxSlideSettings.tsx +2 -2
  95. package/components/builder/settings-panel/SectionV2AnimationTab.tsx +4 -4
  96. package/components/builder/settings-panel/SectionV2LayoutTab.tsx +356 -356
  97. package/components/builder/settings-panel/SectionV2Settings.tsx +14 -14
  98. package/components/builder/settings-panel/TRBLInputs.tsx +1 -1
  99. package/lib/animation/enter-types.ts +1 -0
  100. package/lib/animation/hover-effect-presets.ts +210 -210
  101. package/lib/animation/hover-effect-types.ts +1 -0
  102. package/lib/builder/block-registrations.ts +468 -417
  103. package/lib/builder/constants.ts +111 -111
  104. package/lib/builder/store-sections.ts +2 -2
  105. package/lib/builder/types-slices.ts +414 -414
  106. package/lib/builder/types.ts +4 -1
  107. package/lib/config/index.ts +27 -27
  108. package/lib/sanity/types.ts +98 -1
  109. package/lib/version.ts +1 -1
  110. package/package.json +1 -1
  111. package/sanity/schemas/blocks/audioBlock.ts +69 -69
  112. package/sanity/schemas/blocks/index.ts +12 -11
  113. package/sanity/schemas/blocks/marqueeBlock.ts +292 -0
  114. package/sanity/schemas/index.ts +120 -117
  115. package/styles/admin.css +85 -85
  116. package/styles/animations.css +237 -237
  117. package/styles/base.css +114 -114
@@ -1,117 +1,120 @@
1
- import page from "./page";
2
- import pageSectionV2 from "./pageSectionV2";
3
- import customSection from "./customSection";
4
- import customSectionInstance from "./customSectionInstance";
5
- import siteSettings from "./siteSettings";
6
- import siteStyles from "./siteStyles";
7
- import assetRegistry from "./assetRegistry";
8
- import enterAnimationConfig from "./objects/enterAnimationConfig";
9
- import hoverEffectConfig from "./objects/hoverEffectConfig";
10
- import typewriterConfig from "./objects/typewriterConfig";
11
- import parallaxSlide from "./objects/parallaxSlide";
12
- import parallaxGroup from "./objects/parallaxGroup";
13
- import coverSection from "./objects/coverSection";
14
- import {
15
- textBlock,
16
- imageBlock,
17
- imageGridBlock,
18
- videoBlock,
19
- spacerBlock,
20
- buttonBlock,
21
- beforeAfterBlock,
22
- audioBlock,
23
- projectGridBlock,
24
- projectCarouselBlock,
25
- } from "./blocks";
26
-
27
- // Re-export individual schemas for granular use by instances
28
- export {
29
- default as page,
30
- } from "./page";
31
- export {
32
- default as siteSettings,
33
- } from "./siteSettings";
34
- export {
35
- default as siteStyles,
36
- } from "./siteStyles";
37
- export {
38
- default as assetRegistry,
39
- } from "./assetRegistry";
40
- export {
41
- default as pageSectionV2,
42
- } from "./pageSectionV2";
43
- export {
44
- default as customSection,
45
- } from "./customSection";
46
- export {
47
- default as customSectionInstance,
48
- } from "./customSectionInstance";
49
- export {
50
- default as enterAnimationConfig,
51
- } from "./objects/enterAnimationConfig";
52
- export {
53
- default as hoverEffectConfig,
54
- } from "./objects/hoverEffectConfig";
55
- export {
56
- default as typewriterConfig,
57
- } from "./objects/typewriterConfig";
58
- export {
59
- default as parallaxSlide,
60
- } from "./objects/parallaxSlide";
61
- export {
62
- default as parallaxGroup,
63
- } from "./objects/parallaxGroup";
64
- export {
65
- default as coverSection,
66
- } from "./objects/coverSection";
67
- export {
68
- textBlock,
69
- imageBlock,
70
- imageGridBlock,
71
- videoBlock,
72
- spacerBlock,
73
- buttonBlock,
74
- beforeAfterBlock,
75
- audioBlock,
76
- projectGridBlock,
77
- projectCarouselBlock,
78
- } from "./blocks";
79
-
80
- export const schemaTypes = [
81
- // Documents
82
- page,
83
- siteSettings,
84
- siteStyles,
85
- assetRegistry,
86
-
87
- // Structural objects
88
- pageSectionV2,
89
- customSection,
90
- customSectionInstance,
91
-
92
- // Reusable objects
93
- enterAnimationConfig, // Enter animation system (Session 117)
94
- hoverEffectConfig, // Unified hover effect system (Session 117)
95
- typewriterConfig, // Typewriter config for textBlock (Session 117)
96
- parallaxSlide, // Parallax V2 slide (Session 123)
97
- parallaxGroup, // Parallax V2 group (Session 123)
98
- coverSection, // Cover Section proportional rows (Session 176)
99
-
100
- // Blocks (10)
101
- textBlock,
102
- imageBlock,
103
- imageGridBlock,
104
- videoBlock,
105
- spacerBlock,
106
- buttonBlock,
107
- beforeAfterBlock,
108
- audioBlock,
109
- projectGridBlock,
110
- projectCarouselBlock,
111
- ];
112
-
113
- /**
114
- * Named alias for instance consumption.
115
- * Instances import this and pass to composeSchemas().
116
- */
117
- export const coreSchemas = schemaTypes;
1
+ import page from "./page";
2
+ import pageSectionV2 from "./pageSectionV2";
3
+ import customSection from "./customSection";
4
+ import customSectionInstance from "./customSectionInstance";
5
+ import siteSettings from "./siteSettings";
6
+ import siteStyles from "./siteStyles";
7
+ import assetRegistry from "./assetRegistry";
8
+ import enterAnimationConfig from "./objects/enterAnimationConfig";
9
+ import hoverEffectConfig from "./objects/hoverEffectConfig";
10
+ import typewriterConfig from "./objects/typewriterConfig";
11
+ import parallaxSlide from "./objects/parallaxSlide";
12
+ import parallaxGroup from "./objects/parallaxGroup";
13
+ import coverSection from "./objects/coverSection";
14
+ import {
15
+ textBlock,
16
+ imageBlock,
17
+ imageGridBlock,
18
+ videoBlock,
19
+ spacerBlock,
20
+ buttonBlock,
21
+ beforeAfterBlock,
22
+ audioBlock,
23
+ projectGridBlock,
24
+ projectCarouselBlock,
25
+ marqueeBlock,
26
+ } from "./blocks";
27
+
28
+ // Re-export individual schemas for granular use by instances
29
+ export {
30
+ default as page,
31
+ } from "./page";
32
+ export {
33
+ default as siteSettings,
34
+ } from "./siteSettings";
35
+ export {
36
+ default as siteStyles,
37
+ } from "./siteStyles";
38
+ export {
39
+ default as assetRegistry,
40
+ } from "./assetRegistry";
41
+ export {
42
+ default as pageSectionV2,
43
+ } from "./pageSectionV2";
44
+ export {
45
+ default as customSection,
46
+ } from "./customSection";
47
+ export {
48
+ default as customSectionInstance,
49
+ } from "./customSectionInstance";
50
+ export {
51
+ default as enterAnimationConfig,
52
+ } from "./objects/enterAnimationConfig";
53
+ export {
54
+ default as hoverEffectConfig,
55
+ } from "./objects/hoverEffectConfig";
56
+ export {
57
+ default as typewriterConfig,
58
+ } from "./objects/typewriterConfig";
59
+ export {
60
+ default as parallaxSlide,
61
+ } from "./objects/parallaxSlide";
62
+ export {
63
+ default as parallaxGroup,
64
+ } from "./objects/parallaxGroup";
65
+ export {
66
+ default as coverSection,
67
+ } from "./objects/coverSection";
68
+ export {
69
+ textBlock,
70
+ imageBlock,
71
+ imageGridBlock,
72
+ videoBlock,
73
+ spacerBlock,
74
+ buttonBlock,
75
+ beforeAfterBlock,
76
+ audioBlock,
77
+ projectGridBlock,
78
+ projectCarouselBlock,
79
+ marqueeBlock,
80
+ } from "./blocks";
81
+
82
+ export const schemaTypes = [
83
+ // Documents
84
+ page,
85
+ siteSettings,
86
+ siteStyles,
87
+ assetRegistry,
88
+
89
+ // Structural objects
90
+ pageSectionV2,
91
+ customSection,
92
+ customSectionInstance,
93
+
94
+ // Reusable objects
95
+ enterAnimationConfig, // Enter animation system (Session 117)
96
+ hoverEffectConfig, // Unified hover effect system (Session 117)
97
+ typewriterConfig, // Typewriter config for textBlock (Session 117)
98
+ parallaxSlide, // Parallax V2 slide (Session 123)
99
+ parallaxGroup, // Parallax V2 group (Session 123)
100
+ coverSection, // Cover Section — proportional rows (Session 176)
101
+
102
+ // Blocks (11)
103
+ textBlock,
104
+ imageBlock,
105
+ imageGridBlock,
106
+ videoBlock,
107
+ spacerBlock,
108
+ buttonBlock,
109
+ beforeAfterBlock,
110
+ audioBlock,
111
+ projectGridBlock,
112
+ projectCarouselBlock,
113
+ marqueeBlock,
114
+ ];
115
+
116
+ /**
117
+ * Named alias for instance consumption.
118
+ * Instances import this and pass to composeSchemas().
119
+ */
120
+ export const coreSchemas = schemaTypes;
package/styles/admin.css CHANGED
@@ -1,85 +1,85 @@
1
- /* ============================================
2
- Admin Panel — Clean UI Override
3
- Uses Inter (sans-serif) for admin, white bg,
4
- clean hierarchy. Mono reserved for public site.
5
- ============================================ */
6
-
7
- /* Admin shell: override dark defaults */
8
- [data-admin] {
9
- font-family: var(--font-sans);
10
- background: #ffffff;
11
- color: #1a1a1a;
12
- }
13
-
14
- [data-admin] * {
15
- cursor: auto;
16
- }
17
-
18
- /* Admin typography scale */
19
- [data-admin] h1 { font-size: 1.5rem; font-weight: 600; letter-spacing: -0.01em; color: #111; }
20
- [data-admin] h2 { font-size: 1.125rem; font-weight: 600; letter-spacing: -0.01em; color: #222; }
21
- [data-admin] h3 { font-size: 0.9375rem; font-weight: 500; color: #333; }
22
-
23
- /* Admin inputs */
24
- [data-admin] input[type="text"],
25
- [data-admin] input[type="password"],
26
- [data-admin] input[type="email"],
27
- [data-admin] input[type="url"],
28
- [data-admin] input[type="number"],
29
- [data-admin] textarea,
30
- [data-admin] select {
31
- font-family: var(--font-sans);
32
- font-size: 0.8125rem;
33
- border-radius: 0.5rem;
34
- border: 1px solid #e5e5e5;
35
- padding: 0.5rem 0.75rem;
36
- transition: border-color 0.15s;
37
- }
38
-
39
- [data-admin] input:focus,
40
- [data-admin] textarea:focus,
41
- [data-admin] select:focus {
42
- border-color: #076bff;
43
- outline: none;
44
- box-shadow: 0 0 0 3px rgba(7, 107, 255, 0.08);
45
- }
46
-
47
- /* Admin buttons base */
48
- [data-admin] .btn-primary {
49
- background: #076bff;
50
- color: white;
51
- font-weight: 500;
52
- font-size: 0.8125rem;
53
- padding: 0.5rem 1.25rem;
54
- border-radius: 0.5rem;
55
- transition: all 0.15s;
56
- }
57
- [data-admin] .btn-primary:hover { background: #0559d4; }
58
- [data-admin] .btn-primary:disabled { opacity: 0.4; }
59
-
60
- [data-admin] .btn-secondary {
61
- background: white;
62
- color: #555;
63
- font-weight: 500;
64
- font-size: 0.8125rem;
65
- padding: 0.5rem 1.25rem;
66
- border-radius: 0.5rem;
67
- border: 1px solid #e5e5e5;
68
- transition: all 0.15s;
69
- }
70
- [data-admin] .btn-secondary:hover { border-color: #ccc; color: #111; }
71
-
72
- /* Admin card base */
73
- [data-admin] .admin-card {
74
- background: white;
75
- border: 1px solid #f0f0f0;
76
- border-radius: 0.75rem;
77
- padding: 1.5rem;
78
- box-shadow: 0 1px 3px rgba(0,0,0,0.04);
79
- }
80
-
81
- /* Scrollbar for admin */
82
- [data-admin] ::-webkit-scrollbar { width: 6px; }
83
- [data-admin] ::-webkit-scrollbar-track { background: transparent; }
84
- [data-admin] ::-webkit-scrollbar-thumb { background: #ddd; border-radius: 3px; }
85
- [data-admin] ::-webkit-scrollbar-thumb:hover { background: #bbb; }
1
+ /* ============================================
2
+ Admin Panel — Clean UI Override
3
+ Uses Inter (sans-serif) for admin, white bg,
4
+ clean hierarchy. Mono reserved for public site.
5
+ ============================================ */
6
+
7
+ /* Admin shell: override dark defaults */
8
+ [data-admin] {
9
+ font-family: var(--font-sans);
10
+ background: #ffffff;
11
+ color: #1a1a1a;
12
+ }
13
+
14
+ [data-admin] * {
15
+ cursor: auto;
16
+ }
17
+
18
+ /* Admin typography scale */
19
+ [data-admin] h1 { font-size: 1.5rem; font-weight: 600; letter-spacing: -0.01em; color: #111; }
20
+ [data-admin] h2 { font-size: 1.125rem; font-weight: 600; letter-spacing: -0.01em; color: #222; }
21
+ [data-admin] h3 { font-size: 0.9375rem; font-weight: 500; color: #333; }
22
+
23
+ /* Admin inputs */
24
+ [data-admin] input[type="text"],
25
+ [data-admin] input[type="password"],
26
+ [data-admin] input[type="email"],
27
+ [data-admin] input[type="url"],
28
+ [data-admin] input[type="number"],
29
+ [data-admin] textarea,
30
+ [data-admin] select {
31
+ font-family: var(--font-sans);
32
+ font-size: 0.8125rem;
33
+ border-radius: 0.5rem;
34
+ border: 1px solid #e5e5e5;
35
+ padding: 0.5rem 0.75rem;
36
+ transition: border-color 0.15s;
37
+ }
38
+
39
+ [data-admin] input:focus,
40
+ [data-admin] textarea:focus,
41
+ [data-admin] select:focus {
42
+ border-color: #3580f9;
43
+ outline: none;
44
+ box-shadow: 0 0 0 3px rgba(53, 128, 249, 0.08);
45
+ }
46
+
47
+ /* Admin buttons base */
48
+ [data-admin] .btn-primary {
49
+ background: #3580f9;
50
+ color: white;
51
+ font-weight: 500;
52
+ font-size: 0.8125rem;
53
+ padding: 0.5rem 1.25rem;
54
+ border-radius: 0.5rem;
55
+ transition: all 0.15s;
56
+ }
57
+ [data-admin] .btn-primary:hover { background: #2d6dd4; }
58
+ [data-admin] .btn-primary:disabled { opacity: 0.4; }
59
+
60
+ [data-admin] .btn-secondary {
61
+ background: white;
62
+ color: #555;
63
+ font-weight: 500;
64
+ font-size: 0.8125rem;
65
+ padding: 0.5rem 1.25rem;
66
+ border-radius: 0.5rem;
67
+ border: 1px solid #e5e5e5;
68
+ transition: all 0.15s;
69
+ }
70
+ [data-admin] .btn-secondary:hover { border-color: #ccc; color: #111; }
71
+
72
+ /* Admin card base */
73
+ [data-admin] .admin-card {
74
+ background: white;
75
+ border: 1px solid #f0f0f0;
76
+ border-radius: 0.75rem;
77
+ padding: 1.5rem;
78
+ box-shadow: 0 1px 3px rgba(0,0,0,0.04);
79
+ }
80
+
81
+ /* Scrollbar for admin */
82
+ [data-admin] ::-webkit-scrollbar { width: 6px; }
83
+ [data-admin] ::-webkit-scrollbar-track { background: transparent; }
84
+ [data-admin] ::-webkit-scrollbar-thumb { background: #ddd; border-radius: 3px; }
85
+ [data-admin] ::-webkit-scrollbar-thumb:hover { background: #bbb; }