@fluid-app/rep-widgets 0.1.16 → 0.1.18

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-DshBk5tG.mjs +424 -0
  6. package/dist/CalendarWidget-DshBk5tG.mjs.map +1 -0
  7. package/dist/CalendarWidget-s7KgQ5JD.cjs +441 -0
  8. package/dist/CalendarWidget-s7KgQ5JD.cjs.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-CxEgRz3c.mjs +391 -0
  58. package/dist/RecentActivityWidget-CxEgRz3c.mjs.map +1 -0
  59. package/dist/RecentActivityWidget-u1zCrwGF.cjs +408 -0
  60. package/dist/RecentActivityWidget-u1zCrwGF.cjs.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,500 +0,0 @@
1
- 'use strict';
2
-
3
- var chunk6RNVWRDD_cjs = require('./chunk-6RNVWRDD.cjs');
4
- var chunkAQO2AKU2_cjs = require('./chunk-AQO2AKU2.cjs');
5
- var chunkJ6HCPXT5_cjs = require('./chunk-J6HCPXT5.cjs');
6
- var DOMPurify = require('dompurify');
7
- var uiPrimitives = require('@fluid-app/ui-primitives');
8
- var react = require('react');
9
- var registries = require('@fluid-app/rep-core/registries');
10
- var jsxRuntime = require('react/jsx-runtime');
11
-
12
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
-
14
- var DOMPurify__default = /*#__PURE__*/_interopDefault(DOMPurify);
15
-
16
- var DEFAULT_SLIDES = [];
17
- function CarouselWidget({
18
- slides = DEFAULT_SLIDES,
19
- autoScrollInterval = 3e3,
20
- enableAutoScroll = false,
21
- carouselHeight = "400px",
22
- align = { vertical: "bottom", horizontal: "left" },
23
- overlayIntensity = 40,
24
- borderRadius = "none",
25
- padding = 0,
26
- textWidth = "100%",
27
- headerSize = "lg",
28
- headerColor = "background",
29
- textSize = "md",
30
- textColor = "background",
31
- showButton = true,
32
- buttonColor = "background",
33
- buttonSize = "default",
34
- overlayEnabled = true,
35
- overlayType = "solid",
36
- className,
37
- ...props
38
- }) {
39
- const [currentIndex, setCurrentIndex] = react.useState(0);
40
- const [isHovered, setIsHovered] = react.useState(false);
41
- const hasSlides = slides.length > 0;
42
- const totalSlides = slides.length;
43
- const goToNext = react.useCallback(() => {
44
- if (!hasSlides) return;
45
- setCurrentIndex((prev) => {
46
- if (prev === totalSlides - 1) {
47
- return 0;
48
- }
49
- return prev + 1;
50
- });
51
- }, [hasSlides, totalSlides]);
52
- const goToPrevious = react.useCallback(() => {
53
- if (!hasSlides) return;
54
- setCurrentIndex((prev) => {
55
- if (prev === 0) {
56
- return totalSlides - 1;
57
- }
58
- return prev - 1;
59
- });
60
- }, [hasSlides, totalSlides]);
61
- const goToSlide = react.useCallback(
62
- (index) => {
63
- if (!hasSlides) return;
64
- if (index >= 0 && index < totalSlides) {
65
- setCurrentIndex(index);
66
- }
67
- },
68
- [hasSlides, totalSlides]
69
- );
70
- react.useEffect(() => {
71
- if (!enableAutoScroll || !hasSlides || isHovered) return;
72
- const intervalId = setInterval(() => {
73
- goToNext();
74
- }, autoScrollInterval);
75
- return () => clearInterval(intervalId);
76
- }, [enableAutoScroll, autoScrollInterval, hasSlides, isHovered, goToNext]);
77
- react.useEffect(() => {
78
- if (currentIndex >= totalSlides && totalSlides > 0) {
79
- setCurrentIndex(0);
80
- }
81
- }, [totalSlides, currentIndex]);
82
- if (!hasSlides) {
83
- return /* @__PURE__ */ jsxRuntime.jsx(
84
- "div",
85
- {
86
- className: `rounded-${borderRadius} ${className} w-full overflow-hidden`,
87
- style: { minHeight: carouselHeight },
88
- ...props,
89
- children: /* @__PURE__ */ jsxRuntime.jsx(
90
- "div",
91
- {
92
- className: "bg-muted flex h-full w-full items-center justify-center",
93
- style: { minHeight: carouselHeight },
94
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-muted-foreground flex flex-col items-center gap-2", children: [
95
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-4xl", children: "\u{1F3A0}" }),
96
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm", children: "No slides added" }),
97
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground/70 text-xs", children: "Add slides to create a carousel" })
98
- ] })
99
- }
100
- )
101
- }
102
- );
103
- }
104
- return /* @__PURE__ */ jsxRuntime.jsxs(
105
- "div",
106
- {
107
- className: `relative w-full overflow-hidden rounded-${borderRadius} ${className}`,
108
- style: { minHeight: carouselHeight },
109
- onMouseEnter: () => setIsHovered(true),
110
- onMouseLeave: () => setIsHovered(false),
111
- ...props,
112
- children: [
113
- /* @__PURE__ */ jsxRuntime.jsx(
114
- "div",
115
- {
116
- className: "relative h-full w-full",
117
- style: { minHeight: carouselHeight },
118
- children: /* @__PURE__ */ jsxRuntime.jsx(
119
- "div",
120
- {
121
- className: "flex h-full transition-transform duration-500 ease-in-out",
122
- style: {
123
- transform: `translateX(-${currentIndex * 100}%)`
124
- },
125
- children: slides.map((slide) => /* @__PURE__ */ jsxRuntime.jsxs(
126
- "div",
127
- {
128
- className: "relative h-full w-full flex-shrink-0",
129
- style: { minWidth: "100%", minHeight: carouselHeight },
130
- children: [
131
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 h-full w-full", children: /* @__PURE__ */ jsxRuntime.jsx(
132
- chunk6RNVWRDD_cjs.MediaRenderer,
133
- {
134
- ...chunk6RNVWRDD_cjs.getMediaPropsFromWidgetSchema(slide.content)
135
- }
136
- ) }),
137
- overlayEnabled && /* @__PURE__ */ jsxRuntime.jsx(
138
- "div",
139
- {
140
- className: `absolute inset-0 z-9 ${overlayType === "gradient" ? "bg-gradient-to-t from-black to-transparent" : "bg-black"}`,
141
- style: {
142
- opacity: (Number(String(overlayIntensity).replace("%", "")) || 40) / 100
143
- }
144
- }
145
- ),
146
- /* @__PURE__ */ jsxRuntime.jsx(
147
- "div",
148
- {
149
- className: `absolute inset-x-0 z-10 flex px-3 ${align.horizontal === "left" ? "justify-start" : align.horizontal === "center" ? "justify-center" : "justify-end"} ${align.vertical === "top" ? "top-0 pt-13" : align.vertical === "center" ? "top-1/2 -translate-y-1/2" : "bottom-0 pb-13"}`,
150
- children: /* @__PURE__ */ jsxRuntime.jsxs(
151
- "div",
152
- {
153
- className: `p-${padding} flex flex-col gap-3`,
154
- style: { maxWidth: textWidth },
155
- children: [
156
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex flex-col text-${align.horizontal}`, children: [
157
- slide.title && /* @__PURE__ */ jsxRuntime.jsx(
158
- "h2",
159
- {
160
- className: `mb-2 leading-tight font-bold text-${headerColor} text-${headerSize === "md" ? "base" : headerSize}`,
161
- children: slide.title
162
- }
163
- ),
164
- slide.description && /* @__PURE__ */ jsxRuntime.jsx(
165
- "div",
166
- {
167
- className: `leading-snug text-${textColor} text-${textSize === "md" ? "base" : textSize} line-clamp-2`,
168
- dangerouslySetInnerHTML: {
169
- __html: DOMPurify__default.default.sanitize(slide.description, {
170
- ALLOWED_TAGS: [
171
- "br",
172
- "strong",
173
- "em",
174
- "b",
175
- "i",
176
- "ul",
177
- "ol",
178
- "li",
179
- "p"
180
- ],
181
- ALLOWED_ATTR: []
182
- })
183
- }
184
- }
185
- )
186
- ] }),
187
- slide.buttonText && slide.buttonEnabled && showButton && /* @__PURE__ */ jsxRuntime.jsx("div", { className: `text-${align.horizontal}`, children: /* @__PURE__ */ jsxRuntime.jsx(
188
- uiPrimitives.Button,
189
- {
190
- size: buttonSize,
191
- className: `rounded-md py-1 font-semibold bg-${buttonColor} text-${buttonColor}-foreground hover:bg-${buttonColor}/90`,
192
- asChild: true,
193
- children: /* @__PURE__ */ jsxRuntime.jsx("a", { href: slide.buttonLink, children: slide.buttonText })
194
- }
195
- ) })
196
- ]
197
- }
198
- )
199
- }
200
- )
201
- ]
202
- },
203
- slide.id
204
- ))
205
- }
206
- )
207
- }
208
- ),
209
- totalSlides > 1 && /* @__PURE__ */ jsxRuntime.jsxs(
210
- "div",
211
- {
212
- className: `p-${padding} absolute bottom-0 z-10 flex w-full items-center justify-between ${align.horizontal === "center" ? "h-full" : ""}`,
213
- children: [
214
- /* @__PURE__ */ jsxRuntime.jsx(
215
- "div",
216
- {
217
- className: `flex items-center ${align.horizontal === "center" ? `p-${padding} absolute inset-x-0 bottom-3 justify-center` : ""}`,
218
- children: /* @__PURE__ */ jsxRuntime.jsx(
219
- "div",
220
- {
221
- className: `flex items-center gap-2 ${align.horizontal === "center" ? "justify-center" : ""}`,
222
- children: slides.map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
223
- "button",
224
- {
225
- className: `h-[6px] w-[6px] rounded-full transition-colors ${index === currentIndex ? "bg-background" : "bg-background/40 hover:bg-background/60"}`,
226
- onClick: () => goToSlide(index),
227
- "aria-label": `Go to slide ${index + 1}`,
228
- "aria-current": index === currentIndex ? "true" : "false"
229
- },
230
- `dot-${index}`
231
- ))
232
- }
233
- )
234
- }
235
- ),
236
- /* @__PURE__ */ jsxRuntime.jsx(
237
- "div",
238
- {
239
- className: `flex items-center gap-[10px] ${align.horizontal === "center" ? `absolute inset-x-0 top-1/2 justify-between px-${padding}` : ""}`,
240
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkAQO2AKU2_cjs.ScrollArrows, { onPrevious: goToPrevious, onNext: goToNext })
241
- }
242
- )
243
- ]
244
- }
245
- )
246
- ]
247
- }
248
- );
249
- }
250
- var carouselWidgetPropertySchema = {
251
- widgetType: "CarouselWidget",
252
- displayName: "Carousel",
253
- tabsConfig: [
254
- { id: "styling", label: "Styling" },
255
- { id: "behavior", label: "Behavior" },
256
- { id: "data", label: "Data" }
257
- ],
258
- dataSourceTargetProps: ["slides"],
259
- fields: [
260
- // Styling tab - Text Styling group
261
- chunkJ6HCPXT5_cjs.getFontSizeField({
262
- defaultValue: "lg",
263
- key: "headerSize",
264
- label: "Header Font Size",
265
- description: "Font size for the slide header",
266
- tab: "styling",
267
- group: "Text Styling"
268
- }),
269
- chunkJ6HCPXT5_cjs.getColorField({
270
- defaultValue: "background",
271
- key: "headerColor",
272
- label: "Header Color",
273
- description: "Color variant for the slide header",
274
- tab: "styling",
275
- group: "Text Styling"
276
- }),
277
- {
278
- key: "separator",
279
- type: "separator",
280
- label: "Separator",
281
- tab: "styling",
282
- group: "Text Styling"
283
- },
284
- chunkJ6HCPXT5_cjs.getFontSizeField({
285
- defaultValue: "md",
286
- key: "textSize",
287
- label: "Text Font Size",
288
- description: "Font size for the slide text",
289
- tab: "styling",
290
- group: "Text Styling"
291
- }),
292
- chunkJ6HCPXT5_cjs.getColorField({
293
- defaultValue: "background",
294
- key: "textColor",
295
- label: "Text Color",
296
- description: "Color variant for the slide text",
297
- tab: "styling",
298
- group: "Text Styling"
299
- }),
300
- // Styling tab - Layout group
301
- {
302
- key: "align",
303
- label: "Alignment",
304
- type: "alignment",
305
- description: "Alignment of the carousel content",
306
- defaultValue: { vertical: "bottom", horizontal: "left" },
307
- options: {
308
- verticalEnabled: true,
309
- horizontalEnabled: true
310
- },
311
- tab: "styling",
312
- group: "Layout"
313
- },
314
- {
315
- key: "textWidth",
316
- label: "Content Width",
317
- type: "text",
318
- description: "Maximum width for slide content (e.g., 100%, 50%, 600px)",
319
- defaultValue: "100%",
320
- tab: "styling",
321
- group: "Layout"
322
- },
323
- // Styling tab - Design group
324
- registries.getHeightField({
325
- key: "carouselHeight",
326
- label: "Carousel Height",
327
- description: "Height of the carousel",
328
- min: 100,
329
- max: 1200,
330
- step: 10,
331
- defaultValue: "400px",
332
- tab: "styling",
333
- group: "Design"
334
- }),
335
- {
336
- key: "separator2",
337
- type: "separator",
338
- label: "Separator",
339
- tab: "styling",
340
- group: "Design"
341
- },
342
- chunkJ6HCPXT5_cjs.getBorderRadiusField({
343
- defaultValue: "md",
344
- key: "borderRadius",
345
- label: "Border Radius",
346
- description: "Rounded corners for the carousel",
347
- tab: "styling",
348
- group: "Design"
349
- }),
350
- chunkJ6HCPXT5_cjs.getPaddingField({
351
- defaultValue: 4,
352
- key: "padding",
353
- label: "Padding",
354
- description: "Padding for the carousel",
355
- tab: "styling",
356
- group: "Design"
357
- }),
358
- {
359
- key: "overlayEnabled",
360
- label: "Enable Overlay",
361
- type: "boolean",
362
- description: "Add background overlay to slide content",
363
- defaultValue: true,
364
- tab: "styling",
365
- group: "Design"
366
- },
367
- {
368
- key: "overlayType",
369
- label: "Overlay Type",
370
- type: "buttonGroup",
371
- description: "Type of overlay to add to the slide content",
372
- defaultValue: "gradient",
373
- options: [
374
- { label: "Solid", value: "solid" },
375
- { label: "Gradient", value: "gradient" }
376
- ],
377
- tab: "styling",
378
- group: "Design",
379
- requiresKeyToBeTrue: "overlayEnabled"
380
- },
381
- {
382
- key: "overlayIntensity",
383
- label: "Overlay Intensity",
384
- type: "slider",
385
- description: "Opacity of the overlay background (0-100)",
386
- min: 0,
387
- max: 100,
388
- step: 5,
389
- defaultValue: 50,
390
- unit: "%",
391
- tab: "styling",
392
- group: "Design",
393
- requiresKeyToBeTrue: "overlayEnabled"
394
- },
395
- {
396
- key: "showButton",
397
- label: "Show Button",
398
- type: "boolean",
399
- description: "Display the button in slide content",
400
- defaultValue: true,
401
- tab: "styling",
402
- group: "Design"
403
- },
404
- chunkJ6HCPXT5_cjs.getColorField({
405
- defaultValue: "primary",
406
- key: "buttonColor",
407
- label: "Button Color",
408
- description: "Color variant for the slide button",
409
- tab: "styling",
410
- group: "Design",
411
- requiresKeyToBeTrue: "showButton"
412
- }),
413
- chunkJ6HCPXT5_cjs.getButtonSizeField({
414
- defaultValue: "default",
415
- key: "buttonSize",
416
- label: "Button Size",
417
- description: "Size of the slide button",
418
- tab: "styling",
419
- group: "Design",
420
- requiresKeyToBeTrue: "showButton"
421
- }),
422
- // Behavior tab - Auto-Scroll group
423
- {
424
- key: "enableAutoScroll",
425
- label: "Enable Auto-Scroll",
426
- type: "boolean",
427
- description: "Automatically advance to the next slide",
428
- defaultValue: false,
429
- tab: "behavior",
430
- group: "Auto-Scroll"
431
- },
432
- {
433
- key: "autoScrollInterval",
434
- label: "Auto-Scroll Interval (ms)",
435
- type: "number",
436
- description: "Time in milliseconds between automatic slide transitions",
437
- min: 1e3,
438
- max: 1e4,
439
- step: 500,
440
- defaultValue: 3e3,
441
- tab: "behavior",
442
- group: "Auto-Scroll",
443
- requiresKeyToBeTrue: "enableAutoScroll"
444
- },
445
- // Data tab - Data Configuration group
446
- {
447
- key: "dataSource",
448
- label: "Data Source",
449
- type: "dataSource",
450
- description: "",
451
- tab: "data",
452
- group: "Data Configuration"
453
- }
454
- ],
455
- // Per-item configuration schema for custom data sources
456
- itemConfigSchema: {
457
- description: "Configure settings for this slide",
458
- fields: [
459
- {
460
- key: "title",
461
- label: "Custom Title",
462
- type: "text",
463
- description: "Override the item's title for this slide"
464
- },
465
- {
466
- key: "description",
467
- label: "Custom Description",
468
- type: "textarea",
469
- description: "Override the item's description for this slide",
470
- rows: 3
471
- },
472
- {
473
- key: "buttonEnabled",
474
- label: "Show Button",
475
- type: "boolean",
476
- description: "Show the button in the slide",
477
- defaultValue: false
478
- },
479
- {
480
- key: "buttonText",
481
- label: "Button Text",
482
- type: "text",
483
- description: "Text to display on the slide button",
484
- requiresKeyToBeTrue: "buttonEnabled"
485
- },
486
- {
487
- key: "buttonLink",
488
- label: "Button Link",
489
- type: "text",
490
- description: "URL for the slide button",
491
- requiresKeyToBeTrue: "buttonEnabled"
492
- }
493
- ]
494
- }
495
- };
496
-
497
- exports.CarouselWidget = CarouselWidget;
498
- exports.carouselWidgetPropertySchema = carouselWidgetPropertySchema;
499
- //# sourceMappingURL=chunk-EPTJJSHT.cjs.map
500
- //# sourceMappingURL=chunk-EPTJJSHT.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/widgets/CarouselWidget.tsx"],"names":["useState","useCallback","useEffect","jsx","jsxs","MediaRenderer","getMediaPropsFromWidgetSchema","DOMPurify","Button","ScrollArrows","getFontSizeField","getColorField","getHeightField","getBorderRadiusField","getPaddingField","getButtonSizeField"],"mappings":"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","file":"chunk-EPTJJSHT.cjs","sourcesContent":["import DOMPurify from \"dompurify\";\nimport { Button } from \"@fluid-app/ui-primitives\";\nimport { ScrollArrows } from \"../ui/scroll-arrows\";\nimport type { ComponentProps } from \"react\";\nimport { useEffect, useState, useCallback } from \"react\";\nimport {\n MediaRenderer,\n getMediaPropsFromWidgetSchema,\n} from \"../components/MediaRenderer\";\nimport type {\n WidgetSchema,\n BorderRadiusOptions,\n ColorOptions,\n AlignOptions,\n FontSizeOptions,\n PaddingOptions,\n ButtonSizeOptions,\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 getPaddingField,\n getButtonSizeField,\n} from \"../core/fields\";\n\nconst DEFAULT_SLIDES: CarouselSlide[] = [];\n\ntype CarouselSlide = {\n id: string;\n content: WidgetSchema;\n title?: string;\n description?: string;\n buttonEnabled?: boolean;\n buttonText?: string;\n buttonVariant?:\n | \"default\"\n | \"secondary\"\n | \"outline\"\n | \"destructive\"\n | \"ghost\"\n | \"link\";\n buttonLink?: string;\n};\n\ntype CarouselWidgetProps = ComponentProps<\"div\"> & {\n slides?: CarouselSlide[];\n autoScrollInterval?: number;\n enableAutoScroll?: boolean;\n\n // Layout\n align?: AlignOptions;\n carouselHeight?: string;\n borderRadius?: BorderRadiusOptions;\n padding?: PaddingOptions;\n\n // Text Styling\n headerSize?: FontSizeOptions;\n headerColor?: ColorOptions;\n textSize?: FontSizeOptions;\n textColor?: ColorOptions;\n textWidth?: string;\n\n // Button\n showButton?: boolean;\n buttonColor?: ColorOptions;\n buttonSize?: ButtonSizeOptions;\n\n // Overlay\n overlayEnabled?: boolean;\n overlayType?: \"solid\" | \"gradient\";\n overlayIntensity?: number;\n};\n\nexport function CarouselWidget({\n slides = DEFAULT_SLIDES,\n autoScrollInterval = 3000,\n enableAutoScroll = false,\n carouselHeight = \"400px\",\n align = { vertical: \"bottom\", horizontal: \"left\" },\n overlayIntensity = 40,\n borderRadius = \"none\",\n padding = 0,\n textWidth = \"100%\",\n headerSize = \"lg\",\n headerColor = \"background\",\n textSize = \"md\",\n textColor = \"background\",\n showButton = true,\n buttonColor = \"background\",\n buttonSize = \"default\",\n overlayEnabled = true,\n overlayType = \"solid\",\n className,\n ...props\n}: CarouselWidgetProps) {\n const [currentIndex, setCurrentIndex] = useState(0);\n const [isHovered, setIsHovered] = useState(false);\n\n const hasSlides = slides.length > 0;\n const totalSlides = slides.length;\n\n const goToNext = useCallback(() => {\n if (!hasSlides) return;\n setCurrentIndex((prev) => {\n if (prev === totalSlides - 1) {\n return 0;\n }\n return prev + 1;\n });\n }, [hasSlides, totalSlides]);\n\n const goToPrevious = useCallback(() => {\n if (!hasSlides) return;\n setCurrentIndex((prev) => {\n if (prev === 0) {\n return totalSlides - 1;\n }\n return prev - 1;\n });\n }, [hasSlides, totalSlides]);\n\n const goToSlide = useCallback(\n (index: number) => {\n if (!hasSlides) return;\n if (index >= 0 && index < totalSlides) {\n setCurrentIndex(index);\n }\n },\n [hasSlides, totalSlides],\n );\n\n // Auto-scroll effect\n useEffect(() => {\n if (!enableAutoScroll || !hasSlides || isHovered) return;\n\n const intervalId = setInterval(() => {\n goToNext();\n }, autoScrollInterval);\n\n return () => clearInterval(intervalId);\n }, [enableAutoScroll, autoScrollInterval, hasSlides, isHovered, goToNext]);\n\n // Reset to first slide if slides change\n useEffect(() => {\n if (currentIndex >= totalSlides && totalSlides > 0) {\n setCurrentIndex(0);\n }\n }, [totalSlides, currentIndex]);\n\n if (!hasSlides) {\n return (\n <div\n className={`rounded-${borderRadius} ${className} w-full overflow-hidden`}\n style={{ minHeight: carouselHeight }}\n {...props}\n >\n <div\n className=\"bg-muted flex h-full w-full items-center justify-center\"\n style={{ minHeight: carouselHeight }}\n >\n <div className=\"text-muted-foreground flex flex-col items-center gap-2\">\n <div className=\"text-4xl\">🎠</div>\n <p className=\"text-sm\">No slides added</p>\n <p className=\"text-muted-foreground/70 text-xs\">\n Add slides to create a carousel\n </p>\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div\n className={`relative w-full overflow-hidden rounded-${borderRadius} ${className}`}\n style={{ minHeight: carouselHeight }}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n {...props}\n >\n {/* Slides Container */}\n <div\n className=\"relative h-full w-full\"\n style={{ minHeight: carouselHeight }}\n >\n <div\n className=\"flex h-full transition-transform duration-500 ease-in-out\"\n style={{\n transform: `translateX(-${currentIndex * 100}%)`,\n }}\n >\n {slides.map((slide) => (\n <div\n key={slide.id}\n className=\"relative h-full w-full flex-shrink-0\"\n style={{ minWidth: \"100%\", minHeight: carouselHeight }}\n >\n {/* Background image/content layer */}\n <div className=\"absolute inset-0 h-full w-full\">\n <MediaRenderer\n {...getMediaPropsFromWidgetSchema(slide.content)}\n />\n </div>\n\n {/* Dark overlay for text readability */}\n {overlayEnabled && (\n <div\n className={`absolute inset-0 z-9 ${\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(\"%\", \"\")) ||\n 40) / 100,\n }}\n />\n )}\n\n {/* Content box */}\n <div\n className={`absolute inset-x-0 z-10 flex px-3 ${\n align.horizontal === \"left\"\n ? \"justify-start\"\n : align.horizontal === \"center\"\n ? \"justify-center\"\n : \"justify-end\"\n } ${\n align.vertical === \"top\"\n ? \"top-0 pt-13\"\n : align.vertical === \"center\"\n ? \"top-1/2 -translate-y-1/2\"\n : \"bottom-0 pb-13\"\n }`}\n >\n <div\n className={`p-${padding} flex flex-col gap-3`}\n style={{ maxWidth: textWidth }}\n >\n {/* Heading and text */}\n <div className={`flex flex-col text-${align.horizontal}`}>\n {slide.title && (\n <h2\n className={`mb-2 leading-tight font-bold text-${headerColor} text-${headerSize === \"md\" ? \"base\" : headerSize}`}\n >\n {slide.title}\n </h2>\n )}\n {slide.description && (\n <div\n className={`leading-snug text-${textColor} text-${textSize === \"md\" ? \"base\" : textSize} line-clamp-2`}\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(slide.description, {\n ALLOWED_TAGS: [\n \"br\",\n \"strong\",\n \"em\",\n \"b\",\n \"i\",\n \"ul\",\n \"ol\",\n \"li\",\n \"p\",\n ],\n ALLOWED_ATTR: [],\n }),\n }}\n />\n )}\n </div>\n\n {/* Button */}\n {slide.buttonText && slide.buttonEnabled && showButton && (\n <div className={`text-${align.horizontal}`}>\n <Button\n size={buttonSize}\n className={`rounded-md py-1 font-semibold bg-${buttonColor} text-${buttonColor}-foreground hover:bg-${buttonColor}/90`}\n asChild\n >\n <a href={slide.buttonLink}>{slide.buttonText}</a>\n </Button>\n </div>\n )}\n </div>\n </div>\n </div>\n ))}\n </div>\n </div>\n {/* Dots and Navigation */}\n {totalSlides > 1 && (\n <div\n className={`p-${padding} absolute bottom-0 z-10 flex w-full items-center justify-between ${align.horizontal === \"center\" ? \"h-full\" : \"\"}`}\n >\n {/* Pagination dots - always at bottom */}\n <div\n className={`flex items-center ${\n align.horizontal === \"center\"\n ? `p-${padding} absolute inset-x-0 bottom-3 justify-center`\n : \"\"\n }`}\n >\n <div\n className={`flex items-center gap-2 ${\n align.horizontal === \"center\" ? \"justify-center\" : \"\"\n }`}\n >\n {slides.map((_, index) => (\n <button\n key={`dot-${index}`}\n className={`h-[6px] w-[6px] rounded-full transition-colors ${\n index === currentIndex\n ? \"bg-background\"\n : \"bg-background/40 hover:bg-background/60\"\n }`}\n onClick={() => goToSlide(index)}\n aria-label={`Go to slide ${index + 1}`}\n aria-current={index === currentIndex ? \"true\" : \"false\"}\n />\n ))}\n </div>\n </div>\n\n {/* Navigation arrows - position changes based on alignment */}\n <div\n className={`flex items-center gap-[10px] ${\n align.horizontal === \"center\"\n ? `absolute inset-x-0 top-1/2 justify-between px-${padding}`\n : \"\"\n }`}\n >\n <ScrollArrows onPrevious={goToPrevious} onNext={goToNext} />\n </div>\n </div>\n )}\n </div>\n );\n}\n\nexport const carouselWidgetPropertySchema: WidgetPropertySchema = {\n widgetType: \"CarouselWidget\",\n displayName: \"Carousel\",\n tabsConfig: [\n { id: \"styling\", label: \"Styling\" },\n { id: \"behavior\", label: \"Behavior\" },\n { id: \"data\", label: \"Data\" },\n ],\n dataSourceTargetProps: [\"slides\"],\n fields: [\n // Styling tab - Text Styling group\n getFontSizeField({\n defaultValue: \"lg\",\n key: \"headerSize\",\n label: \"Header Font Size\",\n description: \"Font size for the slide header\",\n tab: \"styling\",\n group: \"Text Styling\",\n }),\n getColorField({\n defaultValue: \"background\",\n key: \"headerColor\",\n label: \"Header Color\",\n description: \"Color variant for the slide header\",\n tab: \"styling\",\n group: \"Text Styling\",\n }),\n {\n key: \"separator\",\n type: \"separator\",\n label: \"Separator\",\n tab: \"styling\",\n group: \"Text Styling\",\n },\n getFontSizeField({\n defaultValue: \"md\",\n key: \"textSize\",\n label: \"Text Font Size\",\n description: \"Font size for the slide text\",\n tab: \"styling\",\n group: \"Text Styling\",\n }),\n getColorField({\n defaultValue: \"background\",\n key: \"textColor\",\n label: \"Text Color\",\n description: \"Color variant for the slide text\",\n tab: \"styling\",\n group: \"Text Styling\",\n }),\n // Styling tab - Layout group\n {\n key: \"align\",\n label: \"Alignment\",\n type: \"alignment\",\n description: \"Alignment of the carousel content\",\n defaultValue: { vertical: \"bottom\", horizontal: \"left\" },\n options: {\n verticalEnabled: true,\n horizontalEnabled: true,\n },\n tab: \"styling\",\n group: \"Layout\",\n },\n {\n key: \"textWidth\",\n label: \"Content Width\",\n type: \"text\",\n description: \"Maximum width for slide content (e.g., 100%, 50%, 600px)\",\n defaultValue: \"100%\",\n tab: \"styling\",\n group: \"Layout\",\n },\n // Styling tab - Design group\n getHeightField({\n key: \"carouselHeight\",\n label: \"Carousel Height\",\n description: \"Height of the carousel\",\n min: 100,\n max: 1200,\n step: 10,\n defaultValue: \"400px\",\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 getBorderRadiusField({\n defaultValue: \"md\",\n key: \"borderRadius\",\n label: \"Border Radius\",\n description: \"Rounded corners for the carousel\",\n tab: \"styling\",\n group: \"Design\",\n }),\n getPaddingField({\n defaultValue: 4,\n key: \"padding\",\n label: \"Padding\",\n description: \"Padding for the carousel\",\n tab: \"styling\",\n group: \"Design\",\n }),\n {\n key: \"overlayEnabled\",\n label: \"Enable Overlay\",\n type: \"boolean\",\n description: \"Add background overlay to slide content\",\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 to add to the slide content\",\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 background (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 {\n key: \"showButton\",\n label: \"Show Button\",\n type: \"boolean\",\n description: \"Display the button in slide content\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Design\",\n },\n getColorField({\n defaultValue: \"primary\",\n key: \"buttonColor\",\n label: \"Button Color\",\n description: \"Color variant for the slide button\",\n tab: \"styling\",\n group: \"Design\",\n requiresKeyToBeTrue: \"showButton\",\n }),\n getButtonSizeField({\n defaultValue: \"default\",\n key: \"buttonSize\",\n label: \"Button Size\",\n description: \"Size of the slide button\",\n tab: \"styling\",\n group: \"Design\",\n requiresKeyToBeTrue: \"showButton\",\n }),\n // Behavior tab - Auto-Scroll group\n {\n key: \"enableAutoScroll\",\n label: \"Enable Auto-Scroll\",\n type: \"boolean\",\n description: \"Automatically advance to the next slide\",\n defaultValue: false,\n tab: \"behavior\",\n group: \"Auto-Scroll\",\n },\n {\n key: \"autoScrollInterval\",\n label: \"Auto-Scroll Interval (ms)\",\n type: \"number\",\n description: \"Time in milliseconds between automatic slide transitions\",\n min: 1000,\n max: 10000,\n step: 500,\n defaultValue: 3000,\n tab: \"behavior\",\n group: \"Auto-Scroll\",\n requiresKeyToBeTrue: \"enableAutoScroll\",\n },\n // Data tab - Data Configuration group\n {\n key: \"dataSource\",\n label: \"Data Source\",\n type: \"dataSource\",\n description: \"\",\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 slide\",\n fields: [\n {\n key: \"title\",\n label: \"Custom Title\",\n type: \"text\",\n description: \"Override the item's title for this slide\",\n },\n {\n key: \"description\",\n label: \"Custom Description\",\n type: \"textarea\",\n description: \"Override the item's description for this slide\",\n rows: 3,\n },\n {\n key: \"buttonEnabled\",\n label: \"Show Button\",\n type: \"boolean\",\n description: \"Show the button in the slide\",\n defaultValue: false,\n },\n {\n key: \"buttonText\",\n label: \"Button Text\",\n type: \"text\",\n description: \"Text to display on the slide button\",\n requiresKeyToBeTrue: \"buttonEnabled\",\n },\n {\n key: \"buttonLink\",\n label: \"Button Link\",\n type: \"text\",\n description: \"URL for the slide button\",\n requiresKeyToBeTrue: \"buttonEnabled\",\n },\n ],\n },\n} as const satisfies WidgetPropertySchema;\n"]}