astro-tractstack 2.0.41 → 2.0.43
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/dist/index.js +8 -2
- package/package.json +1 -1
- package/templates/src/components/compositor/Node.tsx +4 -1
- package/templates/src/components/compositor/preview/PanesPreviewGenerator.tsx +5 -1
- package/templates/src/components/edit/SettingsPanel.tsx +1 -3
- package/templates/src/components/edit/pane/AddPanePanel_new.tsx +6 -10
- package/templates/src/components/edit/pane/AddPanePanel_reuse.tsx +6 -2
- package/templates/src/components/edit/pane/PanePanel_path.tsx +4 -3
- package/templates/src/components/edit/panels/StyleParentPanel.tsx +0 -2
- package/templates/src/components/edit/state/SaveModal.tsx +250 -79
- package/templates/src/components/edit/storyfragment/StoryFragmentConfigPanel.tsx +27 -16
- package/templates/src/components/edit/storyfragment/StoryFragmentPanel_menu.tsx +5 -7
- package/templates/src/components/edit/widgets/BeliefWidget.tsx +4 -1
- package/templates/src/components/edit/widgets/IdentifyAsWidget.tsx +5 -1
- package/templates/src/components/edit/widgets/InteractiveDisclosureWidget.tsx +5 -1
- package/templates/src/components/edit/widgets/ToggleWidget.tsx +4 -1
- package/templates/src/components/fields/BackgroundImage.tsx +4 -1
- package/templates/src/components/fields/ImageUpload.tsx +4 -1
- package/templates/src/components/form/ActionBuilderField.tsx +5 -1
- package/templates/src/components/storykeep/Dashboard_Analytics.tsx +4 -2
- package/templates/src/components/storykeep/state/BrandingWrapper.tsx +13 -1
- package/templates/src/components/storykeep/widgets/HydrateWizard.tsx +84 -0
- package/templates/src/components/storykeep/widgets/{SetupWizard.tsx → InitWizard.tsx} +4 -3
- package/templates/src/components/widgets/Impression.tsx +3 -1
- package/templates/src/hooks/useSearch.ts +5 -3
- package/templates/src/layouts/Layout.astro +1 -23
- package/templates/src/pages/[...slug]/edit.astro +0 -1
- package/templates/src/pages/api/auth/decode.ts +2 -4
- package/templates/src/pages/api/auth/login.ts +4 -5
- package/templates/src/pages/api/auth/logout.ts +22 -7
- package/templates/src/pages/api/auth/profile.ts +4 -2
- package/templates/src/pages/api/sandbox.ts +3 -5
- package/templates/src/pages/api/tailwind.ts +6 -9
- package/templates/src/pages/storykeep/branding.astro +18 -1
- package/templates/src/pages/storykeep/init.astro +25 -23
- package/templates/src/stores/analytics.ts +5 -14
- package/templates/src/stores/nodes.ts +1 -6
- package/templates/src/stores/orphanAnalysis.ts +5 -40
- package/templates/src/types/compositorTypes.ts +1 -1
- package/templates/src/types/tractstack.ts +2 -0
- package/templates/src/utils/actions/actionButton.ts +3 -1
- package/templates/src/utils/api/brandHelpers.ts +1 -0
- package/templates/src/utils/api/setupHelpers.ts +177 -20
- package/templates/src/utils/api.ts +14 -26
- package/templates/src/utils/compositor/nodesHelper.ts +5 -1
- package/templates/src/utils/layout.ts +85 -75
- package/templates/src/utils/tenantResolver.ts +1 -1
- package/utils/inject-files.ts +8 -2
|
@@ -21,16 +21,18 @@ function cleanupLayoutObservers() {
|
|
|
21
21
|
settingsPanelSubscription();
|
|
22
22
|
settingsPanelSubscription = null;
|
|
23
23
|
}
|
|
24
|
-
if (debouncedUpdateListener) {
|
|
24
|
+
if (debouncedUpdateListener && typeof window !== `undefined`) {
|
|
25
25
|
window.removeEventListener('scroll', debouncedUpdateListener);
|
|
26
26
|
window.removeEventListener('resize', debouncedUpdateListener);
|
|
27
27
|
debouncedUpdateListener = null;
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
if (typeof document !== `undefined`) {
|
|
30
|
+
const storykeepHeader = document.getElementById('storykeepHeader');
|
|
31
|
+
if (storykeepHeader) {
|
|
32
|
+
document.body.style.paddingTop = '';
|
|
33
|
+
storykeepHeader.style.position = '';
|
|
34
|
+
storykeepHeader.style.top = '';
|
|
35
|
+
}
|
|
34
36
|
}
|
|
35
37
|
}
|
|
36
38
|
|
|
@@ -45,7 +47,7 @@ function setupPaneObserver() {
|
|
|
45
47
|
currentPaneObserver = null;
|
|
46
48
|
}
|
|
47
49
|
|
|
48
|
-
if (signalValue && signalValue.nodeId) {
|
|
50
|
+
if (signalValue && signalValue.nodeId && typeof document !== `undefined`) {
|
|
49
51
|
setTimeout(() => {
|
|
50
52
|
const { nodeId } = signalValue;
|
|
51
53
|
|
|
@@ -77,84 +79,92 @@ function setupPaneObserver() {
|
|
|
77
79
|
export function setupLayoutObservers(): void {
|
|
78
80
|
cleanupLayoutObservers();
|
|
79
81
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
82
|
+
if (typeof document !== `undefined` || typeof window !== `undefined`) {
|
|
83
|
+
const storykeepHeader = document.getElementById('storykeepHeader');
|
|
84
|
+
const settingsControls = document.getElementById('settingsControls');
|
|
85
|
+
const standardHeader = document.querySelector('header');
|
|
86
|
+
|
|
87
|
+
if (!storykeepHeader || !settingsControls || !standardHeader) return;
|
|
88
|
+
|
|
89
|
+
let standardHeaderHeight = 0;
|
|
90
|
+
const updateStandardHeaderHeight = () => {
|
|
91
|
+
standardHeaderHeight = standardHeader.offsetHeight;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
const updatePanelPosition = () => {
|
|
95
|
+
const headerRect = storykeepHeader.getBoundingClientRect();
|
|
96
|
+
const panelTop = headerRect.bottom;
|
|
97
|
+
settingsControls.style.top = `${panelTop}px`;
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
const handleScroll = () => {
|
|
101
|
+
const scrollY = window.scrollY;
|
|
102
|
+
const shouldBeSticky = scrollY > standardHeaderHeight;
|
|
103
|
+
const currentPosition = headerPositionStore.get();
|
|
104
|
+
const newPosition = shouldBeSticky ? 'sticky' : 'normal';
|
|
105
|
+
|
|
106
|
+
if (currentPosition !== newPosition) {
|
|
107
|
+
setHeaderPosition(newPosition);
|
|
108
|
+
if (shouldBeSticky) {
|
|
109
|
+
document.body.style.paddingTop = `${storykeepHeader.offsetHeight}px`;
|
|
110
|
+
storykeepHeader.style.position = 'fixed';
|
|
111
|
+
storykeepHeader.style.top = '0';
|
|
112
|
+
} else {
|
|
113
|
+
document.body.style.paddingTop = '';
|
|
114
|
+
storykeepHeader.style.position = '';
|
|
115
|
+
storykeepHeader.style.top = '';
|
|
116
|
+
}
|
|
113
117
|
}
|
|
114
|
-
}
|
|
115
|
-
};
|
|
118
|
+
};
|
|
116
119
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
120
|
+
debouncedUpdateListener = debounce(() => {
|
|
121
|
+
updateStandardHeaderHeight();
|
|
122
|
+
handleScroll();
|
|
123
|
+
updatePanelPosition();
|
|
124
|
+
}, 50);
|
|
122
125
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
126
|
+
const handleSettingsPanelChange = () => {
|
|
127
|
+
if (!settingsPanelOpenStore.get()) {
|
|
128
|
+
hasScrolledForSettingsPanel = false;
|
|
129
|
+
}
|
|
130
|
+
};
|
|
128
131
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
+
window.addEventListener('scroll', debouncedUpdateListener, {
|
|
133
|
+
passive: true,
|
|
134
|
+
});
|
|
135
|
+
window.addEventListener('resize', debouncedUpdateListener);
|
|
136
|
+
settingsPanelOpenStore.subscribe(handleSettingsPanelChange);
|
|
132
137
|
|
|
133
|
-
|
|
138
|
+
setupPaneObserver();
|
|
134
139
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
140
|
+
updateStandardHeaderHeight();
|
|
141
|
+
handleScroll();
|
|
142
|
+
updatePanelPosition();
|
|
143
|
+
}
|
|
138
144
|
}
|
|
139
145
|
|
|
140
146
|
export function handleSettingsPanelMobile(isOpen: boolean): void {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
147
|
+
if (typeof window !== `undefined` && typeof document !== `undefined`) {
|
|
148
|
+
const isMobile = window.innerWidth < 801;
|
|
149
|
+
if (!isMobile) return;
|
|
150
|
+
|
|
151
|
+
if (isOpen) {
|
|
152
|
+
const header = document.querySelector('header');
|
|
153
|
+
const headerHeight = header?.offsetHeight || 0;
|
|
154
|
+
const currentScrollY = window.scrollY;
|
|
155
|
+
|
|
156
|
+
if (currentScrollY <= headerHeight && !hasScrolledForSettingsPanel) {
|
|
157
|
+
window.scrollTo({ top: headerHeight + 10, behavior: 'smooth' });
|
|
158
|
+
hasScrolledForSettingsPanel = true;
|
|
159
|
+
}
|
|
160
|
+
setMobileHeaderFaded(true);
|
|
161
|
+
} else {
|
|
162
|
+
setMobileHeaderFaded(false);
|
|
163
|
+
hasScrolledForSettingsPanel = false;
|
|
152
164
|
}
|
|
153
|
-
setMobileHeaderFaded(true);
|
|
154
|
-
} else {
|
|
155
|
-
setMobileHeaderFaded(false);
|
|
156
|
-
hasScrolledForSettingsPanel = false;
|
|
157
165
|
}
|
|
158
166
|
}
|
|
159
167
|
|
|
160
|
-
|
|
168
|
+
if (typeof document !== `undefined`) {
|
|
169
|
+
document.addEventListener('astro:before-swap', cleanupLayoutObservers);
|
|
170
|
+
}
|
package/utils/inject-files.ts
CHANGED
|
@@ -2105,9 +2105,15 @@ export async function injectTemplateFiles(
|
|
|
2105
2105
|
},
|
|
2106
2106
|
{
|
|
2107
2107
|
src: resolve(
|
|
2108
|
-
'../templates/src/components/storykeep/widgets/
|
|
2108
|
+
'../templates/src/components/storykeep/widgets/HydrateWizard.tsx'
|
|
2109
2109
|
),
|
|
2110
|
-
dest: 'src/components/storykeep/widgets/
|
|
2110
|
+
dest: 'src/components/storykeep/widgets/HydrateWizard.tsx',
|
|
2111
|
+
},
|
|
2112
|
+
{
|
|
2113
|
+
src: resolve(
|
|
2114
|
+
'../templates/src/components/storykeep/widgets/InitWizard.tsx'
|
|
2115
|
+
),
|
|
2116
|
+
dest: 'src/components/storykeep/widgets/InitWizard.tsx',
|
|
2111
2117
|
},
|
|
2112
2118
|
{
|
|
2113
2119
|
src: resolve('../templates/src/pages/storykeep/init.astro'),
|