@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.
Files changed (337) hide show
  1. package/dist/AlertWidget-CiMRJYmn.mjs +22 -0
  2. package/dist/AlertWidget-CiMRJYmn.mjs.map +1 -0
  3. package/dist/AlertWidget-DU_HP0EW.cjs +39 -0
  4. package/dist/AlertWidget-DU_HP0EW.cjs.map +1 -0
  5. package/dist/CalendarWidget-BI8sv5HJ.cjs +441 -0
  6. package/dist/CalendarWidget-BI8sv5HJ.cjs.map +1 -0
  7. package/dist/CalendarWidget-Dk8O2NRC.mjs +424 -0
  8. package/dist/CalendarWidget-Dk8O2NRC.mjs.map +1 -0
  9. package/dist/CarouselWidget-0RP-Rd1D.mjs +436 -0
  10. package/dist/CarouselWidget-0RP-Rd1D.mjs.map +1 -0
  11. package/dist/CarouselWidget-DLADgLPJ.cjs +453 -0
  12. package/dist/CarouselWidget-DLADgLPJ.cjs.map +1 -0
  13. package/dist/CatchUpWidget-CUnCumIf.mjs +247 -0
  14. package/dist/CatchUpWidget-CUnCumIf.mjs.map +1 -0
  15. package/dist/CatchUpWidget-DiqdwPvE.cjs +264 -0
  16. package/dist/CatchUpWidget-DiqdwPvE.cjs.map +1 -0
  17. package/dist/ChartWidget-DhAVW8w4.cjs +432 -0
  18. package/dist/ChartWidget-DhAVW8w4.cjs.map +1 -0
  19. package/dist/ChartWidget-DrF1e1sy.mjs +415 -0
  20. package/dist/ChartWidget-DrF1e1sy.mjs.map +1 -0
  21. package/dist/ContainerWidget-Cp0_vPZB.cjs +61 -0
  22. package/dist/ContainerWidget-Cp0_vPZB.cjs.map +1 -0
  23. package/dist/ContainerWidget-Xd231yys.mjs +44 -0
  24. package/dist/ContainerWidget-Xd231yys.mjs.map +1 -0
  25. package/dist/EmbedWidget-BQyYm50g.cjs +173 -0
  26. package/dist/EmbedWidget-BQyYm50g.cjs.map +1 -0
  27. package/dist/EmbedWidget-DQ2rCA4j.mjs +156 -0
  28. package/dist/EmbedWidget-DQ2rCA4j.mjs.map +1 -0
  29. package/dist/ImageWidget-DBBul7ca.mjs +150 -0
  30. package/dist/ImageWidget-DBBul7ca.mjs.map +1 -0
  31. package/dist/ImageWidget-DTwM7xCz.cjs +167 -0
  32. package/dist/ImageWidget-DTwM7xCz.cjs.map +1 -0
  33. package/dist/LayoutWidget-B1itwSsn.mjs +107 -0
  34. package/dist/LayoutWidget-B1itwSsn.mjs.map +1 -0
  35. package/dist/LayoutWidget-CWE_9JB5.cjs +124 -0
  36. package/dist/LayoutWidget-CWE_9JB5.cjs.map +1 -0
  37. package/dist/ListWidget-CxaLm0D5.cjs +919 -0
  38. package/dist/ListWidget-CxaLm0D5.cjs.map +1 -0
  39. package/dist/ListWidget-EXPlzfUE.mjs +901 -0
  40. package/dist/ListWidget-EXPlzfUE.mjs.map +1 -0
  41. package/dist/MediaRenderer-CcJvyOJ1.cjs +181 -0
  42. package/dist/MediaRenderer-CcJvyOJ1.cjs.map +1 -0
  43. package/dist/MediaRenderer-Uq90PZcY.mjs +163 -0
  44. package/dist/MediaRenderer-Uq90PZcY.mjs.map +1 -0
  45. package/dist/MySiteWidget-BTyb5AJM.mjs +262 -0
  46. package/dist/MySiteWidget-BTyb5AJM.mjs.map +1 -0
  47. package/dist/MySiteWidget-iRPl6b2F.cjs +279 -0
  48. package/dist/MySiteWidget-iRPl6b2F.cjs.map +1 -0
  49. package/dist/NestedWidget-CwyVsZ-f.mjs +330 -0
  50. package/dist/NestedWidget-CwyVsZ-f.mjs.map +1 -0
  51. package/dist/NestedWidget-DavPMVii.cjs +346 -0
  52. package/dist/NestedWidget-DavPMVii.cjs.map +1 -0
  53. package/dist/QuickShareWidget-BIOkquPG.cjs +262 -0
  54. package/dist/QuickShareWidget-BIOkquPG.cjs.map +1 -0
  55. package/dist/QuickShareWidget-BUbuTQFQ.mjs +245 -0
  56. package/dist/QuickShareWidget-BUbuTQFQ.mjs.map +1 -0
  57. package/dist/RecentActivityWidget-BgsjgQY5.cjs +408 -0
  58. package/dist/RecentActivityWidget-BgsjgQY5.cjs.map +1 -0
  59. package/dist/RecentActivityWidget-ComwTgR9.mjs +391 -0
  60. package/dist/RecentActivityWidget-ComwTgR9.mjs.map +1 -0
  61. package/dist/RegistryContext-6KXd4t6d.cjs +54 -0
  62. package/dist/RegistryContext-6KXd4t6d.cjs.map +1 -0
  63. package/dist/RegistryContext-CscXrsRa.mjs +36 -0
  64. package/dist/RegistryContext-CscXrsRa.mjs.map +1 -0
  65. package/dist/ScreenRenderer-BCd4Rsba.cjs +82 -0
  66. package/dist/ScreenRenderer-BCd4Rsba.cjs.map +1 -0
  67. package/dist/ScreenRenderer-CVJMpQ9A.mjs +76 -0
  68. package/dist/ScreenRenderer-CVJMpQ9A.mjs.map +1 -0
  69. package/dist/ScreenRendererContext-D62_Fazh.cjs +35 -0
  70. package/dist/ScreenRendererContext-D62_Fazh.cjs.map +1 -0
  71. package/dist/ScreenRendererContext-DaldtZnX.mjs +23 -0
  72. package/dist/ScreenRendererContext-DaldtZnX.mjs.map +1 -0
  73. package/dist/SpacerWidget-Bs18KYH9.mjs +43 -0
  74. package/dist/SpacerWidget-Bs18KYH9.mjs.map +1 -0
  75. package/dist/SpacerWidget-D-Foe9wG.cjs +60 -0
  76. package/dist/SpacerWidget-D-Foe9wG.cjs.map +1 -0
  77. package/dist/TableWidget-BeG92tkU.cjs +455 -0
  78. package/dist/TableWidget-BeG92tkU.cjs.map +1 -0
  79. package/dist/TableWidget-Cc4kQaOE.mjs +438 -0
  80. package/dist/TableWidget-Cc4kQaOE.mjs.map +1 -0
  81. package/dist/TextWidget-CQxOWNZK.mjs +129 -0
  82. package/dist/TextWidget-CQxOWNZK.mjs.map +1 -0
  83. package/dist/TextWidget-Cn7-yZGk.cjs +146 -0
  84. package/dist/TextWidget-Cn7-yZGk.cjs.map +1 -0
  85. package/dist/ToDoWidget--KBpHqbA.mjs +274 -0
  86. package/dist/ToDoWidget--KBpHqbA.mjs.map +1 -0
  87. package/dist/ToDoWidget-CK87BavM.cjs +291 -0
  88. package/dist/ToDoWidget-CK87BavM.cjs.map +1 -0
  89. package/dist/VideoWidget-DxuqyD5L.cjs +209 -0
  90. package/dist/VideoWidget-DxuqyD5L.cjs.map +1 -0
  91. package/dist/VideoWidget-uKkRf5pm.mjs +192 -0
  92. package/dist/VideoWidget-uKkRf5pm.mjs.map +1 -0
  93. package/dist/chunk-CZWwpsFl.cjs +43 -0
  94. package/dist/components/index.cjs +10 -13
  95. package/dist/components/index.cjs.map +1 -1
  96. package/dist/components/index.d.cts +8 -5
  97. package/dist/components/index.d.cts.map +1 -0
  98. package/dist/components/index.d.mts +11 -0
  99. package/dist/components/index.d.mts.map +1 -0
  100. package/dist/components/index.mjs +11 -0
  101. package/dist/components/index.mjs.map +1 -0
  102. package/dist/contexts/index.cjs +8 -29
  103. package/dist/contexts/index.d.cts +20 -14
  104. package/dist/contexts/index.d.cts.map +1 -0
  105. package/dist/contexts/{index.d.ts → index.d.mts} +20 -14
  106. package/dist/contexts/index.d.mts.map +1 -0
  107. package/dist/contexts/index.mjs +3 -0
  108. package/dist/core/index.cjs +37 -41
  109. package/dist/core/index.d.cts +41 -27
  110. package/dist/core/index.d.cts.map +1 -0
  111. package/dist/core/index.d.mts +78 -0
  112. package/dist/core/index.d.mts.map +1 -0
  113. package/dist/core/index.mjs +4 -0
  114. package/dist/error-state-DErSxZwH.mjs +18 -0
  115. package/dist/error-state-DErSxZwH.mjs.map +1 -0
  116. package/dist/error-state-DSzVUtEl.cjs +24 -0
  117. package/dist/error-state-DSzVUtEl.cjs.map +1 -0
  118. package/dist/fields-C29fgJje.mjs +2 -0
  119. package/dist/fields-CzY84PV7.d.cts +2 -0
  120. package/dist/fields-Da4_7j4S.d.mts +2 -0
  121. package/dist/rolldown-runtime-wcPFST8Q.mjs +13 -0
  122. package/dist/scroll-arrows-BZIlsE_x.cjs +35 -0
  123. package/dist/scroll-arrows-BZIlsE_x.cjs.map +1 -0
  124. package/dist/scroll-arrows-BevCYRNT.mjs +29 -0
  125. package/dist/scroll-arrows-BevCYRNT.mjs.map +1 -0
  126. package/dist/ui/index.cjs +69 -45
  127. package/dist/ui/index.d.cts +12 -7
  128. package/dist/ui/index.d.cts.map +1 -0
  129. package/dist/ui/index.d.mts +15 -0
  130. package/dist/ui/index.d.mts.map +1 -0
  131. package/dist/ui/index.mjs +3 -0
  132. package/dist/widgets/index.cjs +88 -209
  133. package/dist/widgets/index.cjs.map +1 -1
  134. package/dist/widgets/index.d.cts +814 -526
  135. package/dist/widgets/index.d.cts.map +1 -0
  136. package/dist/widgets/index.d.mts +892 -0
  137. package/dist/widgets/index.d.mts.map +1 -0
  138. package/dist/widgets/index.mjs +46 -0
  139. package/dist/widgets/index.mjs.map +1 -0
  140. package/package.json +6 -6
  141. package/dist/AlertWidget-3Q4AK7PE.js +0 -5
  142. package/dist/AlertWidget-3Q4AK7PE.js.map +0 -1
  143. package/dist/AlertWidget-C3YMPF7Y.cjs +0 -18
  144. package/dist/AlertWidget-C3YMPF7Y.cjs.map +0 -1
  145. package/dist/CalendarWidget-RAB5VESS.cjs +0 -18
  146. package/dist/CalendarWidget-RAB5VESS.cjs.map +0 -1
  147. package/dist/CalendarWidget-SEYTR3AG.js +0 -5
  148. package/dist/CalendarWidget-SEYTR3AG.js.map +0 -1
  149. package/dist/CarouselWidget-5LFXRR7Y.js +0 -6
  150. package/dist/CarouselWidget-5LFXRR7Y.js.map +0 -1
  151. package/dist/CarouselWidget-G5UHRD6R.cjs +0 -19
  152. package/dist/CarouselWidget-G5UHRD6R.cjs.map +0 -1
  153. package/dist/CatchUpWidget-NEMYZ7L5.js +0 -5
  154. package/dist/CatchUpWidget-NEMYZ7L5.js.map +0 -1
  155. package/dist/CatchUpWidget-XBU2GPFS.cjs +0 -18
  156. package/dist/CatchUpWidget-XBU2GPFS.cjs.map +0 -1
  157. package/dist/ChartWidget-463QVROY.cjs +0 -17
  158. package/dist/ChartWidget-463QVROY.cjs.map +0 -1
  159. package/dist/ChartWidget-554S2GQF.js +0 -4
  160. package/dist/ChartWidget-554S2GQF.js.map +0 -1
  161. package/dist/ContainerWidget-IOXW77X7.cjs +0 -21
  162. package/dist/ContainerWidget-IOXW77X7.cjs.map +0 -1
  163. package/dist/ContainerWidget-OLQPEXDT.js +0 -8
  164. package/dist/ContainerWidget-OLQPEXDT.js.map +0 -1
  165. package/dist/EmbedWidget-B7RFGTJB.js +0 -3
  166. package/dist/EmbedWidget-B7RFGTJB.js.map +0 -1
  167. package/dist/EmbedWidget-RETHBVTD.cjs +0 -16
  168. package/dist/EmbedWidget-RETHBVTD.cjs.map +0 -1
  169. package/dist/ImageWidget-BA2V3DPL.js +0 -4
  170. package/dist/ImageWidget-BA2V3DPL.js.map +0 -1
  171. package/dist/ImageWidget-SBC7LK7A.cjs +0 -17
  172. package/dist/ImageWidget-SBC7LK7A.cjs.map +0 -1
  173. package/dist/LayoutWidget-F3BDSGDP.cjs +0 -20
  174. package/dist/LayoutWidget-F3BDSGDP.cjs.map +0 -1
  175. package/dist/LayoutWidget-MBUJVGKA.js +0 -7
  176. package/dist/LayoutWidget-MBUJVGKA.js.map +0 -1
  177. package/dist/ListWidget-4PKBMBAS.cjs +0 -19
  178. package/dist/ListWidget-4PKBMBAS.cjs.map +0 -1
  179. package/dist/ListWidget-6SZK6X3X.js +0 -6
  180. package/dist/ListWidget-6SZK6X3X.js.map +0 -1
  181. package/dist/MySiteWidget-D6NFECIP.cjs +0 -18
  182. package/dist/MySiteWidget-D6NFECIP.cjs.map +0 -1
  183. package/dist/MySiteWidget-YA4DUIG7.js +0 -5
  184. package/dist/MySiteWidget-YA4DUIG7.js.map +0 -1
  185. package/dist/NestedWidget-UDNHYTMZ.cjs +0 -19
  186. package/dist/NestedWidget-UDNHYTMZ.cjs.map +0 -1
  187. package/dist/NestedWidget-VCZ3JBQY.js +0 -6
  188. package/dist/NestedWidget-VCZ3JBQY.js.map +0 -1
  189. package/dist/QuickShareWidget-LNUEJICJ.cjs +0 -17
  190. package/dist/QuickShareWidget-LNUEJICJ.cjs.map +0 -1
  191. package/dist/QuickShareWidget-SOQEHDR7.js +0 -4
  192. package/dist/QuickShareWidget-SOQEHDR7.js.map +0 -1
  193. package/dist/RecentActivityWidget-HA5N4HCZ.cjs +0 -18
  194. package/dist/RecentActivityWidget-HA5N4HCZ.cjs.map +0 -1
  195. package/dist/RecentActivityWidget-TP32GKHT.js +0 -5
  196. package/dist/RecentActivityWidget-TP32GKHT.js.map +0 -1
  197. package/dist/SpacerWidget-DX7QRN54.cjs +0 -16
  198. package/dist/SpacerWidget-DX7QRN54.cjs.map +0 -1
  199. package/dist/SpacerWidget-H464T5YD.js +0 -3
  200. package/dist/SpacerWidget-H464T5YD.js.map +0 -1
  201. package/dist/TableWidget-D46CWY4M.cjs +0 -18
  202. package/dist/TableWidget-D46CWY4M.cjs.map +0 -1
  203. package/dist/TableWidget-P4C4ZI23.js +0 -5
  204. package/dist/TableWidget-P4C4ZI23.js.map +0 -1
  205. package/dist/TextWidget-GNUQBLDJ.js +0 -4
  206. package/dist/TextWidget-GNUQBLDJ.js.map +0 -1
  207. package/dist/TextWidget-PUZPMPOC.cjs +0 -17
  208. package/dist/TextWidget-PUZPMPOC.cjs.map +0 -1
  209. package/dist/ToDoWidget-AOAMWMN4.js +0 -5
  210. package/dist/ToDoWidget-AOAMWMN4.js.map +0 -1
  211. package/dist/ToDoWidget-L6TXR37G.cjs +0 -18
  212. package/dist/ToDoWidget-L6TXR37G.cjs.map +0 -1
  213. package/dist/VideoWidget-T6S2D4WS.cjs +0 -17
  214. package/dist/VideoWidget-T6S2D4WS.cjs.map +0 -1
  215. package/dist/VideoWidget-TI72FPLK.js +0 -4
  216. package/dist/VideoWidget-TI72FPLK.js.map +0 -1
  217. package/dist/chunk-22AKFT5D.cjs +0 -274
  218. package/dist/chunk-22AKFT5D.cjs.map +0 -1
  219. package/dist/chunk-2NPVYROG.js +0 -117
  220. package/dist/chunk-2NPVYROG.js.map +0 -1
  221. package/dist/chunk-3EGVZDJH.cjs +0 -448
  222. package/dist/chunk-3EGVZDJH.cjs.map +0 -1
  223. package/dist/chunk-4ODOZF7H.js +0 -192
  224. package/dist/chunk-4ODOZF7H.js.map +0 -1
  225. package/dist/chunk-4ZFOJT6H.js +0 -271
  226. package/dist/chunk-4ZFOJT6H.js.map +0 -1
  227. package/dist/chunk-57ZUEL25.js +0 -14
  228. package/dist/chunk-57ZUEL25.js.map +0 -1
  229. package/dist/chunk-5VJYKNCS.cjs +0 -195
  230. package/dist/chunk-5VJYKNCS.cjs.map +0 -1
  231. package/dist/chunk-6GF46P3S.js +0 -33
  232. package/dist/chunk-6GF46P3S.js.map +0 -1
  233. package/dist/chunk-6RNVWRDD.cjs +0 -179
  234. package/dist/chunk-6RNVWRDD.cjs.map +0 -1
  235. package/dist/chunk-6ZECDBGI.js +0 -3
  236. package/dist/chunk-6ZECDBGI.js.map +0 -1
  237. package/dist/chunk-AQO2AKU2.cjs +0 -35
  238. package/dist/chunk-AQO2AKU2.cjs.map +0 -1
  239. package/dist/chunk-D43XJWX3.js +0 -300
  240. package/dist/chunk-D43XJWX3.js.map +0 -1
  241. package/dist/chunk-E5ERYB7Q.js +0 -39
  242. package/dist/chunk-E5ERYB7Q.js.map +0 -1
  243. package/dist/chunk-EPTJJSHT.cjs +0 -500
  244. package/dist/chunk-EPTJJSHT.cjs.map +0 -1
  245. package/dist/chunk-FDAUWHSY.cjs +0 -268
  246. package/dist/chunk-FDAUWHSY.cjs.map +0 -1
  247. package/dist/chunk-FSLUSFJ2.cjs +0 -75
  248. package/dist/chunk-FSLUSFJ2.cjs.map +0 -1
  249. package/dist/chunk-GC4SZ75B.js +0 -47
  250. package/dist/chunk-GC4SZ75B.js.map +0 -1
  251. package/dist/chunk-HDUFHTQC.js +0 -1024
  252. package/dist/chunk-HDUFHTQC.js.map +0 -1
  253. package/dist/chunk-HREBEVS5.cjs +0 -42
  254. package/dist/chunk-HREBEVS5.cjs.map +0 -1
  255. package/dist/chunk-IF36TB2H.js +0 -459
  256. package/dist/chunk-IF36TB2H.js.map +0 -1
  257. package/dist/chunk-J6HCPXT5.cjs +0 -40
  258. package/dist/chunk-J6HCPXT5.cjs.map +0 -1
  259. package/dist/chunk-JIS2K5YR.js +0 -13
  260. package/dist/chunk-JIS2K5YR.js.map +0 -1
  261. package/dist/chunk-JYWKXNUO.cjs +0 -37
  262. package/dist/chunk-JYWKXNUO.cjs.map +0 -1
  263. package/dist/chunk-KYCPG2DN.cjs +0 -17
  264. package/dist/chunk-KYCPG2DN.cjs.map +0 -1
  265. package/dist/chunk-L3HN4J2Y.js +0 -175
  266. package/dist/chunk-L3HN4J2Y.js.map +0 -1
  267. package/dist/chunk-LZJVUYSQ.cjs +0 -462
  268. package/dist/chunk-LZJVUYSQ.cjs.map +0 -1
  269. package/dist/chunk-MXWFM5J2.js +0 -493
  270. package/dist/chunk-MXWFM5J2.js.map +0 -1
  271. package/dist/chunk-NPTCR22X.cjs +0 -1031
  272. package/dist/chunk-NPTCR22X.cjs.map +0 -1
  273. package/dist/chunk-P4VXS3BG.cjs +0 -464
  274. package/dist/chunk-P4VXS3BG.cjs.map +0 -1
  275. package/dist/chunk-P6AKK6TA.cjs +0 -382
  276. package/dist/chunk-P6AKK6TA.cjs.map +0 -1
  277. package/dist/chunk-PLXOZ5BH.cjs +0 -140
  278. package/dist/chunk-PLXOZ5BH.cjs.map +0 -1
  279. package/dist/chunk-Q5YXTDPX.cjs +0 -150
  280. package/dist/chunk-Q5YXTDPX.cjs.map +0 -1
  281. package/dist/chunk-QB6UW6DD.js +0 -250
  282. package/dist/chunk-QB6UW6DD.js.map +0 -1
  283. package/dist/chunk-QG2INAJC.js +0 -461
  284. package/dist/chunk-QG2INAJC.js.map +0 -1
  285. package/dist/chunk-QXIIJNQK.cjs +0 -15
  286. package/dist/chunk-QXIIJNQK.cjs.map +0 -1
  287. package/dist/chunk-RKDOQV4T.js +0 -73
  288. package/dist/chunk-RKDOQV4T.js.map +0 -1
  289. package/dist/chunk-ROLEPF3N.js +0 -399
  290. package/dist/chunk-ROLEPF3N.js.map +0 -1
  291. package/dist/chunk-RPNLSRUS.cjs +0 -120
  292. package/dist/chunk-RPNLSRUS.cjs.map +0 -1
  293. package/dist/chunk-SINQXEBL.js +0 -160
  294. package/dist/chunk-SINQXEBL.js.map +0 -1
  295. package/dist/chunk-SLGOKKU7.cjs +0 -402
  296. package/dist/chunk-SLGOKKU7.cjs.map +0 -1
  297. package/dist/chunk-U6ODF4YB.cjs +0 -303
  298. package/dist/chunk-U6ODF4YB.cjs.map +0 -1
  299. package/dist/chunk-UXFD52LT.js +0 -137
  300. package/dist/chunk-UXFD52LT.js.map +0 -1
  301. package/dist/chunk-UZ7TYGUO.js +0 -147
  302. package/dist/chunk-UZ7TYGUO.js.map +0 -1
  303. package/dist/chunk-UZF75XZJ.js +0 -379
  304. package/dist/chunk-UZF75XZJ.js.map +0 -1
  305. package/dist/chunk-WTQNKZKV.cjs +0 -253
  306. package/dist/chunk-WTQNKZKV.cjs.map +0 -1
  307. package/dist/chunk-WWKBIVET.cjs +0 -163
  308. package/dist/chunk-WWKBIVET.cjs.map +0 -1
  309. package/dist/chunk-YDLNXR7R.js +0 -265
  310. package/dist/chunk-YDLNXR7R.js.map +0 -1
  311. package/dist/chunk-YOJRRPOG.js +0 -33
  312. package/dist/chunk-YOJRRPOG.js.map +0 -1
  313. package/dist/chunk-YU5DAILW.cjs +0 -14
  314. package/dist/chunk-YU5DAILW.cjs.map +0 -1
  315. package/dist/chunk-YZATKTYO.cjs +0 -50
  316. package/dist/chunk-YZATKTYO.cjs.map +0 -1
  317. package/dist/chunk-ZLTPLVOF.js +0 -445
  318. package/dist/chunk-ZLTPLVOF.js.map +0 -1
  319. package/dist/chunk-ZWFK5UUU.js +0 -11
  320. package/dist/chunk-ZWFK5UUU.js.map +0 -1
  321. package/dist/components/index.d.ts +0 -8
  322. package/dist/components/index.js +0 -11
  323. package/dist/components/index.js.map +0 -1
  324. package/dist/contexts/index.cjs.map +0 -1
  325. package/dist/contexts/index.js +0 -4
  326. package/dist/contexts/index.js.map +0 -1
  327. package/dist/core/index.cjs.map +0 -1
  328. package/dist/core/index.d.ts +0 -64
  329. package/dist/core/index.js +0 -6
  330. package/dist/core/index.js.map +0 -1
  331. package/dist/ui/index.cjs.map +0 -1
  332. package/dist/ui/index.d.ts +0 -10
  333. package/dist/ui/index.js +0 -4
  334. package/dist/ui/index.js.map +0 -1
  335. package/dist/widgets/index.d.ts +0 -604
  336. package/dist/widgets/index.js +0 -55
  337. package/dist/widgets/index.js.map +0 -1
