@fluid-app/rep-widgets 0.1.16 → 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 -526
- 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-B7RFGTJB.js +0 -3
- package/dist/EmbedWidget-B7RFGTJB.js.map +0 -1
- package/dist/EmbedWidget-RETHBVTD.cjs +0 -16
- package/dist/EmbedWidget-RETHBVTD.cjs.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-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-SINQXEBL.js +0 -160
- package/dist/chunk-SINQXEBL.js.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-WTQNKZKV.cjs +0 -253
- package/dist/chunk-WTQNKZKV.cjs.map +0 -1
- package/dist/chunk-WWKBIVET.cjs +0 -163
- package/dist/chunk-WWKBIVET.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 -604
- package/dist/widgets/index.js +0 -55
- package/dist/widgets/index.js.map +0 -1
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
const require_chunk = require("./chunk-CZWwpsFl.cjs");
|
|
2
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
3
|
+
let _fluid_app_rep_core_registries = require("@fluid-app/rep-core/registries");
|
|
4
|
+
//#region src/widgets/TextWidget.tsx
|
|
5
|
+
var TextWidget_exports = /* @__PURE__ */ require_chunk.__exportAll({
|
|
6
|
+
TextWidget: () => TextWidget,
|
|
7
|
+
textWidgetPropertySchema: () => textWidgetPropertySchema
|
|
8
|
+
});
|
|
9
|
+
function TextWidget({ titleEnabled = true, title = "Text Widget", titleFontSize = "xl", titleColor = "foreground", description = "This is a text widget", descriptionFontSize = "md", descriptionColor = "foreground", background = {
|
|
10
|
+
type: "solid",
|
|
11
|
+
color: "background"
|
|
12
|
+
}, padding = 4, borderRadius = "md", className, ...props }) {
|
|
13
|
+
const backgroundColor = background.color || "background";
|
|
14
|
+
const backgroundImage = (background.resource?.image_url || background.resource?.imageUrl) && background.type === "image" ? `url(${background.resource.image_url || background.resource.imageUrl})` : "none";
|
|
15
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
16
|
+
className: `bg-${backgroundColor} p-${padding} rounded-${borderRadius} ${className ?? ""}`,
|
|
17
|
+
style: { backgroundImage },
|
|
18
|
+
...props,
|
|
19
|
+
children: [titleEnabled && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h2", {
|
|
20
|
+
className: `text-${titleFontSize} text-${titleColor} font-bold`,
|
|
21
|
+
children: title
|
|
22
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
23
|
+
className: `text-${descriptionFontSize} text-${descriptionColor}`,
|
|
24
|
+
children: description
|
|
25
|
+
})]
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
const textWidgetPropertySchema = {
|
|
29
|
+
widgetType: "TextWidget",
|
|
30
|
+
displayName: "Text Widget",
|
|
31
|
+
tabsConfig: [{
|
|
32
|
+
id: "content",
|
|
33
|
+
label: "Content"
|
|
34
|
+
}],
|
|
35
|
+
dataSourceTargetProps: ["title", "description"],
|
|
36
|
+
fields: [
|
|
37
|
+
{
|
|
38
|
+
key: "titleEnabled",
|
|
39
|
+
label: "Widget Title",
|
|
40
|
+
type: "boolean",
|
|
41
|
+
description: "Enable the title displayed above the text",
|
|
42
|
+
defaultValue: true,
|
|
43
|
+
tab: "content",
|
|
44
|
+
group: "Title"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
key: "title",
|
|
48
|
+
label: "Title",
|
|
49
|
+
type: "text",
|
|
50
|
+
description: "The title",
|
|
51
|
+
defaultValue: "Heads up!",
|
|
52
|
+
tab: "content",
|
|
53
|
+
group: "Title",
|
|
54
|
+
requiresKeyToBeTrue: "titleEnabled"
|
|
55
|
+
},
|
|
56
|
+
(0, _fluid_app_rep_core_registries.getFontSizeField)({
|
|
57
|
+
key: "titleFontSize",
|
|
58
|
+
label: "Title Font Size",
|
|
59
|
+
description: "Font size for the title",
|
|
60
|
+
defaultValue: "xl",
|
|
61
|
+
tab: "content",
|
|
62
|
+
group: "Title",
|
|
63
|
+
requiresKeyToBeTrue: "titleEnabled"
|
|
64
|
+
}),
|
|
65
|
+
(0, _fluid_app_rep_core_registries.getColorField)({
|
|
66
|
+
key: "titleColor",
|
|
67
|
+
label: "Title Color",
|
|
68
|
+
description: "The color of the title",
|
|
69
|
+
defaultValue: "foreground",
|
|
70
|
+
tab: "content",
|
|
71
|
+
group: "Title",
|
|
72
|
+
requiresKeyToBeTrue: "titleEnabled"
|
|
73
|
+
}),
|
|
74
|
+
{
|
|
75
|
+
key: "description",
|
|
76
|
+
label: "Description",
|
|
77
|
+
type: "textarea",
|
|
78
|
+
description: "The text message",
|
|
79
|
+
rows: 3,
|
|
80
|
+
defaultValue: "You can add components and dependencies to your app using the cli.",
|
|
81
|
+
tab: "content",
|
|
82
|
+
group: "Description"
|
|
83
|
+
},
|
|
84
|
+
(0, _fluid_app_rep_core_registries.getFontSizeField)({
|
|
85
|
+
key: "descriptionFontSize",
|
|
86
|
+
label: "Description Font Size",
|
|
87
|
+
description: "Font size for the text",
|
|
88
|
+
defaultValue: "md",
|
|
89
|
+
tab: "content",
|
|
90
|
+
group: "Description"
|
|
91
|
+
}),
|
|
92
|
+
(0, _fluid_app_rep_core_registries.getColorField)({
|
|
93
|
+
key: "descriptionColor",
|
|
94
|
+
label: "Description Color",
|
|
95
|
+
description: "The color of the text",
|
|
96
|
+
defaultValue: "foreground",
|
|
97
|
+
tab: "content",
|
|
98
|
+
group: "Description"
|
|
99
|
+
}),
|
|
100
|
+
{
|
|
101
|
+
type: "background",
|
|
102
|
+
key: "background",
|
|
103
|
+
label: "Background",
|
|
104
|
+
description: "Background for the text container",
|
|
105
|
+
defaultValue: "background",
|
|
106
|
+
tab: "content",
|
|
107
|
+
group: "Style"
|
|
108
|
+
},
|
|
109
|
+
(0, _fluid_app_rep_core_registries.getPaddingField)({
|
|
110
|
+
key: "padding",
|
|
111
|
+
label: "Padding",
|
|
112
|
+
description: "The padding of the text container",
|
|
113
|
+
defaultValue: 4,
|
|
114
|
+
tab: "content",
|
|
115
|
+
group: "Style"
|
|
116
|
+
}),
|
|
117
|
+
(0, _fluid_app_rep_core_registries.getBorderRadiusField)({
|
|
118
|
+
key: "borderRadius",
|
|
119
|
+
description: "The border radius of the text container",
|
|
120
|
+
label: "Border Radius",
|
|
121
|
+
tab: "content",
|
|
122
|
+
group: "Style"
|
|
123
|
+
})
|
|
124
|
+
]
|
|
125
|
+
};
|
|
126
|
+
//#endregion
|
|
127
|
+
Object.defineProperty(exports, "TextWidget", {
|
|
128
|
+
enumerable: true,
|
|
129
|
+
get: function() {
|
|
130
|
+
return TextWidget;
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
Object.defineProperty(exports, "TextWidget_exports", {
|
|
134
|
+
enumerable: true,
|
|
135
|
+
get: function() {
|
|
136
|
+
return TextWidget_exports;
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
Object.defineProperty(exports, "textWidgetPropertySchema", {
|
|
140
|
+
enumerable: true,
|
|
141
|
+
get: function() {
|
|
142
|
+
return textWidgetPropertySchema;
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
//# sourceMappingURL=TextWidget-Cn7-yZGk.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextWidget-Cn7-yZGk.cjs","names":[],"sources":["../src/widgets/TextWidget.tsx"],"sourcesContent":["import type { WidgetPropertySchema } from \"@fluid-app/rep-core/registries\";\nimport type { ComponentProps } from \"react\";\nimport {\n getBorderRadiusField,\n getColorField,\n getFontSizeField,\n getPaddingField,\n} from \"../core/fields\";\nimport type {\n BackgroundValue,\n BorderRadiusOptions,\n ColorOptions,\n FontSizeOptions,\n PaddingOptions,\n} from \"@fluid-app/rep-core/types\";\n\ntype TextWidgetProps = ComponentProps<\"div\"> & {\n // Title\n titleEnabled?: boolean;\n title?: string;\n titleFontSize?: FontSizeOptions;\n titleColor?: ColorOptions;\n\n // Description\n description?: string;\n descriptionFontSize?: FontSizeOptions;\n descriptionColor?: ColorOptions;\n\n // Styling\n background?: BackgroundValue;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n};\n\nexport function TextWidget({\n titleEnabled = true,\n title = \"Text Widget\",\n titleFontSize = \"xl\",\n titleColor = \"foreground\",\n description = \"This is a text widget\",\n descriptionFontSize = \"md\",\n descriptionColor = \"foreground\",\n background = {\n type: \"solid\",\n color: \"background\",\n },\n padding = 4,\n borderRadius = \"md\",\n className,\n ...props\n}: TextWidgetProps) {\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 return (\n <div\n className={`bg-${backgroundColor} p-${padding} rounded-${borderRadius} ${className ?? \"\"}`}\n style={{ backgroundImage }}\n {...props}\n >\n {titleEnabled && (\n <h2 className={`text-${titleFontSize} text-${titleColor} font-bold`}>\n {title}\n </h2>\n )}\n <p className={`text-${descriptionFontSize} text-${descriptionColor}`}>\n {description}\n </p>\n </div>\n );\n}\n\nexport const textWidgetPropertySchema: WidgetPropertySchema = {\n widgetType: \"TextWidget\",\n displayName: \"Text Widget\",\n tabsConfig: [{ id: \"content\", label: \"Content\" }],\n dataSourceTargetProps: [\"title\", \"description\"],\n fields: [\n // Content Tab - Title Group\n {\n key: \"titleEnabled\",\n label: \"Widget Title\",\n type: \"boolean\",\n description: \"Enable the title displayed above the text\",\n defaultValue: true,\n tab: \"content\",\n group: \"Title\",\n },\n {\n key: \"title\",\n label: \"Title\",\n type: \"text\",\n description: \"The title\",\n defaultValue: \"Heads up!\",\n tab: \"content\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n },\n getFontSizeField({\n key: \"titleFontSize\",\n label: \"Title Font Size\",\n description: \"Font size for the title\",\n defaultValue: \"xl\",\n tab: \"content\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n getColorField({\n key: \"titleColor\",\n label: \"Title Color\",\n description: \"The color of the title\",\n defaultValue: \"foreground\",\n tab: \"content\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n // Content Tab - Description Group\n {\n key: \"description\",\n label: \"Description\",\n type: \"textarea\",\n description: \"The text message\",\n rows: 3,\n defaultValue:\n \"You can add components and dependencies to your app using the cli.\",\n tab: \"content\",\n group: \"Description\",\n },\n getFontSizeField({\n key: \"descriptionFontSize\",\n label: \"Description Font Size\",\n description: \"Font size for the text\",\n defaultValue: \"md\",\n tab: \"content\",\n group: \"Description\",\n }),\n getColorField({\n key: \"descriptionColor\",\n label: \"Description Color\",\n description: \"The color of the text\",\n defaultValue: \"foreground\",\n tab: \"content\",\n group: \"Description\",\n }),\n // Content Tab - Style Group\n {\n type: \"background\",\n key: \"background\",\n label: \"Background\",\n description: \"Background for the text container\",\n defaultValue: \"background\",\n tab: \"content\",\n group: \"Style\",\n },\n getPaddingField({\n key: \"padding\",\n label: \"Padding\",\n description: \"The padding of the text container\",\n defaultValue: 4,\n tab: \"content\",\n group: \"Style\",\n }),\n getBorderRadiusField({\n key: \"borderRadius\",\n description: \"The border radius of the text container\",\n label: \"Border Radius\",\n tab: \"content\",\n group: \"Style\",\n }),\n ],\n};\n"],"mappings":";;;;;;;;AAkCA,SAAgB,WAAW,EACzB,eAAe,MACf,QAAQ,eACR,gBAAgB,MAChB,aAAa,cACb,cAAc,yBACd,sBAAsB,MACtB,mBAAmB,cACnB,aAAa;CACX,MAAM;CACN,OAAO;CACR,EACD,UAAU,GACV,eAAe,MACf,WACA,GAAG,SACe;CAClB,MAAM,kBAAkB,WAAW,SAAS;CAC5C,MAAM,mBACH,WAAW,UAAU,aAAa,WAAW,UAAU,aACxD,WAAW,SAAS,UAChB,OAAO,WAAW,SAAS,aAAa,WAAW,SAAS,SAAS,KACrE;AACN,QACE,iBAAA,GAAA,kBAAA,MAAC,OAAD;EACE,WAAW,MAAM,gBAAgB,KAAK,QAAQ,WAAW,aAAa,GAAG,aAAa;EACtF,OAAO,EAAE,iBAAiB;EAC1B,GAAI;YAHN,CAKG,gBACC,iBAAA,GAAA,kBAAA,KAAC,MAAD;GAAI,WAAW,QAAQ,cAAc,QAAQ,WAAW;aACrD;GACE,CAAA,EAEP,iBAAA,GAAA,kBAAA,KAAC,KAAD;GAAG,WAAW,QAAQ,oBAAoB,QAAQ;aAC/C;GACC,CAAA,CACA;;;AAIV,MAAa,2BAAiD;CAC5D,YAAY;CACZ,aAAa;CACb,YAAY,CAAC;EAAE,IAAI;EAAW,OAAO;EAAW,CAAC;CACjD,uBAAuB,CAAC,SAAS,cAAc;CAC/C,QAAQ;EAEN;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACP,qBAAqB;GACtB;uDACgB;GACf,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACP,qBAAqB;GACtB,CAAC;oDACY;GACZ,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACP,qBAAqB;GACtB,CAAC;EAEF;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,MAAM;GACN,cACE;GACF,KAAK;GACL,OAAO;GACR;uDACgB;GACf,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;oDACY;GACZ,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EAEF;GACE,MAAM;GACN,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR;sDACe;GACd,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;2DACmB;GACnB,KAAK;GACL,aAAa;GACb,OAAO;GACP,KAAK;GACL,OAAO;GACR,CAAC;EACH;CACF"}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-wcPFST8Q.mjs";
|
|
2
|
+
import { a as getFontSizeField, c as getPaddingField, i as getColorField, n as getBorderRadiusField } from "./fields-C29fgJje.mjs";
|
|
3
|
+
import { t as ErrorState } from "./error-state-DErSxZwH.mjs";
|
|
4
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { useQuery } from "@tanstack/react-query";
|
|
6
|
+
import { useDataSourceConfig } from "@fluid-app/rep-core/data-sources/context";
|
|
7
|
+
import { useWidgetPreviewContext } from "@fluid-app/rep-core/data-sources/preview-context";
|
|
8
|
+
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|
9
|
+
import { faListCheck, faPlus } from "@fortawesome/pro-regular-svg-icons";
|
|
10
|
+
//#region src/hooks/use-todos.preview.ts
|
|
11
|
+
const now = /* @__PURE__ */ new Date();
|
|
12
|
+
function daysFromNow(days) {
|
|
13
|
+
const d = new Date(now);
|
|
14
|
+
d.setDate(d.getDate() + days);
|
|
15
|
+
return d.toISOString();
|
|
16
|
+
}
|
|
17
|
+
const PREVIEW_DATA = [
|
|
18
|
+
{
|
|
19
|
+
id: 1,
|
|
20
|
+
body: "Send follow-up email to new leads",
|
|
21
|
+
dueAt: daysFromNow(1),
|
|
22
|
+
completedAt: null,
|
|
23
|
+
createdAt: daysFromNow(-2),
|
|
24
|
+
contactName: "Sarah Johnson"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: 2,
|
|
28
|
+
body: "Prepare slides for team training",
|
|
29
|
+
dueAt: daysFromNow(3),
|
|
30
|
+
completedAt: null,
|
|
31
|
+
createdAt: daysFromNow(-1),
|
|
32
|
+
contactName: null
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
id: 3,
|
|
36
|
+
body: "Review monthly sales report",
|
|
37
|
+
dueAt: daysFromNow(-1),
|
|
38
|
+
completedAt: null,
|
|
39
|
+
createdAt: daysFromNow(-5),
|
|
40
|
+
contactName: "Mike Chen"
|
|
41
|
+
}
|
|
42
|
+
];
|
|
43
|
+
//#endregion
|
|
44
|
+
//#region src/hooks/use-todos.ts
|
|
45
|
+
function useTodos() {
|
|
46
|
+
const { baseUrl, getApiHeaders } = useDataSourceConfig();
|
|
47
|
+
const { isPreview } = useWidgetPreviewContext();
|
|
48
|
+
return useQuery({
|
|
49
|
+
queryKey: [
|
|
50
|
+
"rep-widget-use",
|
|
51
|
+
"todos",
|
|
52
|
+
isPreview ? "preview" : baseUrl
|
|
53
|
+
],
|
|
54
|
+
queryFn: async ({ signal }) => {
|
|
55
|
+
const url = baseUrl ? `${baseUrl}/tasks` : "/tasks";
|
|
56
|
+
const response = await fetch(url, {
|
|
57
|
+
headers: {
|
|
58
|
+
"content-type": "application/json",
|
|
59
|
+
...getApiHeaders?.()
|
|
60
|
+
},
|
|
61
|
+
signal
|
|
62
|
+
});
|
|
63
|
+
if (!response.ok) throw new Error(`Failed to fetch todos: ${response.status}`);
|
|
64
|
+
return transformTodos(await response.json());
|
|
65
|
+
},
|
|
66
|
+
enabled: !isPreview,
|
|
67
|
+
...isPreview && { placeholderData: PREVIEW_DATA }
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function transformTodos(rawData) {
|
|
71
|
+
return rawData.map((todo) => ({
|
|
72
|
+
id: todo.id,
|
|
73
|
+
body: todo.body,
|
|
74
|
+
dueAt: todo.due_at,
|
|
75
|
+
completedAt: todo.completed_at,
|
|
76
|
+
createdAt: todo.created_at,
|
|
77
|
+
contactName: todo.contact ? `${todo.contact.first_name} ${todo.contact.last_name}` : null
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
//#endregion
|
|
81
|
+
//#region src/widgets/ToDoWidget.tsx
|
|
82
|
+
var ToDoWidget_exports = /* @__PURE__ */ __exportAll({
|
|
83
|
+
ToDoWidget: () => ToDoWidget,
|
|
84
|
+
toDoWidgetPropertySchema: () => toDoWidgetPropertySchema
|
|
85
|
+
});
|
|
86
|
+
function ToDoWidget({ titleEnabled = true, titleText = "To-Do", titleFontSize = "lg", titleColor = "foreground", background = {
|
|
87
|
+
type: "solid",
|
|
88
|
+
color: "background"
|
|
89
|
+
}, textColor = "foreground", accentColor = "primary", padding = 4, borderRadius = "md", maxItems = 5, className, ...props }) {
|
|
90
|
+
const backgroundColor = background.color || "background";
|
|
91
|
+
const backgroundImage = (background.resource?.image_url || background.resource?.imageUrl) && background.type === "image" ? `url(${background.resource.image_url || background.resource.imageUrl})` : "none";
|
|
92
|
+
const { data: todos = [], isLoading, isError } = useTodos();
|
|
93
|
+
const activeTodos = (todos.length > 0 ? todos : []).filter((todo) => !todo.completedAt);
|
|
94
|
+
const todosToShow = activeTodos.slice(0, maxItems);
|
|
95
|
+
const remainingCount = activeTodos.length - todosToShow.length;
|
|
96
|
+
const isEmpty = activeTodos.length === 0;
|
|
97
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
98
|
+
className: `overflow-hidden rounded-${borderRadius} bg-${backgroundColor} text-${textColor} p-${padding} ${className ?? ""}`,
|
|
99
|
+
style: { backgroundImage },
|
|
100
|
+
...props,
|
|
101
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
102
|
+
className: "mb-3 flex items-center justify-between",
|
|
103
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
104
|
+
className: "flex items-center gap-3",
|
|
105
|
+
children: titleEnabled && titleText && /* @__PURE__ */ jsx("h2", {
|
|
106
|
+
className: `text-${titleFontSize} font-bold text-${titleColor}`,
|
|
107
|
+
children: titleText
|
|
108
|
+
})
|
|
109
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
110
|
+
className: "flex items-center gap-2",
|
|
111
|
+
children: [!isEmpty && !isLoading && /* @__PURE__ */ jsx("span", {
|
|
112
|
+
className: `text-2xl font-bold text-${accentColor}`,
|
|
113
|
+
children: activeTodos.length
|
|
114
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
115
|
+
className: `flex h-10 w-10 shrink-0 items-center justify-center`,
|
|
116
|
+
children: /* @__PURE__ */ jsx(FontAwesomeIcon, {
|
|
117
|
+
icon: faListCheck,
|
|
118
|
+
className: `h-5 w-5 text-${accentColor}-foreground`
|
|
119
|
+
})
|
|
120
|
+
})]
|
|
121
|
+
})]
|
|
122
|
+
}), isLoading ? /* @__PURE__ */ jsx("div", {
|
|
123
|
+
className: "flex min-h-[120px] items-center justify-center",
|
|
124
|
+
children: /* @__PURE__ */ jsx("div", { className: "h-6 w-6 animate-spin rounded-full border-2 border-current border-t-transparent" })
|
|
125
|
+
}) : isError ? /* @__PURE__ */ jsx(ErrorState, {}) : isEmpty ? /* @__PURE__ */ jsx("div", {
|
|
126
|
+
className: "flex flex-col items-center justify-center py-8",
|
|
127
|
+
children: /* @__PURE__ */ jsx("p", {
|
|
128
|
+
className: `text-center text-${textColor}/60`,
|
|
129
|
+
children: "You've got nothing else To-Do!"
|
|
130
|
+
})
|
|
131
|
+
}) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("div", {
|
|
132
|
+
className: "flex flex-col",
|
|
133
|
+
children: todosToShow.map((todo, index) => /* @__PURE__ */ jsxs("div", {
|
|
134
|
+
className: `flex items-center gap-3 py-2.5 ${index !== todosToShow.length - 1 ? `border-b border-${textColor}/10` : ""}`,
|
|
135
|
+
children: [/* @__PURE__ */ jsx("input", {
|
|
136
|
+
type: "checkbox",
|
|
137
|
+
className: `h-5 w-5 rounded-full border-2 border-${textColor}/30 bg-transparent`,
|
|
138
|
+
checked: !!todo.completedAt,
|
|
139
|
+
readOnly: true
|
|
140
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
141
|
+
className: "line-clamp-1 flex-1 text-sm",
|
|
142
|
+
children: todo.body
|
|
143
|
+
})]
|
|
144
|
+
}, todo.id))
|
|
145
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
146
|
+
className: "mt-2 flex items-center justify-between",
|
|
147
|
+
children: [remainingCount > 0 && /* @__PURE__ */ jsxs("span", {
|
|
148
|
+
className: `text-sm text-${textColor}/50 underline`,
|
|
149
|
+
children: [
|
|
150
|
+
remainingCount,
|
|
151
|
+
" more task",
|
|
152
|
+
remainingCount > 1 ? "s" : ""
|
|
153
|
+
]
|
|
154
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
155
|
+
className: "ml-auto",
|
|
156
|
+
children: /* @__PURE__ */ jsx(FontAwesomeIcon, {
|
|
157
|
+
icon: faPlus,
|
|
158
|
+
className: `h-5 w-5 text-${textColor}/50`
|
|
159
|
+
})
|
|
160
|
+
})]
|
|
161
|
+
})] })]
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
const toDoWidgetPropertySchema = {
|
|
165
|
+
widgetType: "ToDoWidget",
|
|
166
|
+
displayName: "To-Do Widget",
|
|
167
|
+
tabsConfig: [{
|
|
168
|
+
id: "styling",
|
|
169
|
+
label: "Styling"
|
|
170
|
+
}],
|
|
171
|
+
fields: [
|
|
172
|
+
{
|
|
173
|
+
key: "titleEnabled",
|
|
174
|
+
label: "Widget Title",
|
|
175
|
+
type: "boolean",
|
|
176
|
+
description: "Enable the title displayed above the todo list",
|
|
177
|
+
defaultValue: true,
|
|
178
|
+
tab: "styling",
|
|
179
|
+
group: "Title"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
key: "titleText",
|
|
183
|
+
label: "Title",
|
|
184
|
+
type: "text",
|
|
185
|
+
description: "Title text displayed above the todo list",
|
|
186
|
+
defaultValue: "To-Do",
|
|
187
|
+
tab: "styling",
|
|
188
|
+
group: "Title",
|
|
189
|
+
requiresKeyToBeTrue: "titleEnabled"
|
|
190
|
+
},
|
|
191
|
+
getFontSizeField({
|
|
192
|
+
key: "titleFontSize",
|
|
193
|
+
label: "Title Font Size",
|
|
194
|
+
description: "Font size for the widget title",
|
|
195
|
+
defaultValue: "xl",
|
|
196
|
+
tab: "styling",
|
|
197
|
+
group: "Title",
|
|
198
|
+
requiresKeyToBeTrue: "titleEnabled"
|
|
199
|
+
}),
|
|
200
|
+
getColorField({
|
|
201
|
+
key: "titleColor",
|
|
202
|
+
label: "Title Color",
|
|
203
|
+
description: "Color for the widget title",
|
|
204
|
+
defaultValue: "foreground",
|
|
205
|
+
tab: "styling",
|
|
206
|
+
group: "Title",
|
|
207
|
+
requiresKeyToBeTrue: "titleEnabled"
|
|
208
|
+
}),
|
|
209
|
+
{
|
|
210
|
+
type: "background",
|
|
211
|
+
key: "background",
|
|
212
|
+
label: "Background",
|
|
213
|
+
description: "Background for the widget container",
|
|
214
|
+
defaultValue: "background",
|
|
215
|
+
tab: "styling",
|
|
216
|
+
group: "Design"
|
|
217
|
+
},
|
|
218
|
+
getColorField({
|
|
219
|
+
key: "textColor",
|
|
220
|
+
label: "Text Color",
|
|
221
|
+
description: "Default text color for todo items",
|
|
222
|
+
defaultValue: "foreground",
|
|
223
|
+
tab: "styling",
|
|
224
|
+
group: "Design"
|
|
225
|
+
}),
|
|
226
|
+
getColorField({
|
|
227
|
+
key: "accentColor",
|
|
228
|
+
label: "Accent Color",
|
|
229
|
+
description: "Color used for count badge and icon",
|
|
230
|
+
defaultValue: "primary",
|
|
231
|
+
tab: "styling",
|
|
232
|
+
group: "Design"
|
|
233
|
+
}),
|
|
234
|
+
{
|
|
235
|
+
key: "separator",
|
|
236
|
+
type: "separator",
|
|
237
|
+
label: "Separator",
|
|
238
|
+
tab: "styling",
|
|
239
|
+
group: "Design"
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
key: "maxItems",
|
|
243
|
+
label: "Max Items",
|
|
244
|
+
type: "number",
|
|
245
|
+
description: "Maximum number of todo items to display",
|
|
246
|
+
min: 1,
|
|
247
|
+
max: 20,
|
|
248
|
+
step: 1,
|
|
249
|
+
defaultValue: 5,
|
|
250
|
+
tab: "styling",
|
|
251
|
+
group: "Design"
|
|
252
|
+
},
|
|
253
|
+
getPaddingField({
|
|
254
|
+
key: "padding",
|
|
255
|
+
label: "Padding",
|
|
256
|
+
description: "Padding around the widget container",
|
|
257
|
+
defaultValue: 4,
|
|
258
|
+
tab: "styling",
|
|
259
|
+
group: "Design"
|
|
260
|
+
}),
|
|
261
|
+
getBorderRadiusField({
|
|
262
|
+
key: "borderRadius",
|
|
263
|
+
label: "Border Radius",
|
|
264
|
+
description: "Border radius for the widget container",
|
|
265
|
+
defaultValue: "md",
|
|
266
|
+
tab: "styling",
|
|
267
|
+
group: "Design"
|
|
268
|
+
})
|
|
269
|
+
]
|
|
270
|
+
};
|
|
271
|
+
//#endregion
|
|
272
|
+
export { ToDoWidget_exports as n, toDoWidgetPropertySchema as r, ToDoWidget as t };
|
|
273
|
+
|
|
274
|
+
//# sourceMappingURL=ToDoWidget--KBpHqbA.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToDoWidget--KBpHqbA.mjs","names":[],"sources":["../src/hooks/use-todos.preview.ts","../src/hooks/use-todos.ts","../src/widgets/ToDoWidget.tsx"],"sourcesContent":["import type { Todo } from \"./use-todos.types\";\n\nconst now = new Date();\n\nfunction daysFromNow(days: number): string {\n const d = new Date(now);\n d.setDate(d.getDate() + days);\n return d.toISOString();\n}\n\nexport const PREVIEW_DATA: Todo[] = [\n {\n id: 1,\n body: \"Send follow-up email to new leads\",\n dueAt: daysFromNow(1),\n completedAt: null,\n createdAt: daysFromNow(-2),\n contactName: \"Sarah Johnson\",\n },\n {\n id: 2,\n body: \"Prepare slides for team training\",\n dueAt: daysFromNow(3),\n completedAt: null,\n createdAt: daysFromNow(-1),\n contactName: null,\n },\n {\n id: 3,\n body: \"Review monthly sales report\",\n dueAt: daysFromNow(-1),\n completedAt: null,\n createdAt: daysFromNow(-5),\n contactName: \"Mike Chen\",\n },\n];\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useDataSourceConfig } from \"@fluid-app/rep-core/data-sources/context\";\nimport { useWidgetPreviewContext } from \"@fluid-app/rep-core/data-sources/preview-context\";\nimport { PREVIEW_DATA } from \"./use-todos.preview\";\nimport type { ApiTodo, Todo } from \"./use-todos.types\";\n\nexport type { TodoContact, ApiTodo, Todo } from \"./use-todos.types\";\n\nexport function useTodos() {\n const { baseUrl, getApiHeaders } = useDataSourceConfig();\n const { isPreview } = useWidgetPreviewContext();\n\n return useQuery({\n queryKey: [\n \"rep-widget-use\",\n \"todos\",\n isPreview ? \"preview\" : baseUrl,\n ] as const,\n queryFn: async ({ signal }): Promise<Todo[]> => {\n const url = baseUrl ? `${baseUrl}/tasks` : \"/tasks\";\n const response = await fetch(url, {\n headers: {\n \"content-type\": \"application/json\",\n ...getApiHeaders?.(),\n },\n signal,\n });\n\n if (!response.ok) {\n throw new Error(`Failed to fetch todos: ${response.status}`);\n }\n\n const data: ApiTodo[] = await response.json();\n return transformTodos(data);\n },\n enabled: !isPreview,\n ...(isPreview && { placeholderData: PREVIEW_DATA }),\n });\n}\n\nfunction transformTodos(rawData: ApiTodo[]): Todo[] {\n return rawData.map((todo) => ({\n id: todo.id,\n body: todo.body,\n dueAt: todo.due_at,\n completedAt: todo.completed_at,\n createdAt: todo.created_at,\n contactName: todo.contact\n ? `${todo.contact.first_name} ${todo.contact.last_name}`\n : null,\n }));\n}\n","import type { ComponentProps } from \"react\";\nimport type {\n BackgroundValue,\n BorderRadiusOptions,\n ColorOptions,\n FontSizeOptions,\n PaddingOptions,\n} from \"@fluid-app/rep-core/types\";\nimport type { WidgetPropertySchema } from \"@fluid-app/rep-core/registries\";\nimport {\n getBorderRadiusField,\n getColorField,\n getFontSizeField,\n getPaddingField,\n} from \"../core/fields\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faListCheck, faPlus } from \"@fortawesome/pro-regular-svg-icons\";\nimport { useTodos } from \"../hooks/use-todos\";\nimport { ErrorState } from \"../components/error-state\";\n\ntype ToDoWidgetProps = ComponentProps<\"div\"> & {\n // Title\n titleEnabled?: boolean;\n titleText?: string;\n titleFontSize?: FontSizeOptions;\n titleColor?: ColorOptions;\n\n // Styling\n background?: BackgroundValue;\n textColor?: ColorOptions;\n accentColor?: ColorOptions;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n\n // Content\n maxItems?: number;\n};\n\nexport function ToDoWidget({\n // Title defaults\n titleEnabled = true,\n titleText = \"To-Do\",\n titleFontSize = \"lg\",\n titleColor = \"foreground\",\n\n // Styling defaults\n background = {\n type: \"solid\",\n color: \"background\",\n },\n textColor = \"foreground\",\n accentColor = \"primary\",\n padding = 4,\n borderRadius = \"md\",\n\n // Content defaults\n maxItems = 5,\n\n className,\n ...props\n}: ToDoWidgetProps) {\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 const { data: todos = [], isLoading, isError } = useTodos();\n\n // Use API data if available, otherwise fall back to demo data\n const displayTodos = todos.length > 0 ? todos : [];\n\n // Filter out completed tasks\n const activeTodos = displayTodos.filter((todo) => !todo.completedAt);\n const todosToShow = activeTodos.slice(0, maxItems);\n const remainingCount = activeTodos.length - todosToShow.length;\n const isEmpty = activeTodos.length === 0;\n\n return (\n <div\n className={`overflow-hidden rounded-${borderRadius} bg-${backgroundColor} text-${textColor} p-${padding} ${className ?? \"\"}`}\n style={{ backgroundImage }}\n {...props}\n >\n {/* Header */}\n <div className=\"mb-3 flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n {titleEnabled && titleText && (\n <h2\n className={`text-${titleFontSize} font-bold text-${titleColor}`}\n >\n {titleText}\n </h2>\n )}\n </div>\n <div className=\"flex items-center gap-2\">\n {!isEmpty && !isLoading && (\n <span className={`text-2xl font-bold text-${accentColor}`}>\n {activeTodos.length}\n </span>\n )}\n <div\n className={`flex h-10 w-10 shrink-0 items-center justify-center`}\n >\n <FontAwesomeIcon\n icon={faListCheck}\n className={`h-5 w-5 text-${accentColor}-foreground`}\n />\n </div>\n </div>\n </div>\n\n {/* Loading state */}\n {isLoading ? (\n <div className=\"flex min-h-[120px] items-center justify-center\">\n <div className=\"h-6 w-6 animate-spin rounded-full border-2 border-current border-t-transparent\" />\n </div>\n ) : isError ? (\n /* Error state */\n <ErrorState />\n ) : isEmpty ? (\n /* Empty state */\n <div className=\"flex flex-col items-center justify-center py-8\">\n <p className={`text-center text-${textColor}/60`}>\n You've got nothing else To-Do!\n </p>\n </div>\n ) : (\n /* Todo List */\n <>\n <div className=\"flex flex-col\">\n {todosToShow.map((todo, index) => (\n <div\n key={todo.id}\n className={`flex items-center gap-3 py-2.5 ${\n index !== todosToShow.length - 1\n ? `border-b border-${textColor}/10`\n : \"\"\n }`}\n >\n <input\n type=\"checkbox\"\n className={`h-5 w-5 rounded-full border-2 border-${textColor}/30 bg-transparent`}\n checked={!!todo.completedAt}\n readOnly\n />\n <span className=\"line-clamp-1 flex-1 text-sm\">{todo.body}</span>\n </div>\n ))}\n </div>\n\n {/* Footer */}\n <div className=\"mt-2 flex items-center justify-between\">\n {remainingCount > 0 && (\n <span className={`text-sm text-${textColor}/50 underline`}>\n {remainingCount} more task{remainingCount > 1 ? \"s\" : \"\"}\n </span>\n )}\n <div className=\"ml-auto\">\n <FontAwesomeIcon\n icon={faPlus}\n className={`h-5 w-5 text-${textColor}/50`}\n />\n </div>\n </div>\n </>\n )}\n </div>\n );\n}\n\nexport const toDoWidgetPropertySchema: WidgetPropertySchema = {\n widgetType: \"ToDoWidget\",\n displayName: \"To-Do Widget\",\n tabsConfig: [{ id: \"styling\", label: \"Styling\" }],\n fields: [\n // Styling Tab - Title Group\n {\n key: \"titleEnabled\",\n label: \"Widget Title\",\n type: \"boolean\",\n description: \"Enable the title displayed above the todo list\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Title\",\n },\n {\n key: \"titleText\",\n label: \"Title\",\n type: \"text\",\n description: \"Title text displayed above the todo list\",\n defaultValue: \"To-Do\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n },\n getFontSizeField({\n key: \"titleFontSize\",\n label: \"Title Font Size\",\n description: \"Font size for the widget title\",\n defaultValue: \"xl\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n getColorField({\n key: \"titleColor\",\n label: \"Title Color\",\n description: \"Color for the widget title\",\n defaultValue: \"foreground\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n\n // Styling Tab - Design Group\n {\n type: \"background\",\n key: \"background\",\n label: \"Background\",\n description: \"Background for the widget container\",\n defaultValue: \"background\",\n tab: \"styling\",\n group: \"Design\",\n },\n getColorField({\n key: \"textColor\",\n label: \"Text Color\",\n description: \"Default text color for todo items\",\n defaultValue: \"foreground\",\n tab: \"styling\",\n group: \"Design\",\n }),\n getColorField({\n key: \"accentColor\",\n label: \"Accent Color\",\n description: \"Color used for count badge and icon\",\n defaultValue: \"primary\",\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: \"maxItems\",\n label: \"Max Items\",\n type: \"number\",\n description: \"Maximum number of todo items to display\",\n min: 1,\n max: 20,\n step: 1,\n defaultValue: 5,\n tab: \"styling\",\n group: \"Design\",\n },\n getPaddingField({\n key: \"padding\",\n label: \"Padding\",\n description: \"Padding around the widget container\",\n defaultValue: 4,\n tab: \"styling\",\n group: \"Design\",\n }),\n getBorderRadiusField({\n key: \"borderRadius\",\n label: \"Border Radius\",\n description: \"Border radius for the widget container\",\n defaultValue: \"md\",\n tab: \"styling\",\n group: \"Design\",\n }),\n ],\n} as const satisfies WidgetPropertySchema;\n"],"mappings":"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"}
|