astro-tractstack 2.0.47 → 2.1.0
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 +35 -39
- package/package.json +25 -20
- package/templates/src/components/Footer.astro +4 -4
- package/templates/src/components/Header.astro +6 -6
- package/templates/src/components/Menu.tsx +15 -15
- package/templates/src/components/codehooks/BunnyVideoSetup.tsx +6 -6
- package/templates/src/components/codehooks/EpinetDurationSelector.tsx +3 -3
- package/templates/src/components/codehooks/FeaturedArticle.astro +1 -1
- package/templates/src/components/codehooks/FeaturedArticleSetup.tsx +3 -3
- package/templates/src/components/codehooks/ListContentSetup.tsx +2 -2
- package/templates/src/components/codehooks/ProductCardSetup.tsx +1 -1
- package/templates/src/components/codehooks/ProductGridSetup.tsx +2 -2
- package/templates/src/components/codehooks/SandboxRegisterForm.tsx +3 -3
- package/templates/src/components/compositor/Compositor.tsx +1 -1
- package/templates/src/components/compositor/elements/Belief.tsx +1 -1
- package/templates/src/components/compositor/elements/BunnyVideo.tsx +2 -2
- package/templates/src/components/compositor/elements/SignUp.tsx +1 -1
- package/templates/src/components/compositor/elements/ToggleBelief.tsx +1 -1
- package/templates/src/components/compositor/nodes/GhostInsertBlock.tsx +1 -1
- package/templates/src/components/compositor/nodes/GridLayout.tsx +1 -1
- package/templates/src/components/compositor/nodes/tagElements/TabIndicator.tsx +1 -1
- package/templates/src/components/compositor/preview/ListContentPreview.tsx +8 -8
- package/templates/src/components/edit/Header.tsx +1 -1
- package/templates/src/components/edit/SettingsPanel.tsx +3 -3
- package/templates/src/components/edit/ToolBar.tsx +3 -3
- package/templates/src/components/edit/ToolMode.tsx +5 -5
- package/templates/src/components/edit/pane/AddPanePanel.tsx +5 -5
- package/templates/src/components/edit/pane/AddPanePanel_break.tsx +6 -6
- package/templates/src/components/edit/pane/AddPanePanel_codehook.tsx +2 -2
- package/templates/src/components/edit/pane/AddPanePanel_new.tsx +2 -2
- package/templates/src/components/edit/pane/AddPanePanel_reuse.tsx +4 -4
- package/templates/src/components/edit/pane/AiRestylePaneModal.tsx +2 -2
- package/templates/src/components/edit/pane/ConfigPanePanel.tsx +1 -1
- package/templates/src/components/edit/pane/PanePanel_impression.tsx +4 -4
- package/templates/src/components/edit/pane/RestylePaneModal.tsx +3 -3
- package/templates/src/components/edit/pane/steps/AiDesignStep.tsx +2 -2
- package/templates/src/components/edit/pane/steps/CopyInputStep.tsx +5 -5
- package/templates/src/components/edit/panels/StyleBreakPanel.tsx +2 -2
- package/templates/src/components/edit/panels/StyleCodeHookPanel.tsx +6 -6
- package/templates/src/components/edit/panels/StyleElementPanel.tsx +5 -5
- package/templates/src/components/edit/panels/StyleElementPanel_add.tsx +6 -6
- package/templates/src/components/edit/panels/StyleElementPanel_remove.tsx +1 -1
- package/templates/src/components/edit/panels/StyleElementPanel_update.tsx +3 -3
- package/templates/src/components/edit/panels/StyleImagePanel.tsx +8 -8
- package/templates/src/components/edit/panels/StyleImagePanel_add.tsx +6 -6
- package/templates/src/components/edit/panels/StyleImagePanel_remove.tsx +1 -1
- package/templates/src/components/edit/panels/StyleImagePanel_update.tsx +3 -3
- package/templates/src/components/edit/panels/StyleLiElementPanel.tsx +4 -4
- package/templates/src/components/edit/panels/StyleLiElementPanel_add.tsx +6 -6
- package/templates/src/components/edit/panels/StyleLiElementPanel_remove.tsx +1 -1
- package/templates/src/components/edit/panels/StyleLiElementPanel_update.tsx +3 -3
- package/templates/src/components/edit/panels/StyleLinkPanel.tsx +5 -5
- package/templates/src/components/edit/panels/StyleLinkPanel_add.tsx +6 -6
- package/templates/src/components/edit/panels/StyleLinkPanel_remove.tsx +1 -1
- package/templates/src/components/edit/panels/StyleLinkPanel_update.tsx +1 -1
- package/templates/src/components/edit/panels/StyleParentPanel.tsx +9 -9
- package/templates/src/components/edit/panels/StyleParentPanel_add.tsx +6 -6
- package/templates/src/components/edit/panels/StyleParentPanel_deleteLayer.tsx +2 -2
- package/templates/src/components/edit/panels/StyleParentPanel_remove.tsx +1 -1
- package/templates/src/components/edit/panels/StyleParentPanel_update.tsx +1 -1
- package/templates/src/components/edit/panels/StyleWidgetPanel.tsx +7 -7
- package/templates/src/components/edit/panels/StyleWidgetPanel_add.tsx +6 -6
- package/templates/src/components/edit/panels/StyleWidgetPanel_remove.tsx +1 -1
- package/templates/src/components/edit/panels/StyleWidgetPanel_update.tsx +3 -3
- package/templates/src/components/edit/panels/StyleWordCarouselPanel.tsx +1 -1
- package/templates/src/components/edit/state/SaveModal.tsx +1 -1
- package/templates/src/components/edit/state/SaveToLibraryModal.tsx +2 -2
- package/templates/src/components/edit/state/StylesMemory.tsx +1 -1
- package/templates/src/components/edit/storyfragment/StoryFragmentConfigPanel.tsx +1 -1
- package/templates/src/components/edit/storyfragment/StoryFragmentPanel_menu.tsx +5 -5
- package/templates/src/components/edit/widgets/BunnyWidget.tsx +5 -5
- package/templates/src/components/edit/widgets/InteractiveDisclosureWidget.tsx +1 -1
- package/templates/src/components/edit/widgets/SignupWidget.tsx +3 -3
- package/templates/src/components/fields/ActionBuilderTimeSelector.tsx +7 -7
- package/templates/src/components/fields/ArtpackImage.tsx +15 -15
- package/templates/src/components/fields/BackgroundImage.tsx +13 -13
- package/templates/src/components/fields/BackgroundImageWrapper.tsx +3 -3
- package/templates/src/components/fields/ColorPickerCombo.tsx +8 -8
- package/templates/src/components/fields/ImageUpload.tsx +8 -8
- package/templates/src/components/fields/PaneBreakCollectionSelector.tsx +3 -3
- package/templates/src/components/fields/PaneBreakShapeSelector.tsx +4 -4
- package/templates/src/components/fields/SelectedTailwindClass.tsx +2 -2
- package/templates/src/components/fields/ViewportComboBox.tsx +4 -4
- package/templates/src/components/form/ActionBuilderField.tsx +1 -1
- package/templates/src/components/form/ActionBuilderSlugSelector.tsx +1 -1
- package/templates/src/components/form/UnsavedChangesBar.tsx +1 -1
- package/templates/src/components/form/advanced/APIConfigSection.tsx +2 -2
- package/templates/src/components/form/advanced/AuthConfigSection.tsx +2 -2
- package/templates/src/components/form/brand/BrandColorsSection.tsx +1 -1
- package/templates/src/components/profile/ProfileCreate.tsx +4 -4
- package/templates/src/components/profile/ProfileEdit.tsx +4 -4
- package/templates/src/components/profile/ProfileSwitch.tsx +2 -2
- package/templates/src/components/profile/ProfileUnlock.tsx +3 -3
- package/templates/src/components/search/SearchModal.tsx +10 -10
- package/templates/src/components/search/SearchResults.tsx +10 -10
- package/templates/src/components/search/SearchWrapper.tsx +1 -1
- package/templates/src/components/storykeep/Dashboard.tsx +1 -1
- package/templates/src/components/storykeep/Dashboard_Advanced.tsx +2 -2
- package/templates/src/components/storykeep/controls/content/BeliefForm.tsx +1 -1
- package/templates/src/components/storykeep/controls/content/ContentSummary.tsx +2 -2
- package/templates/src/components/storykeep/controls/content/KnownResourceTable.tsx +1 -1
- package/templates/src/components/storykeep/controls/content/ManageContent.tsx +2 -2
- package/templates/src/components/storykeep/controls/content/MenuForm.tsx +1 -1
- package/templates/src/components/storykeep/controls/content/ResourceTable.tsx +1 -1
- package/templates/src/components/widgets/Impression.tsx +2 -2
- package/templates/src/components/widgets/ImpressionWrapper.tsx +2 -2
- package/templates/src/hooks/useSearch.ts +1 -1
- package/templates/src/layouts/Layout.astro +2 -2
- package/templates/src/pages/[...slug]/edit.astro +3 -3
- package/templates/src/pages/[...slug].astro +1 -1
- package/templates/src/pages/context/[...contextSlug]/edit.astro +3 -3
- package/templates/src/pages/maint.astro +9 -9
- package/templates/src/pages/sandbox.astro +3 -3
- package/templates/src/pages/storykeep/login.astro +6 -6
- package/templates/src/types/formTypes.ts +6 -4
- package/templates/src/types/nodeProps.ts +1 -1
- package/templates/src/types/tractstack.ts +1 -2
- package/templates/src/utils/compositor/nodesHelper.ts +1 -1
- package/templates/src/utils/compositor/typeGuards.ts +3 -3
|
@@ -135,7 +135,7 @@ export const SignUp = ({
|
|
|
135
135
|
</Select.Control>
|
|
136
136
|
<Portal>
|
|
137
137
|
<Select.Positioner>
|
|
138
|
-
<Select.Content className="z-50 max-h-56 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black/5 focus:outline-none
|
|
138
|
+
<Select.Content className="sm:text-sm z-50 max-h-56 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black/5 focus:outline-none">
|
|
139
139
|
{personaCollection.items.map((option) => (
|
|
140
140
|
<Select.Item
|
|
141
141
|
key={option.id}
|
|
@@ -19,7 +19,7 @@ export const ToggleBelief = ({ prompt }: { prompt: string }) => {
|
|
|
19
19
|
>
|
|
20
20
|
<Switch.Thumb
|
|
21
21
|
className={classNames(
|
|
22
|
-
`motion-safe:animate-wig
|
|
22
|
+
`translate-x-0 motion-safe:animate-wig`,
|
|
23
23
|
`pointer-events-none inline-block h-5 w-5 rounded-full bg-white shadow ring-0 transition-transform duration-200 ease-in-out`
|
|
24
24
|
)}
|
|
25
25
|
/>
|
|
@@ -108,7 +108,7 @@ export const GhostInsertBlock = memo((props: GhostInsertBlockProps) => {
|
|
|
108
108
|
);
|
|
109
109
|
|
|
110
110
|
const ElementButtons = () => (
|
|
111
|
-
<div className="grid grid-cols-2 gap-2 p-2
|
|
111
|
+
<div className="sm:grid-cols-3 grid grid-cols-2 gap-2 p-2">
|
|
112
112
|
{$toolAddModes
|
|
113
113
|
.filter((mode) => !['p', 'h2', 'h3', 'h4'].includes(mode))
|
|
114
114
|
.filter((mode) => allowedModes.includes(mode as ToolAddMode))
|
|
@@ -25,7 +25,7 @@ export default function TabIndicator({
|
|
|
25
25
|
|
|
26
26
|
return (
|
|
27
27
|
<div
|
|
28
|
-
className="
|
|
28
|
+
className="mt-1.5 flex animate-fadeIn cursor-pointer items-center border-t border-dashed border-cyan-500 py-1 text-sm hover:bg-cyan-50/20"
|
|
29
29
|
onClick={handleClick}
|
|
30
30
|
onKeyDown={handleKeyDown}
|
|
31
31
|
tabIndex={0}
|
|
@@ -58,7 +58,7 @@ const StoryItem = ({
|
|
|
58
58
|
<div className="flex-1">
|
|
59
59
|
<h3 className="text-lg font-bold text-black">{story.title}</h3>
|
|
60
60
|
{story.description && (
|
|
61
|
-
<p className="
|
|
61
|
+
<p className="line-clamp-2 text-sm text-myblack">{story.description}</p>
|
|
62
62
|
)}
|
|
63
63
|
{showTopics && story.topics && story.topics.length > 0 && (
|
|
64
64
|
<div className="mt-1 flex flex-wrap gap-1">
|
|
@@ -72,7 +72,7 @@ const StoryItem = ({
|
|
|
72
72
|
))}
|
|
73
73
|
</div>
|
|
74
74
|
)}
|
|
75
|
-
<p className="
|
|
75
|
+
<p className="mt-1 text-xs text-mydarkgrey">
|
|
76
76
|
{formatDate(story.changed)}
|
|
77
77
|
</p>
|
|
78
78
|
</div>
|
|
@@ -136,8 +136,8 @@ const ListContentPreview = ({
|
|
|
136
136
|
className={`px-4 py-2 text-sm font-bold ${
|
|
137
137
|
currentMode === 'recent'
|
|
138
138
|
? 'bg-myblue text-white'
|
|
139
|
-
: 'text-myblack
|
|
140
|
-
}
|
|
139
|
+
: 'bg-white text-myblack hover:bg-gray-100'
|
|
140
|
+
} rounded-l-md border border-myblue transition-colors`}
|
|
141
141
|
onClick={() => {
|
|
142
142
|
setCurrentMode('recent');
|
|
143
143
|
setCurrentPage(1);
|
|
@@ -149,8 +149,8 @@ const ListContentPreview = ({
|
|
|
149
149
|
className={`px-4 py-2 text-sm font-bold ${
|
|
150
150
|
currentMode === 'popular'
|
|
151
151
|
? 'bg-myblue text-white'
|
|
152
|
-
: 'text-myblack
|
|
153
|
-
}
|
|
152
|
+
: 'bg-white text-myblack hover:bg-gray-100'
|
|
153
|
+
} rounded-r-md border border-myblue transition-colors`}
|
|
154
154
|
onClick={() => {
|
|
155
155
|
setCurrentMode('popular');
|
|
156
156
|
setCurrentPage(1);
|
|
@@ -190,14 +190,14 @@ const ListContentPreview = ({
|
|
|
190
190
|
aria-label="Pagination"
|
|
191
191
|
>
|
|
192
192
|
<button
|
|
193
|
-
className="
|
|
193
|
+
className="rounded-l-md border border-gray-300 bg-white px-4 py-2 text-sm font-bold text-myblack hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50"
|
|
194
194
|
disabled={currentPage <= 1}
|
|
195
195
|
onClick={() => setCurrentPage((prev) => prev - 1)}
|
|
196
196
|
>
|
|
197
197
|
Previous
|
|
198
198
|
</button>
|
|
199
199
|
<button
|
|
200
|
-
className="hover:bg-myblue-dark border-myblue bg-myblue
|
|
200
|
+
className="hover:bg-myblue-dark rounded-r-md border border-myblue bg-myblue px-4 py-2 text-sm font-bold text-white disabled:cursor-not-allowed disabled:opacity-50"
|
|
201
201
|
disabled={currentPage >= totalPages}
|
|
202
202
|
onClick={() => setCurrentPage((prev) => prev + 1)}
|
|
203
203
|
>
|
|
@@ -176,7 +176,7 @@ const StoryKeepHeader = ({
|
|
|
176
176
|
<div className="flex flex-wrap items-center justify-center gap-2 text-sm">
|
|
177
177
|
<button
|
|
178
178
|
onClick={handleSave}
|
|
179
|
-
className="
|
|
179
|
+
className="rounded-md bg-myblue px-3.5 py-1.5 font-action font-bold text-white hover:bg-myorange"
|
|
180
180
|
>
|
|
181
181
|
Save
|
|
182
182
|
</button>
|
|
@@ -24,7 +24,7 @@ const SettingsPanel = ({ availableCodeHooks }: SettingsPanelProps) => {
|
|
|
24
24
|
|
|
25
25
|
return (
|
|
26
26
|
<div
|
|
27
|
-
className="
|
|
27
|
+
className="flex h-full min-w-96 max-w-sm flex-col rounded-xl bg-mydarkgrey bg-opacity-20 p-0.5 backdrop-blur-sm"
|
|
28
28
|
style={
|
|
29
29
|
{
|
|
30
30
|
animation: window.matchMedia(
|
|
@@ -50,10 +50,10 @@ const SettingsPanel = ({ availableCodeHooks }: SettingsPanelProps) => {
|
|
|
50
50
|
{/* Header Section (fixed height) */}
|
|
51
51
|
<div className="flex-shrink-0 p-1.5 md:p-2.5">
|
|
52
52
|
<div className="mb-4 flex items-center justify-between">
|
|
53
|
-
<h3 className="text-
|
|
53
|
+
<h3 className="text-lg font-bold text-myblue">{panelTitle}</h3>
|
|
54
54
|
<button
|
|
55
55
|
onClick={() => settingsPanelStore.set(null)}
|
|
56
|
-
className="hover:text-myblue
|
|
56
|
+
className="text-gray-500 hover:text-myblue"
|
|
57
57
|
>
|
|
58
58
|
<XMarkIcon className="h-5 w-5" />
|
|
59
59
|
</button>
|
|
@@ -27,7 +27,7 @@ const AddElementsPanel = ({
|
|
|
27
27
|
className={`rounded px-3 py-1.5 text-sm font-bold transition-colors ${
|
|
28
28
|
currentToolAddMode === mode
|
|
29
29
|
? 'bg-myblue text-white'
|
|
30
|
-
: 'text-myblue hover:bg-myblue/10
|
|
30
|
+
: 'border border-gray-200 bg-white text-myblue hover:bg-myblue/10'
|
|
31
31
|
}`}
|
|
32
32
|
>
|
|
33
33
|
{toolAddModeTitles[mode]}
|
|
@@ -52,13 +52,13 @@ const StoryKeepToolBar = () => {
|
|
|
52
52
|
return (
|
|
53
53
|
<div className="w-full max-w-lg rounded-lg border border-gray-200 bg-white p-4 shadow-xl">
|
|
54
54
|
<div className="mb-4 flex items-center justify-between">
|
|
55
|
-
<h3 className="text-
|
|
55
|
+
<h3 className="text-lg font-bold text-myblue">Add Elements</h3>
|
|
56
56
|
<button
|
|
57
57
|
onClick={() => {
|
|
58
58
|
ctx.toolModeValStore.set({ value: `text` });
|
|
59
59
|
toggleSettingsPanel;
|
|
60
60
|
}}
|
|
61
|
-
className="hover:text-myblue
|
|
61
|
+
className="text-gray-500 hover:text-myblue"
|
|
62
62
|
>
|
|
63
63
|
<XMarkIcon className="h-5 w-5" />
|
|
64
64
|
</button>
|
|
@@ -135,15 +135,15 @@ const StoryKeepToolMode = ({ isContext }: StoryKeepToolModeProps) => {
|
|
|
135
135
|
id="mainNav"
|
|
136
136
|
ref={navRef}
|
|
137
137
|
className={classNames(
|
|
138
|
-
'
|
|
138
|
+
'fixed bottom-0 left-0 right-0 z-102 bg-mywhite p-1.5 md:bottom-2 md:right-auto md:h-auto md:w-auto md:rounded-r-xl md:border md:border-black/5 md:bg-mywhite/70 md:p-2 md:shadow-lg md:backdrop-blur-sm',
|
|
139
139
|
isSelectionActive ? `outline-dashed outline-4 outline-red-600` : ``
|
|
140
140
|
)}
|
|
141
141
|
>
|
|
142
142
|
{!isSelectionActive && (
|
|
143
143
|
<div className="flex flex-wrap justify-around gap-4 py-0.5 md:flex-nowrap md:justify-start md:gap-4 md:p-0">
|
|
144
|
-
<div className="text-
|
|
144
|
+
<div className="text-center text-sm font-bold text-mydarkgrey">
|
|
145
145
|
mode:
|
|
146
|
-
<div className="
|
|
146
|
+
<div className="pt-1.5 text-center font-action text-xs text-myblue">
|
|
147
147
|
{currentToolMode.title}
|
|
148
148
|
</div>
|
|
149
149
|
</div>
|
|
@@ -164,9 +164,9 @@ const StoryKeepToolMode = ({ isContext }: StoryKeepToolModeProps) => {
|
|
|
164
164
|
|
|
165
165
|
{isSelectionActive && (
|
|
166
166
|
<div className="flex items-center justify-around gap-x-2 py-0.5 md:justify-start md:p-0">
|
|
167
|
-
<div className="text-
|
|
167
|
+
<div className="text-center text-sm font-bold text-mydarkgrey">
|
|
168
168
|
mode:
|
|
169
|
-
<div className="
|
|
169
|
+
<div className="pt-1.5 text-center font-action text-xs text-myblue">
|
|
170
170
|
Action Pending
|
|
171
171
|
</div>
|
|
172
172
|
</div>
|
|
@@ -58,9 +58,9 @@ const AddPanePanel = ({
|
|
|
58
58
|
};
|
|
59
59
|
|
|
60
60
|
return (
|
|
61
|
-
<div className="add-pane-panel-wrapper border-
|
|
61
|
+
<div className="add-pane-panel-wrapper border-b-2 border-t-2 border-dotted border-mydarkgrey">
|
|
62
62
|
{isExpanded && (
|
|
63
|
-
<div className="border-
|
|
63
|
+
<div className="border-t border-dotted border-mylightgrey">
|
|
64
64
|
<div className="group flex w-full flex-wrap items-center gap-2 px-1.5 pb-0.5 pt-1.5">
|
|
65
65
|
<button
|
|
66
66
|
onClick={() => {
|
|
@@ -112,7 +112,7 @@ const AddPanePanel = ({
|
|
|
112
112
|
isContextPane={isContextPane}
|
|
113
113
|
/>
|
|
114
114
|
) : isExpanded ? (
|
|
115
|
-
<div className="border-
|
|
115
|
+
<div className="border-t border-dotted border-mylightgrey">
|
|
116
116
|
<div className="group flex w-full flex-wrap items-center gap-2 px-1.5 pb-0.5 pt-1.5">
|
|
117
117
|
<div className={`flex flex-wrap gap-1 transition-opacity`}>
|
|
118
118
|
<button
|
|
@@ -157,13 +157,13 @@ const AddPanePanel = ({
|
|
|
157
157
|
</div>
|
|
158
158
|
</div>
|
|
159
159
|
) : (
|
|
160
|
-
<div className="
|
|
160
|
+
<div className="flex border-t border-dotted border-mylightgrey p-0.5">
|
|
161
161
|
<button
|
|
162
162
|
onClick={() => setIsExpanded(true)}
|
|
163
163
|
title="Insert Pane here"
|
|
164
164
|
className="group w-full text-gray-500"
|
|
165
165
|
>
|
|
166
|
-
<div className="text-mydarkgrey
|
|
166
|
+
<div className="rounded-md text-mydarkgrey transition-colors duration-150 ease-in-out hover:bg-myoffwhite hover:bg-opacity-50 hover:mix-blend-difference">
|
|
167
167
|
<PlusCircleIcon className="mx-auto h-8 w-8" />
|
|
168
168
|
</div>
|
|
169
169
|
</button>
|
|
@@ -307,7 +307,7 @@ const AddPaneBreakPanel = ({
|
|
|
307
307
|
</button>
|
|
308
308
|
|
|
309
309
|
<div className="ml-4 flex flex-wrap items-center gap-x-6 gap-y-2 py-2">
|
|
310
|
-
<div className="
|
|
310
|
+
<div className="flex-none rounded px-2 py-2.5 font-action text-sm font-bold text-cyan-700 shadow-sm">
|
|
311
311
|
+ Visual Break
|
|
312
312
|
</div>
|
|
313
313
|
|
|
@@ -327,7 +327,7 @@ const AddPaneBreakPanel = ({
|
|
|
327
327
|
composite={true}
|
|
328
328
|
>
|
|
329
329
|
<div className="relative">
|
|
330
|
-
<div className="relative w-full cursor-default overflow-hidden rounded-lg bg-white text-left shadow-md focus:outline-none focus-visible:ring-2 focus-visible:ring-white/75 focus-visible:ring-offset-2 focus-visible:ring-offset-teal-300
|
|
330
|
+
<div className="sm:text-sm relative w-full cursor-default overflow-hidden rounded-lg bg-white text-left shadow-md focus:outline-none focus-visible:ring-2 focus-visible:ring-white/75 focus-visible:ring-offset-2 focus-visible:ring-offset-teal-300">
|
|
331
331
|
<Combobox.Input
|
|
332
332
|
autoComplete="off"
|
|
333
333
|
className="w-full border-none py-2 pl-3 pr-10 text-sm leading-5 text-gray-900 focus:ring-0"
|
|
@@ -341,7 +341,7 @@ const AddPaneBreakPanel = ({
|
|
|
341
341
|
</Combobox.Trigger>
|
|
342
342
|
</div>
|
|
343
343
|
|
|
344
|
-
<Combobox.Content className="absolute z-50 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black/5 focus:outline-none
|
|
344
|
+
<Combobox.Content className="sm:text-sm absolute z-50 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black/5 focus:outline-none">
|
|
345
345
|
{collection.items.length === 0 ? (
|
|
346
346
|
<div className="relative cursor-default select-none px-4 py-2 text-gray-700">
|
|
347
347
|
Nothing found.
|
|
@@ -369,7 +369,7 @@ const AddPaneBreakPanel = ({
|
|
|
369
369
|
</div>
|
|
370
370
|
</div>
|
|
371
371
|
|
|
372
|
-
<h3 className="
|
|
372
|
+
<h3 className="px-3.5 pb-1.5 pt-4 font-action text-xl font-bold text-black">
|
|
373
373
|
Click on a break design to use:
|
|
374
374
|
</h3>
|
|
375
375
|
|
|
@@ -390,7 +390,7 @@ const AddPaneBreakPanel = ({
|
|
|
390
390
|
onClick={() =>
|
|
391
391
|
handleVisualBreakInsert(preview.variant, nodeId, first)
|
|
392
392
|
}
|
|
393
|
-
className={`
|
|
393
|
+
className={`group relative w-full cursor-pointer rounded-sm bg-mywhite shadow-inner transition-all duration-200 ${
|
|
394
394
|
preview.snapshot
|
|
395
395
|
? 'hover:outline-solid hover:outline hover:outline-4'
|
|
396
396
|
: ''
|
|
@@ -434,7 +434,7 @@ const AddPaneBreakPanel = ({
|
|
|
434
434
|
className="w-full"
|
|
435
435
|
/>
|
|
436
436
|
</div>
|
|
437
|
-
<div className="
|
|
437
|
+
<div className="absolute bottom-0 left-0 right-0 rounded-t-md bg-mydarkgrey px-2 py-1 text-sm text-white group-hover:bg-myblack">
|
|
438
438
|
{preview.variant}
|
|
439
439
|
</div>
|
|
440
440
|
</>
|
|
@@ -182,7 +182,7 @@ const AddPaneCodeHookPanel = ({
|
|
|
182
182
|
← Go Back
|
|
183
183
|
</button>
|
|
184
184
|
|
|
185
|
-
<div className="
|
|
185
|
+
<div className="flex-none rounded px-2 py-2.5 font-action text-sm font-bold text-cyan-700 shadow-sm">
|
|
186
186
|
Add Code Hook
|
|
187
187
|
</div>
|
|
188
188
|
</div>
|
|
@@ -212,7 +212,7 @@ const AddPaneCodeHookPanel = ({
|
|
|
212
212
|
</Combobox.Trigger>
|
|
213
213
|
</div>
|
|
214
214
|
|
|
215
|
-
<Combobox.Content className="absolute z-50 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none
|
|
215
|
+
<Combobox.Content className="sm:text-sm absolute z-50 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none">
|
|
216
216
|
{collection.items.length === 0 ? (
|
|
217
217
|
<div className="relative cursor-default select-none px-4 py-2 text-gray-700">
|
|
218
218
|
Nothing found.
|
|
@@ -621,7 +621,7 @@ const AddPaneNewPanel = ({
|
|
|
621
621
|
|
|
622
622
|
const renderInitialStep = () => (
|
|
623
623
|
<div className="p-4">
|
|
624
|
-
<h3 className="
|
|
624
|
+
<h3 className="mb-4 text-center font-action text-xl font-bold text-gray-800">
|
|
625
625
|
How would you like to design your new pane?
|
|
626
626
|
</h3>
|
|
627
627
|
<div className="grid grid-cols-1 gap-4 md:grid-cols-3">
|
|
@@ -854,7 +854,7 @@ const AddPaneNewPanel = ({
|
|
|
854
854
|
>
|
|
855
855
|
← Go Back
|
|
856
856
|
</button>
|
|
857
|
-
<div className="
|
|
857
|
+
<div className="ml-4 flex-none rounded px-2 py-2.5 font-action text-sm font-bold text-cyan-700 shadow-sm">
|
|
858
858
|
+ Design New Pane
|
|
859
859
|
</div>
|
|
860
860
|
</div>
|
|
@@ -309,7 +309,7 @@ const AddPaneReUsePanel = ({
|
|
|
309
309
|
← Go Back
|
|
310
310
|
</button>
|
|
311
311
|
|
|
312
|
-
<div className="
|
|
312
|
+
<div className="flex-none rounded px-2 py-2.5 font-action text-sm font-bold text-cyan-700 shadow-sm">
|
|
313
313
|
Re-use Existing Pane
|
|
314
314
|
</div>
|
|
315
315
|
</div>
|
|
@@ -340,7 +340,7 @@ const AddPaneReUsePanel = ({
|
|
|
340
340
|
</div>
|
|
341
341
|
</div>
|
|
342
342
|
|
|
343
|
-
<h3 className="
|
|
343
|
+
<h3 className="px-3.5 pb-1.5 pt-4 font-action text-xl font-bold text-black">
|
|
344
344
|
Click on a pane to reuse:
|
|
345
345
|
</h3>
|
|
346
346
|
|
|
@@ -349,7 +349,7 @@ const AddPaneReUsePanel = ({
|
|
|
349
349
|
<div key={preview.pane.id} className="flex flex-col items-center">
|
|
350
350
|
<div
|
|
351
351
|
onClick={() => handlePaneReuse(preview.pane.id, nodeId, first)}
|
|
352
|
-
className="hover:outline-solid
|
|
352
|
+
className="hover:outline-solid group relative w-full cursor-pointer rounded-sm bg-mywhite shadow-inner transition-all duration-200 hover:outline hover:outline-4"
|
|
353
353
|
style={{
|
|
354
354
|
...(!preview.snapshot ? { minHeight: '75px' } : {}),
|
|
355
355
|
}}
|
|
@@ -391,7 +391,7 @@ const AddPaneReUsePanel = ({
|
|
|
391
391
|
</div>
|
|
392
392
|
)}
|
|
393
393
|
</div>
|
|
394
|
-
<p className="
|
|
394
|
+
<p className="mt-2 w-full break-words bg-mydarkgrey p-2 text-center text-sm text-white">
|
|
395
395
|
{preview.pane.title}
|
|
396
396
|
</p>
|
|
397
397
|
</div>
|
|
@@ -163,8 +163,8 @@ export const AiRestylePaneModal = ({
|
|
|
163
163
|
open={isAiRestyleModalOpen}
|
|
164
164
|
onOpenChange={(e) => !e.open && handleClose()}
|
|
165
165
|
>
|
|
166
|
-
<Dialog.Backdrop className="
|
|
167
|
-
<Dialog.Positioner className="
|
|
166
|
+
<Dialog.Backdrop className="fixed inset-0 z-103 bg-black bg-opacity-75" />
|
|
167
|
+
<Dialog.Positioner className="fixed inset-0 z-104 flex items-center justify-center p-4">
|
|
168
168
|
<Dialog.Content className="flex max-w-2xl flex-col rounded-lg bg-white shadow-2xl">
|
|
169
169
|
<div className="flex items-center justify-between border-b p-4">
|
|
170
170
|
<h3 className="flex items-center gap-2 text-lg font-bold">
|
|
@@ -109,7 +109,7 @@ const ConfigPanePanel = ({ nodeId }: ConfigPanePanelProps) => {
|
|
|
109
109
|
|
|
110
110
|
return (
|
|
111
111
|
<div
|
|
112
|
-
className="border-
|
|
112
|
+
className="border-t border-dotted border-mylightgrey bg-myoffwhite"
|
|
113
113
|
style={bgColorStyles}
|
|
114
114
|
>
|
|
115
115
|
<div className="group w-full rounded-t-md px-1.5 pb-0.5 pt-1.5">
|
|
@@ -182,7 +182,7 @@ const PaneImpressionPanel = ({ nodeId, setMode }: PaneImpressionPanelProps) => {
|
|
|
182
182
|
|
|
183
183
|
<div className="space-y-4">
|
|
184
184
|
<div>
|
|
185
|
-
<label className="text-
|
|
185
|
+
<label className="block text-sm text-mydarkgrey">Title</label>
|
|
186
186
|
<input
|
|
187
187
|
type="text"
|
|
188
188
|
value={formData.title}
|
|
@@ -194,7 +194,7 @@ const PaneImpressionPanel = ({ nodeId, setMode }: PaneImpressionPanelProps) => {
|
|
|
194
194
|
</div>
|
|
195
195
|
|
|
196
196
|
<div>
|
|
197
|
-
<label className="text-
|
|
197
|
+
<label className="block text-sm text-mydarkgrey">Body</label>
|
|
198
198
|
<textarea
|
|
199
199
|
value={formData.body}
|
|
200
200
|
onChange={(e) => handleInputChange('body', e.target.value)}
|
|
@@ -205,7 +205,7 @@ const PaneImpressionPanel = ({ nodeId, setMode }: PaneImpressionPanelProps) => {
|
|
|
205
205
|
</div>
|
|
206
206
|
|
|
207
207
|
<div>
|
|
208
|
-
<label className="text-
|
|
208
|
+
<label className="block text-sm text-mydarkgrey">Button Text</label>
|
|
209
209
|
<input
|
|
210
210
|
type="text"
|
|
211
211
|
value={formData.buttonText}
|
|
@@ -217,7 +217,7 @@ const PaneImpressionPanel = ({ nodeId, setMode }: PaneImpressionPanelProps) => {
|
|
|
217
217
|
</div>
|
|
218
218
|
|
|
219
219
|
<div className="relative">
|
|
220
|
-
<label className="text-
|
|
220
|
+
<label className="block text-sm text-mydarkgrey">Actions</label>
|
|
221
221
|
<ActionBuilderField
|
|
222
222
|
value={formData.actionsLisp}
|
|
223
223
|
onChange={(value) => handleInputChange('actionsLisp', value)}
|
|
@@ -354,8 +354,8 @@ export const RestylePaneModal = () => {
|
|
|
354
354
|
modal={true}
|
|
355
355
|
preventScroll={true}
|
|
356
356
|
>
|
|
357
|
-
<Dialog.Backdrop className="
|
|
358
|
-
<Dialog.Positioner className="
|
|
357
|
+
<Dialog.Backdrop className="fixed inset-0 z-103 bg-black bg-opacity-75" />
|
|
358
|
+
<Dialog.Positioner className="fixed inset-0 z-104 flex items-center justify-center">
|
|
359
359
|
<Dialog.Content
|
|
360
360
|
ref={contentRef}
|
|
361
361
|
className="flex max-w-5xl flex-col rounded-lg bg-white shadow-2xl xl:max-w-7xl"
|
|
@@ -450,7 +450,7 @@ export const RestylePaneModal = () => {
|
|
|
450
450
|
<p className="text-gray-500">No designs found.</p>
|
|
451
451
|
</div>
|
|
452
452
|
) : (
|
|
453
|
-
<div className="grid grid-cols-1 gap-6 md:grid-cols-2
|
|
453
|
+
<div className="lg:grid-cols-3 grid grid-cols-1 gap-6 md:grid-cols-2">
|
|
454
454
|
{mergedTemplates.map(({ template }) => (
|
|
455
455
|
<TemplatePreviewItem
|
|
456
456
|
key={template.id}
|
|
@@ -78,7 +78,7 @@ export const AiDesignStep = ({
|
|
|
78
78
|
</div>
|
|
79
79
|
</div>
|
|
80
80
|
|
|
81
|
-
<div className="grid grid-cols-1 gap-4
|
|
81
|
+
<div className="sm:grid-cols-2 grid grid-cols-1 gap-4">
|
|
82
82
|
<div>
|
|
83
83
|
<ColorPickerCombo
|
|
84
84
|
title="Base Color (Optional)"
|
|
@@ -141,7 +141,7 @@ export const AiDesignStep = ({
|
|
|
141
141
|
onChange={(e) => updateField('additionalNotes', e.target.value)}
|
|
142
142
|
placeholder="Enter additional notes..."
|
|
143
143
|
rows={3}
|
|
144
|
-
className="block w-full rounded-md border-gray-300 p-2 shadow-sm focus:border-cyan-500 focus:ring-cyan-500
|
|
144
|
+
className="sm:text-sm block w-full rounded-md border-gray-300 p-2 shadow-sm focus:border-cyan-500 focus:ring-cyan-500"
|
|
145
145
|
/>
|
|
146
146
|
</div>
|
|
147
147
|
</div>
|
|
@@ -154,7 +154,7 @@ export const CopyInputStep = ({
|
|
|
154
154
|
onChange={(e) => onTopicChange(e.target.value)}
|
|
155
155
|
placeholder="e.g. a SaaS product for team collaboration"
|
|
156
156
|
rows={2}
|
|
157
|
-
className="block w-full rounded-md border-gray-300 p-2 shadow-sm focus:border-cyan-500 focus:ring-cyan-500
|
|
157
|
+
className="sm:text-sm block w-full rounded-md border-gray-300 p-2 shadow-sm focus:border-cyan-500 focus:ring-cyan-500"
|
|
158
158
|
/>
|
|
159
159
|
</div>
|
|
160
160
|
|
|
@@ -178,7 +178,7 @@ export const CopyInputStep = ({
|
|
|
178
178
|
value={promptValue}
|
|
179
179
|
onChange={(e) => onPromptValueChange(e.target.value)}
|
|
180
180
|
rows={4}
|
|
181
|
-
className="block w-full rounded-md border-gray-300 p-2 shadow-sm focus:border-cyan-500 focus:ring-cyan-500
|
|
181
|
+
className="sm:text-sm block w-full rounded-md border-gray-300 p-2 shadow-sm focus:border-cyan-500 focus:ring-cyan-500"
|
|
182
182
|
/>
|
|
183
183
|
<p className="mt-1 text-xs text-gray-500">
|
|
184
184
|
Leave [topic] as it will be replaced with your prompt.
|
|
@@ -194,7 +194,7 @@ export const CopyInputStep = ({
|
|
|
194
194
|
value={overallPrompt}
|
|
195
195
|
onChange={(e) => onOverallPromptChange(e.target.value)}
|
|
196
196
|
rows={3}
|
|
197
|
-
className="block w-full rounded-md border-gray-300 p-2 shadow-sm focus:border-cyan-500 focus:ring-cyan-500
|
|
197
|
+
className="sm:text-sm block w-full rounded-md border-gray-300 p-2 shadow-sm focus:border-cyan-500 focus:ring-cyan-500"
|
|
198
198
|
/>
|
|
199
199
|
</div>
|
|
200
200
|
<div className="grid grid-cols-1 gap-6 md:grid-cols-2">
|
|
@@ -206,7 +206,7 @@ export const CopyInputStep = ({
|
|
|
206
206
|
value={promptValueCol1}
|
|
207
207
|
onChange={(e) => onPromptValueCol1Change(e.target.value)}
|
|
208
208
|
rows={4}
|
|
209
|
-
className="block w-full rounded-md border-gray-300 p-2 shadow-sm focus:border-cyan-500 focus:ring-cyan-500
|
|
209
|
+
className="sm:text-sm block w-full rounded-md border-gray-300 p-2 shadow-sm focus:border-cyan-500 focus:ring-cyan-500"
|
|
210
210
|
/>
|
|
211
211
|
</div>
|
|
212
212
|
<div>
|
|
@@ -217,7 +217,7 @@ export const CopyInputStep = ({
|
|
|
217
217
|
value={promptValueCol2}
|
|
218
218
|
onChange={(e) => onPromptValueCol2Change(e.target.value)}
|
|
219
219
|
rows={4}
|
|
220
|
-
className="block w-full rounded-md border-gray-300 p-2 shadow-sm focus:border-cyan-500 focus:ring-cyan-500
|
|
220
|
+
className="sm:text-sm block w-full rounded-md border-gray-300 p-2 shadow-sm focus:border-cyan-500 focus:ring-cyan-500"
|
|
221
221
|
/>
|
|
222
222
|
</div>
|
|
223
223
|
</div>
|
|
@@ -115,7 +115,7 @@ const StyleBreakPanel = ({ node, parentNode }: BasePanelProps) => {
|
|
|
115
115
|
<div className="space-y-4">
|
|
116
116
|
{collections.length > 1 && (
|
|
117
117
|
<div className="space-y-2">
|
|
118
|
-
<span className="text-
|
|
118
|
+
<span className="block text-sm text-mydarkgrey">Collection</span>
|
|
119
119
|
<PaneBreakCollectionSelector
|
|
120
120
|
selectedCollection={settings.collection}
|
|
121
121
|
onChange={(collection) =>
|
|
@@ -126,7 +126,7 @@ const StyleBreakPanel = ({ node, parentNode }: BasePanelProps) => {
|
|
|
126
126
|
)}
|
|
127
127
|
|
|
128
128
|
<div className="space-y-2">
|
|
129
|
-
<span className="text-
|
|
129
|
+
<span className="block text-sm text-mydarkgrey">
|
|
130
130
|
Shapes (for each screen size)
|
|
131
131
|
</span>
|
|
132
132
|
<div className="space-y-1">
|
|
@@ -310,7 +310,7 @@ const StyleCodeHookPanel = ({
|
|
|
310
310
|
<div className="space-y-4">
|
|
311
311
|
{/* Target ComboBox */}
|
|
312
312
|
<div className="max-w-md">
|
|
313
|
-
<label className="text-
|
|
313
|
+
<label className="block text-sm text-mydarkgrey">Target</label>
|
|
314
314
|
<div className="relative mt-1">
|
|
315
315
|
<Combobox.Root
|
|
316
316
|
collection={collection}
|
|
@@ -336,7 +336,7 @@ const StyleCodeHookPanel = ({
|
|
|
336
336
|
/>
|
|
337
337
|
<Combobox.Trigger className="absolute inset-y-0 right-0 flex items-center pr-2">
|
|
338
338
|
<ChevronUpDownIcon
|
|
339
|
-
className="
|
|
339
|
+
className="h-5 w-5 text-mydarkgrey"
|
|
340
340
|
aria-hidden="true"
|
|
341
341
|
/>
|
|
342
342
|
</Combobox.Trigger>
|
|
@@ -345,9 +345,9 @@ const StyleCodeHookPanel = ({
|
|
|
345
345
|
|
|
346
346
|
<Portal>
|
|
347
347
|
<Combobox.Positioner style={{ zIndex: 1002 }}>
|
|
348
|
-
<Combobox.Content className="z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none
|
|
348
|
+
<Combobox.Content className="sm:text-sm z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none">
|
|
349
349
|
{collection.items.length === 0 ? (
|
|
350
|
-
<div className="
|
|
350
|
+
<div className="relative cursor-default select-none px-4 py-2 text-mydarkgrey">
|
|
351
351
|
Nothing found.
|
|
352
352
|
</div>
|
|
353
353
|
) : (
|
|
@@ -381,7 +381,7 @@ const StyleCodeHookPanel = ({
|
|
|
381
381
|
|
|
382
382
|
{/* Options section */}
|
|
383
383
|
<div>
|
|
384
|
-
<label className="text-
|
|
384
|
+
<label className="block text-sm text-mydarkgrey">Options</label>
|
|
385
385
|
{localOptions.map((option, index) => (
|
|
386
386
|
<div key={index} className="mt-2 flex items-center space-x-2">
|
|
387
387
|
<input
|
|
@@ -436,7 +436,7 @@ const StyleCodeHookPanel = ({
|
|
|
436
436
|
))}
|
|
437
437
|
<button
|
|
438
438
|
onClick={addOption}
|
|
439
|
-
className="
|
|
439
|
+
className="mt-2 flex items-center text-myblue hover:text-cyan-600"
|
|
440
440
|
>
|
|
441
441
|
<PlusIcon className="mr-1 h-5 w-5" />
|
|
442
442
|
Add Option
|
|
@@ -254,7 +254,7 @@ const StyleElementPanel = ({
|
|
|
254
254
|
<div className="space-y-4">
|
|
255
255
|
{node.wordCarouselPayload && (
|
|
256
256
|
<div className="pb-2">
|
|
257
|
-
<div className="
|
|
257
|
+
<div className="w-fit rounded border border-slate-200 p-2 text-sm text-myblack hover:bg-mygreen/20">
|
|
258
258
|
<div
|
|
259
259
|
title="Configure Word Carousel"
|
|
260
260
|
className="flex items-center gap-2 font-bold"
|
|
@@ -279,7 +279,7 @@ const StyleElementPanel = ({
|
|
|
279
279
|
{shouldShowQuickStyles ? (
|
|
280
280
|
<div className="space-y-6">
|
|
281
281
|
<div className="space-y-2">
|
|
282
|
-
<h3 className="text-
|
|
282
|
+
<h3 className="text-sm font-bold text-mydarkgrey">
|
|
283
283
|
Quick Style Selection
|
|
284
284
|
</h3>
|
|
285
285
|
<p className="text-xs text-gray-500">
|
|
@@ -313,7 +313,7 @@ const StyleElementPanel = ({
|
|
|
313
313
|
<div className="border-t border-gray-100 pt-4">
|
|
314
314
|
<button
|
|
315
315
|
onClick={() => setShowPresets(false)}
|
|
316
|
-
className="
|
|
316
|
+
className="w-full text-center text-sm text-myblue underline hover:text-black"
|
|
317
317
|
>
|
|
318
318
|
Apply your own styles manually
|
|
319
319
|
</button>
|
|
@@ -340,14 +340,14 @@ const StyleElementPanel = ({
|
|
|
340
340
|
)}
|
|
341
341
|
|
|
342
342
|
<div className="space-y-4">
|
|
343
|
-
<ul className="
|
|
343
|
+
<ul className="flex flex-wrap gap-x-4 gap-y-1 text-mydarkgrey">
|
|
344
344
|
<li>
|
|
345
345
|
<em>Actions:</em>
|
|
346
346
|
</li>
|
|
347
347
|
<li>
|
|
348
348
|
<button
|
|
349
349
|
onClick={() => handleClickAdd()}
|
|
350
|
-
className="text-myblue
|
|
350
|
+
className="font-bold text-myblue underline hover:text-black"
|
|
351
351
|
>
|
|
352
352
|
Add Style
|
|
353
353
|
</button>
|