@linktr.ee/linkapp 0.0.36 → 0.0.37

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 CHANGED
@@ -190,6 +190,9 @@ export default defineConfig({
190
190
  title: 'My LinkApp Settings',
191
191
  uses_url: true,
192
192
  featured_chin_position: 'below',
193
+ featured_head_allow_unlocked_aspect_ratio: true,
194
+ sheet_behavior: 'expandGeneric',
195
+ featured_head_click_behavior: 'expand',
193
196
  elements: [
194
197
  {
195
198
  type: 'text',
@@ -1,15 +1,15 @@
1
- import { StrictMode } from 'react'
2
- import { createRoot } from 'react-dom/client'
3
- import Preview from './Preview'
4
- import './preview.css'
1
+ import { StrictMode } from "react";
2
+ import { createRoot } from "react-dom/client";
3
+ import Preview from "./preview";
4
+ import "./preview.css";
5
5
 
6
- const rootElement = document.getElementById('root')
6
+ const rootElement = document.getElementById("root");
7
7
  if (!rootElement) {
8
- throw new Error('Root element not found')
8
+ throw new Error("Root element not found");
9
9
  }
10
10
 
11
11
  createRoot(rootElement).render(
12
12
  <StrictMode>
13
13
  <Preview />
14
- </StrictMode>
15
- )
14
+ </StrictMode>,
15
+ );
@@ -0,0 +1,417 @@
1
+ import { Portal } from "@radix-ui/react-portal";
2
+ import IframeResizer, { type IFrameComponent } from "iframe-resizer-react";
3
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
4
+ import { SettingsPreview } from "../components/settings-preview";
5
+ import {
6
+ Dialog,
7
+ DialogContent,
8
+ DialogHeader,
9
+ DialogOverlay,
10
+ DialogTitle,
11
+ } from "../components/ui/dialog";
12
+ import {
13
+ Tabs,
14
+ TabsContent,
15
+ TabsList,
16
+ TabsTrigger,
17
+ } from "../components/ui/tabs";
18
+ import { cn, renderCssVariables } from "../lib/utils";
19
+ import { THEME_PRESETS } from "../shared/theme-presets";
20
+
21
+ function Chin({ title }: { title?: string }) {
22
+ if (!title) return null;
23
+
24
+ return (
25
+ <div
26
+ data-testid="NewLinkChin"
27
+ data-animation-target="link-chin"
28
+ className="relative flex min-h-16 flex-col justify-center gap-[1px] py-2 tracking-[-0.2px] items-center px-8"
29
+ >
30
+ <div className="w-full overflow-hidden overflow-ellipsis text-balance text-[14px] font-medium leading-[1.2] text-[var(--button-style-text)] sm:text-[16px] line-clamp-2 text-center">
31
+ {title}
32
+ </div>
33
+ </div>
34
+ );
35
+ }
36
+
37
+ export default function Preview() {
38
+ // Initialize state from localStorage
39
+ const [selectedTab, setSelectedTab] = useState<
40
+ "sheet" | "featured" | "settings"
41
+ >(() => {
42
+ const saved = localStorage.getItem("linkapp-preview-tab");
43
+ return (saved as "sheet" | "featured" | "settings") || "sheet";
44
+ });
45
+ const [selectedTheme, setSelectedTheme] = useState<
46
+ keyof typeof THEME_PRESETS
47
+ >(() => {
48
+ const saved = localStorage.getItem("linkapp-preview-theme");
49
+ return (saved as keyof typeof THEME_PRESETS) || "default";
50
+ });
51
+ const [selectedGroupLayoutOption, setSelectedGroupLayoutOption] = useState<
52
+ string | undefined
53
+ >(() => {
54
+ const saved = localStorage.getItem("linkapp-preview-groupLayoutOption");
55
+ return saved || undefined;
56
+ });
57
+
58
+ // Chin configuration
59
+ const chinPosition = __SETTINGS_CONFIG__?.featured_chin_position;
60
+ const chinTitle = __PREVIEW_PROPS__?.linkTitle as string | undefined;
61
+ const isOverlay =
62
+ chinPosition === "overlayAbove" || chinPosition === "overlayBelow";
63
+
64
+ // Popup dialog state
65
+ const [isPopupOpen, setIsPopupOpen] = useState(false);
66
+
67
+ // Generate unique IDs for iframes using timestamp
68
+ const sheetIframeId = useMemo(() => `preview-iframe-sheet-${Date.now()}`, []);
69
+ const featuredIframeId = useMemo(
70
+ () => `preview-iframe-featured-${Date.now()}`,
71
+ [],
72
+ );
73
+ const popupIframeId = useMemo(() => `preview-iframe-popup-${Date.now()}`, []);
74
+
75
+ // Save selected tab to localStorage
76
+ useEffect(() => {
77
+ localStorage.setItem("linkapp-preview-tab", selectedTab);
78
+ }, [selectedTab]);
79
+
80
+ // Save selected theme to localStorage
81
+ useEffect(() => {
82
+ localStorage.setItem("linkapp-preview-theme", selectedTheme);
83
+ }, [selectedTheme]);
84
+
85
+ // Save selected groupLayoutOption to localStorage
86
+ useEffect(() => {
87
+ if (selectedGroupLayoutOption) {
88
+ localStorage.setItem(
89
+ "linkapp-preview-groupLayoutOption",
90
+ selectedGroupLayoutOption,
91
+ );
92
+ } else {
93
+ localStorage.removeItem("linkapp-preview-groupLayoutOption");
94
+ }
95
+ }, [selectedGroupLayoutOption]);
96
+
97
+ // Handle iframe resize events
98
+ const handleResized = useCallback(
99
+ (ev: {
100
+ iframe: IFrameComponent;
101
+ height: number;
102
+ width: number;
103
+ type: string;
104
+ }): void => {
105
+ // IframeResizer automatically handles height adjustments
106
+ // This callback is available for debugging if needed
107
+ },
108
+ [],
109
+ );
110
+
111
+ // Handle postMessage from featured iframe for EXPAND_LINK_APP
112
+ const handleMessage = useCallback((event: MessageEvent) => {
113
+ if (
114
+ event.data &&
115
+ typeof event.data === "object" &&
116
+ event.data.source === "linkapp" &&
117
+ event.data.type === "EXPAND_LINK_APP"
118
+ ) {
119
+ setIsPopupOpen(true);
120
+ }
121
+ }, []);
122
+
123
+ // Add message listener
124
+ useEffect(() => {
125
+ window.addEventListener("message", handleMessage);
126
+ return () => window.removeEventListener("message", handleMessage);
127
+ }, [handleMessage]);
128
+
129
+ const renderedCssVariables = useMemo(() => {
130
+ const themeVariables =
131
+ THEME_PRESETS[selectedTheme] || THEME_PRESETS.default;
132
+ return renderCssVariables(themeVariables.variables);
133
+ }, [selectedTheme]);
134
+
135
+ return (
136
+ <>
137
+ <style>{`:root {
138
+ ${renderedCssVariables}
139
+ }`}</style>
140
+
141
+ <div
142
+ className={cn("min-h-screen", {
143
+ "bg-black/50": selectedTab === "sheet",
144
+ "bg-linktree-frame": selectedTab === "featured",
145
+ })}
146
+ id="preview"
147
+ >
148
+ <Tabs
149
+ value={selectedTab}
150
+ onValueChange={(value) =>
151
+ setSelectedTab(value as "sheet" | "featured" | "settings")
152
+ }
153
+ >
154
+ <Portal>
155
+ <div
156
+ className="fixed top-0 left-0 right-0 p-4 flex justify-center gap-4 bg-background border-b"
157
+ style={{ zIndex: 1000000 }}
158
+ >
159
+ <TabsList>
160
+ <TabsTrigger value="sheet">Sheet</TabsTrigger>
161
+ <TabsTrigger value="featured">Featured</TabsTrigger>
162
+ <TabsTrigger value="settings">Settings</TabsTrigger>
163
+ </TabsList>
164
+
165
+ {/* Theme Switcher */}
166
+ <div className="flex items-center gap-2">
167
+ <label htmlFor="theme-select" className="text-sm font-medium">
168
+ Theme:
169
+ </label>
170
+ <select
171
+ id="theme-select"
172
+ value={selectedTheme}
173
+ onChange={(e) =>
174
+ setSelectedTheme(
175
+ e.target.value as keyof typeof THEME_PRESETS,
176
+ )
177
+ }
178
+ className="h-9 px-3 py-1 text-sm border border-input bg-background rounded-md focus:outline-none focus:ring-2 focus:ring-ring"
179
+ >
180
+ {Object.entries(THEME_PRESETS).map(([key, theme]) => (
181
+ <option key={key} value={key}>
182
+ {theme.name}
183
+ </option>
184
+ ))}
185
+ </select>
186
+ </div>
187
+
188
+ {/* Group Layout Option Switcher - Only show for Featured tab */}
189
+ {/*{selectedTab === "featured" && (
190
+ <div className="flex items-center gap-2">
191
+ <label htmlFor="groupLayoutOption-select" className="text-sm font-medium">
192
+ Layout:
193
+ </label>
194
+ <select
195
+ id="groupLayoutOption-select"
196
+ value={selectedGroupLayoutOption || "default"}
197
+ onChange={(e) =>
198
+ setSelectedGroupLayoutOption(e.target.value === "default" ? undefined : e.target.value)
199
+ }
200
+ className="h-9 px-3 py-1 text-sm border border-input bg-background rounded-md focus:outline-none focus:ring-2 focus:ring-ring"
201
+ >
202
+ <option value="default">Default</option>
203
+ <option value="carousel">Carousel</option>
204
+ </select>
205
+ </div>
206
+ )}*/}
207
+ </div>
208
+ </Portal>
209
+
210
+ {/* Main Content with Padding for Fixed Tabs */}
211
+ <div className="pt-20">
212
+ <TabsContent value="sheet" className="m-0">
213
+ {/* Sheet Modal - Always Open */}
214
+ <Dialog open={true} modal={false}>
215
+ <DialogOverlay />
216
+ <DialogContent
217
+ className="h-[calc(100dvh-2rem)] max-w-[608px] md:min-h-[25vh] md:h-[80%] md:max-h-[900px] overflow-auto"
218
+ showCloseButton={false}
219
+ >
220
+ <DialogHeader className="sticky top-0 bg-white px-4">
221
+ <div className="grid h-16 grid-cols-[32px_auto_32px] items-center gap-4">
222
+ <button className="flex size-8 items-center justify-center rounded-sm focus-visible:outline-none">
223
+ <svg
224
+ width="16"
225
+ height="16"
226
+ viewBox="0 0 16 16"
227
+ fill="none"
228
+ xmlns="http://www.w3.org/2000/svg"
229
+ className=" "
230
+ role="img"
231
+ aria-hidden="true"
232
+ >
233
+ <path
234
+ fill="currentColor"
235
+ d="m10.65 3.85.35.36.7-.71-.35-.35-3-3h-.7l-3 3-.36.35.71.7.35-.35L7.5 1.71V10h1V1.7l2.15 2.15ZM1 5.5l.5-.5H4v1H2v9h12V6h-2V5h2.5l.5.5v10l-.5.5h-13l-.5-.5v-10Z"
236
+ ></path>
237
+ </svg>
238
+ </button>
239
+
240
+ <DialogTitle className="self-center truncate py-3 text-center">
241
+ Sheet
242
+ </DialogTitle>
243
+
244
+ <button className="flex size-8 items-center justify-center rounded-sm focus-visible:outline-none">
245
+ <svg
246
+ width="16"
247
+ height="16"
248
+ viewBox="0 0 16 16"
249
+ fill="none"
250
+ xmlns="http://www.w3.org/2000/svg"
251
+ className=" "
252
+ role="img"
253
+ aria-hidden="true"
254
+ >
255
+ <path
256
+ fill="currentColor"
257
+ d="m13.63 3.12.37-.38-.74-.74-.38.37.75.75ZM2.37 12.89l-.37.37.74.74.38-.37-.75-.75Zm.75-10.52L2.74 2 2 2.74l.37.38.75-.75Zm9.76 11.26.38.37.74-.74-.37-.38-.75.75Zm0-11.26L2.38 12.9l.74.74 10.5-10.51-.74-.75Zm-10.5.75 10.5 10.5.75-.73L3.12 2.37l-.75.75Z"
258
+ ></path>
259
+ </svg>
260
+ </button>
261
+ </div>
262
+ </DialogHeader>
263
+
264
+ <div className="flex h-[calc(100%-64px)] flex-1 flex-col justify-between overflow-hidden">
265
+ <div className="h-full overflow-y-auto overflow-x-hidden">
266
+ <IframeResizer
267
+ key={`sheet-${selectedTheme}`}
268
+ id={sheetIframeId}
269
+ src={`/sheet?theme=${selectedTheme}`}
270
+ style={{
271
+ height: "0px",
272
+ width: "1px",
273
+ minWidth: "100%",
274
+ border: 0,
275
+ }}
276
+ checkOrigin={false}
277
+ onResized={handleResized}
278
+ heightCalculationMethod="max"
279
+ />
280
+ </div>
281
+ </div>
282
+ </DialogContent>
283
+ </Dialog>
284
+ </TabsContent>
285
+
286
+ <TabsContent
287
+ value="featured"
288
+ className="m-0 flex justify-center p-8"
289
+ >
290
+ <div className="w-full max-w-[580px] flex flex-col px-[28px] py-7 items-center bg-gray-100">
291
+ <div className="w-full max-w-[524px]">
292
+ {chinPosition === "above" && <Chin title={chinTitle} />}
293
+
294
+ <div
295
+ className={cn(
296
+ "bg-linktree-button-bg hover:bg-linktree-button-bg-hover border-linktree-button-border text-linktree-button-text rounded-linktree-button shadow-linktree-button overflow-hidden",
297
+ isOverlay && "relative",
298
+ )}
299
+ style={
300
+ !__SETTINGS_CONFIG__?.featured_head_allow_unlocked_aspect_ratio
301
+ ? { aspectRatio: "16 / 9" }
302
+ : undefined
303
+ }
304
+ >
305
+ {chinPosition === "overlay_above" && (
306
+ <div className="absolute top-0 left-0 right-0 z-10">
307
+ <Chin title={chinTitle} />
308
+ </div>
309
+ )}
310
+
311
+ <IframeResizer
312
+ key={`featured-${selectedTheme}-${selectedGroupLayoutOption || "default"}`}
313
+ id={featuredIframeId}
314
+ src={`/featured?theme=${selectedTheme}${selectedGroupLayoutOption ? `&groupLayoutOption=${selectedGroupLayoutOption}` : ""}`}
315
+ style={{
316
+ height: "0px",
317
+ width: "1px",
318
+ minWidth: "100%",
319
+ border: 0,
320
+ }}
321
+ checkOrigin={false}
322
+ onResized={handleResized}
323
+ heightCalculationMethod="max"
324
+ />
325
+
326
+ {chinPosition === "overlayBelow" && (
327
+ <div className="absolute bottom-0 left-0 right-0 z-10">
328
+ <Chin title={chinTitle} />
329
+ </div>
330
+ )}
331
+ </div>
332
+
333
+ {chinPosition === "below" && <Chin title={chinTitle} />}
334
+ </div>
335
+ </div>
336
+ </TabsContent>
337
+
338
+ <TabsContent value="settings" className="m-0">
339
+ <SettingsPreview settings={__SETTINGS_CONFIG__} />
340
+ </TabsContent>
341
+ </div>
342
+ </Tabs>
343
+
344
+ {/* Popup Dialog for EXPAND_LINK_APP message */}
345
+ <Dialog open={isPopupOpen} onOpenChange={setIsPopupOpen} modal={false}>
346
+ <DialogContent
347
+ className="h-[calc(100dvh-2rem)] max-w-[608px] md:min-h-[25vh] md:h-[80%] md:max-h-[900px] overflow-auto"
348
+ showCloseButton={false}
349
+ >
350
+ <DialogHeader className="sticky top-0 bg-white px-4">
351
+ <div className="grid h-16 grid-cols-[32px_auto_32px] items-center gap-4">
352
+ <button className="flex size-8 items-center justify-center rounded-sm focus-visible:outline-none">
353
+ <svg
354
+ width="16"
355
+ height="16"
356
+ viewBox="0 0 16 16"
357
+ fill="none"
358
+ xmlns="http://www.w3.org/2000/svg"
359
+ className=" "
360
+ role="img"
361
+ aria-hidden="true"
362
+ >
363
+ <path
364
+ fill="currentColor"
365
+ d="m10.65 3.85.35.36.7-.71-.35-.35-3-3h-.7l-3 3-.36.35.71.7.35-.35L7.5 1.71V10h1V1.7l2.15 2.15ZM1 5.5l.5-.5H4v1H2v9h12V6h-2V5h2.5l.5.5v10l-.5.5h-13l-.5-.5v-10Z"
366
+ ></path>
367
+ </svg>
368
+ </button>
369
+
370
+ <DialogTitle className="self-center truncate py-3 text-center">
371
+ Sheet
372
+ </DialogTitle>
373
+
374
+ <button className="flex size-8 items-center justify-center rounded-sm focus-visible:outline-none">
375
+ <svg
376
+ width="16"
377
+ height="16"
378
+ viewBox="0 0 16 16"
379
+ fill="none"
380
+ xmlns="http://www.w3.org/2000/svg"
381
+ className=" "
382
+ role="img"
383
+ aria-hidden="true"
384
+ >
385
+ <path
386
+ fill="currentColor"
387
+ d="m13.63 3.12.37-.38-.74-.74-.38.37.75.75ZM2.37 12.89l-.37.37.74.74.38-.37-.75-.75Zm.75-10.52L2.74 2 2 2.74l.37.38.75-.75Zm9.76 11.26.38.37.74-.74-.37-.38-.75.75Zm0-11.26L2.38 12.9l.74.74 10.5-10.51-.74-.75Zm-10.5.75 10.5 10.5.75-.73L3.12 2.37l-.75.75Z"
388
+ ></path>
389
+ </svg>
390
+ </button>
391
+ </div>
392
+ </DialogHeader>
393
+
394
+ <div className="flex h-[calc(100%-64px)] flex-1 flex-col justify-between overflow-hidden">
395
+ <div className="h-full overflow-y-auto overflow-x-hidden">
396
+ <IframeResizer
397
+ key={`popup-${selectedTheme}`}
398
+ id={popupIframeId}
399
+ src={`/sheet?theme=${selectedTheme}`}
400
+ style={{
401
+ height: "0px",
402
+ width: "1px",
403
+ minWidth: "100%",
404
+ border: 0,
405
+ }}
406
+ checkOrigin={false}
407
+ onResized={handleResized}
408
+ heightCalculationMethod="max"
409
+ />
410
+ </div>
411
+ </div>
412
+ </DialogContent>
413
+ </Dialog>
414
+ </div>
415
+ </>
416
+ );
417
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"generate-manifest-files.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/generate-manifest-files.ts"],"names":[],"mappings":"AAMA,wBAAsB,qBAAqB,CACzC,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,IAAI,CAAC,CAoGf"}
1
+ {"version":3,"file":"generate-manifest-files.d.ts","sourceRoot":"","sources":["../../../src/lib/deploy/generate-manifest-files.ts"],"names":[],"mappings":"AAMA,wBAAsB,qBAAqB,CACzC,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,IAAI,CAAC,CA6Gf"}
@@ -68,6 +68,15 @@ export async function generateManifestFiles(projectPath = process.cwd()) {
68
68
  ...(config.settings.featured_chin_position !== undefined && {
69
69
  featured_chin_position: config.settings.featured_chin_position,
70
70
  }),
71
+ ...(config.settings.featured_head_allow_unlocked_aspect_ratio !== undefined && {
72
+ featured_head_allow_unlocked_aspect_ratio: config.settings.featured_head_allow_unlocked_aspect_ratio,
73
+ }),
74
+ ...(config.settings.sheet_behavior !== undefined && {
75
+ sheet_behavior: config.settings.sheet_behavior,
76
+ }),
77
+ ...(config.settings.featured_head_click_behavior !== undefined && {
78
+ featured_head_click_behavior: config.settings.featured_head_click_behavior,
79
+ }),
71
80
  };
72
81
  writeFileSync(join(linkappDir, "settings.json"), JSON.stringify(settings, null, 2), "utf-8");
73
82
  // Generate url_match_rules.json if present
@@ -1 +1 @@
1
- {"version":3,"file":"generate-manifest-files.js","sourceRoot":"","sources":["../../../src/lib/deploy/generate-manifest-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-manifest-files.js","sourceRoot":"","sources":["../../../src/lib/deploy/generate-manifest-files.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup-runtime.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/setup-runtime.ts"],"names":[],"mappings":"AA2OA;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAyBtD"}
1
+ {"version":3,"file":"setup-runtime.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/setup-runtime.ts"],"names":[],"mappings":"AA0PA;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAyBtD"}
@@ -54,15 +54,25 @@ type ExtensionData = {
54
54
  groupLayoutOption?: string
55
55
  __theme?: {
56
56
  cssVariables: Record<string, string>
57
+ font?: {
58
+ fontFamily: string
59
+ fontStyle?: string
60
+ cssUrl?: string
61
+ }
57
62
  }
58
63
  displayType?: string
59
64
  [key: string]: any
60
65
  }
61
66
 
62
- // Declare global window property for theme application
67
+ // Declare global window properties for theme and font application
63
68
  declare global {
64
69
  interface Window {
65
70
  __linkapp_applyTheme?: (variables: Record<string, string>) => void
71
+ __linkapp_applyFont?: (fontData: {
72
+ fontFamily: string
73
+ fontStyle?: string
74
+ cssUrl?: string
75
+ }) => void
66
76
  }
67
77
  }
68
78
 
@@ -178,6 +188,11 @@ const renderApp = (data: ExtensionData) => {
178
188
  window.__linkapp_applyTheme(data.__theme.cssVariables)
179
189
  }
180
190
 
191
+ // Apply font if provided
192
+ if (data.__theme?.font && window.__linkapp_applyFont) {
193
+ window.__linkapp_applyFont(data.__theme.font)
194
+ }
195
+
181
196
  root.render(
182
197
  <StrictMode>
183
198
  <App data={data} />
@@ -1 +1 @@
1
- {"version":3,"file":"setup-runtime.js","sourceRoot":"","sources":["../../../src/lib/utils/setup-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-runtime.js","sourceRoot":"","sources":["../../../src/lib/utils/setup-runtime.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,21 @@ declare const featuredChinPositionSchema: z.ZodEnum<{
3
3
  none: "none";
4
4
  above: "above";
5
5
  below: "below";
6
- overlay_below: "overlay_below";
6
+ overlayBelow: "overlayBelow";
7
+ overlayAbove: "overlayAbove";
8
+ }>;
9
+ declare const sheetBehaviorSchema: z.ZodEnum<{
10
+ default: "default";
11
+ none: "none";
12
+ expandGeneric: "expandGeneric";
13
+ expandVideo: "expandVideo";
14
+ }>;
15
+ declare const featuredHeadClickBehaviorSchema: z.ZodEnum<{
16
+ default: "default";
17
+ custom: "custom";
18
+ linkOff: "linkOff";
19
+ expand: "expand";
20
+ inlineVideoPlayer: "inlineVideoPlayer";
7
21
  }>;
8
22
  declare const themeSchema: z.ZodObject<{
9
23
  isOutlineStyle: z.ZodOptional<z.ZodBoolean>;
@@ -127,7 +141,22 @@ declare const linkAppConfigSchema: z.ZodObject<{
127
141
  none: "none";
128
142
  above: "above";
129
143
  below: "below";
130
- overlay_below: "overlay_below";
144
+ overlayBelow: "overlayBelow";
145
+ overlayAbove: "overlayAbove";
146
+ }>>;
147
+ featured_head_allow_unlocked_aspect_ratio: z.ZodOptional<z.ZodBoolean>;
148
+ sheet_behavior: z.ZodOptional<z.ZodEnum<{
149
+ default: "default";
150
+ none: "none";
151
+ expandGeneric: "expandGeneric";
152
+ expandVideo: "expandVideo";
153
+ }>>;
154
+ featured_head_click_behavior: z.ZodOptional<z.ZodEnum<{
155
+ default: "default";
156
+ custom: "custom";
157
+ linkOff: "linkOff";
158
+ expand: "expand";
159
+ inlineVideoPlayer: "inlineVideoPlayer";
131
160
  }>>;
132
161
  }, z.core.$strip>;
133
162
  url_match_rules: z.ZodOptional<z.ZodObject<{
@@ -194,5 +223,7 @@ export type LinkAppTheme = z.infer<typeof themeSchema>;
194
223
  export type Viewport = z.infer<typeof viewportSchema>;
195
224
  export type Position = z.infer<typeof positionSchema>;
196
225
  export type FeaturedChinPosition = z.infer<typeof featuredChinPositionSchema>;
226
+ export type SheetBehavior = z.infer<typeof sheetBehaviorSchema>;
227
+ export type FeaturedHeadClickBehavior = z.infer<typeof featuredHeadClickBehaviorSchema>;
197
228
  export {};
198
229
  //# sourceMappingURL=config.schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../src/schema/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqExB,QAAA,MAAM,0BAA0B;;;;;EAK9B,CAAC;AA+IH,QAAA,MAAM,WAAW;;;;;;;;;;iBAWf,CAAC;AAEH,QAAA,MAAM,cAAc;;;iBAGlB,CAAC;AAEH,QAAA,MAAM,cAAc;;;iBAGlB,CAAC;AAGH,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAkCF,CAAC;AAGzB,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKvB,CAAC;AAGH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAChE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACvD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
1
+ {"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../src/schema/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqExB,QAAA,MAAM,0BAA0B;;;;;;EAM9B,CAAC;AAEH,QAAA,MAAM,mBAAmB;;;;;EAKvB,CAAC;AAEH,QAAA,MAAM,+BAA+B;;;;;;EAMnC,CAAC;AAkJH,QAAA,MAAM,WAAW;;;;;;;;;;iBAWf,CAAC;AAEH,QAAA,MAAM,cAAc;;;iBAGlB,CAAC;AAEH,QAAA,MAAM,cAAc;;;iBAGlB,CAAC;AAGH,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAkCF,CAAC;AAGzB,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKvB,CAAC;AAGH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAChE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACvD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC"}
@@ -62,7 +62,21 @@ const featuredChinPositionSchema = z.enum([
62
62
  "none",
63
63
  "above",
64
64
  "below",
65
- "overlay_below",
65
+ "overlayBelow",
66
+ "overlayAbove",
67
+ ]);
68
+ const sheetBehaviorSchema = z.enum([
69
+ "none",
70
+ "expandGeneric",
71
+ "expandVideo",
72
+ "default",
73
+ ]);
74
+ const featuredHeadClickBehaviorSchema = z.enum([
75
+ "linkOff",
76
+ "expand",
77
+ "custom",
78
+ "inlineVideoPlayer",
79
+ "default",
66
80
  ]);
67
81
  const settingsElementInputSchema = z.enum([
68
82
  "button",
@@ -170,6 +184,9 @@ const settingsSchema = z.object({
170
184
  // supports_featured_layout is auto-detected based on app/featured.tsx presence
171
185
  supports_featured_layout: z.boolean().optional(),
172
186
  featured_chin_position: featuredChinPositionSchema.optional(),
187
+ featured_head_allow_unlocked_aspect_ratio: z.boolean().optional(),
188
+ sheet_behavior: sheetBehaviorSchema.optional(),
189
+ featured_head_click_behavior: featuredHeadClickBehaviorSchema.optional(),
173
190
  });
174
191
  // URL Match Rules Schema
175
192
  const urlMatchRulesSchema = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../src/schema/config.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../src/schema/config.schema.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -2,13 +2,14 @@
2
2
  * Type definitions for LinkApp
3
3
  * Note: Uses snake_case for API-facing types to match API requirements
4
4
  */
5
- export type { PreviewProps, LinkAppTheme, Viewport, Position, FeaturedChinPosition, LinkAppConfig, } from "./schema/config.schema.js";
5
+ export type { PreviewProps, LinkAppTheme, Viewport, Position, FeaturedChinPosition, SheetBehavior, FeaturedHeadClickBehavior, LinkAppConfig, } from "./schema/config.schema.js";
6
+ import type { PreviewProps } from "./schema/config.schema.js";
6
7
  export type Environment = "production" | "qa";
7
8
  /**
8
9
  * Props available to layout components
9
10
  * Extend with custom settings from your config
10
11
  */
11
- export type AppProps<TSettings = Record<string, unknown>> = import('./schema/config.schema.js').PreviewProps & TSettings;
12
+ export type AppProps<TSettings = Record<string, unknown>> = PreviewProps & TSettings;
12
13
  export interface LinkAppManifest {
13
14
  name: string;
14
15
  tagline: string;
@@ -121,7 +122,10 @@ export interface LinkAppSettings {
121
122
  elements: SettingsElement[];
122
123
  has_settings?: boolean;
123
124
  supports_featured_layout?: boolean;
124
- featured_chin_position?: "none" | "above" | "below" | "overlay_below";
125
+ featured_chin_position?: "none" | "above" | "below" | "overlayBelow" | "overlayAbove";
126
+ featured_head_allow_unlocked_aspect_ratio?: boolean;
127
+ sheet_behavior?: "none" | "expandGeneric" | "expandVideo" | "default";
128
+ featured_head_click_behavior?: "linkOff" | "expand" | "custom" | "inlineVideoPlayer" | "default";
125
129
  }
126
130
  export interface SettingsElement {
127
131
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4CH,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,qCAAqB,CAAA;IACrB,iDAAiC,CAAA;IACjC,qCAAqB,CAAA;AACvB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED,MAAM,CAAN,IAAY,oBAgBX;AAhBD,WAAY,oBAAoB;IAC9B,yCAAiB,CAAA;IACjB,qCAAa,CAAA;IACb,6CAAqB,CAAA;IACrB,yCAAiB,CAAA;IACjB,uCAAe,CAAA;IACf,6CAAqB,CAAA;IACrB,yCAAiB,CAAA;IACjB,6CAAqB,CAAA;IACrB,yCAAiB,CAAA;IACjB,qDAA6B,CAAA;IAC7B,qCAAa,CAAA;IACb,mCAAW,CAAA;IACX,mDAA2B,CAAA;IAC3B,mDAA2B,CAAA;IAC3B,uCAAe,CAAA;AACjB,CAAC,EAhBW,oBAAoB,KAApB,oBAAoB,QAgB/B;AAED,MAAM,CAAN,IAAY,qBAEX;AAFD,WAAY,qBAAqB;IAC/B,8EAAqD,CAAA;AACvD,CAAC,EAFW,qBAAqB,KAArB,qBAAqB,QAEhC;AAED,MAAM,CAAN,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;AACjB,CAAC,EAFW,gBAAgB,KAAhB,gBAAgB,QAE3B;AAED,MAAM,CAAN,IAAY,UAEX;AAFD,WAAY,UAAU;IACpB,yCAA6B,CAAA;AAC/B,CAAC,EAFW,UAAU,KAAV,UAAU,QAErB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiDH,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,qCAAqB,CAAA;IACrB,iDAAiC,CAAA;IACjC,qCAAqB,CAAA;AACvB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED,MAAM,CAAN,IAAY,oBAgBX;AAhBD,WAAY,oBAAoB;IAC9B,yCAAiB,CAAA;IACjB,qCAAa,CAAA;IACb,6CAAqB,CAAA;IACrB,yCAAiB,CAAA;IACjB,uCAAe,CAAA;IACf,6CAAqB,CAAA;IACrB,yCAAiB,CAAA;IACjB,6CAAqB,CAAA;IACrB,yCAAiB,CAAA;IACjB,qDAA6B,CAAA;IAC7B,qCAAa,CAAA;IACb,mCAAW,CAAA;IACX,mDAA2B,CAAA;IAC3B,mDAA2B,CAAA;IAC3B,uCAAe,CAAA;AACjB,CAAC,EAhBW,oBAAoB,KAApB,oBAAoB,QAgB/B;AAED,MAAM,CAAN,IAAY,qBAEX;AAFD,WAAY,qBAAqB;IAC/B,8EAAqD,CAAA;AACvD,CAAC,EAFW,qBAAqB,KAArB,qBAAqB,QAEhC;AAED,MAAM,CAAN,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;AACjB,CAAC,EAFW,gBAAgB,KAAhB,gBAAgB,QAE3B;AAED,MAAM,CAAN,IAAY,UAEX;AAFD,WAAY,UAAU;IACpB,yCAA6B,CAAA;AAC/B,CAAC,EAFW,UAAU,KAAV,UAAU,QAErB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@linktr.ee/linkapp",
3
- "version": "0.0.36",
3
+ "version": "0.0.37",
4
4
  "description": "Development, build, and deployment tooling for LinkApps",
5
5
  "type": "module",
6
6
  "bin": {
@@ -62,6 +62,51 @@
62
62
 
63
63
  // Export applyTheme to be used by main.tsx when receiving extension-data
64
64
  window.__linkapp_applyTheme = applyTheme
65
+
66
+ /**
67
+ * Apply font to iframe by injecting font CSS or external stylesheet
68
+ * Called once on mount when extension-data message is received
69
+ * @param {Object} fontData - Font configuration from parent
70
+ * @param {string} fontData.fontFamily - Font family name (e.g., "Inter", "Karla")
71
+ * @param {string} [fontData.cssUrl] - External CSS URL to load (e.g., Google Fonts, TypeKit)
72
+ * @param {string} [fontData.style] - Inline @font-face CSS definitions
73
+ */
74
+ function applyFont(fontData) {
75
+ if (!fontData || typeof fontData !== 'object') {
76
+ return
77
+ }
78
+
79
+ // Remove existing font style/link if present to avoid duplicates
80
+ const existingFontElement = document.getElementById('linktree-font')
81
+ if (existingFontElement) {
82
+ existingFontElement.remove()
83
+ }
84
+
85
+ // Option 1: External CSS URL (e.g., Google Fonts, TypeKit, custom CDN)
86
+ if (fontData.cssUrl) {
87
+ const link = document.createElement('link')
88
+ link.id = 'linktree-font'
89
+ link.rel = 'stylesheet'
90
+ link.href = fontData.cssUrl
91
+ link.crossOrigin = 'anonymous'
92
+ document.head.appendChild(link)
93
+ }
94
+ // Option 2: Inline @font-face definitions
95
+ else if (fontData.style) {
96
+ const style = document.createElement('style')
97
+ style.id = 'linktree-font'
98
+ style.textContent = fontData.style
99
+ document.head.appendChild(style)
100
+ }
101
+
102
+ // Apply font-family to body element so all content inherits it
103
+ if (fontData.fontFamily) {
104
+ document.body.style.fontFamily = fontData.fontFamily
105
+ }
106
+ }
107
+
108
+ // Export applyFont to be used by main.tsx when receiving extension-data
109
+ window.__linkapp_applyFont = applyFont
65
110
  </script>
66
111
  </head>
67
112
  <body>
@@ -1,276 +0,0 @@
1
- import { Portal } from "@radix-ui/react-portal";
2
- import { useCallback, useEffect, useMemo, useRef, useState } from "react";
3
- import IframeResizer, { IFrameComponent } from "iframe-resizer-react";
4
- import {
5
- Dialog,
6
- DialogContent,
7
- DialogHeader,
8
- DialogTitle,
9
- } from "../components/ui/dialog";
10
- import {
11
- Tabs,
12
- TabsContent,
13
- TabsList,
14
- TabsTrigger,
15
- } from "../components/ui/tabs";
16
- import { cn, renderCssVariables } from "../lib/utils";
17
- import { SettingsPreview } from "../components/SettingsPreview";
18
- import { THEME_PRESETS } from "../shared/theme-presets";
19
-
20
- export default function Preview() {
21
- // Initialize state from localStorage
22
- const [selectedTab, setSelectedTab] = useState<"sheet" | "featured" | "settings">(() => {
23
- const saved = localStorage.getItem("linkapp-preview-tab");
24
- return (saved as "sheet" | "featured" | "settings") || "sheet";
25
- });
26
- const [selectedTheme, setSelectedTheme] = useState<keyof typeof THEME_PRESETS>(() => {
27
- const saved = localStorage.getItem("linkapp-preview-theme");
28
- return (saved as keyof typeof THEME_PRESETS) || "default";
29
- });
30
- const [selectedGroupLayoutOption, setSelectedGroupLayoutOption] = useState<string | undefined>(() => {
31
- const saved = localStorage.getItem("linkapp-preview-groupLayoutOption");
32
- return saved || undefined;
33
- });
34
-
35
- // Popup dialog state
36
- const [isPopupOpen, setIsPopupOpen] = useState(false);
37
-
38
- // Generate unique IDs for iframes using timestamp
39
- const sheetIframeId = useMemo(() => `preview-iframe-sheet-${Date.now()}`, []);
40
- const featuredIframeId = useMemo(() => `preview-iframe-featured-${Date.now()}`, []);
41
- const popupIframeId = useMemo(() => `preview-iframe-popup-${Date.now()}`, []);
42
-
43
- // Save selected tab to localStorage
44
- useEffect(() => {
45
- localStorage.setItem("linkapp-preview-tab", selectedTab);
46
- }, [selectedTab]);
47
-
48
- // Save selected theme to localStorage
49
- useEffect(() => {
50
- localStorage.setItem("linkapp-preview-theme", selectedTheme);
51
- }, [selectedTheme]);
52
-
53
- // Save selected groupLayoutOption to localStorage
54
- useEffect(() => {
55
- if (selectedGroupLayoutOption) {
56
- localStorage.setItem("linkapp-preview-groupLayoutOption", selectedGroupLayoutOption);
57
- } else {
58
- localStorage.removeItem("linkapp-preview-groupLayoutOption");
59
- }
60
- }, [selectedGroupLayoutOption]);
61
-
62
- // Handle iframe resize events
63
- const handleResized = useCallback(
64
- (ev: { iframe: IFrameComponent; height: number; width: number; type: string }): void => {
65
- // IframeResizer automatically handles height adjustments
66
- // This callback is available for debugging if needed
67
- },
68
- []
69
- );
70
-
71
- // Handle postMessage from featured iframe for EXPAND_LINK_APP
72
- const handleMessage = useCallback((event: MessageEvent) => {
73
- if (
74
- event.data &&
75
- typeof event.data === 'object' &&
76
- event.data.source === 'linkapp' &&
77
- event.data.type === 'EXPAND_LINK_APP'
78
- ) {
79
- setIsPopupOpen(true);
80
- }
81
- }, []);
82
-
83
- // Add message listener
84
- useEffect(() => {
85
- window.addEventListener('message', handleMessage);
86
- return () => window.removeEventListener('message', handleMessage);
87
- }, [handleMessage]);
88
-
89
-
90
- const renderedCssVariables = useMemo(() => {
91
- const themeVariables = THEME_PRESETS[selectedTheme] || THEME_PRESETS.default
92
- return renderCssVariables(themeVariables.variables);
93
- }, [selectedTheme])
94
-
95
- return (
96
- <>
97
- <style>{`:root {
98
- ${renderedCssVariables}
99
- }`}</style>
100
-
101
- <div
102
- className={cn("min-h-screen", {
103
- "bg-black/50": selectedTab === "classic",
104
- "bg-linktree-frame": selectedTab === "featured",
105
- })}
106
- id="preview"
107
- >
108
- <Tabs
109
- value={selectedTab}
110
- onValueChange={(value) =>
111
- setSelectedTab(value as "sheet" | "featured" | "settings")
112
- }
113
- >
114
- <Portal>
115
- <div
116
- className="fixed top-0 left-0 right-0 p-4 flex justify-center gap-4 bg-background border-b"
117
- style={{ zIndex: 1000000 }}
118
- >
119
- <TabsList>
120
- <TabsTrigger value="sheet">Sheet</TabsTrigger>
121
- <TabsTrigger value="featured">Featured</TabsTrigger>
122
- <TabsTrigger value="settings">Settings</TabsTrigger>
123
- </TabsList>
124
-
125
- {/* Theme Switcher */}
126
- <div className="flex items-center gap-2">
127
- <label htmlFor="theme-select" className="text-sm font-medium">
128
- Theme:
129
- </label>
130
- <select
131
- id="theme-select"
132
- value={selectedTheme}
133
- onChange={(e) =>
134
- setSelectedTheme(e.target.value as keyof typeof THEME_PRESETS)
135
- }
136
- className="h-9 px-3 py-1 text-sm border border-input bg-background rounded-md focus:outline-none focus:ring-2 focus:ring-ring"
137
- >
138
- {Object.entries(THEME_PRESETS).map(([key, theme]) => (
139
- <option key={key} value={key}>
140
- {theme.name}
141
- </option>
142
- ))}
143
- </select>
144
- </div>
145
-
146
- {/* Group Layout Option Switcher - Only show for Featured tab */}
147
- {selectedTab === "featured" && (
148
- <div className="flex items-center gap-2">
149
- <label htmlFor="groupLayoutOption-select" className="text-sm font-medium">
150
- Layout:
151
- </label>
152
- <select
153
- id="groupLayoutOption-select"
154
- value={selectedGroupLayoutOption || "default"}
155
- onChange={(e) =>
156
- setSelectedGroupLayoutOption(e.target.value === "default" ? undefined : e.target.value)
157
- }
158
- className="h-9 px-3 py-1 text-sm border border-input bg-background rounded-md focus:outline-none focus:ring-2 focus:ring-ring"
159
- >
160
- <option value="default">Default</option>
161
- <option value="carousel">Carousel</option>
162
- </select>
163
- </div>
164
- )}
165
- </div>
166
- </Portal>
167
-
168
- {/* Main Content with Padding for Fixed Tabs */}
169
- <div className="pt-20">
170
- <TabsContent value="sheet" className="m-0">
171
- {/* Sheet Modal - Always Open */}
172
- <Dialog open={true} modal={false}>
173
- <DialogContent
174
- className="h-[calc(100dvh-2rem)] max-w-[608px] md:min-h-[25vh] md:h-[80%] md:max-h-[900px] overflow-auto"
175
- showCloseButton={false}
176
- >
177
- <DialogHeader className="sticky top-0 bg-white px-4">
178
- <div className="grid h-16 grid-cols-[32px_auto_32px] items-center gap-4">
179
- <button className="flex size-8 items-center justify-center rounded-sm focus-visible:outline-none">
180
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" className=" " role="img" aria-hidden="true"><path fill="currentColor" d="m10.65 3.85.35.36.7-.71-.35-.35-3-3h-.7l-3 3-.36.35.71.7.35-.35L7.5 1.71V10h1V1.7l2.15 2.15ZM1 5.5l.5-.5H4v1H2v9h12V6h-2V5h2.5l.5.5v10l-.5.5h-13l-.5-.5v-10Z"></path></svg>
181
- </button>
182
-
183
- <DialogTitle className="self-center truncate py-3 text-center">
184
- Sheet
185
- </DialogTitle>
186
-
187
- <button className="flex size-8 items-center justify-center rounded-sm focus-visible:outline-none">
188
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" className=" " role="img" aria-hidden="true"><path fill="currentColor" d="m13.63 3.12.37-.38-.74-.74-.38.37.75.75ZM2.37 12.89l-.37.37.74.74.38-.37-.75-.75Zm.75-10.52L2.74 2 2 2.74l.37.38.75-.75Zm9.76 11.26.38.37.74-.74-.37-.38-.75.75Zm0-11.26L2.38 12.9l.74.74 10.5-10.51-.74-.75Zm-10.5.75 10.5 10.5.75-.73L3.12 2.37l-.75.75Z"></path></svg>
189
- </button>
190
- </div>
191
- </DialogHeader>
192
-
193
- <div className="flex h-[calc(100%-64px)] flex-1 flex-col justify-between overflow-hidden">
194
- <div className="h-full overflow-y-auto overflow-x-hidden">
195
- <IframeResizer
196
- key={`sheet-${selectedTheme}`}
197
- id={sheetIframeId}
198
- src={`/sheet?theme=${selectedTheme}`}
199
- style={{ height: '0px', width: '1px', minWidth: '100%', border: 0 }}
200
- checkOrigin={false}
201
- onResized={handleResized}
202
- heightCalculationMethod="max"
203
- />
204
- </div>
205
- </div>
206
- </DialogContent>
207
- </Dialog>
208
- </TabsContent>
209
-
210
- <TabsContent value="featured" className="m-0 flex justify-center p-8">
211
- {/* Featured Iframe - Max Width 524px */}
212
- <div className="w-full max-w-[580px] flex flex-col px-[28px] py-7 items-center bg-linktree-profile-bg">
213
-
214
- <div className="w-full max-w-[524px]">
215
- <div className="bg-linktree-button-bg hover:bg-linktree-button-bg-hover border-linktree-button-border text-linktree-button-text rounded-linktree-button shadow-linktree-button overflow-hidden">
216
- <IframeResizer
217
- key={`featured-${selectedTheme}-${selectedGroupLayoutOption || 'default'}`}
218
- id={featuredIframeId}
219
- src={`/featured?theme=${selectedTheme}${selectedGroupLayoutOption ? `&groupLayoutOption=${selectedGroupLayoutOption}` : ''}`}
220
- style={{ height: '0px', width: '1px', minWidth: '100%', border: 0 }}
221
- checkOrigin={false}
222
- onResized={handleResized}
223
- heightCalculationMethod="max"
224
- />
225
- </div>
226
- </div>
227
- </div>
228
- </TabsContent>
229
-
230
- <TabsContent value="settings" className="m-0">
231
- <SettingsPreview settings={__SETTINGS_CONFIG__} />
232
- </TabsContent>
233
- </div>
234
- </Tabs>
235
-
236
- {/* Popup Dialog for EXPAND_LINK_APP message */}
237
- <Dialog open={isPopupOpen} onOpenChange={setIsPopupOpen} modal={false}>
238
- <DialogContent
239
- className="h-[calc(100dvh-2rem)] max-w-[608px] md:min-h-[25vh] md:h-[80%] md:max-h-[900px] overflow-auto"
240
- showCloseButton={false}
241
- >
242
- <DialogHeader className="sticky top-0 bg-white px-4">
243
- <div className="grid h-16 grid-cols-[32px_auto_32px] items-center gap-4">
244
- <button className="flex size-8 items-center justify-center rounded-sm focus-visible:outline-none">
245
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" className=" " role="img" aria-hidden="true"><path fill="currentColor" d="m10.65 3.85.35.36.7-.71-.35-.35-3-3h-.7l-3 3-.36.35.71.7.35-.35L7.5 1.71V10h1V1.7l2.15 2.15ZM1 5.5l.5-.5H4v1H2v9h12V6h-2V5h2.5l.5.5v10l-.5.5h-13l-.5-.5v-10Z"></path></svg>
246
- </button>
247
-
248
- <DialogTitle className="self-center truncate py-3 text-center">
249
- Sheet
250
- </DialogTitle>
251
-
252
- <button className="flex size-8 items-center justify-center rounded-sm focus-visible:outline-none">
253
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" className=" " role="img" aria-hidden="true"><path fill="currentColor" d="m13.63 3.12.37-.38-.74-.74-.38.37.75.75ZM2.37 12.89l-.37.37.74.74.38-.37-.75-.75Zm.75-10.52L2.74 2 2 2.74l.37.38.75-.75Zm9.76 11.26.38.37.74-.74-.37-.38-.75.75Zm0-11.26L2.38 12.9l.74.74 10.5-10.51-.74-.75Zm-10.5.75 10.5 10.5.75-.73L3.12 2.37l-.75.75Z"></path></svg>
254
- </button>
255
- </div>
256
- </DialogHeader>
257
-
258
- <div className="flex h-[calc(100%-64px)] flex-1 flex-col justify-between overflow-hidden">
259
- <div className="h-full overflow-y-auto overflow-x-hidden">
260
- <IframeResizer
261
- key={`popup-${selectedTheme}`}
262
- id={popupIframeId}
263
- src={`/sheet?theme=${selectedTheme}`}
264
- style={{ height: '0px', width: '1px', minWidth: '100%', border: 0 }}
265
- checkOrigin={false}
266
- onResized={handleResized}
267
- heightCalculationMethod="max"
268
- />
269
- </div>
270
- </div>
271
- </DialogContent>
272
- </Dialog>
273
- </div>
274
- </>
275
- );
276
- }