@fluid-app/rep-widgets 0.1.15 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AlertWidget-CiMRJYmn.mjs +22 -0
- package/dist/AlertWidget-CiMRJYmn.mjs.map +1 -0
- package/dist/AlertWidget-DU_HP0EW.cjs +39 -0
- package/dist/AlertWidget-DU_HP0EW.cjs.map +1 -0
- package/dist/CalendarWidget-BI8sv5HJ.cjs +441 -0
- package/dist/CalendarWidget-BI8sv5HJ.cjs.map +1 -0
- package/dist/CalendarWidget-Dk8O2NRC.mjs +424 -0
- package/dist/CalendarWidget-Dk8O2NRC.mjs.map +1 -0
- package/dist/CarouselWidget-0RP-Rd1D.mjs +436 -0
- package/dist/CarouselWidget-0RP-Rd1D.mjs.map +1 -0
- package/dist/CarouselWidget-DLADgLPJ.cjs +453 -0
- package/dist/CarouselWidget-DLADgLPJ.cjs.map +1 -0
- package/dist/CatchUpWidget-CUnCumIf.mjs +247 -0
- package/dist/CatchUpWidget-CUnCumIf.mjs.map +1 -0
- package/dist/CatchUpWidget-DiqdwPvE.cjs +264 -0
- package/dist/CatchUpWidget-DiqdwPvE.cjs.map +1 -0
- package/dist/ChartWidget-DhAVW8w4.cjs +432 -0
- package/dist/ChartWidget-DhAVW8w4.cjs.map +1 -0
- package/dist/ChartWidget-DrF1e1sy.mjs +415 -0
- package/dist/ChartWidget-DrF1e1sy.mjs.map +1 -0
- package/dist/ContainerWidget-Cp0_vPZB.cjs +61 -0
- package/dist/ContainerWidget-Cp0_vPZB.cjs.map +1 -0
- package/dist/ContainerWidget-Xd231yys.mjs +44 -0
- package/dist/ContainerWidget-Xd231yys.mjs.map +1 -0
- package/dist/EmbedWidget-BQyYm50g.cjs +173 -0
- package/dist/EmbedWidget-BQyYm50g.cjs.map +1 -0
- package/dist/EmbedWidget-DQ2rCA4j.mjs +156 -0
- package/dist/EmbedWidget-DQ2rCA4j.mjs.map +1 -0
- package/dist/ImageWidget-DBBul7ca.mjs +150 -0
- package/dist/ImageWidget-DBBul7ca.mjs.map +1 -0
- package/dist/ImageWidget-DTwM7xCz.cjs +167 -0
- package/dist/ImageWidget-DTwM7xCz.cjs.map +1 -0
- package/dist/LayoutWidget-B1itwSsn.mjs +107 -0
- package/dist/LayoutWidget-B1itwSsn.mjs.map +1 -0
- package/dist/LayoutWidget-CWE_9JB5.cjs +124 -0
- package/dist/LayoutWidget-CWE_9JB5.cjs.map +1 -0
- package/dist/ListWidget-CxaLm0D5.cjs +919 -0
- package/dist/ListWidget-CxaLm0D5.cjs.map +1 -0
- package/dist/ListWidget-EXPlzfUE.mjs +901 -0
- package/dist/ListWidget-EXPlzfUE.mjs.map +1 -0
- package/dist/MediaRenderer-CcJvyOJ1.cjs +181 -0
- package/dist/MediaRenderer-CcJvyOJ1.cjs.map +1 -0
- package/dist/MediaRenderer-Uq90PZcY.mjs +163 -0
- package/dist/MediaRenderer-Uq90PZcY.mjs.map +1 -0
- package/dist/MySiteWidget-BTyb5AJM.mjs +262 -0
- package/dist/MySiteWidget-BTyb5AJM.mjs.map +1 -0
- package/dist/MySiteWidget-iRPl6b2F.cjs +279 -0
- package/dist/MySiteWidget-iRPl6b2F.cjs.map +1 -0
- package/dist/NestedWidget-CwyVsZ-f.mjs +330 -0
- package/dist/NestedWidget-CwyVsZ-f.mjs.map +1 -0
- package/dist/NestedWidget-DavPMVii.cjs +346 -0
- package/dist/NestedWidget-DavPMVii.cjs.map +1 -0
- package/dist/QuickShareWidget-BIOkquPG.cjs +262 -0
- package/dist/QuickShareWidget-BIOkquPG.cjs.map +1 -0
- package/dist/QuickShareWidget-BUbuTQFQ.mjs +245 -0
- package/dist/QuickShareWidget-BUbuTQFQ.mjs.map +1 -0
- package/dist/RecentActivityWidget-BgsjgQY5.cjs +408 -0
- package/dist/RecentActivityWidget-BgsjgQY5.cjs.map +1 -0
- package/dist/RecentActivityWidget-ComwTgR9.mjs +391 -0
- package/dist/RecentActivityWidget-ComwTgR9.mjs.map +1 -0
- package/dist/RegistryContext-6KXd4t6d.cjs +54 -0
- package/dist/RegistryContext-6KXd4t6d.cjs.map +1 -0
- package/dist/RegistryContext-CscXrsRa.mjs +36 -0
- package/dist/RegistryContext-CscXrsRa.mjs.map +1 -0
- package/dist/ScreenRenderer-BCd4Rsba.cjs +82 -0
- package/dist/ScreenRenderer-BCd4Rsba.cjs.map +1 -0
- package/dist/ScreenRenderer-CVJMpQ9A.mjs +76 -0
- package/dist/ScreenRenderer-CVJMpQ9A.mjs.map +1 -0
- package/dist/ScreenRendererContext-D62_Fazh.cjs +35 -0
- package/dist/ScreenRendererContext-D62_Fazh.cjs.map +1 -0
- package/dist/ScreenRendererContext-DaldtZnX.mjs +23 -0
- package/dist/ScreenRendererContext-DaldtZnX.mjs.map +1 -0
- package/dist/SpacerWidget-Bs18KYH9.mjs +43 -0
- package/dist/SpacerWidget-Bs18KYH9.mjs.map +1 -0
- package/dist/SpacerWidget-D-Foe9wG.cjs +60 -0
- package/dist/SpacerWidget-D-Foe9wG.cjs.map +1 -0
- package/dist/TableWidget-BeG92tkU.cjs +455 -0
- package/dist/TableWidget-BeG92tkU.cjs.map +1 -0
- package/dist/TableWidget-Cc4kQaOE.mjs +438 -0
- package/dist/TableWidget-Cc4kQaOE.mjs.map +1 -0
- package/dist/TextWidget-CQxOWNZK.mjs +129 -0
- package/dist/TextWidget-CQxOWNZK.mjs.map +1 -0
- package/dist/TextWidget-Cn7-yZGk.cjs +146 -0
- package/dist/TextWidget-Cn7-yZGk.cjs.map +1 -0
- package/dist/ToDoWidget--KBpHqbA.mjs +274 -0
- package/dist/ToDoWidget--KBpHqbA.mjs.map +1 -0
- package/dist/ToDoWidget-CK87BavM.cjs +291 -0
- package/dist/ToDoWidget-CK87BavM.cjs.map +1 -0
- package/dist/VideoWidget-DxuqyD5L.cjs +209 -0
- package/dist/VideoWidget-DxuqyD5L.cjs.map +1 -0
- package/dist/VideoWidget-uKkRf5pm.mjs +192 -0
- package/dist/VideoWidget-uKkRf5pm.mjs.map +1 -0
- package/dist/chunk-CZWwpsFl.cjs +43 -0
- package/dist/components/index.cjs +10 -13
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.cts +8 -5
- package/dist/components/index.d.cts.map +1 -0
- package/dist/components/index.d.mts +11 -0
- package/dist/components/index.d.mts.map +1 -0
- package/dist/components/index.mjs +11 -0
- package/dist/components/index.mjs.map +1 -0
- package/dist/contexts/index.cjs +8 -29
- package/dist/contexts/index.d.cts +20 -14
- package/dist/contexts/index.d.cts.map +1 -0
- package/dist/contexts/{index.d.ts → index.d.mts} +20 -14
- package/dist/contexts/index.d.mts.map +1 -0
- package/dist/contexts/index.mjs +3 -0
- package/dist/core/index.cjs +37 -41
- package/dist/core/index.d.cts +41 -27
- package/dist/core/index.d.cts.map +1 -0
- package/dist/core/index.d.mts +78 -0
- package/dist/core/index.d.mts.map +1 -0
- package/dist/core/index.mjs +4 -0
- package/dist/error-state-DErSxZwH.mjs +18 -0
- package/dist/error-state-DErSxZwH.mjs.map +1 -0
- package/dist/error-state-DSzVUtEl.cjs +24 -0
- package/dist/error-state-DSzVUtEl.cjs.map +1 -0
- package/dist/fields-C29fgJje.mjs +2 -0
- package/dist/fields-CzY84PV7.d.cts +2 -0
- package/dist/fields-Da4_7j4S.d.mts +2 -0
- package/dist/rolldown-runtime-wcPFST8Q.mjs +13 -0
- package/dist/scroll-arrows-BZIlsE_x.cjs +35 -0
- package/dist/scroll-arrows-BZIlsE_x.cjs.map +1 -0
- package/dist/scroll-arrows-BevCYRNT.mjs +29 -0
- package/dist/scroll-arrows-BevCYRNT.mjs.map +1 -0
- package/dist/ui/index.cjs +69 -45
- package/dist/ui/index.d.cts +12 -7
- package/dist/ui/index.d.cts.map +1 -0
- package/dist/ui/index.d.mts +15 -0
- package/dist/ui/index.d.mts.map +1 -0
- package/dist/ui/index.mjs +3 -0
- package/dist/widgets/index.cjs +88 -209
- package/dist/widgets/index.cjs.map +1 -1
- package/dist/widgets/index.d.cts +814 -524
- package/dist/widgets/index.d.cts.map +1 -0
- package/dist/widgets/index.d.mts +892 -0
- package/dist/widgets/index.d.mts.map +1 -0
- package/dist/widgets/index.mjs +46 -0
- package/dist/widgets/index.mjs.map +1 -0
- package/package.json +6 -6
- package/dist/AlertWidget-3Q4AK7PE.js +0 -5
- package/dist/AlertWidget-3Q4AK7PE.js.map +0 -1
- package/dist/AlertWidget-C3YMPF7Y.cjs +0 -18
- package/dist/AlertWidget-C3YMPF7Y.cjs.map +0 -1
- package/dist/CalendarWidget-RAB5VESS.cjs +0 -18
- package/dist/CalendarWidget-RAB5VESS.cjs.map +0 -1
- package/dist/CalendarWidget-SEYTR3AG.js +0 -5
- package/dist/CalendarWidget-SEYTR3AG.js.map +0 -1
- package/dist/CarouselWidget-5LFXRR7Y.js +0 -6
- package/dist/CarouselWidget-5LFXRR7Y.js.map +0 -1
- package/dist/CarouselWidget-G5UHRD6R.cjs +0 -19
- package/dist/CarouselWidget-G5UHRD6R.cjs.map +0 -1
- package/dist/CatchUpWidget-NEMYZ7L5.js +0 -5
- package/dist/CatchUpWidget-NEMYZ7L5.js.map +0 -1
- package/dist/CatchUpWidget-XBU2GPFS.cjs +0 -18
- package/dist/CatchUpWidget-XBU2GPFS.cjs.map +0 -1
- package/dist/ChartWidget-463QVROY.cjs +0 -17
- package/dist/ChartWidget-463QVROY.cjs.map +0 -1
- package/dist/ChartWidget-554S2GQF.js +0 -4
- package/dist/ChartWidget-554S2GQF.js.map +0 -1
- package/dist/ContainerWidget-IOXW77X7.cjs +0 -21
- package/dist/ContainerWidget-IOXW77X7.cjs.map +0 -1
- package/dist/ContainerWidget-OLQPEXDT.js +0 -8
- package/dist/ContainerWidget-OLQPEXDT.js.map +0 -1
- package/dist/EmbedWidget-HJH4Q5EH.cjs +0 -16
- package/dist/EmbedWidget-HJH4Q5EH.cjs.map +0 -1
- package/dist/EmbedWidget-JCTT47DQ.js +0 -3
- package/dist/EmbedWidget-JCTT47DQ.js.map +0 -1
- package/dist/ImageWidget-BA2V3DPL.js +0 -4
- package/dist/ImageWidget-BA2V3DPL.js.map +0 -1
- package/dist/ImageWidget-SBC7LK7A.cjs +0 -17
- package/dist/ImageWidget-SBC7LK7A.cjs.map +0 -1
- package/dist/LayoutWidget-F3BDSGDP.cjs +0 -20
- package/dist/LayoutWidget-F3BDSGDP.cjs.map +0 -1
- package/dist/LayoutWidget-MBUJVGKA.js +0 -7
- package/dist/LayoutWidget-MBUJVGKA.js.map +0 -1
- package/dist/ListWidget-4PKBMBAS.cjs +0 -19
- package/dist/ListWidget-4PKBMBAS.cjs.map +0 -1
- package/dist/ListWidget-6SZK6X3X.js +0 -6
- package/dist/ListWidget-6SZK6X3X.js.map +0 -1
- package/dist/MySiteWidget-D6NFECIP.cjs +0 -18
- package/dist/MySiteWidget-D6NFECIP.cjs.map +0 -1
- package/dist/MySiteWidget-YA4DUIG7.js +0 -5
- package/dist/MySiteWidget-YA4DUIG7.js.map +0 -1
- package/dist/NestedWidget-UDNHYTMZ.cjs +0 -19
- package/dist/NestedWidget-UDNHYTMZ.cjs.map +0 -1
- package/dist/NestedWidget-VCZ3JBQY.js +0 -6
- package/dist/NestedWidget-VCZ3JBQY.js.map +0 -1
- package/dist/QuickShareWidget-LNUEJICJ.cjs +0 -17
- package/dist/QuickShareWidget-LNUEJICJ.cjs.map +0 -1
- package/dist/QuickShareWidget-SOQEHDR7.js +0 -4
- package/dist/QuickShareWidget-SOQEHDR7.js.map +0 -1
- package/dist/RecentActivityWidget-HA5N4HCZ.cjs +0 -18
- package/dist/RecentActivityWidget-HA5N4HCZ.cjs.map +0 -1
- package/dist/RecentActivityWidget-TP32GKHT.js +0 -5
- package/dist/RecentActivityWidget-TP32GKHT.js.map +0 -1
- package/dist/SpacerWidget-DX7QRN54.cjs +0 -16
- package/dist/SpacerWidget-DX7QRN54.cjs.map +0 -1
- package/dist/SpacerWidget-H464T5YD.js +0 -3
- package/dist/SpacerWidget-H464T5YD.js.map +0 -1
- package/dist/TableWidget-D46CWY4M.cjs +0 -18
- package/dist/TableWidget-D46CWY4M.cjs.map +0 -1
- package/dist/TableWidget-P4C4ZI23.js +0 -5
- package/dist/TableWidget-P4C4ZI23.js.map +0 -1
- package/dist/TextWidget-GNUQBLDJ.js +0 -4
- package/dist/TextWidget-GNUQBLDJ.js.map +0 -1
- package/dist/TextWidget-PUZPMPOC.cjs +0 -17
- package/dist/TextWidget-PUZPMPOC.cjs.map +0 -1
- package/dist/ToDoWidget-AOAMWMN4.js +0 -5
- package/dist/ToDoWidget-AOAMWMN4.js.map +0 -1
- package/dist/ToDoWidget-L6TXR37G.cjs +0 -18
- package/dist/ToDoWidget-L6TXR37G.cjs.map +0 -1
- package/dist/VideoWidget-T6S2D4WS.cjs +0 -17
- package/dist/VideoWidget-T6S2D4WS.cjs.map +0 -1
- package/dist/VideoWidget-TI72FPLK.js +0 -4
- package/dist/VideoWidget-TI72FPLK.js.map +0 -1
- package/dist/chunk-22AKFT5D.cjs +0 -274
- package/dist/chunk-22AKFT5D.cjs.map +0 -1
- package/dist/chunk-2NPVYROG.js +0 -117
- package/dist/chunk-2NPVYROG.js.map +0 -1
- package/dist/chunk-3EGVZDJH.cjs +0 -448
- package/dist/chunk-3EGVZDJH.cjs.map +0 -1
- package/dist/chunk-4ODOZF7H.js +0 -192
- package/dist/chunk-4ODOZF7H.js.map +0 -1
- package/dist/chunk-4ZFOJT6H.js +0 -271
- package/dist/chunk-4ZFOJT6H.js.map +0 -1
- package/dist/chunk-57ZUEL25.js +0 -14
- package/dist/chunk-57ZUEL25.js.map +0 -1
- package/dist/chunk-5VJYKNCS.cjs +0 -195
- package/dist/chunk-5VJYKNCS.cjs.map +0 -1
- package/dist/chunk-6GF46P3S.js +0 -33
- package/dist/chunk-6GF46P3S.js.map +0 -1
- package/dist/chunk-6RNVWRDD.cjs +0 -179
- package/dist/chunk-6RNVWRDD.cjs.map +0 -1
- package/dist/chunk-6ZECDBGI.js +0 -3
- package/dist/chunk-6ZECDBGI.js.map +0 -1
- package/dist/chunk-AQO2AKU2.cjs +0 -35
- package/dist/chunk-AQO2AKU2.cjs.map +0 -1
- package/dist/chunk-D43XJWX3.js +0 -300
- package/dist/chunk-D43XJWX3.js.map +0 -1
- package/dist/chunk-E5ERYB7Q.js +0 -39
- package/dist/chunk-E5ERYB7Q.js.map +0 -1
- package/dist/chunk-EPTJJSHT.cjs +0 -500
- package/dist/chunk-EPTJJSHT.cjs.map +0 -1
- package/dist/chunk-FDAUWHSY.cjs +0 -268
- package/dist/chunk-FDAUWHSY.cjs.map +0 -1
- package/dist/chunk-FSLUSFJ2.cjs +0 -75
- package/dist/chunk-FSLUSFJ2.cjs.map +0 -1
- package/dist/chunk-GC4SZ75B.js +0 -47
- package/dist/chunk-GC4SZ75B.js.map +0 -1
- package/dist/chunk-HDUFHTQC.js +0 -1024
- package/dist/chunk-HDUFHTQC.js.map +0 -1
- package/dist/chunk-HOFHBVGL.js +0 -133
- package/dist/chunk-HOFHBVGL.js.map +0 -1
- package/dist/chunk-HREBEVS5.cjs +0 -42
- package/dist/chunk-HREBEVS5.cjs.map +0 -1
- package/dist/chunk-IF36TB2H.js +0 -459
- package/dist/chunk-IF36TB2H.js.map +0 -1
- package/dist/chunk-J6HCPXT5.cjs +0 -40
- package/dist/chunk-J6HCPXT5.cjs.map +0 -1
- package/dist/chunk-JIS2K5YR.js +0 -13
- package/dist/chunk-JIS2K5YR.js.map +0 -1
- package/dist/chunk-JYWKXNUO.cjs +0 -37
- package/dist/chunk-JYWKXNUO.cjs.map +0 -1
- package/dist/chunk-KYCPG2DN.cjs +0 -17
- package/dist/chunk-KYCPG2DN.cjs.map +0 -1
- package/dist/chunk-L3HN4J2Y.js +0 -175
- package/dist/chunk-L3HN4J2Y.js.map +0 -1
- package/dist/chunk-LZJVUYSQ.cjs +0 -462
- package/dist/chunk-LZJVUYSQ.cjs.map +0 -1
- package/dist/chunk-MXWFM5J2.js +0 -493
- package/dist/chunk-MXWFM5J2.js.map +0 -1
- package/dist/chunk-NPTCR22X.cjs +0 -1031
- package/dist/chunk-NPTCR22X.cjs.map +0 -1
- package/dist/chunk-P4VXS3BG.cjs +0 -464
- package/dist/chunk-P4VXS3BG.cjs.map +0 -1
- package/dist/chunk-P6AKK6TA.cjs +0 -382
- package/dist/chunk-P6AKK6TA.cjs.map +0 -1
- package/dist/chunk-PLXOZ5BH.cjs +0 -140
- package/dist/chunk-PLXOZ5BH.cjs.map +0 -1
- package/dist/chunk-Q5YXTDPX.cjs +0 -150
- package/dist/chunk-Q5YXTDPX.cjs.map +0 -1
- package/dist/chunk-QB6UW6DD.js +0 -250
- package/dist/chunk-QB6UW6DD.js.map +0 -1
- package/dist/chunk-QG2INAJC.js +0 -461
- package/dist/chunk-QG2INAJC.js.map +0 -1
- package/dist/chunk-QXIIJNQK.cjs +0 -15
- package/dist/chunk-QXIIJNQK.cjs.map +0 -1
- package/dist/chunk-RKDOQV4T.js +0 -73
- package/dist/chunk-RKDOQV4T.js.map +0 -1
- package/dist/chunk-ROLEPF3N.js +0 -399
- package/dist/chunk-ROLEPF3N.js.map +0 -1
- package/dist/chunk-RPNLSRUS.cjs +0 -120
- package/dist/chunk-RPNLSRUS.cjs.map +0 -1
- package/dist/chunk-SLGOKKU7.cjs +0 -402
- package/dist/chunk-SLGOKKU7.cjs.map +0 -1
- package/dist/chunk-U6ODF4YB.cjs +0 -303
- package/dist/chunk-U6ODF4YB.cjs.map +0 -1
- package/dist/chunk-UXFD52LT.js +0 -137
- package/dist/chunk-UXFD52LT.js.map +0 -1
- package/dist/chunk-UZ7TYGUO.js +0 -147
- package/dist/chunk-UZ7TYGUO.js.map +0 -1
- package/dist/chunk-UZF75XZJ.js +0 -379
- package/dist/chunk-UZF75XZJ.js.map +0 -1
- package/dist/chunk-VB5MPLLG.cjs +0 -136
- package/dist/chunk-VB5MPLLG.cjs.map +0 -1
- package/dist/chunk-WTQNKZKV.cjs +0 -253
- package/dist/chunk-WTQNKZKV.cjs.map +0 -1
- package/dist/chunk-YDLNXR7R.js +0 -265
- package/dist/chunk-YDLNXR7R.js.map +0 -1
- package/dist/chunk-YOJRRPOG.js +0 -33
- package/dist/chunk-YOJRRPOG.js.map +0 -1
- package/dist/chunk-YU5DAILW.cjs +0 -14
- package/dist/chunk-YU5DAILW.cjs.map +0 -1
- package/dist/chunk-YZATKTYO.cjs +0 -50
- package/dist/chunk-YZATKTYO.cjs.map +0 -1
- package/dist/chunk-ZLTPLVOF.js +0 -445
- package/dist/chunk-ZLTPLVOF.js.map +0 -1
- package/dist/chunk-ZWFK5UUU.js +0 -11
- package/dist/chunk-ZWFK5UUU.js.map +0 -1
- package/dist/components/index.d.ts +0 -8
- package/dist/components/index.js +0 -11
- package/dist/components/index.js.map +0 -1
- package/dist/contexts/index.cjs.map +0 -1
- package/dist/contexts/index.js +0 -4
- package/dist/contexts/index.js.map +0 -1
- package/dist/core/index.cjs.map +0 -1
- package/dist/core/index.d.ts +0 -64
- package/dist/core/index.js +0 -6
- package/dist/core/index.js.map +0 -1
- package/dist/ui/index.cjs.map +0 -1
- package/dist/ui/index.d.ts +0 -10
- package/dist/ui/index.js +0 -4
- package/dist/ui/index.js.map +0 -1
- package/dist/widgets/index.d.ts +0 -602
- package/dist/widgets/index.js +0 -55
- package/dist/widgets/index.js.map +0 -1
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-wcPFST8Q.mjs";
|
|
2
|
+
import { a as getFontSizeField, c as getPaddingField, i as getColorField, n as getBorderRadiusField$1, o as getGapField, t as gapValues } from "./fields-C29fgJje.mjs";
|
|
3
|
+
import { t as ScrollArrows } from "./scroll-arrows-BevCYRNT.mjs";
|
|
4
|
+
import { n as getMediaPropsFromShareable, t as MediaRenderer } from "./MediaRenderer-Uq90PZcY.mjs";
|
|
5
|
+
import { getHeightField } from "@fluid-app/rep-core/registries";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { useEffect, useRef, useState } from "react";
|
|
8
|
+
import "@fluid-app/rep-core/types";
|
|
9
|
+
//#region src/widgets/NestedWidget.tsx
|
|
10
|
+
var NestedWidget_exports = /* @__PURE__ */ __exportAll({
|
|
11
|
+
NestedWidget: () => NestedWidget,
|
|
12
|
+
nestedWidgetPropertySchema: () => nestedWidgetPropertySchema
|
|
13
|
+
});
|
|
14
|
+
const DEFAULT_SHAREABLES = [];
|
|
15
|
+
function NestedWidget({ resource, titleEnabled = true, titleText = "Featured Collection", shareables = DEFAULT_SHAREABLES, gap = "md", padding = 4, borderRadius = "md", primaryMediaHeight = "400px", titleFontSize = "xl", titleColor = "background", titleAlignment = {
|
|
16
|
+
horizontal: "left",
|
|
17
|
+
vertical: "bottom"
|
|
18
|
+
}, nestedTextColor = "foreground", background = {
|
|
19
|
+
type: "solid",
|
|
20
|
+
color: "background"
|
|
21
|
+
}, overlayEnabled = true, overlayType = "gradient", overlayIntensity = 50, className, ...props }) {
|
|
22
|
+
const scrollContainerRef = useRef(null);
|
|
23
|
+
const primaryMediaRef = useRef(null);
|
|
24
|
+
const [primaryMediaWidthPx, setPrimaryMediaWidthPx] = useState(400);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
const el = primaryMediaRef.current;
|
|
27
|
+
if (!el) return;
|
|
28
|
+
const observer = new ResizeObserver(([entry]) => {
|
|
29
|
+
if (entry) setPrimaryMediaWidthPx(entry.contentRect.width);
|
|
30
|
+
});
|
|
31
|
+
observer.observe(el);
|
|
32
|
+
return () => observer.disconnect();
|
|
33
|
+
}, []);
|
|
34
|
+
const scrollByAmount = (direction) => {
|
|
35
|
+
const container = scrollContainerRef.current;
|
|
36
|
+
if (!container) return;
|
|
37
|
+
const computedGap = parseFloat(getComputedStyle(container).gap) || 0;
|
|
38
|
+
const scrollAmount = primaryMediaWidthPx * .75 + computedGap;
|
|
39
|
+
container.scrollTo({
|
|
40
|
+
left: container.scrollLeft + (direction === "next" ? scrollAmount : -scrollAmount),
|
|
41
|
+
behavior: "smooth"
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
const hasNestedMedia = shareables.length > 0;
|
|
45
|
+
const titleAlignmentClasses = {
|
|
46
|
+
left: "text-left",
|
|
47
|
+
center: "text-center",
|
|
48
|
+
right: "text-right"
|
|
49
|
+
};
|
|
50
|
+
const backgroundColor = background.color || "background";
|
|
51
|
+
const backgroundImage = (background.resource?.image_url || background.resource?.imageUrl) && background.type === "image" ? `url(${background.resource.image_url || background.resource.imageUrl})` : "none";
|
|
52
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
53
|
+
className: `@container flex w-full p-${padding} rounded-${borderRadius} bg-${backgroundColor} ${className}`,
|
|
54
|
+
...props,
|
|
55
|
+
style: {
|
|
56
|
+
maxHeight: primaryMediaHeight,
|
|
57
|
+
backgroundImage
|
|
58
|
+
},
|
|
59
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
60
|
+
ref: primaryMediaRef,
|
|
61
|
+
className: `overflow-hidden @md:flex-none rounded-${borderRadius}`,
|
|
62
|
+
style: { width: primaryMediaHeight },
|
|
63
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
64
|
+
className: "relative h-full w-full",
|
|
65
|
+
children: [
|
|
66
|
+
/* @__PURE__ */ jsx(MediaRenderer, { ...resource ? getMediaPropsFromShareable(resource) : {} }),
|
|
67
|
+
overlayEnabled && /* @__PURE__ */ jsx("div", {
|
|
68
|
+
className: `pointer-events-none absolute inset-0 z-10 ${overlayType === "gradient" ? "bg-gradient-to-t from-black to-transparent" : "bg-black"}`,
|
|
69
|
+
style: { opacity: (Number(String(overlayIntensity).replace("%", "")) || 50) / 100 }
|
|
70
|
+
}),
|
|
71
|
+
(titleEnabled && titleText || hasNestedMedia) && /* @__PURE__ */ jsxs("div", {
|
|
72
|
+
className: `absolute z-20 w-full ${titleAlignmentClasses[titleAlignment?.horizontal ?? "left"]} p-${padding} ${titleAlignment.vertical === "top" ? `top-0 pt-${padding}` : titleAlignment.vertical === "center" ? "top-1/2 -translate-y-1/2" : `bottom-0 pb-${padding}`}`,
|
|
73
|
+
children: [titleEnabled && titleText && /* @__PURE__ */ jsx("h2", {
|
|
74
|
+
className: `leading-tight font-bold text-${titleColor} text-${titleFontSize === "md" ? "base" : titleFontSize}`,
|
|
75
|
+
children: titleText
|
|
76
|
+
}), hasNestedMedia && /* @__PURE__ */ jsx("div", {
|
|
77
|
+
className: `pt-${padding} @md:hidden`,
|
|
78
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
79
|
+
className: `flex overflow-x-auto gap-${gapValues[gap]} bg-transparent`,
|
|
80
|
+
children: shareables.map((shareable) => /* @__PURE__ */ jsx("div", {
|
|
81
|
+
className: "flex shrink-0 flex-col items-center",
|
|
82
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
83
|
+
className: `aspect-3/4 h-40 overflow-hidden rounded-${borderRadius}`,
|
|
84
|
+
children: /* @__PURE__ */ jsx(MediaRenderer, { ...getMediaPropsFromShareable(shareable) })
|
|
85
|
+
})
|
|
86
|
+
}, shareable.id))
|
|
87
|
+
})
|
|
88
|
+
})]
|
|
89
|
+
})
|
|
90
|
+
]
|
|
91
|
+
})
|
|
92
|
+
}), hasNestedMedia && /* @__PURE__ */ jsxs("div", {
|
|
93
|
+
className: `relative hidden min-w-0 self-stretch @md:flex @md:flex-1 px-${padding}`,
|
|
94
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
95
|
+
ref: scrollContainerRef,
|
|
96
|
+
className: `flex h-full flex-row overflow-x-auto gap-${gapValues[gap]}`,
|
|
97
|
+
style: { scrollSnapType: "x mandatory" },
|
|
98
|
+
children: shareables.map((shareable) => /* @__PURE__ */ jsxs("div", {
|
|
99
|
+
className: "flex flex-col gap-1",
|
|
100
|
+
style: {
|
|
101
|
+
width: `${primaryMediaWidthPx * .75}px`,
|
|
102
|
+
scrollSnapAlign: "start"
|
|
103
|
+
},
|
|
104
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
105
|
+
className: `aspect-3/4 h-full rounded-${borderRadius} overflow-hidden`,
|
|
106
|
+
children: /* @__PURE__ */ jsx(MediaRenderer, { ...getMediaPropsFromShareable(shareable) })
|
|
107
|
+
}), /* @__PURE__ */ jsxs("span", {
|
|
108
|
+
className: `flex-none text-sm text-${nestedTextColor}`,
|
|
109
|
+
children: [/* @__PURE__ */ jsx("p", {
|
|
110
|
+
className: "truncate",
|
|
111
|
+
children: shareable.title || ""
|
|
112
|
+
}), /* @__PURE__ */ jsx("p", {
|
|
113
|
+
className: "truncate",
|
|
114
|
+
children: (shareable.display_price ?? shareable.price) || ""
|
|
115
|
+
})]
|
|
116
|
+
})]
|
|
117
|
+
}, shareable.id))
|
|
118
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
119
|
+
className: `absolute inset-x-0 top-1/2 flex w-full -translate-y-1/2 items-center justify-between px-8`,
|
|
120
|
+
children: /* @__PURE__ */ jsx(ScrollArrows, {
|
|
121
|
+
onPrevious: () => scrollByAmount("prev"),
|
|
122
|
+
onNext: () => scrollByAmount("next")
|
|
123
|
+
})
|
|
124
|
+
})]
|
|
125
|
+
})]
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
const nestedWidgetPropertySchema = {
|
|
129
|
+
widgetType: "NestedWidget",
|
|
130
|
+
displayName: "Nested Widget",
|
|
131
|
+
tabsConfig: [{
|
|
132
|
+
id: "styling",
|
|
133
|
+
label: "Styling"
|
|
134
|
+
}, {
|
|
135
|
+
id: "data",
|
|
136
|
+
label: "Data"
|
|
137
|
+
}],
|
|
138
|
+
dataSourceTargetProps: ["shareables"],
|
|
139
|
+
fields: [
|
|
140
|
+
{
|
|
141
|
+
key: "resource",
|
|
142
|
+
label: "Primary Media",
|
|
143
|
+
type: "resource",
|
|
144
|
+
description: "Select the primary media displayed in the large panel",
|
|
145
|
+
allowedTypes: ["Medium"],
|
|
146
|
+
tab: "styling",
|
|
147
|
+
group: "Content"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
key: "titleEnabled",
|
|
151
|
+
label: "Widget Title",
|
|
152
|
+
type: "boolean",
|
|
153
|
+
description: "Enable the title displayed over the primary media",
|
|
154
|
+
defaultValue: true,
|
|
155
|
+
tab: "styling",
|
|
156
|
+
group: "Title"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
key: "titleText",
|
|
160
|
+
label: "Title",
|
|
161
|
+
type: "text",
|
|
162
|
+
description: "Main title displayed over the primary media",
|
|
163
|
+
defaultValue: "Featured Collection",
|
|
164
|
+
tab: "styling",
|
|
165
|
+
group: "Title",
|
|
166
|
+
requiresKeyToBeTrue: "titleEnabled"
|
|
167
|
+
},
|
|
168
|
+
getFontSizeField({
|
|
169
|
+
label: "Title Font Size",
|
|
170
|
+
defaultValue: "xl",
|
|
171
|
+
key: "titleFontSize",
|
|
172
|
+
description: "Font size for the widget title",
|
|
173
|
+
tab: "styling",
|
|
174
|
+
group: "Title",
|
|
175
|
+
requiresKeyToBeTrue: "titleEnabled"
|
|
176
|
+
}),
|
|
177
|
+
getColorField({
|
|
178
|
+
defaultValue: "background",
|
|
179
|
+
key: "titleColor",
|
|
180
|
+
label: "Title Color",
|
|
181
|
+
description: "Color for the widget title",
|
|
182
|
+
tab: "styling",
|
|
183
|
+
group: "Title",
|
|
184
|
+
requiresKeyToBeTrue: "titleEnabled"
|
|
185
|
+
}),
|
|
186
|
+
getHeightField({
|
|
187
|
+
key: "primaryMediaHeight",
|
|
188
|
+
label: "Primary Media Height",
|
|
189
|
+
description: "Height of the primary media container",
|
|
190
|
+
min: 100,
|
|
191
|
+
max: 1200,
|
|
192
|
+
step: 10,
|
|
193
|
+
defaultValue: "400px",
|
|
194
|
+
tab: "styling",
|
|
195
|
+
group: "Design"
|
|
196
|
+
}),
|
|
197
|
+
{
|
|
198
|
+
key: "separator",
|
|
199
|
+
type: "separator",
|
|
200
|
+
label: "Separator",
|
|
201
|
+
tab: "styling",
|
|
202
|
+
group: "Design"
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
key: "titleAlignment",
|
|
206
|
+
label: "Content Alignment",
|
|
207
|
+
type: "alignment",
|
|
208
|
+
description: "Alignment of the content inside the primary media",
|
|
209
|
+
defaultValue: {
|
|
210
|
+
horizontal: "left",
|
|
211
|
+
vertical: "bottom"
|
|
212
|
+
},
|
|
213
|
+
options: {
|
|
214
|
+
horizontalEnabled: true,
|
|
215
|
+
verticalEnabled: true
|
|
216
|
+
},
|
|
217
|
+
tab: "styling",
|
|
218
|
+
group: "Design"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
key: "separator2",
|
|
222
|
+
type: "separator",
|
|
223
|
+
label: "Separator",
|
|
224
|
+
tab: "styling",
|
|
225
|
+
group: "Design"
|
|
226
|
+
},
|
|
227
|
+
getPaddingField({
|
|
228
|
+
defaultValue: 4,
|
|
229
|
+
key: "padding",
|
|
230
|
+
label: "Padding",
|
|
231
|
+
description: "Padding used throughout the widget",
|
|
232
|
+
tab: "styling",
|
|
233
|
+
group: "Design"
|
|
234
|
+
}),
|
|
235
|
+
getBorderRadiusField$1({
|
|
236
|
+
defaultValue: "md",
|
|
237
|
+
label: "Border Radius",
|
|
238
|
+
key: "borderRadius",
|
|
239
|
+
description: "Rounded corners for the widget",
|
|
240
|
+
tab: "styling",
|
|
241
|
+
group: "Design"
|
|
242
|
+
}),
|
|
243
|
+
{
|
|
244
|
+
key: "overlayEnabled",
|
|
245
|
+
label: "Enable Overlay",
|
|
246
|
+
type: "boolean",
|
|
247
|
+
description: "Add a dark overlay to the primary media for better text readability",
|
|
248
|
+
defaultValue: true,
|
|
249
|
+
tab: "styling",
|
|
250
|
+
group: "Design"
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
key: "overlayType",
|
|
254
|
+
label: "Overlay Type",
|
|
255
|
+
type: "buttonGroup",
|
|
256
|
+
description: "Type of overlay effect",
|
|
257
|
+
defaultValue: "gradient",
|
|
258
|
+
options: [{
|
|
259
|
+
label: "Solid",
|
|
260
|
+
value: "solid"
|
|
261
|
+
}, {
|
|
262
|
+
label: "Gradient",
|
|
263
|
+
value: "gradient"
|
|
264
|
+
}],
|
|
265
|
+
tab: "styling",
|
|
266
|
+
group: "Design",
|
|
267
|
+
requiresKeyToBeTrue: "overlayEnabled"
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
key: "overlayIntensity",
|
|
271
|
+
label: "Overlay Intensity",
|
|
272
|
+
type: "slider",
|
|
273
|
+
description: "Opacity of the overlay (0-100)",
|
|
274
|
+
min: 0,
|
|
275
|
+
max: 100,
|
|
276
|
+
step: 5,
|
|
277
|
+
defaultValue: 50,
|
|
278
|
+
unit: "%",
|
|
279
|
+
tab: "styling",
|
|
280
|
+
group: "Design",
|
|
281
|
+
requiresKeyToBeTrue: "overlayEnabled"
|
|
282
|
+
},
|
|
283
|
+
getGapField({
|
|
284
|
+
label: "Gap",
|
|
285
|
+
defaultValue: "md",
|
|
286
|
+
key: "gap",
|
|
287
|
+
description: "Gap between nested media items",
|
|
288
|
+
tab: "styling",
|
|
289
|
+
group: "Nested Design"
|
|
290
|
+
}),
|
|
291
|
+
getColorField({
|
|
292
|
+
defaultValue: "foreground",
|
|
293
|
+
key: "nestedTextColor",
|
|
294
|
+
label: "Nested Text Color",
|
|
295
|
+
description: "Color for nested media labels",
|
|
296
|
+
tab: "styling",
|
|
297
|
+
group: "Nested Design"
|
|
298
|
+
}),
|
|
299
|
+
{
|
|
300
|
+
type: "background",
|
|
301
|
+
defaultValue: "background",
|
|
302
|
+
key: "background",
|
|
303
|
+
label: "Background",
|
|
304
|
+
description: "Background color for nested media container",
|
|
305
|
+
tab: "styling",
|
|
306
|
+
group: "Nested Design"
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
key: "dataSource",
|
|
310
|
+
label: "Data Source",
|
|
311
|
+
type: "dataSource",
|
|
312
|
+
description: "Configure dynamic data fetching from an API",
|
|
313
|
+
tab: "data",
|
|
314
|
+
group: "Data Configuration"
|
|
315
|
+
}
|
|
316
|
+
],
|
|
317
|
+
itemConfigSchema: {
|
|
318
|
+
description: "Configure settings for this item",
|
|
319
|
+
fields: [{
|
|
320
|
+
key: "title",
|
|
321
|
+
label: "Custom Title",
|
|
322
|
+
type: "text",
|
|
323
|
+
description: "Override the item's title for this widget"
|
|
324
|
+
}]
|
|
325
|
+
}
|
|
326
|
+
};
|
|
327
|
+
//#endregion
|
|
328
|
+
export { NestedWidget_exports as n, nestedWidgetPropertySchema as r, NestedWidget as t };
|
|
329
|
+
|
|
330
|
+
//# sourceMappingURL=NestedWidget-CwyVsZ-f.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NestedWidget-CwyVsZ-f.mjs","names":["getBorderRadiusField"],"sources":["../src/widgets/NestedWidget.tsx"],"sourcesContent":["import { useRef, useState, useEffect, type ComponentProps } from \"react\";\nimport {\n MediaRenderer,\n getMediaPropsFromShareable,\n} from \"../components/MediaRenderer\";\nimport type {\n BorderRadiusOptions,\n ColorOptions,\n FontSizeOptions,\n PaddingOptions,\n AlignOptions,\n GapOptions,\n BackgroundValue,\n} from \"@fluid-app/rep-core/types\";\nimport {\n getHeightField,\n type WidgetPropertySchema,\n} from \"@fluid-app/rep-core/registries\";\nimport {\n getBorderRadiusField,\n getColorField,\n getFontSizeField,\n getGapField,\n getPaddingField,\n gapValues,\n} from \"../core/fields\";\nimport { ScrollArrows } from \"../ui/scroll-arrows\";\nimport { type ShareableItem } from \"@fluid-app/rep-core/types\";\n\nconst DEFAULT_SHAREABLES: ShareableItem[] = [];\n\ntype NestedWidgetProps = ComponentProps<\"div\"> & {\n // Content\n resource?: ShareableItem;\n titleEnabled?: boolean;\n titleText?: string;\n shareables?: ShareableItem[];\n\n // Layout\n gap?: GapOptions;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n primaryMediaHeight?: string;\n\n // Title styling\n titleFontSize?: FontSizeOptions;\n titleColor?: ColorOptions;\n titleAlignment?: AlignOptions;\n\n // Nested media styling\n nestedTextColor?: ColorOptions;\n background?: BackgroundValue;\n\n // Overlay\n overlayEnabled?: boolean;\n overlayType?: \"solid\" | \"gradient\";\n overlayIntensity?: number;\n};\n\nexport function NestedWidget({\n resource,\n titleEnabled = true,\n titleText = \"Featured Collection\",\n shareables = DEFAULT_SHAREABLES,\n gap = \"md\",\n padding = 4,\n borderRadius = \"md\",\n primaryMediaHeight = \"400px\",\n titleFontSize = \"xl\",\n titleColor = \"background\",\n titleAlignment = { horizontal: \"left\", vertical: \"bottom\" },\n nestedTextColor = \"foreground\",\n background = {\n type: \"solid\",\n color: \"background\",\n },\n overlayEnabled = true,\n overlayType = \"gradient\",\n overlayIntensity = 50,\n className,\n ...props\n}: NestedWidgetProps) {\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const primaryMediaRef = useRef<HTMLDivElement>(null);\n const [primaryMediaWidthPx, setPrimaryMediaWidthPx] = useState(400);\n\n useEffect(() => {\n const el = primaryMediaRef.current;\n if (!el) return;\n const observer = new ResizeObserver(([entry]) => {\n if (entry) setPrimaryMediaWidthPx(entry.contentRect.width);\n });\n observer.observe(el);\n return () => observer.disconnect();\n }, []);\n\n const scrollByAmount = (direction: \"prev\" | \"next\") => {\n const container = scrollContainerRef.current;\n if (!container) return;\n\n const computedGap = parseFloat(getComputedStyle(container).gap) || 0;\n const itemWidth = primaryMediaWidthPx * 0.75;\n const scrollAmount = itemWidth + computedGap;\n\n container.scrollTo({\n left:\n container.scrollLeft +\n (direction === \"next\" ? scrollAmount : -scrollAmount),\n behavior: \"smooth\",\n });\n };\n\n const hasNestedMedia = shareables.length > 0;\n\n const titleAlignmentClasses = {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n };\n\n const backgroundColor = background.color || \"background\";\n const backgroundImage =\n (background.resource?.image_url || background.resource?.imageUrl) &&\n background.type === \"image\"\n ? `url(${background.resource.image_url || background.resource.imageUrl})`\n : \"none\";\n\n return (\n <div\n className={`@container flex w-full p-${padding} rounded-${borderRadius} bg-${backgroundColor} ${className}`}\n {...props}\n style={{\n maxHeight: primaryMediaHeight,\n backgroundImage: backgroundImage,\n }}\n >\n {/* Primary Media Container - Full width on mobile, fixed on desktop */}\n <div\n ref={primaryMediaRef}\n className={`overflow-hidden @md:flex-none rounded-${borderRadius}`}\n style={{\n width: primaryMediaHeight,\n }}\n >\n {/* Primary Media */}\n <div className=\"relative h-full w-full\">\n <MediaRenderer\n {...(resource ? getMediaPropsFromShareable(resource) : {})}\n />\n\n {/* Overlay */}\n {overlayEnabled && (\n <div\n className={`pointer-events-none absolute inset-0 z-10 ${\n overlayType === \"gradient\"\n ? \"bg-gradient-to-t from-black to-transparent\"\n : \"bg-black\"\n }`}\n style={{\n opacity:\n (Number(String(overlayIntensity).replace(\"%\", \"\")) || 50) /\n 100,\n }}\n />\n )}\n\n {/* Title and Mobile Nested Media */}\n {((titleEnabled && titleText) || hasNestedMedia) && (\n <div\n className={`absolute z-20 w-full ${titleAlignmentClasses[titleAlignment?.horizontal ?? \"left\"]} p-${padding} ${\n titleAlignment.vertical === \"top\"\n ? `top-0 pt-${padding}`\n : titleAlignment.vertical === \"center\"\n ? \"top-1/2 -translate-y-1/2\"\n : `bottom-0 pb-${padding}`\n }`}\n >\n {titleEnabled && titleText && (\n <h2\n className={`leading-tight font-bold text-${titleColor} text-${titleFontSize === \"md\" ? \"base\" : titleFontSize}`}\n >\n {titleText}\n </h2>\n )}\n\n {/* Mobile: Products overlay inside primary media */}\n {hasNestedMedia && (\n <div className={`pt-${padding} @md:hidden`}>\n <div\n className={`flex overflow-x-auto gap-${gapValues[gap]} bg-transparent`}\n >\n {shareables.map((shareable) => (\n <div\n key={shareable.id}\n className=\"flex shrink-0 flex-col items-center\"\n >\n <div\n className={`aspect-3/4 h-40 overflow-hidden rounded-${borderRadius}`}\n >\n <MediaRenderer\n {...getMediaPropsFromShareable(shareable)}\n />\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n\n {/* Desktop: Products Container - Single row beside primary media */}\n {hasNestedMedia && (\n <div\n className={`relative hidden min-w-0 self-stretch @md:flex @md:flex-1 px-${padding}`}\n >\n <div\n ref={scrollContainerRef}\n className={`flex h-full flex-row overflow-x-auto gap-${gapValues[gap]}`}\n style={{ scrollSnapType: \"x mandatory\" }}\n >\n {shareables.map((shareable) => (\n <div\n key={shareable.id}\n className=\"flex flex-col gap-1\"\n style={{\n width: `${primaryMediaWidthPx * 0.75}px`,\n scrollSnapAlign: \"start\",\n }}\n >\n <div\n className={`aspect-3/4 h-full rounded-${borderRadius} overflow-hidden`}\n >\n <MediaRenderer {...getMediaPropsFromShareable(shareable)} />\n </div>\n <span className={`flex-none text-sm text-${nestedTextColor}`}>\n <p className=\"truncate\">{shareable.title || \"\"}</p>\n <p className=\"truncate\">\n {((shareable.display_price as string) ?? shareable.price) ||\n \"\"}\n </p>\n </span>\n </div>\n ))}\n </div>\n\n {/* Navigation arrows */}\n <div\n className={`absolute inset-x-0 top-1/2 flex w-full -translate-y-1/2 items-center justify-between px-8`}\n >\n <ScrollArrows\n onPrevious={() => scrollByAmount(\"prev\")}\n onNext={() => scrollByAmount(\"next\")}\n />\n </div>\n </div>\n )}\n </div>\n );\n}\n\nexport const nestedWidgetPropertySchema: WidgetPropertySchema = {\n widgetType: \"NestedWidget\",\n displayName: \"Nested Widget\",\n tabsConfig: [\n { id: \"styling\", label: \"Styling\" },\n { id: \"data\", label: \"Data\" },\n ],\n dataSourceTargetProps: [\"shareables\"],\n fields: [\n // Content tab - Resource group\n {\n key: \"resource\",\n label: \"Primary Media\",\n type: \"resource\",\n description: \"Select the primary media displayed in the large panel\",\n allowedTypes: [\"Medium\"],\n tab: \"styling\",\n group: \"Content\",\n },\n // Content tab - Title group\n {\n key: \"titleEnabled\",\n label: \"Widget Title\",\n type: \"boolean\",\n description: \"Enable the title displayed over the primary media\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Title\",\n },\n {\n key: \"titleText\",\n label: \"Title\",\n type: \"text\",\n description: \"Main title displayed over the primary media\",\n defaultValue: \"Featured Collection\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n },\n getFontSizeField({\n label: \"Title Font Size\",\n defaultValue: \"xl\",\n key: \"titleFontSize\",\n description: \"Font size for the widget title\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n getColorField({\n defaultValue: \"background\",\n key: \"titleColor\",\n label: \"Title Color\",\n description: \"Color for the widget title\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n // Styling tab - Design group\n getHeightField({\n key: \"primaryMediaHeight\",\n label: \"Primary Media Height\",\n description: \"Height of the primary media container\",\n min: 100,\n max: 1200,\n step: 10,\n defaultValue: \"400px\",\n tab: \"styling\",\n group: \"Design\",\n }),\n {\n key: \"separator\",\n type: \"separator\",\n label: \"Separator\",\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"titleAlignment\",\n label: \"Content Alignment\",\n type: \"alignment\",\n description: \"Alignment of the content inside the primary media\",\n defaultValue: { horizontal: \"left\", vertical: \"bottom\" },\n options: {\n horizontalEnabled: true,\n verticalEnabled: true,\n },\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"separator2\",\n type: \"separator\",\n label: \"Separator\",\n tab: \"styling\",\n group: \"Design\",\n },\n getPaddingField({\n defaultValue: 4,\n key: \"padding\",\n label: \"Padding\",\n description: \"Padding used throughout the widget\",\n tab: \"styling\",\n group: \"Design\",\n }),\n getBorderRadiusField({\n defaultValue: \"md\",\n label: \"Border Radius\",\n key: \"borderRadius\",\n description: \"Rounded corners for the widget\",\n tab: \"styling\",\n group: \"Design\",\n }),\n {\n key: \"overlayEnabled\",\n label: \"Enable Overlay\",\n type: \"boolean\",\n description:\n \"Add a dark overlay to the primary media for better text readability\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"overlayType\",\n label: \"Overlay Type\",\n type: \"buttonGroup\",\n description: \"Type of overlay effect\",\n defaultValue: \"gradient\",\n options: [\n { label: \"Solid\", value: \"solid\" },\n { label: \"Gradient\", value: \"gradient\" },\n ],\n tab: \"styling\",\n group: \"Design\",\n requiresKeyToBeTrue: \"overlayEnabled\",\n },\n {\n key: \"overlayIntensity\",\n label: \"Overlay Intensity\",\n type: \"slider\",\n description: \"Opacity of the overlay (0-100)\",\n min: 0,\n max: 100,\n step: 5,\n defaultValue: 50,\n unit: \"%\",\n tab: \"styling\",\n group: \"Design\",\n requiresKeyToBeTrue: \"overlayEnabled\",\n },\n // Styling tab - Nested Media Styling group\n getGapField({\n label: \"Gap\",\n defaultValue: \"md\",\n key: \"gap\",\n description: \"Gap between nested media items\",\n tab: \"styling\",\n group: \"Nested Design\",\n }),\n getColorField({\n defaultValue: \"foreground\",\n key: \"nestedTextColor\",\n label: \"Nested Text Color\",\n description: \"Color for nested media labels\",\n tab: \"styling\",\n group: \"Nested Design\",\n }),\n {\n type: \"background\",\n defaultValue: \"background\",\n key: \"background\",\n label: \"Background\",\n description: \"Background color for nested media container\",\n tab: \"styling\",\n group: \"Nested Design\",\n },\n // Data tab\n {\n key: \"dataSource\",\n label: \"Data Source\",\n type: \"dataSource\",\n description: \"Configure dynamic data fetching from an API\",\n tab: \"data\",\n group: \"Data Configuration\",\n },\n ],\n // Per-item configuration schema for custom data sources\n itemConfigSchema: {\n description: \"Configure settings for this item\",\n fields: [\n {\n key: \"title\",\n label: \"Custom Title\",\n type: \"text\",\n description: \"Override the item's title for this widget\",\n },\n ],\n },\n} as const satisfies WidgetPropertySchema;\n"],"mappings":"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GACR;EACD,gBAAgB;GACd,cAAc;GACd,KAAK;GACL,OAAO;GACP,aAAa;GACb,KAAK;GACL,OAAO;GACR,CAAC;EACFA,uBAAqB;GACnB,cAAc;GACd,OAAO;GACP,KAAK;GACL,aAAa;GACb,KAAK;GACL,OAAO;GACR,CAAC;EACF;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aACE;GACF,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,cAAc;GACd,SAAS,CACP;IAAE,OAAO;IAAS,OAAO;IAAS,EAClC;IAAE,OAAO;IAAY,OAAO;IAAY,CACzC;GACD,KAAK;GACL,OAAO;GACP,qBAAqB;GACtB;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,KAAK;GACL,KAAK;GACL,MAAM;GACN,cAAc;GACd,MAAM;GACN,KAAK;GACL,OAAO;GACP,qBAAqB;GACtB;EAED,YAAY;GACV,OAAO;GACP,cAAc;GACd,KAAK;GACL,aAAa;GACb,KAAK;GACL,OAAO;GACR,CAAC;EACF,cAAc;GACZ,cAAc;GACd,KAAK;GACL,OAAO;GACP,aAAa;GACb,KAAK;GACL,OAAO;GACR,CAAC;EACF;GACE,MAAM;GACN,cAAc;GACd,KAAK;GACL,OAAO;GACP,aAAa;GACb,KAAK;GACL,OAAO;GACR;EAED;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,KAAK;GACL,OAAO;GACR;EACF;CAED,kBAAkB;EAChB,aAAa;EACb,QAAQ,CACN;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACd,CACF;EACF;CACF"}
|