astro-tractstack 2.0.46 → 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 -9
- 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/constants.ts +4 -0
- 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/actions/preParse_Action.ts +2 -8
- package/templates/src/utils/compositor/nodesHelper.ts +1 -1
- package/templates/src/utils/compositor/typeGuards.ts +3 -3
|
@@ -288,7 +288,7 @@ const StyleWidgetPanel = ({
|
|
|
288
288
|
<h3 className="text-xl font-bold">Setup {widgetName}</h3>
|
|
289
289
|
|
|
290
290
|
<div className="pb-2">
|
|
291
|
-
<div className="
|
|
291
|
+
<div className="w-fit rounded border border-slate-200 p-2 text-sm text-myblack hover:bg-mygreen/20">
|
|
292
292
|
<div
|
|
293
293
|
title="Configure this Widget"
|
|
294
294
|
className="flex items-center gap-2 font-bold"
|
|
@@ -322,14 +322,14 @@ const StyleWidgetPanel = ({
|
|
|
322
322
|
)}
|
|
323
323
|
|
|
324
324
|
<div className="space-y-4">
|
|
325
|
-
<ul className="
|
|
325
|
+
<ul className="flex flex-wrap gap-x-4 gap-y-1 text-mydarkgrey">
|
|
326
326
|
<li>
|
|
327
327
|
<em>Actions:</em>
|
|
328
328
|
</li>
|
|
329
329
|
<li>
|
|
330
330
|
<button
|
|
331
331
|
onClick={handleImgAdd}
|
|
332
|
-
className="text-myblue
|
|
332
|
+
className="font-bold text-myblue underline hover:text-black"
|
|
333
333
|
>
|
|
334
334
|
Add Style
|
|
335
335
|
</button>
|
|
@@ -366,14 +366,14 @@ const StyleWidgetPanel = ({
|
|
|
366
366
|
)}
|
|
367
367
|
|
|
368
368
|
<div className="space-y-4">
|
|
369
|
-
<ul className="
|
|
369
|
+
<ul className="flex flex-wrap gap-x-4 gap-y-1 text-mydarkgrey">
|
|
370
370
|
<li>
|
|
371
371
|
<em>Actions:</em>
|
|
372
372
|
</li>
|
|
373
373
|
<li>
|
|
374
374
|
<button
|
|
375
375
|
onClick={handleContainerAdd}
|
|
376
|
-
className="text-myblue
|
|
376
|
+
className="font-bold text-myblue underline hover:text-black"
|
|
377
377
|
>
|
|
378
378
|
Add Style
|
|
379
379
|
</button>
|
|
@@ -407,14 +407,14 @@ const StyleWidgetPanel = ({
|
|
|
407
407
|
)}
|
|
408
408
|
|
|
409
409
|
<div className="space-y-4">
|
|
410
|
-
<ul className="
|
|
410
|
+
<ul className="flex flex-wrap gap-x-4 gap-y-1 text-mydarkgrey">
|
|
411
411
|
<li>
|
|
412
412
|
<em>Actions:</em>
|
|
413
413
|
</li>
|
|
414
414
|
<li>
|
|
415
415
|
<button
|
|
416
416
|
onClick={handleOuterAdd}
|
|
417
|
-
className="text-myblue
|
|
417
|
+
className="font-bold text-myblue underline hover:text-black"
|
|
418
418
|
>
|
|
419
419
|
Add Style
|
|
420
420
|
</button>
|
|
@@ -214,9 +214,9 @@ const StyleWidgetPanelAdd = ({ node, parentNode, childId }: BasePanelProps) => {
|
|
|
214
214
|
id="show-advanced"
|
|
215
215
|
checked={showAdvanced}
|
|
216
216
|
onChange={(e) => setShowAdvanced(e.target.checked)}
|
|
217
|
-
className="
|
|
217
|
+
className="h-4 w-4 rounded border-mydarkgrey text-cyan-600 focus:ring-cyan-600"
|
|
218
218
|
/>
|
|
219
|
-
<label htmlFor="show-advanced" className="text-
|
|
219
|
+
<label htmlFor="show-advanced" className="text-sm text-mydarkgrey">
|
|
220
220
|
Show Advanced Styles
|
|
221
221
|
</label>
|
|
222
222
|
</div>
|
|
@@ -238,13 +238,13 @@ const StyleWidgetPanelAdd = ({ node, parentNode, childId }: BasePanelProps) => {
|
|
|
238
238
|
<Combobox.Control ref={comboboxRef}>
|
|
239
239
|
<div className="relative">
|
|
240
240
|
<Combobox.Input
|
|
241
|
-
className="
|
|
241
|
+
className="w-full rounded-md border-mydarkgrey py-2 pl-3 pr-10 text-xl shadow-sm focus:border-myblue focus:ring-myblue"
|
|
242
242
|
onChange={(e) => setQuery(e.target.value)}
|
|
243
243
|
placeholder="Search styles..."
|
|
244
244
|
/>
|
|
245
245
|
<Combobox.Trigger className="absolute inset-y-0 right-0 flex items-center pr-2">
|
|
246
246
|
<ChevronUpDownIcon
|
|
247
|
-
className="
|
|
247
|
+
className="h-5 w-5 text-mydarkgrey"
|
|
248
248
|
aria-hidden="true"
|
|
249
249
|
/>
|
|
250
250
|
</Combobox.Trigger>
|
|
@@ -255,7 +255,7 @@ const StyleWidgetPanelAdd = ({ node, parentNode, childId }: BasePanelProps) => {
|
|
|
255
255
|
<Combobox.Positioner style={{ zIndex: 1002 }}>
|
|
256
256
|
<Combobox.Content className="max-h-64 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none">
|
|
257
257
|
{collection.items.length === 0 ? (
|
|
258
|
-
<div className="
|
|
258
|
+
<div className="relative cursor-default select-none px-4 py-2 text-mydarkgrey">
|
|
259
259
|
Nothing found.
|
|
260
260
|
</div>
|
|
261
261
|
) : (
|
|
@@ -291,7 +291,7 @@ const StyleWidgetPanelAdd = ({ node, parentNode, childId }: BasePanelProps) => {
|
|
|
291
291
|
<button
|
|
292
292
|
key={style.key}
|
|
293
293
|
onClick={() => handleSelect({ value: [style.key] })}
|
|
294
|
-
className="
|
|
294
|
+
className="inline-flex items-center rounded-md bg-slate-50 px-3 py-2 text-sm text-black transition-colors duration-200 hover:bg-mygreen/20"
|
|
295
295
|
>
|
|
296
296
|
<span className="font-bold">{style.title}</span>
|
|
297
297
|
</button>
|
|
@@ -126,7 +126,7 @@ const StyleWidgetRemovePanel = ({
|
|
|
126
126
|
<span className="ml-1">from {elementTypeTitle}?</span>
|
|
127
127
|
</h3>
|
|
128
128
|
<div className="space-y-4 rounded bg-slate-50 p-6">
|
|
129
|
-
<ul className="
|
|
129
|
+
<ul className="flex flex-wrap gap-x-4 gap-y-1 text-mydarkgrey">
|
|
130
130
|
<li>
|
|
131
131
|
<em>Are you sure?</em>
|
|
132
132
|
</li>
|
|
@@ -269,16 +269,16 @@ const StyleWidgetUpdatePanel = ({
|
|
|
269
269
|
type="checkbox"
|
|
270
270
|
checked={isOverridden}
|
|
271
271
|
onChange={(e) => handleToggleOverride(e.target.checked)}
|
|
272
|
-
className="border-mydarkgrey text-myorange focus:ring-myorange
|
|
272
|
+
className="h-4 w-4 rounded border-mydarkgrey text-myorange focus:ring-myorange"
|
|
273
273
|
/>
|
|
274
|
-
<span className="text-
|
|
274
|
+
<span className="text-sm text-mydarkgrey">
|
|
275
275
|
{isOverridden
|
|
276
276
|
? 'Override mode. Styling this element only.'
|
|
277
277
|
: 'You are in quick styles mode. Click to override this element.'}
|
|
278
278
|
</span>
|
|
279
279
|
</div>
|
|
280
280
|
|
|
281
|
-
<div className="
|
|
281
|
+
<div className="my-3 flex flex-col gap-y-2.5 text-xl text-mydarkgrey">
|
|
282
282
|
<ViewportComboBox
|
|
283
283
|
value={mobileValue}
|
|
284
284
|
onFinalChange={handleFinalChange}
|
|
@@ -132,7 +132,7 @@ const StyleWordCarouselPanel = ({ node }: StyleWordCarouselPanelProps) => {
|
|
|
132
132
|
Words (one per line)
|
|
133
133
|
</label>
|
|
134
134
|
<textarea
|
|
135
|
-
className="
|
|
135
|
+
className="w-full rounded border border-gray-300 p-2 text-sm focus:border-myblue focus:ring-1 focus:ring-myblue"
|
|
136
136
|
rows={5}
|
|
137
137
|
value={words}
|
|
138
138
|
onChange={(e) => handleWordsChange(e.target.value)}
|
|
@@ -90,7 +90,7 @@ const SandboxUpgradeNotice = ({ onClose }: { onClose: () => void }) => (
|
|
|
90
90
|
<div className="mt-6 flex justify-center gap-3">
|
|
91
91
|
<a
|
|
92
92
|
href="/sandbox/register"
|
|
93
|
-
className="
|
|
93
|
+
className="rounded-md bg-myblue px-4 py-2 font-bold text-white hover:bg-myorange"
|
|
94
94
|
>
|
|
95
95
|
Sign Up Now
|
|
96
96
|
</a>
|
|
@@ -138,7 +138,7 @@ export function SaveToLibraryModal({
|
|
|
138
138
|
|
|
139
139
|
return (
|
|
140
140
|
<div
|
|
141
|
-
className="
|
|
141
|
+
className="fixed inset-0 z-105 flex items-center justify-center bg-black bg-opacity-75"
|
|
142
142
|
onClick={saveState === 'idle' ? onClose : undefined}
|
|
143
143
|
>
|
|
144
144
|
<div
|
|
@@ -165,7 +165,7 @@ export function SaveToLibraryModal({
|
|
|
165
165
|
id="category-select"
|
|
166
166
|
value={selectedCategory}
|
|
167
167
|
onChange={(e) => setSelectedCategory(e.target.value)}
|
|
168
|
-
className="mt-1 block w-full rounded-md border-gray-300 py-2 pl-3 pr-10 text-base focus:border-cyan-500 focus:outline-none focus:ring-cyan-500
|
|
168
|
+
className="sm:text-sm mt-1 block w-full rounded-md border-gray-300 py-2 pl-3 pr-10 text-base focus:border-cyan-500 focus:outline-none focus:ring-cyan-500"
|
|
169
169
|
>
|
|
170
170
|
{categories.map((cat) => (
|
|
171
171
|
<option key={cat} value={cat}>
|
|
@@ -291,7 +291,7 @@ export const StylesMemory = ({ node, parentNode }: StylesMemoryProps) => {
|
|
|
291
291
|
disabled={!hasMemory || isMatchingMemory}
|
|
292
292
|
className={`transition-colors ${
|
|
293
293
|
!hasMemory || isMatchingMemory
|
|
294
|
-
? '
|
|
294
|
+
? 'cursor-not-allowed text-mylightgrey'
|
|
295
295
|
: 'text-mydarkgrey hover:text-black'
|
|
296
296
|
}`}
|
|
297
297
|
title={
|
|
@@ -134,7 +134,7 @@ const StoryFragmentConfigPanel = ({
|
|
|
134
134
|
// Set SEO ready if description exists and is not empty
|
|
135
135
|
const hasValidDescription = Boolean(
|
|
136
136
|
storyFragmentContent?.description &&
|
|
137
|
-
|
|
137
|
+
storyFragmentContent.description.trim() !== ''
|
|
138
138
|
);
|
|
139
139
|
|
|
140
140
|
setIsSEOReady(hasValidDescription);
|
|
@@ -271,20 +271,20 @@ const StoryFragmentMenuPanel = ({
|
|
|
271
271
|
>
|
|
272
272
|
<div className="relative">
|
|
273
273
|
<Combobox.Input
|
|
274
|
-
className="
|
|
274
|
+
className="w-full rounded-md border border-mydarkgrey py-2 pl-3 pr-10 text-sm shadow-sm focus:border-myblue focus:ring-myblue"
|
|
275
275
|
onChange={(e) => setQuery(e.target.value)}
|
|
276
276
|
placeholder="Select a menu..."
|
|
277
277
|
/>
|
|
278
278
|
<Combobox.Trigger className="absolute inset-y-0 right-0 flex items-center pr-2">
|
|
279
279
|
<ChevronUpDownIcon
|
|
280
|
-
className="
|
|
280
|
+
className="h-5 w-5 text-mydarkgrey"
|
|
281
281
|
aria-hidden="true"
|
|
282
282
|
/>
|
|
283
283
|
</Combobox.Trigger>
|
|
284
284
|
</div>
|
|
285
|
-
<Combobox.Content className="absolute 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
|
|
285
|
+
<Combobox.Content className="sm:text-sm absolute 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">
|
|
286
286
|
{filteredMenus.length === 0 && query !== '' ? (
|
|
287
|
-
<div className="
|
|
287
|
+
<div className="relative cursor-default select-none px-4 py-2 text-mydarkgrey">
|
|
288
288
|
Nothing found.
|
|
289
289
|
</div>
|
|
290
290
|
) : (
|
|
@@ -295,7 +295,7 @@ const StoryFragmentMenuPanel = ({
|
|
|
295
295
|
className="menu-item relative cursor-default select-none py-2 pl-10 pr-4 text-gray-900"
|
|
296
296
|
>
|
|
297
297
|
<span className="block truncate">{menu.title}</span>
|
|
298
|
-
<span className="menu-indicator
|
|
298
|
+
<span className="menu-indicator absolute inset-y-0 left-0 flex items-center pl-3 text-myblue">
|
|
299
299
|
<CheckIcon className="h-5 w-5" aria-hidden="true" />
|
|
300
300
|
</span>
|
|
301
301
|
</Combobox.Item>
|
|
@@ -382,7 +382,7 @@ function BunnyWidget({ node, onUpdate }: BunnyWidgetProps) {
|
|
|
382
382
|
</Dialog.Title>
|
|
383
383
|
</div>
|
|
384
384
|
<div className="flex-1 overflow-y-auto p-4">
|
|
385
|
-
<div className="grid grid-cols-1 gap-4
|
|
385
|
+
<div className="lg:grid-cols-2 grid grid-cols-1 gap-4">
|
|
386
386
|
<div className="rounded-lg border border-gray-200 bg-white shadow-sm">
|
|
387
387
|
<div className="flex items-center justify-between border-b border-gray-200 p-3">
|
|
388
388
|
<h3 className="text-base font-bold text-gray-900">
|
|
@@ -433,7 +433,7 @@ function BunnyWidget({ node, onUpdate }: BunnyWidgetProps) {
|
|
|
433
433
|
onBlur={() =>
|
|
434
434
|
handleUpdate(videoId, title, chapters)
|
|
435
435
|
}
|
|
436
|
-
className={`mt-1 block w-full rounded-md border-gray-300 px-2 py-1 shadow-sm
|
|
436
|
+
className={`sm:text-sm mt-1 block w-full rounded-md border-gray-300 px-2 py-1 shadow-sm ${formErrors[`title-${index}`] ? 'border-red-300' : 'focus:border-cyan-500 focus:ring-cyan-500'}`}
|
|
437
437
|
/>
|
|
438
438
|
</div>
|
|
439
439
|
<div>
|
|
@@ -451,7 +451,7 @@ function BunnyWidget({ node, onUpdate }: BunnyWidgetProps) {
|
|
|
451
451
|
onBlur={() =>
|
|
452
452
|
handleUpdate(videoId, title, chapters)
|
|
453
453
|
}
|
|
454
|
-
className="mt-1 block w-full rounded-md border-gray-300 px-2 py-1 shadow-sm focus:border-cyan-500 focus:ring-cyan-500
|
|
454
|
+
className="sm:text-sm mt-1 block w-full rounded-md border-gray-300 px-2 py-1 shadow-sm focus:border-cyan-500 focus:ring-cyan-500"
|
|
455
455
|
/>
|
|
456
456
|
</div>
|
|
457
457
|
<div className="grid grid-cols-2 gap-2">
|
|
@@ -472,7 +472,7 @@ function BunnyWidget({ node, onUpdate }: BunnyWidgetProps) {
|
|
|
472
472
|
onBlur={() =>
|
|
473
473
|
handleUpdate(videoId, title, chapters)
|
|
474
474
|
}
|
|
475
|
-
className={`mt-1 block w-full rounded-md border-gray-300 px-2 py-1 shadow-sm
|
|
475
|
+
className={`sm:text-sm mt-1 block w-full rounded-md border-gray-300 px-2 py-1 shadow-sm ${formErrors[`startTime-${index}`] || formErrors[`overlap-${index}`] ? 'border-red-300' : 'focus:border-cyan-500 focus:ring-cyan-500'}`}
|
|
476
476
|
/>
|
|
477
477
|
</div>
|
|
478
478
|
<div>
|
|
@@ -491,7 +491,7 @@ function BunnyWidget({ node, onUpdate }: BunnyWidgetProps) {
|
|
|
491
491
|
onBlur={() =>
|
|
492
492
|
handleUpdate(videoId, title, chapters)
|
|
493
493
|
}
|
|
494
|
-
className={`mt-1 block w-full rounded-md border-gray-300 px-2 py-1 shadow-sm
|
|
494
|
+
className={`sm:text-sm mt-1 block w-full rounded-md border-gray-300 px-2 py-1 shadow-sm ${formErrors[`endTime-${index}`] || formErrors[`overlap-${index}`] ? 'border-red-300' : 'focus:border-cyan-500 focus:ring-cyan-500'}`}
|
|
495
495
|
/>
|
|
496
496
|
</div>
|
|
497
497
|
</div>
|
|
@@ -621,7 +621,7 @@ export default function InteractiveDisclosureWidget({
|
|
|
621
621
|
<h3 className="font-bold text-gray-800">
|
|
622
622
|
Widget Styles
|
|
623
623
|
</h3>
|
|
624
|
-
<div className="grid grid-cols-1 gap-4
|
|
624
|
+
<div className="sm:grid-cols-3 grid grid-cols-1 gap-4">
|
|
625
625
|
<div>
|
|
626
626
|
<ColorPickerCombo
|
|
627
627
|
title="Background Color"
|
|
@@ -124,7 +124,7 @@ function SignupWidget({ node, onUpdate }: SignupWidgetProps) {
|
|
|
124
124
|
>
|
|
125
125
|
<div className="relative mt-1">
|
|
126
126
|
<Combobox.Input
|
|
127
|
-
className="
|
|
127
|
+
className="w-full rounded-md border border-gray-300 py-2 pl-3 pr-10 text-sm shadow-sm focus:border-myblue focus:ring-myblue"
|
|
128
128
|
placeholder="Select contact persona..."
|
|
129
129
|
defaultValue={selectedPersonaTitle}
|
|
130
130
|
/>
|
|
@@ -135,7 +135,7 @@ function SignupWidget({ node, onUpdate }: SignupWidgetProps) {
|
|
|
135
135
|
/>
|
|
136
136
|
</Combobox.Trigger>
|
|
137
137
|
</div>
|
|
138
|
-
<Combobox.Content className="absolute 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
|
|
138
|
+
<Combobox.Content className="sm:text-sm absolute 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">
|
|
139
139
|
{collection.items.length === 0 ? (
|
|
140
140
|
<div className="relative cursor-default select-none px-4 py-2 text-gray-700">
|
|
141
141
|
Nothing found.
|
|
@@ -151,7 +151,7 @@ function SignupWidget({ node, onUpdate }: SignupWidgetProps) {
|
|
|
151
151
|
<span className="block text-sm text-gray-500">
|
|
152
152
|
{persona.description}
|
|
153
153
|
</span>
|
|
154
|
-
<span className="persona-indicator
|
|
154
|
+
<span className="persona-indicator absolute inset-y-0 left-0 flex items-center pl-3 text-myblue">
|
|
155
155
|
<CheckIcon className="h-5 w-5" aria-hidden="true" />
|
|
156
156
|
</span>
|
|
157
157
|
</Combobox.Item>
|
|
@@ -109,11 +109,11 @@ function TimeSelectModal({
|
|
|
109
109
|
value={manualTime}
|
|
110
110
|
onChange={handleManualTimeChange}
|
|
111
111
|
placeholder="Enter time in seconds"
|
|
112
|
-
className="
|
|
112
|
+
className="rounded border px-3 py-2 focus:outline-none focus:ring-2 focus:ring-myorange"
|
|
113
113
|
/>
|
|
114
114
|
<button
|
|
115
115
|
onClick={handleSeekToTime}
|
|
116
|
-
className="bg-myblue
|
|
116
|
+
className="rounded bg-myblue px-4 py-2 text-white hover:bg-blue-600"
|
|
117
117
|
>
|
|
118
118
|
Seek
|
|
119
119
|
</button>
|
|
@@ -128,7 +128,7 @@ function TimeSelectModal({
|
|
|
128
128
|
</button>
|
|
129
129
|
<button
|
|
130
130
|
onClick={handleGetCurrentTime}
|
|
131
|
-
className="bg-myorange
|
|
131
|
+
className="rounded bg-myorange px-4 py-2 text-white hover:bg-orange-600"
|
|
132
132
|
>
|
|
133
133
|
Use Current Time {currentTime > 0 ? `(${currentTime}s)` : ''}
|
|
134
134
|
</button>
|
|
@@ -258,7 +258,7 @@ export default function ActionBuilderTimeSelector({
|
|
|
258
258
|
>
|
|
259
259
|
<div className="relative">
|
|
260
260
|
<Combobox.Input
|
|
261
|
-
className="
|
|
261
|
+
className="w-full rounded-md border border-gray-300 px-3 py-2 shadow-sm focus:border-myblue focus:ring-myblue"
|
|
262
262
|
placeholder={placeholder}
|
|
263
263
|
autoComplete="off"
|
|
264
264
|
/>
|
|
@@ -270,7 +270,7 @@ export default function ActionBuilderTimeSelector({
|
|
|
270
270
|
</Combobox.Trigger>
|
|
271
271
|
</div>
|
|
272
272
|
|
|
273
|
-
<Combobox.Content className="absolute 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
|
|
273
|
+
<Combobox.Content className="sm:text-sm absolute 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">
|
|
274
274
|
{availableVideos.length > 0 ? (
|
|
275
275
|
collection.items.length === 0 ? (
|
|
276
276
|
<div className="relative cursor-default select-none px-4 py-2 text-gray-700">
|
|
@@ -326,14 +326,14 @@ export default function ActionBuilderTimeSelector({
|
|
|
326
326
|
{value !== '' && (
|
|
327
327
|
<button
|
|
328
328
|
onClick={() => handleTimeSelect(value)}
|
|
329
|
-
className="bg-myblue
|
|
329
|
+
className="rounded bg-myblue px-4 py-2 text-white hover:bg-blue-600"
|
|
330
330
|
>
|
|
331
331
|
Start at {value}s
|
|
332
332
|
</button>
|
|
333
333
|
)}
|
|
334
334
|
<button
|
|
335
335
|
onClick={() => setShowModal(true)}
|
|
336
|
-
className="bg-myorange
|
|
336
|
+
className="rounded bg-myorange px-4 py-2 text-white hover:bg-orange-600"
|
|
337
337
|
>
|
|
338
338
|
Find Time
|
|
339
339
|
</button>
|
|
@@ -265,9 +265,9 @@ const ArtpackImage = ({ paneId, onUpdate }: ArtpackImageProps) => {
|
|
|
265
265
|
></div>
|
|
266
266
|
<button
|
|
267
267
|
onClick={handleRemoveImage}
|
|
268
|
-
className="
|
|
268
|
+
className="absolute right-2 top-2 rounded-full bg-white p-1 shadow-md hover:bg-mylightgrey"
|
|
269
269
|
>
|
|
270
|
-
<XMarkIcon className="
|
|
270
|
+
<XMarkIcon className="h-4 w-4 text-mydarkgrey" />
|
|
271
271
|
</button>
|
|
272
272
|
</div>
|
|
273
273
|
)}
|
|
@@ -275,7 +275,7 @@ const ArtpackImage = ({ paneId, onUpdate }: ArtpackImageProps) => {
|
|
|
275
275
|
<div className="flex items-center justify-between">
|
|
276
276
|
<button
|
|
277
277
|
onClick={() => setIsModalOpen(true)}
|
|
278
|
-
className="
|
|
278
|
+
className="flex items-center text-sm text-myblue hover:text-cyan-600"
|
|
279
279
|
>
|
|
280
280
|
<SwatchIcon className="mr-1 h-4 w-4" />
|
|
281
281
|
{previewUrl ? 'Change Artpack Image' : 'Use Artpack Image'}
|
|
@@ -300,7 +300,7 @@ const ArtpackImage = ({ paneId, onUpdate }: ArtpackImageProps) => {
|
|
|
300
300
|
onChange={() =>
|
|
301
301
|
handleObjectFitChange(fit as 'cover' | 'contain' | 'fill')
|
|
302
302
|
}
|
|
303
|
-
className="
|
|
303
|
+
className="h-4 w-4 border-gray-300 text-myblue focus:ring-myblue"
|
|
304
304
|
/>
|
|
305
305
|
<span className="ml-2 text-sm capitalize text-gray-700">
|
|
306
306
|
{fit}
|
|
@@ -328,7 +328,7 @@ const ArtpackImage = ({ paneId, onUpdate }: ArtpackImageProps) => {
|
|
|
328
328
|
e.target.checked
|
|
329
329
|
)
|
|
330
330
|
}
|
|
331
|
-
className="
|
|
331
|
+
className="h-4 w-4 rounded border-gray-300 text-myblue focus:ring-myblue"
|
|
332
332
|
/>
|
|
333
333
|
<span className="ml-2 text-sm capitalize text-gray-700">
|
|
334
334
|
{viewport}
|
|
@@ -367,7 +367,7 @@ const ArtpackImage = ({ paneId, onUpdate }: ArtpackImageProps) => {
|
|
|
367
367
|
) : (
|
|
368
368
|
<div className="space-y-6">
|
|
369
369
|
<div>
|
|
370
|
-
<label className="
|
|
370
|
+
<label className="mb-2 block text-sm font-bold text-mydarkgrey">
|
|
371
371
|
Select Collection
|
|
372
372
|
</label>
|
|
373
373
|
<Combobox.Root
|
|
@@ -382,20 +382,20 @@ const ArtpackImage = ({ paneId, onUpdate }: ArtpackImageProps) => {
|
|
|
382
382
|
composite={true}
|
|
383
383
|
>
|
|
384
384
|
<div className="relative">
|
|
385
|
-
<div className="
|
|
385
|
+
<div className="relative w-full cursor-default overflow-hidden rounded-lg border border-gray-300 bg-white text-left shadow-sm focus-within:border-myblue focus-within:ring-1 focus-within:ring-myblue">
|
|
386
386
|
<Combobox.Input
|
|
387
|
-
className="
|
|
387
|
+
className="w-full border-none py-2 pl-3 pr-10 text-sm leading-5 text-mydarkgrey focus:ring-0"
|
|
388
388
|
placeholder="Select a collection..."
|
|
389
389
|
autoComplete="off"
|
|
390
390
|
/>
|
|
391
391
|
<Combobox.Trigger className="absolute inset-y-0 right-0 flex items-center pr-2">
|
|
392
392
|
<ChevronUpDownIcon
|
|
393
|
-
className="
|
|
393
|
+
className="h-5 w-5 text-mydarkgrey"
|
|
394
394
|
aria-hidden="true"
|
|
395
395
|
/>
|
|
396
396
|
</Combobox.Trigger>
|
|
397
397
|
</div>
|
|
398
|
-
<Combobox.Content className="absolute 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
|
|
398
|
+
<Combobox.Content className="sm:text-sm absolute 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">
|
|
399
399
|
{collection.items.length === 0 ? (
|
|
400
400
|
<div className="relative cursor-default select-none px-4 py-2 text-gray-700">
|
|
401
401
|
No collections found.
|
|
@@ -405,7 +405,7 @@ const ArtpackImage = ({ paneId, onUpdate }: ArtpackImageProps) => {
|
|
|
405
405
|
<Combobox.Item
|
|
406
406
|
key={item}
|
|
407
407
|
item={item}
|
|
408
|
-
className="collection-item
|
|
408
|
+
className="collection-item relative cursor-default select-none py-2 pl-10 pr-4 text-mydarkgrey"
|
|
409
409
|
>
|
|
410
410
|
<span className="block truncate">{item}</span>
|
|
411
411
|
<span className="collection-indicator absolute inset-y-0 left-0 flex items-center pl-3 text-cyan-600">
|
|
@@ -426,10 +426,10 @@ const ArtpackImage = ({ paneId, onUpdate }: ArtpackImageProps) => {
|
|
|
426
426
|
selectedCollection &&
|
|
427
427
|
availableImages.length > 0 ? (
|
|
428
428
|
<div>
|
|
429
|
-
<label className="
|
|
429
|
+
<label className="mb-2 block text-sm font-bold text-mydarkgrey">
|
|
430
430
|
Select Image from {selectedCollection}
|
|
431
431
|
</label>
|
|
432
|
-
<div className="grid grid-cols-2 gap-4 p-2
|
|
432
|
+
<div className="sm:grid-cols-3 grid grid-cols-2 gap-4 p-2 md:grid-cols-4">
|
|
433
433
|
{availableImages.map((image) => (
|
|
434
434
|
<div
|
|
435
435
|
key={image}
|
|
@@ -451,7 +451,7 @@ const ArtpackImage = ({ paneId, onUpdate }: ArtpackImageProps) => {
|
|
|
451
451
|
className="aspect-video w-full object-cover"
|
|
452
452
|
/>
|
|
453
453
|
<div className="absolute inset-0 flex items-center justify-center bg-black bg-opacity-0 transition-opacity hover:bg-opacity-20">
|
|
454
|
-
<span className="
|
|
454
|
+
<span className="max-w-full truncate rounded bg-white bg-opacity-80 px-2 py-1 text-xs text-mydarkgrey">
|
|
455
455
|
{image}
|
|
456
456
|
</span>
|
|
457
457
|
</div>
|
|
@@ -466,7 +466,7 @@ const ArtpackImage = ({ paneId, onUpdate }: ArtpackImageProps) => {
|
|
|
466
466
|
) : null}
|
|
467
467
|
|
|
468
468
|
<div className="mt-4 flex justify-end space-x-3">
|
|
469
|
-
<Dialog.CloseTrigger className="bg-mylightgrey
|
|
469
|
+
<Dialog.CloseTrigger className="rounded bg-mylightgrey px-4 py-2 text-mydarkgrey hover:bg-gray-300">
|
|
470
470
|
Cancel
|
|
471
471
|
</Dialog.CloseTrigger>
|
|
472
472
|
</div>
|
|
@@ -338,9 +338,9 @@ const BackgroundImage = ({ paneId, onUpdate }: BackgroundImageProps) => {
|
|
|
338
338
|
<button
|
|
339
339
|
onClick={handleRemoveImage}
|
|
340
340
|
disabled={isProcessing}
|
|
341
|
-
className="
|
|
341
|
+
className="absolute right-2 top-2 rounded-full bg-white p-1 shadow-md hover:bg-mylightgrey disabled:opacity-50"
|
|
342
342
|
>
|
|
343
|
-
<XMarkIcon className="
|
|
343
|
+
<XMarkIcon className="h-4 w-4 text-mydarkgrey" />
|
|
344
344
|
</button>
|
|
345
345
|
</div>
|
|
346
346
|
) : null}
|
|
@@ -350,7 +350,7 @@ const BackgroundImage = ({ paneId, onUpdate }: BackgroundImageProps) => {
|
|
|
350
350
|
<button
|
|
351
351
|
onClick={() => fileInputRef.current?.click()}
|
|
352
352
|
disabled={isProcessing}
|
|
353
|
-
className={`
|
|
353
|
+
className={`flex items-center text-sm text-myblue hover:text-cyan-600`}
|
|
354
354
|
>
|
|
355
355
|
<ArrowUpTrayIcon className="mr-1 h-4 w-4" />
|
|
356
356
|
{isProcessing
|
|
@@ -362,7 +362,7 @@ const BackgroundImage = ({ paneId, onUpdate }: BackgroundImageProps) => {
|
|
|
362
362
|
|
|
363
363
|
<button
|
|
364
364
|
onClick={() => setIsSelectingFile(true)}
|
|
365
|
-
className="
|
|
365
|
+
className="flex items-center text-sm text-myblue hover:text-cyan-600"
|
|
366
366
|
>
|
|
367
367
|
<FolderIcon className="mr-1 h-4 w-4" />
|
|
368
368
|
Select Image
|
|
@@ -399,7 +399,7 @@ const BackgroundImage = ({ paneId, onUpdate }: BackgroundImageProps) => {
|
|
|
399
399
|
onChange={() =>
|
|
400
400
|
handleObjectFitChange(fit as 'cover' | 'contain' | 'fill')
|
|
401
401
|
}
|
|
402
|
-
className="
|
|
402
|
+
className="h-4 w-4 border-gray-300 text-myblue focus:ring-myblue"
|
|
403
403
|
/>
|
|
404
404
|
<span className="ml-2 text-sm capitalize text-gray-700">
|
|
405
405
|
{fit}
|
|
@@ -427,7 +427,7 @@ const BackgroundImage = ({ paneId, onUpdate }: BackgroundImageProps) => {
|
|
|
427
427
|
e.target.checked
|
|
428
428
|
)
|
|
429
429
|
}
|
|
430
|
-
className="
|
|
430
|
+
className="h-4 w-4 rounded border-gray-300 text-myblue focus:ring-myblue"
|
|
431
431
|
/>
|
|
432
432
|
<span className="ml-2 text-sm capitalize text-gray-700">
|
|
433
433
|
{viewport}
|
|
@@ -450,7 +450,7 @@ const BackgroundImage = ({ paneId, onUpdate }: BackgroundImageProps) => {
|
|
|
450
450
|
value={localAltDescription}
|
|
451
451
|
onChange={(e) => setLocalAltDescription(e.target.value)}
|
|
452
452
|
onBlur={handleAltDescriptionBlur}
|
|
453
|
-
className="
|
|
453
|
+
className="block w-full rounded-md border border-mylightgrey px-3 py-2 text-sm focus:border-myblue focus:outline-none focus:ring-1 focus:ring-myblue"
|
|
454
454
|
placeholder="Describe this image for accessibility"
|
|
455
455
|
/>
|
|
456
456
|
</div>
|
|
@@ -479,20 +479,20 @@ const BackgroundImage = ({ paneId, onUpdate }: BackgroundImageProps) => {
|
|
|
479
479
|
<Combobox.Control className="relative">
|
|
480
480
|
<Combobox.Input
|
|
481
481
|
placeholder="Search files..."
|
|
482
|
-
className="
|
|
482
|
+
className="block w-full rounded-md border border-mylightgrey px-3 py-2 pr-10 text-sm focus:border-myblue focus:outline-none focus:ring-1 focus:ring-myblue"
|
|
483
483
|
/>
|
|
484
484
|
<Combobox.Trigger className="absolute inset-y-0 right-0 flex items-center pr-2">
|
|
485
|
-
<ChevronUpDownIcon className="
|
|
485
|
+
<ChevronUpDownIcon className="h-5 w-5 text-mydarkgrey" />
|
|
486
486
|
</Combobox.Trigger>
|
|
487
487
|
</Combobox.Control>
|
|
488
488
|
|
|
489
489
|
<Combobox.Positioner>
|
|
490
|
-
<Combobox.Content className="
|
|
490
|
+
<Combobox.Content className="max-h-60 w-full overflow-auto rounded-md border border-mylightgrey bg-white shadow-lg">
|
|
491
491
|
{collection.items.map((file) => (
|
|
492
492
|
<Combobox.Item
|
|
493
493
|
key={file.id}
|
|
494
494
|
item={file}
|
|
495
|
-
className="file-item
|
|
495
|
+
className="file-item relative cursor-pointer select-none px-3 py-2 text-sm hover:bg-mylightgrey"
|
|
496
496
|
>
|
|
497
497
|
<div className="flex items-center justify-between">
|
|
498
498
|
<div className="flex flex-1 items-center">
|
|
@@ -511,13 +511,13 @@ const BackgroundImage = ({ paneId, onUpdate }: BackgroundImageProps) => {
|
|
|
511
511
|
{file.altDescription || file.filename}
|
|
512
512
|
</div>
|
|
513
513
|
{file.altDescription && (
|
|
514
|
-
<div className="text-
|
|
514
|
+
<div className="text-xs text-mydarkgrey">
|
|
515
515
|
{file.filename}
|
|
516
516
|
</div>
|
|
517
517
|
)}
|
|
518
518
|
</div>
|
|
519
519
|
</div>
|
|
520
|
-
<CheckIcon className="file-indicator
|
|
520
|
+
<CheckIcon className="file-indicator h-4 w-4 flex-shrink-0 text-myblue" />
|
|
521
521
|
</div>
|
|
522
522
|
</Combobox.Item>
|
|
523
523
|
))}
|
|
@@ -163,7 +163,7 @@ const BackgroundImageWrapper = ({ paneId }: BackgroundImageWrapperProps) => {
|
|
|
163
163
|
allowNull={true}
|
|
164
164
|
/>
|
|
165
165
|
{!bgNode && (
|
|
166
|
-
<div className="flex flex-col gap-4
|
|
166
|
+
<div className="sm:flex-row flex flex-col gap-4">
|
|
167
167
|
<div className="flex-1">
|
|
168
168
|
<h4 className="mb-2 text-sm font-bold text-gray-700">
|
|
169
169
|
Background Image
|
|
@@ -204,7 +204,7 @@ const BackgroundImageWrapper = ({ paneId }: BackgroundImageWrapperProps) => {
|
|
|
204
204
|
Position
|
|
205
205
|
</Select.Label>
|
|
206
206
|
<Select.Control>
|
|
207
|
-
<Select.Trigger className="
|
|
207
|
+
<Select.Trigger className="flex w-full items-center justify-between rounded-md border border-gray-300 bg-white px-3 py-2 text-sm shadow-sm focus:border-myblue focus:outline-none focus:ring-1 focus:ring-myblue">
|
|
208
208
|
<Select.ValueText
|
|
209
209
|
className="capitalize"
|
|
210
210
|
placeholder="Select a position"
|
|
@@ -249,7 +249,7 @@ const BackgroundImageWrapper = ({ paneId }: BackgroundImageWrapperProps) => {
|
|
|
249
249
|
value={s}
|
|
250
250
|
checked={size === s}
|
|
251
251
|
onChange={() => handleSizeChange(s)}
|
|
252
|
-
className="
|
|
252
|
+
className="h-4 w-4 border-gray-300 text-myblue focus:ring-myblue"
|
|
253
253
|
/>
|
|
254
254
|
<span className="ml-2 text-sm capitalize text-gray-700">
|
|
255
255
|
{s === 'narrow'
|