@fluid-app/rep-widgets 0.1.15 → 0.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 -524
  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-HJH4Q5EH.cjs +0 -16
  166. package/dist/EmbedWidget-HJH4Q5EH.cjs.map +0 -1
  167. package/dist/EmbedWidget-JCTT47DQ.js +0 -3
  168. package/dist/EmbedWidget-JCTT47DQ.js.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-HOFHBVGL.js +0 -133
  254. package/dist/chunk-HOFHBVGL.js.map +0 -1
  255. package/dist/chunk-HREBEVS5.cjs +0 -42
  256. package/dist/chunk-HREBEVS5.cjs.map +0 -1
  257. package/dist/chunk-IF36TB2H.js +0 -459
  258. package/dist/chunk-IF36TB2H.js.map +0 -1
  259. package/dist/chunk-J6HCPXT5.cjs +0 -40
  260. package/dist/chunk-J6HCPXT5.cjs.map +0 -1
  261. package/dist/chunk-JIS2K5YR.js +0 -13
  262. package/dist/chunk-JIS2K5YR.js.map +0 -1
  263. package/dist/chunk-JYWKXNUO.cjs +0 -37
  264. package/dist/chunk-JYWKXNUO.cjs.map +0 -1
  265. package/dist/chunk-KYCPG2DN.cjs +0 -17
  266. package/dist/chunk-KYCPG2DN.cjs.map +0 -1
  267. package/dist/chunk-L3HN4J2Y.js +0 -175
  268. package/dist/chunk-L3HN4J2Y.js.map +0 -1
  269. package/dist/chunk-LZJVUYSQ.cjs +0 -462
  270. package/dist/chunk-LZJVUYSQ.cjs.map +0 -1
  271. package/dist/chunk-MXWFM5J2.js +0 -493
  272. package/dist/chunk-MXWFM5J2.js.map +0 -1
  273. package/dist/chunk-NPTCR22X.cjs +0 -1031
  274. package/dist/chunk-NPTCR22X.cjs.map +0 -1
  275. package/dist/chunk-P4VXS3BG.cjs +0 -464
  276. package/dist/chunk-P4VXS3BG.cjs.map +0 -1
  277. package/dist/chunk-P6AKK6TA.cjs +0 -382
  278. package/dist/chunk-P6AKK6TA.cjs.map +0 -1
  279. package/dist/chunk-PLXOZ5BH.cjs +0 -140
  280. package/dist/chunk-PLXOZ5BH.cjs.map +0 -1
  281. package/dist/chunk-Q5YXTDPX.cjs +0 -150
  282. package/dist/chunk-Q5YXTDPX.cjs.map +0 -1
  283. package/dist/chunk-QB6UW6DD.js +0 -250
  284. package/dist/chunk-QB6UW6DD.js.map +0 -1
  285. package/dist/chunk-QG2INAJC.js +0 -461
  286. package/dist/chunk-QG2INAJC.js.map +0 -1
  287. package/dist/chunk-QXIIJNQK.cjs +0 -15
  288. package/dist/chunk-QXIIJNQK.cjs.map +0 -1
  289. package/dist/chunk-RKDOQV4T.js +0 -73
  290. package/dist/chunk-RKDOQV4T.js.map +0 -1
  291. package/dist/chunk-ROLEPF3N.js +0 -399
  292. package/dist/chunk-ROLEPF3N.js.map +0 -1
  293. package/dist/chunk-RPNLSRUS.cjs +0 -120
  294. package/dist/chunk-RPNLSRUS.cjs.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-VB5MPLLG.cjs +0 -136
  306. package/dist/chunk-VB5MPLLG.cjs.map +0 -1
  307. package/dist/chunk-WTQNKZKV.cjs +0 -253
  308. package/dist/chunk-WTQNKZKV.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 -602
  336. package/dist/widgets/index.js +0 -55
  337. package/dist/widgets/index.js.map +0 -1
