@linktr.ee/linkapp 0.0.46 → 0.0.47

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.
@@ -36,28 +36,31 @@ function Chin({ title }: { title?: string }) {
36
36
 
37
37
  export default function Preview() {
38
38
  // These are injected by the dev server
39
- // @ts-expect-error - injected by dev server
40
- const hasFeatured = typeof __HAS_FEATURED__ !== "undefined" && __HAS_FEATURED__;
41
- // @ts-expect-error - injected by dev server
42
- const hasCarousel =
43
- typeof __HAS_CAROUSEL__ !== "undefined" && __HAS_CAROUSEL__;
39
+ // @ts-expect-error - injected by dev server
40
+ const hasFeatured =
41
+ typeof __HAS_FEATURED__ !== "undefined" && __HAS_FEATURED__;
42
+ // @ts-expect-error - injected by dev server
43
+ const hasCarousel =
44
+ typeof __HAS_CAROUSEL__ !== "undefined" && __HAS_CAROUSEL__;
44
45
 
45
- // Initialize state from localStorage
46
+ // Initialize state from localStorage
46
47
  const [selectedTab, setSelectedTab] = useState<
47
- "expanded" | "featured" | "carousel" | "settings"
48
- >(() => {
49
- const saved = localStorage.getItem("linkapp-preview-tab");
50
- if (saved === "featured" && !hasFeatured) {
51
- return "expanded";
52
- }
53
- if (saved === "carousel" && !hasCarousel) {
54
- return "expanded";
55
- }
56
- if (saved === "sheet") {
57
- return "expanded";
58
- }
59
- return (saved as "expanded" | "featured" | "carousel" | "settings") || "expanded";
60
- });
48
+ "expanded" | "featured" | "carousel" | "settings"
49
+ >(() => {
50
+ const saved = localStorage.getItem("linkapp-preview-tab");
51
+ if (saved === "featured" && !hasFeatured) {
52
+ return "expanded";
53
+ }
54
+ if (saved === "carousel" && !hasCarousel) {
55
+ return "expanded";
56
+ }
57
+ if (saved === "sheet") {
58
+ return "expanded";
59
+ }
60
+ return (
61
+ (saved as "expanded" | "featured" | "carousel" | "settings") || "expanded"
62
+ );
63
+ });
61
64
  const [selectedTheme, setSelectedTheme] = useState<
62
65
  keyof typeof THEME_PRESETS
63
66
  >(() => {
@@ -146,7 +149,8 @@ const hasCarousel =
146
149
  <div
147
150
  className={cn("min-h-screen", {
148
151
  "bg-black/50": selectedTab === "expanded",
149
- "bg-linktree-frame": selectedTab === "featured" || selectedTab === "carousel",
152
+ "bg-linktree-frame":
153
+ selectedTab === "featured" || selectedTab === "carousel",
150
154
  })}
151
155
  id="preview"
152
156
  >
@@ -154,12 +158,12 @@ const hasCarousel =
154
158
  value={selectedTab}
155
159
  onValueChange={(value) =>
156
160
  setSelectedTab(
157
- (value === "sheet" ? "expanded" : value) as
158
- | "expanded"
159
- | "featured"
160
- | "carousel"
161
- | "settings",
162
- )
161
+ (value === "sheet" ? "expanded" : value) as
162
+ | "expanded"
163
+ | "featured"
164
+ | "carousel"
165
+ | "settings",
166
+ )
163
167
  }
164
168
  >
165
169
  <Portal>
@@ -168,13 +172,15 @@ const hasCarousel =
168
172
  style={{ zIndex: 1000000 }}
169
173
  >
170
174
  <TabsList>
171
- <TabsTrigger value="expanded">Expanded</TabsTrigger>
172
- {hasFeatured && <TabsTrigger value="featured">Featured</TabsTrigger>}
173
- {hasCarousel && (
174
- <TabsTrigger value="carousel">Carousel</TabsTrigger>
175
- )}
176
- <TabsTrigger value="settings">Settings</TabsTrigger>
177
- </TabsList>
175
+ <TabsTrigger value="expanded">Expanded</TabsTrigger>
176
+ {hasFeatured && (
177
+ <TabsTrigger value="featured">Featured</TabsTrigger>
178
+ )}
179
+ {hasCarousel && (
180
+ <TabsTrigger value="carousel">Carousel</TabsTrigger>
181
+ )}
182
+ <TabsTrigger value="settings">Settings</TabsTrigger>
183
+ </TabsList>
178
184
 
179
185
  {/* Theme Switcher */}
180
186
  <div className="flex items-center gap-2">
@@ -206,7 +212,6 @@ const hasCarousel =
206
212
  <TabsContent value="expanded" className="m-0">
207
213
  {/* Expanded Modal - Always Open */}
208
214
  <Dialog open={true} modal={false}>
209
- <DialogOverlay />
210
215
  <DialogContent
211
216
  className="h-[calc(100dvh-2rem)] max-w-[608px] md:min-h-[25vh] md:h-[80%] md:max-h-[900px] overflow-auto"
212
217
  showCloseButton={false}
@@ -252,216 +257,211 @@ const hasCarousel =
252
257
  ></path>
253
258
  </svg>
254
259
  </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={`expanded-${selectedTheme}`}
262
- id={expandedIframeId}
263
- src={`/expanded?theme=${selectedTheme}`}
264
- style={{
265
- height: "0px",
266
- width: "1px",
267
- minWidth: "100%",
268
- border: 0,
269
- }}
270
- checkOrigin={false}
271
- onResized={handleResized}
272
- heightCalculationMethod="max"
273
- />
274
- </div>
275
- </div>
276
- </DialogContent>
277
- </Dialog>
278
- </TabsContent>
279
-
280
- {hasFeatured && (
281
- <TabsContent
282
- value="featured"
283
- className="m-0 flex justify-center p-8"
284
- >
285
- <div className="w-full max-w-[580px] flex flex-col px-[28px] py-7 items-center bg-gray-100">
286
- <div className="w-full max-w-[524px]">
287
- {chinPosition === "above" && <Chin title={chinTitle} />}
288
-
289
- <div
290
- className={cn(
291
- "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",
292
- isOverlay && "relative",
293
- )}
294
- style={
295
- !__SETTINGS_CONFIG__?.featured_head_allow_unlocked_aspect_ratio
296
- ? { aspectRatio: "16 / 9" }
297
- : undefined
298
- }
299
- >
300
- {chinPosition === "overlay_above" && (
301
- <div className="absolute top-0 left-0 right-0 z-10">
302
- <Chin title={chinTitle} />
303
- </div>
304
- )}
305
-
306
- <IframeResizer
307
- key={`featured-${selectedTheme}`}
308
- id={featuredIframeId}
309
- src={`/featured?theme=${selectedTheme}`}
310
- style={{
311
- height: "0px",
312
- width: "1px",
313
- minWidth: "100%",
314
- border: 0,
315
- }}
316
- checkOrigin={false}
317
- onResized={handleResized}
318
- heightCalculationMethod="max"
319
- />
320
-
321
- {chinPosition === "overlayBelow" && (
322
- <div className="absolute bottom-0 left-0 right-0 z-10">
323
- <Chin title={chinTitle} />
324
- </div>
325
- )}
326
- </div>
327
-
328
- {chinPosition === "below" && <Chin title={chinTitle} />}
329
- </div>
330
- </div>
331
- </TabsContent>
332
- )}
333
-
334
- {hasCarousel && (
335
- <TabsContent
336
- value="carousel"
337
- className="m-0 flex justify-center p-8"
338
- >
339
- <div className="w-full max-w-[580px] flex flex-col px-[28px] py-7 items-center bg-gray-100">
340
- <div className="w-full max-w-[524px]">
341
- {chinPosition === "above" && <Chin title={chinTitle} />}
342
-
343
- <div
344
- className={cn(
345
- "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",
346
- isOverlay && "relative",
347
- )}
348
- style={
349
- !__SETTINGS_CONFIG__?.featured_head_allow_unlocked_aspect_ratio
350
- ? { aspectRatio: "11 / 8" }
351
- : undefined
352
- }
353
- >
354
- {chinPosition === "overlay_above" && (
355
- <div className="absolute top-0 left-0 right-0 z-10">
356
- <Chin title={chinTitle} />
357
- </div>
358
- )}
359
-
360
- <IframeResizer
361
- key={`carousel-${selectedTheme}`}
362
- id={carouselIframeId}
363
- src={`/featured-carousel?theme=${selectedTheme}`}
364
- style={{
365
- height: "0px",
366
- width: "1px",
367
- minWidth: "100%",
368
- border: 0,
369
- }}
370
- checkOrigin={false}
371
- onResized={handleResized}
372
- heightCalculationMethod="max"
373
- />
374
-
375
- {chinPosition === "overlayBelow" && (
376
- <div className="absolute bottom-0 left-0 right-0 z-10">
377
- <Chin title={chinTitle} />
378
- </div>
379
- )}
380
- </div>
381
-
382
- {chinPosition === "below" && <Chin title={chinTitle} />}
383
- </div>
384
- </div>
385
- </TabsContent>
386
- )}
387
-
388
- <TabsContent value="settings" className="m-0">
389
- <SettingsPreview settings={__SETTINGS_CONFIG__} />
390
- </TabsContent>
391
- </div>
392
- </Tabs>
393
-
394
- {/* Popup Dialog for EXPAND_LINK_APP message */}
395
- <Dialog open={isPopupOpen} onOpenChange={setIsPopupOpen} modal={false}>
396
- <DialogContent
397
- className="h-[calc(100dvh-2rem)] max-w-[608px] md:min-h-[25vh] md:h-[80%] md:max-h-[900px] overflow-auto"
398
- showCloseButton={false}
399
- >
400
- <DialogHeader className="sticky top-0 bg-white px-4">
401
- <div className="grid h-16 grid-cols-[32px_auto_32px] items-center gap-4">
402
- <button className="flex size-8 items-center justify-center rounded-sm focus-visible:outline-none">
403
- <svg
404
- width="16"
405
- height="16"
406
- viewBox="0 0 16 16"
407
- fill="none"
408
- xmlns="http://www.w3.org/2000/svg"
409
- className=" "
410
- role="img"
411
- aria-hidden="true"
412
- >
413
- <path
414
- fill="currentColor"
415
- 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"
416
- ></path>
417
- </svg>
418
- </button>
419
-
420
- <DialogTitle className="self-center truncate py-3 text-center">
421
- Expanded
422
- </DialogTitle>
423
-
424
- <button className="flex size-8 items-center justify-center rounded-sm focus-visible:outline-none">
425
- <svg
426
- width="16"
427
- height="16"
428
- viewBox="0 0 16 16"
429
- fill="none"
430
- xmlns="http://www.w3.org/2000/svg"
431
- className=" "
432
- role="img"
433
- aria-hidden="true"
434
- >
435
- <path
436
- fill="currentColor"
437
- 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"
438
- ></path>
439
- </svg>
440
- </button>
441
- </div>
442
- </DialogHeader>
443
-
444
- <div className="flex h-[calc(100%-64px)] flex-1 flex-col justify-between overflow-hidden">
445
- <div className="h-full overflow-y-auto overflow-x-hidden">
446
- <IframeResizer
447
- key={`popup-${selectedTheme}`}
448
- id={popupIframeId}
449
- src={`/expanded?theme=${selectedTheme}`}
450
- style={{
451
- height: "0px",
452
- width: "1px",
453
- minWidth: "100%",
454
- border: 0,
455
- }}
456
- checkOrigin={false}
457
- onResized={handleResized}
458
- heightCalculationMethod="max"
459
- />
460
- </div>
461
- </div>
462
- </DialogContent>
463
- </Dialog>
464
- </div>
465
- </>
466
- );
467
- }
260
+ </div>
261
+ </DialogHeader>
262
+
263
+ <div className="flex h-[calc(100%-64px)] flex-1 flex-col justify-between overflow-hidden">
264
+ <div className="h-full overflow-y-auto overflow-x-hidden">
265
+ <IframeResizer
266
+ key={`expanded-${selectedTheme}`}
267
+ id={expandedIframeId}
268
+ src={`/expanded?theme=${selectedTheme}`}
269
+ style={{
270
+ height: "0px",
271
+ width: "1px",
272
+ minWidth: "100%",
273
+ border: 0,
274
+ }}
275
+ checkOrigin={false}
276
+ onResized={handleResized}
277
+ heightCalculationMethod="max"
278
+ />
279
+ </div>
280
+ </div>
281
+ </DialogContent>
282
+ </Dialog>
283
+ </TabsContent>
284
+
285
+ {hasFeatured && (
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
+ >
300
+ {chinPosition === "overlay_above" && (
301
+ <div className="absolute top-0 left-0 right-0 z-10">
302
+ <Chin title={chinTitle} />
303
+ </div>
304
+ )}
305
+
306
+ <IframeResizer
307
+ key={`featured-${selectedTheme}`}
308
+ id={featuredIframeId}
309
+ src={`/featured?theme=${selectedTheme}`}
310
+ style={{
311
+ height: "0px",
312
+ width: "1px",
313
+ minWidth: "100%",
314
+ border: 0,
315
+ }}
316
+ checkOrigin={false}
317
+ onResized={handleResized}
318
+ heightCalculationMethod="max"
319
+ />
320
+
321
+ {chinPosition === "overlayBelow" && (
322
+ <div className="absolute bottom-0 left-0 right-0 z-10">
323
+ <Chin title={chinTitle} />
324
+ </div>
325
+ )}
326
+ </div>
327
+
328
+ {chinPosition === "below" && <Chin title={chinTitle} />}
329
+ </div>
330
+ </div>
331
+ </TabsContent>
332
+ )}
333
+
334
+ {hasCarousel && (
335
+ <TabsContent
336
+ value="carousel"
337
+ className="m-0 flex justify-center p-8"
338
+ >
339
+ <div className="w-full max-w-[580px] flex flex-col px-[28px] py-7 items-center bg-gray-100">
340
+ <div className="w-full max-w-[524px]">
341
+ {chinPosition === "above" && <Chin title={chinTitle} />}
342
+
343
+ <div
344
+ className={cn(
345
+ "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",
346
+ isOverlay && "relative",
347
+ )}
348
+ style={
349
+ !__SETTINGS_CONFIG__?.featured_head_allow_unlocked_aspect_ratio
350
+ ? { aspectRatio: "11 / 8" }
351
+ : undefined
352
+ }
353
+ >
354
+ {chinPosition === "overlay_above" && (
355
+ <div className="absolute top-0 left-0 right-0 z-10">
356
+ <Chin title={chinTitle} />
357
+ </div>
358
+ )}
359
+
360
+ <IframeResizer
361
+ key={`carousel-${selectedTheme}`}
362
+ id={carouselIframeId}
363
+ src={`/featured-carousel?theme=${selectedTheme}`}
364
+ style={{
365
+ height: "0px",
366
+ width: "1px",
367
+ minWidth: "100%",
368
+ border: 0,
369
+ }}
370
+ checkOrigin={false}
371
+ onResized={handleResized}
372
+ heightCalculationMethod="max"
373
+ />
374
+
375
+ {chinPosition === "overlayBelow" && (
376
+ <div className="absolute bottom-0 left-0 right-0 z-10">
377
+ <Chin title={chinTitle} />
378
+ </div>
379
+ )}
380
+ </div>
381
+
382
+ {chinPosition === "below" && <Chin title={chinTitle} />}
383
+ </div>
384
+ </div>
385
+ </TabsContent>
386
+ )}
387
+
388
+ <TabsContent value="settings" className="m-0">
389
+ <SettingsPreview settings={__SETTINGS_CONFIG__} />
390
+ </TabsContent>
391
+ </div>
392
+ </Tabs>
393
+
394
+ {/* Popup Dialog for EXPAND_LINK_APP message */}
395
+ <Dialog open={isPopupOpen} onOpenChange={setIsPopupOpen}>
396
+ <DialogContent
397
+ className="h-[calc(100dvh-2rem)] max-w-[608px] md:min-h-[25vh] md:h-[80%] md:max-h-[900px] overflow-auto"
398
+ showCloseButton={false}
399
+ >
400
+ <DialogHeader className="sticky top-0 bg-white px-4">
401
+ <div className="grid h-16 grid-cols-[32px_auto_32px] items-center gap-4">
402
+ <button className="flex size-8 items-center justify-center rounded-sm focus-visible:outline-none">
403
+ <svg
404
+ width="16"
405
+ height="16"
406
+ viewBox="0 0 16 16"
407
+ fill="none"
408
+ xmlns="http://www.w3.org/2000/svg"
409
+ className=" "
410
+ role="img"
411
+ aria-hidden="true"
412
+ >
413
+ <path
414
+ fill="currentColor"
415
+ 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"
416
+ ></path>
417
+ </svg>
418
+ </button>
419
+
420
+ <DialogTitle className="self-center truncate py-3 text-center">
421
+ Expanded
422
+ </DialogTitle>
423
+
424
+ <button className="flex size-8 items-center justify-center rounded-sm focus-visible:outline-none">
425
+ <svg
426
+ width="16"
427
+ height="16"
428
+ viewBox="0 0 16 16"
429
+ fill="none"
430
+ xmlns="http://www.w3.org/2000/svg"
431
+ className=" "
432
+ role="img"
433
+ aria-hidden="true"
434
+ >
435
+ <path
436
+ fill="currentColor"
437
+ 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"
438
+ ></path>
439
+ </svg>
440
+ </button>
441
+ </div>
442
+ </DialogHeader>
443
+
444
+ <div className="flex h-[calc(100%-64px)] flex-1 flex-col justify-between overflow-hidden">
445
+ <div className="h-full overflow-y-auto overflow-x-hidden">
446
+ <IframeResizer
447
+ key={`popup-${selectedTheme}`}
448
+ id={popupIframeId}
449
+ src={`/expanded?theme=${selectedTheme}`}
450
+ style={{
451
+ height: "0px",
452
+ width: "1px",
453
+ minWidth: "100%",
454
+ border: 0,
455
+ }}
456
+ checkOrigin={false}
457
+ onResized={handleResized}
458
+ heightCalculationMethod="max"
459
+ />
460
+ </div>
461
+ </div>
462
+ </DialogContent>
463
+ </Dialog>
464
+ </div>
465
+ </>
466
+ );
467
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"setup-runtime.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/setup-runtime.ts"],"names":[],"mappings":"AAkQA;;;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":"AAmQA;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAyBtD"}
@@ -125,25 +125,26 @@ function App({ data }: { data: ExtensionData }) {
125
125
  const baseLayout = data.__layout || params.get('layout') || 'classic'
126
126
  const groupLayoutOption = data.groupLayoutOption || params.get('groupLayoutOption')
127
127
 
128
- // Simple layout selection: expanded.tsx (or legacy sheet.tsx) OR featured.tsx OR featured-carousel.tsx
129
- let layoutName: string
128
+ // Simple layout selection with context-aware fallbacks
129
+ let LayoutComponent
130
130
 
131
- if (baseLayout === 'classic' || baseLayout === 'expanded' || baseLayout === 'sheet') {
132
- layoutName = 'expanded'
133
- } else if (baseLayout === 'featured' && groupLayoutOption === 'carousel') {
134
- layoutName = 'featured-carousel'
131
+ if (baseLayout === 'featured' && groupLayoutOption === 'carousel') {
132
+ // Featured carousel: try carousel → featured → expanded → sheet
133
+ LayoutComponent = layouts['featured-carousel'] || layouts.featured || layouts.expanded || layouts.sheet
134
+ } else if (baseLayout === 'featured') {
135
+ // Featured: try featured → expanded → sheet
136
+ LayoutComponent = layouts.featured || layouts.expanded || layouts.sheet
135
137
  } else {
136
- layoutName = 'featured'
138
+ // Classic/expanded: try expanded → sheet
139
+ LayoutComponent = layouts.expanded || layouts.sheet
137
140
  }
138
141
 
139
- const LayoutComponent = layouts[layoutName] || layouts.expanded || layouts.sheet
140
-
141
142
  // Debug logging (only in development or when component is missing)
142
143
  if (!isInIframe || !LayoutComponent) {
143
144
  console.log('[LinkApp] Layout selection:', {
144
145
  __layout: data.__layout,
145
146
  groupLayoutOption: data.groupLayoutOption,
146
- selectedLayout: layoutName,
147
+ baseLayout,
147
148
  availableLayouts: Object.keys(layouts),
148
149
  })
149
150
  }
@@ -152,7 +153,7 @@ function App({ data }: { data: ExtensionData }) {
152
153
  return (
153
154
  <div style={{ padding: '20px', fontFamily: 'system-ui' }}>
154
155
  <h1>Error: Layout not found</h1>
155
- <p>Layout "{layoutName}" does not exist.</p>
156
+ <p>No suitable layout component could be found.</p>
156
157
  <p>Available layouts: {Object.keys(layouts).join(', ')}</p>
157
158
  </div>
158
159
  )
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@linktr.ee/linkapp",
3
- "version": "0.0.46",
3
+ "version": "0.0.47",
4
4
  "description": "Development, build, and deployment tooling for LinkApps",
5
5
  "type": "module",
6
6
  "bin": {