@@ -1,445 +0,0 @@
1
- import { ErrorState } from './chunk-JIS2K5YR.js';
2
- import { getFontSizeField, getColorField, getPaddingField, getBorderRadiusField } from './chunk-6ZECDBGI.js';
3
- import { useMemo } from 'react';
4
- import { useQuery } from '@tanstack/react-query';
5
- import { useDataSourceConfig } from '@fluid-app/rep-core/data-sources/context';
6
- import { useWidgetPreviewContext } from '@fluid-app/rep-core/data-sources/preview-context';
7
- import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
8
- import { faUser, faTrophy, faBell, faSquareCheck, faStar, faCalendar, faEye, faUserPlus, faPlay, faComment, faCartShopping } from '@fortawesome/pro-regular-svg-icons';
9
- import { jsx, jsxs } from 'react/jsx-runtime';
10
-
11
- // src/hooks/use-activities.preview.ts
12
- var now = /* @__PURE__ */ new Date();
13
- function minutesAgo(minutes) {
14
- return new Date(now.getTime() - minutes * 6e4).toISOString();
15
- }
16
- var PREVIEW_DATA = [
17
- {
18
- id: 1,
19
- userName: "Sarah Johnson",
20
- avatarUrl: null,
21
- activityType: "Order Placed",
22
- targetName: "Wellness Starter Kit",
23
- timestamp: minutesAgo(12),
24
- slug: "order_placed"
25
- },
26
- {
27
- id: 2,
28
- userName: "Mike Chen",
29
- avatarUrl: null,
30
- activityType: "New Lead",
31
- targetName: "Signed up from Instagram link",
32
- timestamp: minutesAgo(45),
33
- slug: "new_lead"
34
- },
35
- {
36
- id: 3,
37
- userName: "Visitor from Austin, TX",
38
- avatarUrl: null,
39
- activityType: "Page Views",
40
- targetName: "Viewed product catalog (3 pages)",
41
- timestamp: minutesAgo(90),
42
- slug: "page_views"
43
- },
44
- {
45
- id: 4,
46
- userName: "Lisa Park",
47
- avatarUrl: null,
48
- activityType: "Video Complete",
49
- targetName: "Watched: Getting Started Guide",
50
- timestamp: minutesAgo(180),
51
- slug: "video_complete"
52
- }
53
- ];
54
-
55
- // src/hooks/use-activities.ts
56
- function useActivities() {
57
- const { baseUrl, getApiHeaders } = useDataSourceConfig();
58
- const { isPreview } = useWidgetPreviewContext();
59
- return useQuery({
60
- queryKey: [
61
- "rep-widget-use",
62
- "activities",
63
- isPreview ? "preview" : baseUrl
64
- ],
65
- queryFn: async ({ signal }) => {
66
- const url = baseUrl ? `${baseUrl}/v2/activities.json` : "/v2/activities.json";
67
- const response = await fetch(url, {
68
- headers: {
69
- "content-type": "application/json",
70
- ...getApiHeaders?.()
71
- },
72
- signal
73
- });
74
- if (!response.ok) {
75
- throw new Error(`Failed to fetch activities: ${response.status}`);
76
- }
77
- const data = await response.json();
78
- return transformActivities(data);
79
- },
80
- enabled: !isPreview,
81
- ...isPreview && { placeholderData: PREVIEW_DATA }
82
- });
83
- }
84
- function getUserName(contact, visitor) {
85
- if (contact?.full_name) {
86
- return contact.full_name;
87
- }
88
- if (contact?.first_name && contact?.last_name) {
89
- return `${contact.first_name} ${contact.last_name}`;
90
- }
91
- if (visitor?.city && visitor?.state) {
92
- return `Visitor from ${visitor.city}, ${visitor.state}`;
93
- }
94
- return "Unknown Visitor";
95
- }
96
- function transformActivities(rawData) {
97
- const itemsObj = rawData[1];
98
- if (!itemsObj?.items) return [];
99
- return itemsObj.items.map((activity) => ({
100
- id: activity.id,
101
- userName: getUserName(activity.contact, activity.visitor),
102
- avatarUrl: activity.contact?.avatar_url ?? null,
103
- activityType: formatActivityType(activity.slug),
104
- targetName: activity.description || activity.title,
105
- timestamp: activity.created_at,
106
- slug: activity.slug
107
- })).sort(
108
- (a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime()
109
- );
110
- }
111
- function formatActivityType(slug) {
112
- return slug.split("_").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
113
- }
114
- var formatTimestamp = (timestamp) => {
115
- const date = new Date(timestamp);
116
- return date.toLocaleTimeString("en-US", {
117
- hour: "numeric",
118
- minute: "2-digit",
119
- hour12: true
120
- });
121
- };
122
- var formatDateHeader = (timestamp) => {
123
- const date = new Date(timestamp);
124
- return date.toLocaleDateString("en-US", {
125
- month: "long",
126
- day: "numeric"
127
- });
128
- };
129
- var getDateKey = (timestamp) => {
130
- const date = new Date(timestamp);
131
- return date.toISOString().split("T")[0] ?? timestamp;
132
- };
133
- var groupActivitiesByDate = (activities) => {
134
- const grouped = /* @__PURE__ */ new Map();
135
- for (const activity of activities) {
136
- const dateKey = getDateKey(activity.timestamp);
137
- const existing = grouped.get(dateKey);
138
- if (existing) {
139
- existing.push(activity);
140
- } else {
141
- grouped.set(dateKey, [activity]);
142
- }
143
- }
144
- return grouped;
145
- };
146
- var ACTIVITY_ICON_MAP = {
147
- // Orders/Cart
148
- order_placed: faCartShopping,
149
- abandoned_cart: faCartShopping,
150
- cart_items_added: faCartShopping,
151
- new_cart_items_added: faCartShopping,
152
- // Messages
153
- direct_message: faComment,
154
- comment_reply: faComment,
155
- message_received: faComment,
156
- message_sent: faComment,
157
- // Video
158
- video: faPlay,
159
- video_complete: faPlay,
160
- video_contact: faPlay,
161
- video_complete_contact: faPlay,
162
- // Leads
163
- new_lead: faUserPlus,
164
- page_views_contact: faUserPlus,
165
- smart_link_clicked: faUserPlus,
166
- // Page Views
167
- page_views: faEye,
168
- // Events
169
- upcoming_event: faCalendar,
170
- // Reviews
171
- review_left: faStar,
172
- // Tasks
173
- tasks: faSquareCheck,
174
- // Announcements
175
- announcements: faBell,
176
- // Fantasy
177
- fantasy_point: faTrophy
178
- };
179
- var getActivityIcon = (slug) => ACTIVITY_ICON_MAP[slug] ?? faUser;
180
- function ActivityFeedItem({
181
- activity,
182
- accentColor,
183
- textColor
184
- }) {
185
- const icon = getActivityIcon(activity.slug);
186
- return /* @__PURE__ */ jsxs("div", { className: "flex w-full items-start gap-1.5", children: [
187
- /* @__PURE__ */ jsx("div", { className: "shrink-0", children: activity.avatarUrl ? /* @__PURE__ */ jsxs("div", { className: "relative size-8 overflow-hidden rounded-full", children: [
188
- /* @__PURE__ */ jsx(
189
- "img",
190
- {
191
- src: activity.avatarUrl,
192
- alt: activity.userName,
193
- className: "size-full object-cover"
194
- }
195
- ),
196
- /* @__PURE__ */ jsx("div", { className: "border-foreground/[0.08] absolute inset-0 rounded-full border" })
197
- ] }) : /* @__PURE__ */ jsx(
198
- "div",
199
- {
200
- className: `bg-muted flex size-8 items-center justify-center rounded-full`,
201
- children: /* @__PURE__ */ jsx(
202
- FontAwesomeIcon,
203
- {
204
- icon,
205
- className: `size-3.5 text-${textColor} opacity-60`
206
- }
207
- )
208
- }
209
- ) }),
210
- /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
211
- /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center gap-1.5", children: [
212
- /* @__PURE__ */ jsx(
213
- "p",
214
- {
215
- className: `flex-1 text-base font-semibold text-${textColor} truncate`,
216
- children: activity.activityType
217
- }
218
- ),
219
- /* @__PURE__ */ jsx("p", { className: `text-xs text-${textColor} shrink-0 opacity-50`, children: formatTimestamp(activity.timestamp) })
220
- ] }),
221
- /* @__PURE__ */ jsxs("p", { className: `text-sm text-${textColor} opacity-80`, children: [
222
- /* @__PURE__ */ jsx("span", { className: `font-medium text-${accentColor}`, children: activity.userName }),
223
- " ",
224
- activity.targetName
225
- ] })
226
- ] })
227
- ] });
228
- }
229
- function RecentActivityWidget({
230
- // Title defaults
231
- titleEnabled = true,
232
- titleText = "Recent Activity",
233
- titleFontSize = "lg",
234
- titleColor = "foreground",
235
- // Styling defaults
236
- background = {
237
- type: "solid",
238
- color: "background"
239
- },
240
- textColor = "foreground",
241
- accentColor = "primary",
242
- padding = 4,
243
- borderRadius = "md",
244
- // Activity defaults
245
- maxItemsToShow = 5,
246
- className,
247
- ...props
248
- }) {
249
- const backgroundColor = background.color || "background";
250
- const backgroundImage = (background.resource?.image_url || background.resource?.imageUrl) && background.type === "image" ? `url(${background.resource.image_url || background.resource.imageUrl})` : "none";
251
- const { data: activities = [], isLoading, isError } = useActivities();
252
- const groupedActivities = useMemo(
253
- () => groupActivitiesByDate(activities),
254
- [activities]
255
- );
256
- const totalCount = Math.min(activities.length, maxItemsToShow);
257
- const activitiesToShow = useMemo(() => {
258
- const result = [];
259
- let count = 0;
260
- for (const [dateKey, items] of groupedActivities) {
261
- if (count >= maxItemsToShow) break;
262
- const remainingSlots = maxItemsToShow - count;
263
- const itemsToAdd = items.slice(0, remainingSlots);
264
- if (itemsToAdd.length > 0) {
265
- result.push({
266
- date: formatDateHeader(items[0]?.timestamp ?? dateKey),
267
- items: itemsToAdd
268
- });
269
- count += itemsToAdd.length;
270
- }
271
- }
272
- return result;
273
- }, [groupedActivities, maxItemsToShow]);
274
- return /* @__PURE__ */ jsx(
275
- "div",
276
- {
277
- className: `@container overflow-hidden rounded-${borderRadius} bg-${backgroundColor} text-${textColor} border-muted border ${className}`,
278
- style: { backgroundImage },
279
- ...props,
280
- children: /* @__PURE__ */ jsxs("div", { className: `p-${padding} flex flex-col gap-2`, children: [
281
- titleEnabled && titleText && /* @__PURE__ */ jsxs("div", { className: "flex w-full items-start gap-2", children: [
282
- /* @__PURE__ */ jsx(
283
- "h2",
284
- {
285
- className: `flex-1 text-${titleFontSize} font-bold text-${titleColor}`,
286
- children: titleText
287
- }
288
- ),
289
- !isLoading && /* @__PURE__ */ jsx(
290
- "span",
291
- {
292
- className: `text-4xl font-bold text-${textColor} leading-none`,
293
- children: totalCount.toString().padStart(2, "0")
294
- }
295
- )
296
- ] }),
297
- isLoading ? /* @__PURE__ */ jsx("div", { className: "flex min-h-[200px] items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "h-8 w-8 animate-spin rounded-full border-2 border-current border-t-transparent" }) }) : isError ? (
298
- /* Error state */
299
- /* @__PURE__ */ jsx(ErrorState, {})
300
- ) : activities.length === 0 ? (
301
- /* Empty state */
302
- /* @__PURE__ */ jsxs("div", { className: "flex min-h-[200px] flex-col items-center justify-center gap-2", children: [
303
- /* @__PURE__ */ jsx(
304
- FontAwesomeIcon,
305
- {
306
- icon: faUser,
307
- className: `size-12 text-${textColor} opacity-30`
308
- }
309
- ),
310
- /* @__PURE__ */ jsx(
311
- "p",
312
- {
313
- className: `text-base font-semibold text-${textColor} opacity-50`,
314
- children: "No Activity To Report"
315
- }
316
- ),
317
- /* @__PURE__ */ jsx("p", { className: `text-sm text-${textColor} opacity-40`, children: "You'll Do Great!" })
318
- ] })
319
- ) : (
320
- /* Activity list */
321
- /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4", children: activitiesToShow.map((group, groupIndex) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
322
- /* @__PURE__ */ jsx("p", { className: `text-base font-semibold text-${textColor}`, children: group.date }),
323
- /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4", children: group.items.map((activity) => /* @__PURE__ */ jsx(
324
- ActivityFeedItem,
325
- {
326
- activity,
327
- accentColor,
328
- textColor
329
- },
330
- activity.id
331
- )) })
332
- ] }, groupIndex)) })
333
- )
334
- ] })
335
- }
336
- );
337
- }
338
- var recentActivityWidgetPropertySchema = {
339
- widgetType: "RecentActivityWidget",
340
- displayName: "Recent Activity Widget",
341
- tabsConfig: [{ id: "styling", label: "Styling" }],
342
- fields: [
343
- // Styling Tab - Title Group
344
- {
345
- key: "titleEnabled",
346
- label: "Widget Title",
347
- type: "boolean",
348
- description: "Enable the title displayed above the activity feed",
349
- defaultValue: true,
350
- tab: "styling",
351
- group: "Title"
352
- },
353
- {
354
- key: "titleText",
355
- label: "Title",
356
- type: "text",
357
- description: "Title text displayed above the activity feed",
358
- defaultValue: "Recent Activity",
359
- tab: "styling",
360
- group: "Title",
361
- requiresKeyToBeTrue: "titleEnabled"
362
- },
363
- getFontSizeField({
364
- key: "titleFontSize",
365
- label: "Title Font Size",
366
- description: "Font size for the widget title",
367
- defaultValue: "xl",
368
- tab: "styling",
369
- group: "Title",
370
- requiresKeyToBeTrue: "titleEnabled"
371
- }),
372
- getColorField({
373
- key: "titleColor",
374
- label: "Title Color",
375
- description: "Color for the widget title",
376
- defaultValue: "foreground",
377
- tab: "styling",
378
- group: "Title",
379
- requiresKeyToBeTrue: "titleEnabled"
380
- }),
381
- // Styling Tab - Design Group
382
- {
383
- type: "background",
384
- key: "background",
385
- label: "Background",
386
- description: "Background for the widget container",
387
- defaultValue: "background",
388
- tab: "styling",
389
- group: "Design"
390
- },
391
- getColorField({
392
- key: "textColor",
393
- label: "Text Color",
394
- description: "Default text color for activity content",
395
- defaultValue: "foreground",
396
- tab: "styling",
397
- group: "Design"
398
- }),
399
- getColorField({
400
- key: "accentColor",
401
- label: "Accent Color",
402
- description: "Color used for links and highlights",
403
- defaultValue: "primary",
404
- tab: "styling",
405
- group: "Design"
406
- }),
407
- {
408
- key: "separator",
409
- type: "separator",
410
- label: "Separator",
411
- tab: "styling",
412
- group: "Design"
413
- },
414
- getPaddingField({
415
- key: "padding",
416
- label: "Padding",
417
- description: "Padding around the widget container",
418
- defaultValue: 4,
419
- tab: "styling",
420
- group: "Design"
421
- }),
422
- getBorderRadiusField({
423
- key: "borderRadius",
424
- label: "Border Radius",
425
- description: "Border radius for the widget container",
426
- defaultValue: "md",
427
- tab: "styling",
428
- group: "Design"
429
- }),
430
- // Styling Tab - Display Group
431
- {
432
- key: "maxItemsToShow",
433
- label: "Max Items",
434
- type: "number",
435
- description: "Maximum number of activity items to display",
436
- defaultValue: 5,
437
- tab: "styling",
438
- group: "Display"
439
- }
440
- ]
441
- };
442
-
443
- export { RecentActivityWidget, recentActivityWidgetPropertySchema };
444
- //# sourceMappingURL=chunk-ZLTPLVOF.js.map
445
- //# sourceMappingURL=chunk-ZLTPLVOF.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/hooks/use-activities.preview.ts","../src/hooks/use-activities.ts","../src/widgets/RecentActivityWidget.tsx"],"names":[],"mappings":"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","file":"chunk-ZLTPLVOF.js","sourcesContent":["import type { Activity } from \"./use-activities.types\";\n\nconst now = new Date();\n\nfunction minutesAgo(minutes: number): string {\n return new Date(now.getTime() - minutes * 60_000).toISOString();\n}\n\nexport const PREVIEW_DATA: Activity[] = [\n {\n id: 1,\n userName: \"Sarah Johnson\",\n avatarUrl: null,\n activityType: \"Order Placed\",\n targetName: \"Wellness Starter Kit\",\n timestamp: minutesAgo(12),\n slug: \"order_placed\",\n },\n {\n id: 2,\n userName: \"Mike Chen\",\n avatarUrl: null,\n activityType: \"New Lead\",\n targetName: \"Signed up from Instagram link\",\n timestamp: minutesAgo(45),\n slug: \"new_lead\",\n },\n {\n id: 3,\n userName: \"Visitor from Austin, TX\",\n avatarUrl: null,\n activityType: \"Page Views\",\n targetName: \"Viewed product catalog (3 pages)\",\n timestamp: minutesAgo(90),\n slug: \"page_views\",\n },\n {\n id: 4,\n userName: \"Lisa Park\",\n avatarUrl: null,\n activityType: \"Video Complete\",\n targetName: \"Watched: Getting Started Guide\",\n timestamp: minutesAgo(180),\n slug: \"video_complete\",\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-activities.preview\";\nimport type {\n Activity,\n ActivityContact,\n ActivityVisitor,\n ApiActivity,\n} from \"./use-activities.types\";\n\nexport type {\n ActivityContact,\n ActivityVisitor,\n ActivitySlug,\n ApiActivity,\n Activity,\n} from \"./use-activities.types\";\n\ntype PaginationInfo = {\n current: number;\n previous: number | null;\n next: number | null;\n per_page: number;\n pages: number;\n count: number;\n};\n\ntype ApiResponse = [{ pagination: PaginationInfo }, { items: ApiActivity[] }];\n\nexport function useActivities() {\n const { baseUrl, getApiHeaders } = useDataSourceConfig();\n const { isPreview } = useWidgetPreviewContext();\n\n return useQuery({\n queryKey: [\n \"rep-widget-use\",\n \"activities\",\n isPreview ? \"preview\" : baseUrl,\n ] as const,\n queryFn: async ({ signal }): Promise<Activity[]> => {\n const url = baseUrl\n ? `${baseUrl}/v2/activities.json`\n : \"/v2/activities.json\";\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 activities: ${response.status}`);\n }\n\n const data: ApiResponse = await response.json();\n return transformActivities(data);\n },\n enabled: !isPreview,\n ...(isPreview && { placeholderData: PREVIEW_DATA }),\n });\n}\n\n// Transform and format helpers\nfunction getUserName(\n contact: ActivityContact | null,\n visitor: ActivityVisitor | null,\n): string {\n if (contact?.full_name) {\n return contact.full_name;\n }\n if (contact?.first_name && contact?.last_name) {\n return `${contact.first_name} ${contact.last_name}`;\n }\n if (visitor?.city && visitor?.state) {\n return `Visitor from ${visitor.city}, ${visitor.state}`;\n }\n return \"Unknown Visitor\";\n}\n\nfunction transformActivities(rawData: ApiResponse): Activity[] {\n const itemsObj = rawData[1];\n if (!itemsObj?.items) return [];\n\n return itemsObj.items\n .map((activity) => ({\n id: activity.id,\n userName: getUserName(activity.contact, activity.visitor),\n avatarUrl: activity.contact?.avatar_url ?? null,\n activityType: formatActivityType(activity.slug),\n targetName: activity.description || activity.title,\n timestamp: activity.created_at,\n slug: activity.slug,\n }))\n .sort(\n (a, b) =>\n new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime(),\n );\n}\n\nfunction formatActivityType(slug: string): string {\n return slug\n .split(\"_\")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\" \");\n}\n","import { useMemo, 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 {\n useActivities,\n type Activity,\n type ActivitySlug,\n} from \"../hooks/use-activities\";\nimport { ErrorState } from \"../components/error-state\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport type { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n faBell,\n faCalendar,\n faSquareCheck,\n faEye,\n faComment,\n faPlay,\n faCartShopping,\n faStar,\n faTrophy,\n faUser,\n faUserPlus,\n} from \"@fortawesome/pro-regular-svg-icons\";\n\n// Format timestamp to time string\nconst formatTimestamp = (timestamp: string): string => {\n const date = new Date(timestamp);\n return date.toLocaleTimeString(\"en-US\", {\n hour: \"numeric\",\n minute: \"2-digit\",\n hour12: true,\n });\n};\n\n// Format date for grouping header\nconst formatDateHeader = (timestamp: string): string => {\n const date = new Date(timestamp);\n return date.toLocaleDateString(\"en-US\", {\n month: \"long\",\n day: \"numeric\",\n });\n};\n\n// Get date string for grouping (without time)\nconst getDateKey = (timestamp: string): string => {\n const date = new Date(timestamp);\n return date.toISOString().split(\"T\")[0] ?? timestamp;\n};\n\n// Group activities by date\nconst groupActivitiesByDate = (\n activities: Activity[],\n): Map<string, Activity[]> => {\n const grouped = new Map<string, Activity[]>();\n\n for (const activity of activities) {\n const dateKey = getDateKey(activity.timestamp);\n const existing = grouped.get(dateKey);\n if (existing) {\n existing.push(activity);\n } else {\n grouped.set(dateKey, [activity]);\n }\n }\n\n return grouped;\n};\n\n// Activity slug to icon mapping\nconst ACTIVITY_ICON_MAP: Record<ActivitySlug, IconDefinition> = {\n // Orders/Cart\n order_placed: faCartShopping,\n abandoned_cart: faCartShopping,\n cart_items_added: faCartShopping,\n new_cart_items_added: faCartShopping,\n // Messages\n direct_message: faComment,\n comment_reply: faComment,\n message_received: faComment,\n message_sent: faComment,\n // Video\n video: faPlay,\n video_complete: faPlay,\n video_contact: faPlay,\n video_complete_contact: faPlay,\n // Leads\n new_lead: faUserPlus,\n page_views_contact: faUserPlus,\n smart_link_clicked: faUserPlus,\n // Page Views\n page_views: faEye,\n // Events\n upcoming_event: faCalendar,\n // Reviews\n review_left: faStar,\n // Tasks\n tasks: faSquareCheck,\n // Announcements\n announcements: faBell,\n // Fantasy\n fantasy_point: faTrophy,\n};\n\nconst getActivityIcon = (slug: ActivitySlug) =>\n ACTIVITY_ICON_MAP[slug] ?? faUser;\n\n// Activity feed item component\ntype ActivityFeedItemProps = {\n activity: Activity;\n accentColor: ColorOptions;\n textColor: ColorOptions;\n};\n\nfunction ActivityFeedItem({\n activity,\n accentColor,\n textColor,\n}: ActivityFeedItemProps) {\n const icon = getActivityIcon(activity.slug);\n\n return (\n <div className=\"flex w-full items-start gap-1.5\">\n {/* Avatar */}\n <div className=\"shrink-0\">\n {activity.avatarUrl ? (\n <div className=\"relative size-8 overflow-hidden rounded-full\">\n <img\n src={activity.avatarUrl}\n alt={activity.userName}\n className=\"size-full object-cover\"\n />\n <div className=\"border-foreground/[0.08] absolute inset-0 rounded-full border\" />\n </div>\n ) : (\n <div\n className={`bg-muted flex size-8 items-center justify-center rounded-full`}\n >\n <FontAwesomeIcon\n icon={icon}\n className={`size-3.5 text-${textColor} opacity-60`}\n />\n </div>\n )}\n </div>\n\n {/* Content */}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex w-full items-center gap-1.5\">\n <p\n className={`flex-1 text-base font-semibold text-${textColor} truncate`}\n >\n {activity.activityType}\n </p>\n <p className={`text-xs text-${textColor} shrink-0 opacity-50`}>\n {formatTimestamp(activity.timestamp)}\n </p>\n </div>\n <p className={`text-sm text-${textColor} opacity-80`}>\n <span className={`font-medium text-${accentColor}`}>\n {activity.userName}\n </span>{\" \"}\n {activity.targetName}\n </p>\n </div>\n </div>\n );\n}\n\ntype RecentActivityWidgetProps = 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 // Activity settings\n maxItemsToShow?: number;\n};\n\nexport function RecentActivityWidget({\n // Title defaults\n titleEnabled = true,\n titleText = \"Recent Activity\",\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 // Activity defaults\n maxItemsToShow = 5,\n\n className,\n ...props\n}: RecentActivityWidgetProps) {\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: activities = [], isLoading, isError } = useActivities();\n\n const groupedActivities = useMemo(\n () => groupActivitiesByDate(activities),\n [activities],\n );\n\n const totalCount = Math.min(activities.length, maxItemsToShow);\n\n // Get activities to display (limited by maxItemsToShow)\n const activitiesToShow = useMemo(() => {\n const result: { date: string; items: Activity[] }[] = [];\n let count = 0;\n\n for (const [dateKey, items] of groupedActivities) {\n if (count >= maxItemsToShow) break;\n\n const remainingSlots = maxItemsToShow - count;\n const itemsToAdd = items.slice(0, remainingSlots);\n\n if (itemsToAdd.length > 0) {\n result.push({\n date: formatDateHeader(items[0]?.timestamp ?? dateKey),\n items: itemsToAdd,\n });\n count += itemsToAdd.length;\n }\n }\n\n return result;\n }, [groupedActivities, maxItemsToShow]);\n\n return (\n <div\n className={`@container overflow-hidden rounded-${borderRadius} bg-${backgroundColor} text-${textColor} border-muted border ${className}`}\n style={{ backgroundImage }}\n {...props}\n >\n <div className={`p-${padding} flex flex-col gap-2`}>\n {/* Header */}\n {titleEnabled && titleText && (\n <div className=\"flex w-full items-start gap-2\">\n <h2\n className={`flex-1 text-${titleFontSize} font-bold text-${titleColor}`}\n >\n {titleText}\n </h2>\n {!isLoading && (\n <span\n className={`text-4xl font-bold text-${textColor} leading-none`}\n >\n {totalCount.toString().padStart(2, \"0\")}\n </span>\n )}\n </div>\n )}\n\n {/* Loading state */}\n {isLoading ? (\n <div className=\"flex min-h-[200px] items-center justify-center\">\n <div className=\"h-8 w-8 animate-spin rounded-full border-2 border-current border-t-transparent\" />\n </div>\n ) : isError ? (\n /* Error state */\n <ErrorState />\n ) : activities.length === 0 ? (\n /* Empty state */\n <div className=\"flex min-h-[200px] flex-col items-center justify-center gap-2\">\n <FontAwesomeIcon\n icon={faUser}\n className={`size-12 text-${textColor} opacity-30`}\n />\n <p\n className={`text-base font-semibold text-${textColor} opacity-50`}\n >\n No Activity To Report\n </p>\n <p className={`text-sm text-${textColor} opacity-40`}>\n You&apos;ll Do Great!\n </p>\n </div>\n ) : (\n /* Activity list */\n <div className=\"flex flex-col gap-4\">\n {activitiesToShow.map((group, groupIndex) => (\n <div key={groupIndex} className=\"flex flex-col gap-4\">\n {/* Date header */}\n <p className={`text-base font-semibold text-${textColor}`}>\n {group.date}\n </p>\n\n {/* Activity items */}\n <div className=\"flex flex-col gap-4\">\n {group.items.map((activity) => (\n <ActivityFeedItem\n key={activity.id}\n activity={activity}\n accentColor={accentColor}\n textColor={textColor}\n />\n ))}\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport const recentActivityWidgetPropertySchema: WidgetPropertySchema = {\n widgetType: \"RecentActivityWidget\",\n displayName: \"Recent Activity 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 activity feed\",\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 activity feed\",\n defaultValue: \"Recent Activity\",\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 activity content\",\n defaultValue: \"foreground\",\n tab: \"styling\",\n group: \"Design\",\n }),\n getColorField({\n key: \"accentColor\",\n label: \"Accent Color\",\n description: \"Color used for links and highlights\",\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 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 // Styling Tab - Display Group\n {\n key: \"maxItemsToShow\",\n label: \"Max Items\",\n type: \"number\",\n description: \"Maximum number of activity items to display\",\n defaultValue: 5,\n tab: \"styling\",\n group: \"Display\",\n },\n ],\n} as const satisfies WidgetPropertySchema;\n"]}
@@ -1,11 +0,0 @@
1
- import { createContext, useContext } from 'react';
2
-
3
- // src/contexts/ScreenRendererContext.tsx
4
- var ScreenRendererContext = createContext(void 0);
5
- function useScreenRenderer() {
6
- return useContext(ScreenRendererContext);
7
- }
8
-
9
- export { ScreenRendererContext, useScreenRenderer };
10
- //# sourceMappingURL=chunk-ZWFK5UUU.js.map
11
- //# sourceMappingURL=chunk-ZWFK5UUU.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/contexts/ScreenRendererContext.tsx"],"names":[],"mappings":";;;AAwBO,IAAM,qBAAA,GAAwB,cAEnC,MAAS;AAMJ,SAAS,iBAAA,GAEF;AACZ,EAAA,OAAO,WAAW,qBAAqB,CAAA;AACzC","file":"chunk-ZWFK5UUU.js","sourcesContent":["import { createContext, useContext, type ComponentType } from \"react\";\nimport type { WidgetSchema } from \"@fluid-app/rep-core/types\";\nimport type { WidgetRegistry } from \"./RegistryContext\";\n\n/**\n * Props that any ScreenRenderer must accept.\n * This is the minimal interface used by container widgets (e.g. LayoutWidget)\n * to render their children.\n */\nexport interface ScreenRendererComponentProps {\n screen: WidgetSchema[];\n registry?: WidgetRegistry;\n className?: string;\n}\n\n/**\n * Context for providing an alternative ScreenRenderer component.\n *\n * This allows packages like rep-builder to inject their own ScreenRenderer\n * (with edit mode, drag-and-drop, etc.) so that container widgets in rep-widgets\n * use the richer renderer instead of the basic view-only one.\n *\n * Default is undefined — container widgets fall back to the local ScreenRenderer import.\n */\nexport const ScreenRendererContext = createContext<\n ComponentType<ScreenRendererComponentProps> | undefined\n>(undefined);\n\n/**\n * Hook to get the ScreenRenderer component from context.\n * Returns undefined if no override has been provided.\n */\nexport function useScreenRenderer():\n | ComponentType<ScreenRendererComponentProps>\n | undefined {\n return useContext(ScreenRendererContext);\n}\n"]}
@@ -1,8 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { ClassValue } from 'clsx';
3
-
4
- declare function ErrorState(): react_jsx_runtime.JSX.Element;
5
-
6
- declare function cn(...inputs: readonly ClassValue[]): string;
7
-
8
- export { ErrorState, cn };
@@ -1,11 +0,0 @@
1
- export { ErrorState } from '../chunk-JIS2K5YR.js';
2
- import { clsx } from 'clsx';
3
- import { twMerge } from 'tailwind-merge';
4
-
5
- function cn(...inputs) {
6
- return twMerge(clsx(inputs));
7
- }
8
-
9
- export { cn };
10
- //# sourceMappingURL=index.js.map
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/utils.ts"],"names":[],"mappings":";;;;AAGO,SAAS,MAAM,MAAA,EAA+B;AACnD,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B","file":"index.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: readonly ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
@@ -1,4 +0,0 @@
1
- export { ScreenRendererContext, useScreenRenderer } from '../chunk-ZWFK5UUU.js';
2
- export { RegistryContext, RegistryProvider, useRegistry } from '../chunk-6GF46P3S.js';
3
- //# sourceMappingURL=index.js.map
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
@@ -1,64 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { ComponentType } from 'react';
3
- import { TypedWidgetSchema, WidgetSchema, ShareableItem } from '@fluid-app/rep-core/types';
4
- export { gapValues, getBorderRadiusField, getButtonSizeField, getColorField, getFontSizeField, getGapField, getPaddingField } from '@fluid-app/rep-core/registries';
5
-
6
- interface ScreenRendererProps<T extends Record<string, ComponentType<any>>> {
7
- /** Array of widget schemas to render */
8
- screen: TypedWidgetSchema<T>[] | WidgetSchema[];
9
- /** Widget registry mapping type names to components */
10
- registry?: T;
11
- /** Container widgets (like LayoutWidget) receive these additional props */
12
- containerWidgetTypes?: string[];
13
- /** Additional CSS classes for the wrapper div */
14
- className?: string;
15
- }
16
- /**
17
- * ScreenRenderer - View-only component for rendering widget screens.
18
- *
19
- * This is a simplified version designed for the SDK that only handles
20
- * rendering widgets without edit mode or drag-and-drop functionality.
21
- *
22
- * Features:
23
- * - Static rendering of widgets
24
- * - Registry context: No prop drilling for widget registry
25
- * - Container widget support with path tracking
26
- *
27
- * Usage:
28
- * ```tsx
29
- * import { ScreenRenderer } from '@fluid-app/rep-widgets/core';
30
- * import { WIDGET_REGISTRY } from '@fluid-app/rep-widgets/widgets';
31
- *
32
- * <ScreenRenderer
33
- * screen={widgets}
34
- * registry={WIDGET_REGISTRY}
35
- * />
36
- * ```
37
- */
38
- declare function ScreenRenderer<T extends Record<string, ComponentType<any>>>(props: ScreenRendererProps<T>): react_jsx_runtime.JSX.Element;
39
-
40
- type MediaRendererProps = {
41
- src?: string | undefined;
42
- alt?: string | undefined;
43
- objectFit?: "contain" | "cover" | "fill" | "none" | undefined;
44
- focusPoint?: string | undefined;
45
- mediaType?: "image" | "video" | undefined;
46
- poster?: string | undefined;
47
- autoplay?: boolean | undefined;
48
- loop?: boolean | undefined;
49
- muted?: boolean | undefined;
50
- controls?: boolean | undefined;
51
- };
52
- declare function MediaRenderer({ src, alt, objectFit, focusPoint, mediaType, poster, autoplay, loop, muted, controls, }: MediaRendererProps): react_jsx_runtime.JSX.Element;
53
- /**
54
- * Converts a ShareableItem to MediaRenderer props.
55
- * Replaces the createWidgetFromShareable → ScreenRenderer pattern.
56
- */
57
- declare function getMediaPropsFromShareable(item: ShareableItem): MediaRendererProps;
58
- /**
59
- * Extracts media props from an ImageWidget/VideoWidget schema.
60
- * Used by CarouselWidget for slide.content rendering.
61
- */
62
- declare function getMediaPropsFromWidgetSchema(schema: WidgetSchema): MediaRendererProps;
63
-
64
- export { MediaRenderer, type MediaRendererProps, ScreenRenderer, type ScreenRendererProps, getMediaPropsFromShareable, getMediaPropsFromWidgetSchema };
@@ -1,6 +0,0 @@
1
- export { ScreenRenderer } from '../chunk-RKDOQV4T.js';
2
- export { MediaRenderer, getMediaPropsFromShareable, getMediaPropsFromWidgetSchema } from '../chunk-L3HN4J2Y.js';
3
- import '../chunk-6GF46P3S.js';
4
- export { gapValues, getBorderRadiusField, getButtonSizeField, getColorField, getFontSizeField, getGapField, getPaddingField } from '../chunk-6ZECDBGI.js';
5
- //# sourceMappingURL=index.js.map
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs","sourcesContent":[]}
@@ -1,10 +0,0 @@
1
- export { Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Input, buttonVariants } from '@fluid-app/ui-primitives';
2
- import * as react_jsx_runtime from 'react/jsx-runtime';
3
-
4
- type ScrollArrowsProps = {
5
- onPrevious: () => void;
6
- onNext: () => void;
7
- };
8
- declare function ScrollArrows({ onPrevious, onNext }: ScrollArrowsProps): react_jsx_runtime.JSX.Element;
9
-
10
- export { ScrollArrows };