@@ -1,399 +0,0 @@
1
- import { MediaRenderer, getMediaPropsFromShareable } from './chunk-L3HN4J2Y.js';
2
- import { ScrollArrows } from './chunk-YOJRRPOG.js';
3
- import { getFontSizeField, getColorField, getPaddingField, getBorderRadiusField, getGapField, gapValues } from './chunk-6ZECDBGI.js';
4
- import { useRef, useState, useEffect } from 'react';
5
- import { getHeightField } from '@fluid-app/rep-core/registries';
6
- import '@fluid-app/rep-core/types';
7
- import { jsxs, jsx } from 'react/jsx-runtime';
8
-
9
- var DEFAULT_SHAREABLES = [];
10
- function NestedWidget({
11
- resource,
12
- titleEnabled = true,
13
- titleText = "Featured Collection",
14
- shareables = DEFAULT_SHAREABLES,
15
- gap = "md",
16
- padding = 4,
17
- borderRadius = "md",
18
- primaryMediaHeight = "400px",
19
- titleFontSize = "xl",
20
- titleColor = "background",
21
- titleAlignment = { horizontal: "left", vertical: "bottom" },
22
- nestedTextColor = "foreground",
23
- background = {
24
- type: "solid",
25
- color: "background"
26
- },
27
- overlayEnabled = true,
28
- overlayType = "gradient",
29
- overlayIntensity = 50,
30
- className,
31
- ...props
32
- }) {
33
- const scrollContainerRef = useRef(null);
34
- const primaryMediaRef = useRef(null);
35
- const [primaryMediaWidthPx, setPrimaryMediaWidthPx] = useState(400);
36
- useEffect(() => {
37
- const el = primaryMediaRef.current;
38
- if (!el) return;
39
- const observer = new ResizeObserver(([entry]) => {
40
- if (entry) setPrimaryMediaWidthPx(entry.contentRect.width);
41
- });
42
- observer.observe(el);
43
- return () => observer.disconnect();
44
- }, []);
45
- const scrollByAmount = (direction) => {
46
- const container = scrollContainerRef.current;
47
- if (!container) return;
48
- const computedGap = parseFloat(getComputedStyle(container).gap) || 0;
49
- const itemWidth = primaryMediaWidthPx * 0.75;
50
- const scrollAmount = itemWidth + computedGap;
51
- container.scrollTo({
52
- left: container.scrollLeft + (direction === "next" ? scrollAmount : -scrollAmount),
53
- behavior: "smooth"
54
- });
55
- };
56
- const hasNestedMedia = shareables.length > 0;
57
- const titleAlignmentClasses = {
58
- left: "text-left",
59
- center: "text-center",
60
- right: "text-right"
61
- };
62
- const backgroundColor = background.color || "background";
63
- const backgroundImage = (background.resource?.image_url || background.resource?.imageUrl) && background.type === "image" ? `url(${background.resource.image_url || background.resource.imageUrl})` : "none";
64
- return /* @__PURE__ */ jsxs(
65
- "div",
66
- {
67
- className: `@container flex w-full p-${padding} rounded-${borderRadius} bg-${backgroundColor} ${className}`,
68
- ...props,
69
- style: {
70
- maxHeight: primaryMediaHeight,
71
- backgroundImage
72
- },
73
- children: [
74
- /* @__PURE__ */ jsx(
75
- "div",
76
- {
77
- ref: primaryMediaRef,
78
- className: `overflow-hidden @md:flex-none rounded-${borderRadius}`,
79
- style: {
80
- width: primaryMediaHeight
81
- },
82
- children: /* @__PURE__ */ jsxs("div", { className: "relative h-full w-full", children: [
83
- /* @__PURE__ */ jsx(
84
- MediaRenderer,
85
- {
86
- ...resource ? getMediaPropsFromShareable(resource) : {}
87
- }
88
- ),
89
- overlayEnabled && /* @__PURE__ */ jsx(
90
- "div",
91
- {
92
- className: `pointer-events-none absolute inset-0 z-10 ${overlayType === "gradient" ? "bg-gradient-to-t from-black to-transparent" : "bg-black"}`,
93
- style: {
94
- opacity: (Number(String(overlayIntensity).replace("%", "")) || 50) / 100
95
- }
96
- }
97
- ),
98
- (titleEnabled && titleText || hasNestedMedia) && /* @__PURE__ */ jsxs(
99
- "div",
100
- {
101
- className: `absolute z-20 w-full ${titleAlignmentClasses[titleAlignment?.horizontal ?? "left"]} p-${padding} ${titleAlignment.vertical === "top" ? `top-0 pt-${padding}` : titleAlignment.vertical === "center" ? "top-1/2 -translate-y-1/2" : `bottom-0 pb-${padding}`}`,
102
- children: [
103
- titleEnabled && titleText && /* @__PURE__ */ jsx(
104
- "h2",
105
- {
106
- className: `leading-tight font-bold text-${titleColor} text-${titleFontSize === "md" ? "base" : titleFontSize}`,
107
- children: titleText
108
- }
109
- ),
110
- hasNestedMedia && /* @__PURE__ */ jsx("div", { className: `pt-${padding} @md:hidden`, children: /* @__PURE__ */ jsx(
111
- "div",
112
- {
113
- className: `flex overflow-x-auto gap-${gapValues[gap]} bg-transparent`,
114
- children: shareables.map((shareable) => /* @__PURE__ */ jsx(
115
- "div",
116
- {
117
- className: "flex shrink-0 flex-col items-center",
118
- children: /* @__PURE__ */ jsx(
119
- "div",
120
- {
121
- className: `aspect-3/4 h-40 overflow-hidden rounded-${borderRadius}`,
122
- children: /* @__PURE__ */ jsx(
123
- MediaRenderer,
124
- {
125
- ...getMediaPropsFromShareable(shareable)
126
- }
127
- )
128
- }
129
- )
130
- },
131
- shareable.id
132
- ))
133
- }
134
- ) })
135
- ]
136
- }
137
- )
138
- ] })
139
- }
140
- ),
141
- hasNestedMedia && /* @__PURE__ */ jsxs(
142
- "div",
143
- {
144
- className: `relative hidden min-w-0 self-stretch @md:flex @md:flex-1 px-${padding}`,
145
- children: [
146
- /* @__PURE__ */ jsx(
147
- "div",
148
- {
149
- ref: scrollContainerRef,
150
- className: `flex h-full flex-row overflow-x-auto gap-${gapValues[gap]}`,
151
- style: { scrollSnapType: "x mandatory" },
152
- children: shareables.map((shareable) => /* @__PURE__ */ jsxs(
153
- "div",
154
- {
155
- className: "flex flex-col gap-1",
156
- style: {
157
- width: `${primaryMediaWidthPx * 0.75}px`,
158
- scrollSnapAlign: "start"
159
- },
160
- children: [
161
- /* @__PURE__ */ jsx(
162
- "div",
163
- {
164
- className: `aspect-3/4 h-full rounded-${borderRadius} overflow-hidden`,
165
- children: /* @__PURE__ */ jsx(MediaRenderer, { ...getMediaPropsFromShareable(shareable) })
166
- }
167
- ),
168
- /* @__PURE__ */ jsxs("span", { className: `flex-none text-sm text-${nestedTextColor}`, children: [
169
- /* @__PURE__ */ jsx("p", { className: "truncate", children: shareable.title || "" }),
170
- /* @__PURE__ */ jsx("p", { className: "truncate", children: (shareable.display_price ?? shareable.price) || "" })
171
- ] })
172
- ]
173
- },
174
- shareable.id
175
- ))
176
- }
177
- ),
178
- /* @__PURE__ */ jsx(
179
- "div",
180
- {
181
- className: `absolute inset-x-0 top-1/2 flex w-full -translate-y-1/2 items-center justify-between px-8`,
182
- children: /* @__PURE__ */ jsx(
183
- ScrollArrows,
184
- {
185
- onPrevious: () => scrollByAmount("prev"),
186
- onNext: () => scrollByAmount("next")
187
- }
188
- )
189
- }
190
- )
191
- ]
192
- }
193
- )
194
- ]
195
- }
196
- );
197
- }
198
- var nestedWidgetPropertySchema = {
199
- widgetType: "NestedWidget",
200
- displayName: "Nested Widget",
201
- tabsConfig: [
202
- { id: "styling", label: "Styling" },
203
- { id: "data", label: "Data" }
204
- ],
205
- dataSourceTargetProps: ["shareables"],
206
- fields: [
207
- // Content tab - Resource group
208
- {
209
- key: "resource",
210
- label: "Primary Media",
211
- type: "resource",
212
- description: "Select the primary media displayed in the large panel",
213
- allowedTypes: ["Medium"],
214
- tab: "styling",
215
- group: "Content"
216
- },
217
- // Content tab - Title group
218
- {
219
- key: "titleEnabled",
220
- label: "Widget Title",
221
- type: "boolean",
222
- description: "Enable the title displayed over the primary media",
223
- defaultValue: true,
224
- tab: "styling",
225
- group: "Title"
226
- },
227
- {
228
- key: "titleText",
229
- label: "Title",
230
- type: "text",
231
- description: "Main title displayed over the primary media",
232
- defaultValue: "Featured Collection",
233
- tab: "styling",
234
- group: "Title",
235
- requiresKeyToBeTrue: "titleEnabled"
236
- },
237
- getFontSizeField({
238
- label: "Title Font Size",
239
- defaultValue: "xl",
240
- key: "titleFontSize",
241
- description: "Font size for the widget title",
242
- tab: "styling",
243
- group: "Title",
244
- requiresKeyToBeTrue: "titleEnabled"
245
- }),
246
- getColorField({
247
- defaultValue: "background",
248
- key: "titleColor",
249
- label: "Title Color",
250
- description: "Color for the widget title",
251
- tab: "styling",
252
- group: "Title",
253
- requiresKeyToBeTrue: "titleEnabled"
254
- }),
255
- // Styling tab - Design group
256
- getHeightField({
257
- key: "primaryMediaHeight",
258
- label: "Primary Media Height",
259
- description: "Height of the primary media container",
260
- min: 100,
261
- max: 1200,
262
- step: 10,
263
- defaultValue: "400px",
264
- tab: "styling",
265
- group: "Design"
266
- }),
267
- {
268
- key: "separator",
269
- type: "separator",
270
- label: "Separator",
271
- tab: "styling",
272
- group: "Design"
273
- },
274
- {
275
- key: "titleAlignment",
276
- label: "Content Alignment",
277
- type: "alignment",
278
- description: "Alignment of the content inside the primary media",
279
- defaultValue: { horizontal: "left", vertical: "bottom" },
280
- options: {
281
- horizontalEnabled: true,
282
- verticalEnabled: true
283
- },
284
- tab: "styling",
285
- group: "Design"
286
- },
287
- {
288
- key: "separator2",
289
- type: "separator",
290
- label: "Separator",
291
- tab: "styling",
292
- group: "Design"
293
- },
294
- getPaddingField({
295
- defaultValue: 4,
296
- key: "padding",
297
- label: "Padding",
298
- description: "Padding used throughout the widget",
299
- tab: "styling",
300
- group: "Design"
301
- }),
302
- getBorderRadiusField({
303
- defaultValue: "md",
304
- label: "Border Radius",
305
- key: "borderRadius",
306
- description: "Rounded corners for the widget",
307
- tab: "styling",
308
- group: "Design"
309
- }),
310
- {
311
- key: "overlayEnabled",
312
- label: "Enable Overlay",
313
- type: "boolean",
314
- description: "Add a dark overlay to the primary media for better text readability",
315
- defaultValue: true,
316
- tab: "styling",
317
- group: "Design"
318
- },
319
- {
320
- key: "overlayType",
321
- label: "Overlay Type",
322
- type: "buttonGroup",
323
- description: "Type of overlay effect",
324
- defaultValue: "gradient",
325
- options: [
326
- { label: "Solid", value: "solid" },
327
- { label: "Gradient", value: "gradient" }
328
- ],
329
- tab: "styling",
330
- group: "Design",
331
- requiresKeyToBeTrue: "overlayEnabled"
332
- },
333
- {
334
- key: "overlayIntensity",
335
- label: "Overlay Intensity",
336
- type: "slider",
337
- description: "Opacity of the overlay (0-100)",
338
- min: 0,
339
- max: 100,
340
- step: 5,
341
- defaultValue: 50,
342
- unit: "%",
343
- tab: "styling",
344
- group: "Design",
345
- requiresKeyToBeTrue: "overlayEnabled"
346
- },
347
- // Styling tab - Nested Media Styling group
348
- getGapField({
349
- label: "Gap",
350
- defaultValue: "md",
351
- key: "gap",
352
- description: "Gap between nested media items",
353
- tab: "styling",
354
- group: "Nested Design"
355
- }),
356
- getColorField({
357
- defaultValue: "foreground",
358
- key: "nestedTextColor",
359
- label: "Nested Text Color",
360
- description: "Color for nested media labels",
361
- tab: "styling",
362
- group: "Nested Design"
363
- }),
364
- {
365
- type: "background",
366
- defaultValue: "background",
367
- key: "background",
368
- label: "Background",
369
- description: "Background color for nested media container",
370
- tab: "styling",
371
- group: "Nested Design"
372
- },
373
- // Data tab
374
- {
375
- key: "dataSource",
376
- label: "Data Source",
377
- type: "dataSource",
378
- description: "Configure dynamic data fetching from an API",
379
- tab: "data",
380
- group: "Data Configuration"
381
- }
382
- ],
383
- // Per-item configuration schema for custom data sources
384
- itemConfigSchema: {
385
- description: "Configure settings for this item",
386
- fields: [
387
- {
388
- key: "title",
389
- label: "Custom Title",
390
- type: "text",
391
- description: "Override the item's title for this widget"
392
- }
393
- ]
394
- }
395
- };
396
-
397
- export { NestedWidget, nestedWidgetPropertySchema };
398
- //# sourceMappingURL=chunk-ROLEPF3N.js.map
399
- //# sourceMappingURL=chunk-ROLEPF3N.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/widgets/NestedWidget.tsx"],"names":[],"mappings":"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","file":"chunk-ROLEPF3N.js","sourcesContent":["import { useRef, useState, useEffect, type ComponentProps } from \"react\";\nimport {\n MediaRenderer,\n getMediaPropsFromShareable,\n} from \"../components/MediaRenderer\";\nimport type {\n BorderRadiusOptions,\n ColorOptions,\n FontSizeOptions,\n PaddingOptions,\n AlignOptions,\n GapOptions,\n BackgroundValue,\n} from \"@fluid-app/rep-core/types\";\nimport {\n getHeightField,\n type WidgetPropertySchema,\n} from \"@fluid-app/rep-core/registries\";\nimport {\n getBorderRadiusField,\n getColorField,\n getFontSizeField,\n getGapField,\n getPaddingField,\n gapValues,\n} from \"../core/fields\";\nimport { ScrollArrows } from \"../ui/scroll-arrows\";\nimport { type ShareableItem } from \"@fluid-app/rep-core/types\";\n\nconst DEFAULT_SHAREABLES: ShareableItem[] = [];\n\ntype NestedWidgetProps = ComponentProps<\"div\"> & {\n // Content\n resource?: ShareableItem;\n titleEnabled?: boolean;\n titleText?: string;\n shareables?: ShareableItem[];\n\n // Layout\n gap?: GapOptions;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n primaryMediaHeight?: string;\n\n // Title styling\n titleFontSize?: FontSizeOptions;\n titleColor?: ColorOptions;\n titleAlignment?: AlignOptions;\n\n // Nested media styling\n nestedTextColor?: ColorOptions;\n background?: BackgroundValue;\n\n // Overlay\n overlayEnabled?: boolean;\n overlayType?: \"solid\" | \"gradient\";\n overlayIntensity?: number;\n};\n\nexport function NestedWidget({\n resource,\n titleEnabled = true,\n titleText = \"Featured Collection\",\n shareables = DEFAULT_SHAREABLES,\n gap = \"md\",\n padding = 4,\n borderRadius = \"md\",\n primaryMediaHeight = \"400px\",\n titleFontSize = \"xl\",\n titleColor = \"background\",\n titleAlignment = { horizontal: \"left\", vertical: \"bottom\" },\n nestedTextColor = \"foreground\",\n background = {\n type: \"solid\",\n color: \"background\",\n },\n overlayEnabled = true,\n overlayType = \"gradient\",\n overlayIntensity = 50,\n className,\n ...props\n}: NestedWidgetProps) {\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const primaryMediaRef = useRef<HTMLDivElement>(null);\n const [primaryMediaWidthPx, setPrimaryMediaWidthPx] = useState(400);\n\n useEffect(() => {\n const el = primaryMediaRef.current;\n if (!el) return;\n const observer = new ResizeObserver(([entry]) => {\n if (entry) setPrimaryMediaWidthPx(entry.contentRect.width);\n });\n observer.observe(el);\n return () => observer.disconnect();\n }, []);\n\n const scrollByAmount = (direction: \"prev\" | \"next\") => {\n const container = scrollContainerRef.current;\n if (!container) return;\n\n const computedGap = parseFloat(getComputedStyle(container).gap) || 0;\n const itemWidth = primaryMediaWidthPx * 0.75;\n const scrollAmount = itemWidth + computedGap;\n\n container.scrollTo({\n left:\n container.scrollLeft +\n (direction === \"next\" ? scrollAmount : -scrollAmount),\n behavior: \"smooth\",\n });\n };\n\n const hasNestedMedia = shareables.length > 0;\n\n const titleAlignmentClasses = {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n };\n\n const backgroundColor = background.color || \"background\";\n const backgroundImage =\n (background.resource?.image_url || background.resource?.imageUrl) &&\n background.type === \"image\"\n ? `url(${background.resource.image_url || background.resource.imageUrl})`\n : \"none\";\n\n return (\n <div\n className={`@container flex w-full p-${padding} rounded-${borderRadius} bg-${backgroundColor} ${className}`}\n {...props}\n style={{\n maxHeight: primaryMediaHeight,\n backgroundImage: backgroundImage,\n }}\n >\n {/* Primary Media Container - Full width on mobile, fixed on desktop */}\n <div\n ref={primaryMediaRef}\n className={`overflow-hidden @md:flex-none rounded-${borderRadius}`}\n style={{\n width: primaryMediaHeight,\n }}\n >\n {/* Primary Media */}\n <div className=\"relative h-full w-full\">\n <MediaRenderer\n {...(resource ? getMediaPropsFromShareable(resource) : {})}\n />\n\n {/* Overlay */}\n {overlayEnabled && (\n <div\n className={`pointer-events-none absolute inset-0 z-10 ${\n overlayType === \"gradient\"\n ? \"bg-gradient-to-t from-black to-transparent\"\n : \"bg-black\"\n }`}\n style={{\n opacity:\n (Number(String(overlayIntensity).replace(\"%\", \"\")) || 50) /\n 100,\n }}\n />\n )}\n\n {/* Title and Mobile Nested Media */}\n {((titleEnabled && titleText) || hasNestedMedia) && (\n <div\n className={`absolute z-20 w-full ${titleAlignmentClasses[titleAlignment?.horizontal ?? \"left\"]} p-${padding} ${\n titleAlignment.vertical === \"top\"\n ? `top-0 pt-${padding}`\n : titleAlignment.vertical === \"center\"\n ? \"top-1/2 -translate-y-1/2\"\n : `bottom-0 pb-${padding}`\n }`}\n >\n {titleEnabled && titleText && (\n <h2\n className={`leading-tight font-bold text-${titleColor} text-${titleFontSize === \"md\" ? \"base\" : titleFontSize}`}\n >\n {titleText}\n </h2>\n )}\n\n {/* Mobile: Products overlay inside primary media */}\n {hasNestedMedia && (\n <div className={`pt-${padding} @md:hidden`}>\n <div\n className={`flex overflow-x-auto gap-${gapValues[gap]} bg-transparent`}\n >\n {shareables.map((shareable) => (\n <div\n key={shareable.id}\n className=\"flex shrink-0 flex-col items-center\"\n >\n <div\n className={`aspect-3/4 h-40 overflow-hidden rounded-${borderRadius}`}\n >\n <MediaRenderer\n {...getMediaPropsFromShareable(shareable)}\n />\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n\n {/* Desktop: Products Container - Single row beside primary media */}\n {hasNestedMedia && (\n <div\n className={`relative hidden min-w-0 self-stretch @md:flex @md:flex-1 px-${padding}`}\n >\n <div\n ref={scrollContainerRef}\n className={`flex h-full flex-row overflow-x-auto gap-${gapValues[gap]}`}\n style={{ scrollSnapType: \"x mandatory\" }}\n >\n {shareables.map((shareable) => (\n <div\n key={shareable.id}\n className=\"flex flex-col gap-1\"\n style={{\n width: `${primaryMediaWidthPx * 0.75}px`,\n scrollSnapAlign: \"start\",\n }}\n >\n <div\n className={`aspect-3/4 h-full rounded-${borderRadius} overflow-hidden`}\n >\n <MediaRenderer {...getMediaPropsFromShareable(shareable)} />\n </div>\n <span className={`flex-none text-sm text-${nestedTextColor}`}>\n <p className=\"truncate\">{shareable.title || \"\"}</p>\n <p className=\"truncate\">\n {((shareable.display_price as string) ?? shareable.price) ||\n \"\"}\n </p>\n </span>\n </div>\n ))}\n </div>\n\n {/* Navigation arrows */}\n <div\n className={`absolute inset-x-0 top-1/2 flex w-full -translate-y-1/2 items-center justify-between px-8`}\n >\n <ScrollArrows\n onPrevious={() => scrollByAmount(\"prev\")}\n onNext={() => scrollByAmount(\"next\")}\n />\n </div>\n </div>\n )}\n </div>\n );\n}\n\nexport const nestedWidgetPropertySchema: WidgetPropertySchema = {\n widgetType: \"NestedWidget\",\n displayName: \"Nested Widget\",\n tabsConfig: [\n { id: \"styling\", label: \"Styling\" },\n { id: \"data\", label: \"Data\" },\n ],\n dataSourceTargetProps: [\"shareables\"],\n fields: [\n // Content tab - Resource group\n {\n key: \"resource\",\n label: \"Primary Media\",\n type: \"resource\",\n description: \"Select the primary media displayed in the large panel\",\n allowedTypes: [\"Medium\"],\n tab: \"styling\",\n group: \"Content\",\n },\n // Content tab - Title group\n {\n key: \"titleEnabled\",\n label: \"Widget Title\",\n type: \"boolean\",\n description: \"Enable the title displayed over the primary media\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Title\",\n },\n {\n key: \"titleText\",\n label: \"Title\",\n type: \"text\",\n description: \"Main title displayed over the primary media\",\n defaultValue: \"Featured Collection\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n },\n getFontSizeField({\n label: \"Title Font Size\",\n defaultValue: \"xl\",\n key: \"titleFontSize\",\n description: \"Font size for the widget title\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n getColorField({\n defaultValue: \"background\",\n key: \"titleColor\",\n label: \"Title Color\",\n description: \"Color for the widget title\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n // Styling tab - Design group\n getHeightField({\n key: \"primaryMediaHeight\",\n label: \"Primary Media Height\",\n description: \"Height of the primary media container\",\n min: 100,\n max: 1200,\n step: 10,\n defaultValue: \"400px\",\n tab: \"styling\",\n group: \"Design\",\n }),\n {\n key: \"separator\",\n type: \"separator\",\n label: \"Separator\",\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"titleAlignment\",\n label: \"Content Alignment\",\n type: \"alignment\",\n description: \"Alignment of the content inside the primary media\",\n defaultValue: { horizontal: \"left\", vertical: \"bottom\" },\n options: {\n horizontalEnabled: true,\n verticalEnabled: true,\n },\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"separator2\",\n type: \"separator\",\n label: \"Separator\",\n tab: \"styling\",\n group: \"Design\",\n },\n getPaddingField({\n defaultValue: 4,\n key: \"padding\",\n label: \"Padding\",\n description: \"Padding used throughout the widget\",\n tab: \"styling\",\n group: \"Design\",\n }),\n getBorderRadiusField({\n defaultValue: \"md\",\n label: \"Border Radius\",\n key: \"borderRadius\",\n description: \"Rounded corners for the widget\",\n tab: \"styling\",\n group: \"Design\",\n }),\n {\n key: \"overlayEnabled\",\n label: \"Enable Overlay\",\n type: \"boolean\",\n description:\n \"Add a dark overlay to the primary media for better text readability\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"overlayType\",\n label: \"Overlay Type\",\n type: \"buttonGroup\",\n description: \"Type of overlay effect\",\n defaultValue: \"gradient\",\n options: [\n { label: \"Solid\", value: \"solid\" },\n { label: \"Gradient\", value: \"gradient\" },\n ],\n tab: \"styling\",\n group: \"Design\",\n requiresKeyToBeTrue: \"overlayEnabled\",\n },\n {\n key: \"overlayIntensity\",\n label: \"Overlay Intensity\",\n type: \"slider\",\n description: \"Opacity of the overlay (0-100)\",\n min: 0,\n max: 100,\n step: 5,\n defaultValue: 50,\n unit: \"%\",\n tab: \"styling\",\n group: \"Design\",\n requiresKeyToBeTrue: \"overlayEnabled\",\n },\n // Styling tab - Nested Media Styling group\n getGapField({\n label: \"Gap\",\n defaultValue: \"md\",\n key: \"gap\",\n description: \"Gap between nested media items\",\n tab: \"styling\",\n group: \"Nested Design\",\n }),\n getColorField({\n defaultValue: \"foreground\",\n key: \"nestedTextColor\",\n label: \"Nested Text Color\",\n description: \"Color for nested media labels\",\n tab: \"styling\",\n group: \"Nested Design\",\n }),\n {\n type: \"background\",\n defaultValue: \"background\",\n key: \"background\",\n label: \"Background\",\n description: \"Background color for nested media container\",\n tab: \"styling\",\n group: \"Nested Design\",\n },\n // Data tab\n {\n key: \"dataSource\",\n label: \"Data Source\",\n type: \"dataSource\",\n description: \"Configure dynamic data fetching from an API\",\n tab: \"data\",\n group: \"Data Configuration\",\n },\n ],\n // Per-item configuration schema for custom data sources\n itemConfigSchema: {\n description: \"Configure settings for this item\",\n fields: [\n {\n key: \"title\",\n label: \"Custom Title\",\n type: \"text\",\n description: \"Override the item's title for this widget\",\n },\n ],\n },\n} as const satisfies WidgetPropertySchema;\n"]}
@@ -1,120 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkFSLUSFJ2_cjs = require('./chunk-FSLUSFJ2.cjs');
4
- var chunkYU5DAILW_cjs = require('./chunk-YU5DAILW.cjs');
5
- var chunkJYWKXNUO_cjs = require('./chunk-JYWKXNUO.cjs');
6
- var chunkJ6HCPXT5_cjs = require('./chunk-J6HCPXT5.cjs');
7
- var types = require('@fluid-app/rep-core/types');
8
- var widgetUtils = require('@fluid-app/rep-core/widget-utils');
9
- var jsxRuntime = require('react/jsx-runtime');
10
-
11
- var DEFAULT_BACKGROUND = {
12
- type: "solid",
13
- color: "background"
14
- };
15
- var DEFAULT_CHILDREN = [];
16
- var LayoutWidget = ({
17
- sectionLayout = "single-column",
18
- gap = 4,
19
- gapSize,
20
- background = DEFAULT_BACKGROUND,
21
- padding = 0,
22
- borderRadius = "md",
23
- children = DEFAULT_CHILDREN,
24
- registry,
25
- className = "",
26
- minHeight
27
- }) => {
28
- const contextRegistry = chunkJYWKXNUO_cjs.useRegistry();
29
- const effectiveRegistry = registry || contextRegistry;
30
- const ContextScreenRenderer = chunkYU5DAILW_cjs.useScreenRenderer();
31
- const ScreenRenderer2 = ContextScreenRenderer ?? chunkFSLUSFJ2_cjs.ScreenRenderer;
32
- const backgroundColor = background.color || "background";
33
- const backgroundImage = (background.resource?.image_url || background.resource?.imageUrl) && background.type === "image" ? `url(${background.resource.image_url || background.resource.imageUrl})` : "none";
34
- const layoutConfig = types.sectionLayoutConfig[sectionLayout];
35
- const columnCount = layoutConfig.columns;
36
- const gapSizeValue = gapSize ? chunkJ6HCPXT5_cjs.gapValues[gapSize] : gap;
37
- const layoutClasses = [
38
- "grid",
39
- "grid-cols-1",
40
- // Mobile: single column
41
- layoutConfig.gridClasses,
42
- // Desktop (@md+): configured columns
43
- `bg-${backgroundColor} p-${padding} rounded-${borderRadius}`,
44
- `gap-${gapSizeValue}`,
45
- className
46
- ].filter(Boolean).join(" ");
47
- const containerStyle = {
48
- ...minHeight ? { minHeight: `${minHeight}px` } : {},
49
- alignItems: "start",
50
- // Masonry-style: columns don't stretch to match height
51
- backgroundImage
52
- };
53
- if (!effectiveRegistry) {
54
- console.warn("Layout widget: No registry provided, cannot render children");
55
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: layoutClasses, style: containerStyle });
56
- }
57
- const columnGroups = widgetUtils.groupChildrenByColumn(
58
- children,
59
- columnCount
60
- );
61
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "@container", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: layoutClasses, style: containerStyle, children: columnGroups.map((columnChildren, colIndex) => /* @__PURE__ */ jsxRuntime.jsx(
62
- ScreenRenderer2,
63
- {
64
- screen: columnChildren,
65
- registry: effectiveRegistry,
66
- className: `flex flex-col gap-${gapSizeValue}`
67
- },
68
- colIndex
69
- )) }) });
70
- };
71
- var layoutWidgetPropertySchema = {
72
- widgetType: "LayoutWidget",
73
- displayName: "Layout",
74
- fields: [
75
- // Layout Configuration - Visual selector matching Figma design
76
- {
77
- key: "sectionLayout",
78
- label: "Layout Type",
79
- type: "sectionLayoutSelect",
80
- description: "Column layout configuration",
81
- defaultValue: "single-column",
82
- group: "Layout"
83
- },
84
- // Design
85
- chunkJ6HCPXT5_cjs.getGapField({
86
- key: "gapSize",
87
- label: "Gap",
88
- description: "Gap between columns and widgets",
89
- defaultValue: "md",
90
- group: "Design"
91
- }),
92
- {
93
- type: "background",
94
- key: "background",
95
- label: "Background",
96
- description: "Background for the layout container",
97
- defaultValue: "background",
98
- group: "Design"
99
- },
100
- chunkJ6HCPXT5_cjs.getPaddingField({
101
- key: "padding",
102
- label: "Padding",
103
- description: "Padding for the layout container",
104
- defaultValue: 4,
105
- group: "Design"
106
- }),
107
- chunkJ6HCPXT5_cjs.getBorderRadiusField({
108
- key: "borderRadius",
109
- label: "Border Radius",
110
- description: "Border radius for the layout container",
111
- defaultValue: "md",
112
- group: "Design"
113
- })
114
- ]
115
- };
116
-
117
- exports.LayoutWidget = LayoutWidget;
118
- exports.layoutWidgetPropertySchema = layoutWidgetPropertySchema;
119
- //# sourceMappingURL=chunk-RPNLSRUS.cjs.map
120
- //# sourceMappingURL=chunk-RPNLSRUS.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/widgets/LayoutWidget.tsx"],"names":["useRegistry","useScreenRenderer","ScreenRenderer","sectionLayoutConfig","gapValues","jsx","groupChildrenByColumn","getGapField","getPaddingField","getBorderRadiusField"],"mappings":"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","file":"chunk-RPNLSRUS.cjs","sourcesContent":["import { ScreenRenderer as DefaultScreenRenderer } from \"../core/ScreenRenderer\";\nimport { useRegistry } from \"../contexts/RegistryContext\";\nimport { useScreenRenderer } from \"../contexts/ScreenRendererContext\";\nimport type {\n TypedWidgetSchema,\n WidgetSchema,\n BorderRadiusOptions,\n PaddingOptions,\n GapOptions,\n SectionLayoutType,\n BackgroundValue,\n} from \"@fluid-app/rep-core/types\";\nimport { sectionLayoutConfig } from \"@fluid-app/rep-core/types\";\nimport type { ComponentType } from \"react\";\nimport type { WidgetPropertySchema } from \"@fluid-app/rep-core/registries\";\nimport {\n getBorderRadiusField,\n getGapField,\n getPaddingField,\n gapValues,\n} from \"../core/fields\";\nimport { groupChildrenByColumn } from \"@fluid-app/rep-core/widget-utils\";\n\nconst DEFAULT_BACKGROUND: BackgroundValue = {\n type: \"solid\",\n color: \"background\",\n};\nconst DEFAULT_CHILDREN: (WidgetSchema | null)[] = [];\n\ntype LayoutProps<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n T extends Record<string, ComponentType<any>> = Record<\n string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ComponentType<any>\n >,\n> = {\n // Section layout type (masonry-style column configuration)\n sectionLayout?: SectionLayoutType;\n\n // Legacy props (deprecated, kept for backward compatibility)\n type?: \"flex\" | \"grid\";\n columns?: number;\n rows?: number;\n direction?: string;\n justify?: string;\n align?: string;\n wrap?: boolean;\n\n // Spacing\n gap?: number; // deprecated, use gapSize instead\n gapSize?: GapOptions;\n\n // Design\n background?: BackgroundValue;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n\n // Content - widgets with columnIndex property for masonry layout\n children: (TypedWidgetSchema<T> | null)[] | (WidgetSchema | null)[];\n\n // Widget registry (passed down from parent renderer)\n registry?: T;\n\n // Styling\n className?: string;\n minHeight?: number;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const LayoutWidget = <T extends Record<string, ComponentType<any>>>({\n sectionLayout = \"single-column\",\n gap = 4,\n gapSize,\n background = DEFAULT_BACKGROUND,\n padding = 0,\n borderRadius = \"md\",\n children = DEFAULT_CHILDREN,\n registry,\n className = \"\",\n minHeight,\n}: LayoutProps<T>) => {\n // Get registry from context if not provided as prop\n const contextRegistry = useRegistry();\n const effectiveRegistry = registry || contextRegistry;\n\n // Use ScreenRenderer from context (e.g. rep-builder's), fall back to local\n const ContextScreenRenderer = useScreenRenderer();\n const ScreenRenderer = ContextScreenRenderer ?? DefaultScreenRenderer;\n\n // Extract background values\n const backgroundColor = background.color || \"background\";\n const backgroundImage =\n (background.resource?.image_url || background.resource?.imageUrl) &&\n background.type === \"image\"\n ? `url(${background.resource.image_url || background.resource.imageUrl})`\n : \"none\";\n\n // Get layout configuration\n const layoutConfig = sectionLayoutConfig[sectionLayout];\n const columnCount = layoutConfig.columns;\n\n // Calculate gap size\n const gapSizeValue = gapSize ? gapValues[gapSize] : gap;\n\n // Build CSS classes for masonry layout with responsive columns\n const layoutClasses = [\n \"grid\",\n \"grid-cols-1\", // Mobile: single column\n layoutConfig.gridClasses, // Desktop (@md+): configured columns\n `bg-${backgroundColor} p-${padding} rounded-${borderRadius}`,\n `gap-${gapSizeValue}`,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n // Container style\n const containerStyle: React.CSSProperties = {\n ...(minHeight ? { minHeight: `${minHeight}px` } : {}),\n alignItems: \"start\", // Masonry-style: columns don't stretch to match height\n backgroundImage,\n };\n\n // If no registry is available, we can't render the children\n if (!effectiveRegistry) {\n console.warn(\"Layout widget: No registry provided, cannot render children\");\n return <div className={layoutClasses} style={containerStyle} />;\n }\n\n // Group children by column\n const columnGroups = groupChildrenByColumn(\n children as WidgetSchema[],\n columnCount,\n );\n\n // Regular render mode - render each column as a flex column\n return (\n <div className=\"@container\">\n <div className={layoutClasses} style={containerStyle}>\n {columnGroups.map((columnChildren, colIndex) => (\n <ScreenRenderer\n key={colIndex}\n screen={columnChildren}\n registry={effectiveRegistry}\n className={`flex flex-col gap-${gapSizeValue}`}\n />\n ))}\n </div>\n </div>\n );\n};\n\nexport const layoutWidgetPropertySchema: WidgetPropertySchema = {\n widgetType: \"LayoutWidget\",\n displayName: \"Layout\",\n fields: [\n // Layout Configuration - Visual selector matching Figma design\n {\n key: \"sectionLayout\",\n label: \"Layout Type\",\n type: \"sectionLayoutSelect\",\n description: \"Column layout configuration\",\n defaultValue: \"single-column\",\n group: \"Layout\",\n },\n\n // Design\n getGapField({\n key: \"gapSize\",\n label: \"Gap\",\n description: \"Gap between columns and widgets\",\n defaultValue: \"md\",\n group: \"Design\",\n }),\n {\n type: \"background\",\n key: \"background\",\n label: \"Background\",\n description: \"Background for the layout container\",\n defaultValue: \"background\",\n group: \"Design\",\n },\n getPaddingField({\n key: \"padding\",\n label: \"Padding\",\n description: \"Padding for the layout container\",\n defaultValue: 4,\n group: \"Design\",\n }),\n getBorderRadiusField({\n key: \"borderRadius\",\n label: \"Border Radius\",\n description: \"Border radius for the layout container\",\n defaultValue: \"md\",\n group: \"Design\",\n }),\n ],\n};\n"]}