@fluid-app/rep-widgets 0.1.0

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 (228) hide show
  1. package/dist/AlertWidget-2JHMNYIY.js +5 -0
  2. package/dist/AlertWidget-2JHMNYIY.js.map +1 -0
  3. package/dist/AlertWidget-VHXWOKM4.cjs +18 -0
  4. package/dist/AlertWidget-VHXWOKM4.cjs.map +1 -0
  5. package/dist/CalendarWidget-AQ7PVNSI.cjs +18 -0
  6. package/dist/CalendarWidget-AQ7PVNSI.cjs.map +1 -0
  7. package/dist/CalendarWidget-E54LNKCG.js +5 -0
  8. package/dist/CalendarWidget-E54LNKCG.js.map +1 -0
  9. package/dist/CarouselWidget-IPPFSXDZ.js +8 -0
  10. package/dist/CarouselWidget-IPPFSXDZ.js.map +1 -0
  11. package/dist/CarouselWidget-ZG6LJJXG.cjs +21 -0
  12. package/dist/CarouselWidget-ZG6LJJXG.cjs.map +1 -0
  13. package/dist/CatchUpWidget-CSSQMPPA.cjs +18 -0
  14. package/dist/CatchUpWidget-CSSQMPPA.cjs.map +1 -0
  15. package/dist/CatchUpWidget-HYJRKFN3.js +5 -0
  16. package/dist/CatchUpWidget-HYJRKFN3.js.map +1 -0
  17. package/dist/ChartWidget-MBLGRSJQ.cjs +19 -0
  18. package/dist/ChartWidget-MBLGRSJQ.cjs.map +1 -0
  19. package/dist/ChartWidget-OL5DRMGA.js +6 -0
  20. package/dist/ChartWidget-OL5DRMGA.js.map +1 -0
  21. package/dist/ContainerWidget-DETCLP52.js +8 -0
  22. package/dist/ContainerWidget-DETCLP52.js.map +1 -0
  23. package/dist/ContainerWidget-XQDJSJXO.cjs +21 -0
  24. package/dist/ContainerWidget-XQDJSJXO.cjs.map +1 -0
  25. package/dist/EmbedWidget-HTR2MJ25.cjs +16 -0
  26. package/dist/EmbedWidget-HTR2MJ25.cjs.map +1 -0
  27. package/dist/EmbedWidget-O2XFGDJS.js +3 -0
  28. package/dist/EmbedWidget-O2XFGDJS.js.map +1 -0
  29. package/dist/ImageWidget-L2MIYWTE.cjs +17 -0
  30. package/dist/ImageWidget-L2MIYWTE.cjs.map +1 -0
  31. package/dist/ImageWidget-RF6XKPPV.js +4 -0
  32. package/dist/ImageWidget-RF6XKPPV.js.map +1 -0
  33. package/dist/LayoutWidget-4XISA6RO.cjs +20 -0
  34. package/dist/LayoutWidget-4XISA6RO.cjs.map +1 -0
  35. package/dist/LayoutWidget-WZSMZLLM.js +7 -0
  36. package/dist/LayoutWidget-WZSMZLLM.js.map +1 -0
  37. package/dist/ListWidget-XY5C3P3C.cjs +19 -0
  38. package/dist/ListWidget-XY5C3P3C.cjs.map +1 -0
  39. package/dist/ListWidget-ZFRV6DKI.js +6 -0
  40. package/dist/ListWidget-ZFRV6DKI.js.map +1 -0
  41. package/dist/MySiteWidget-75NJUIWV.js +5 -0
  42. package/dist/MySiteWidget-75NJUIWV.js.map +1 -0
  43. package/dist/MySiteWidget-CBDKQT35.cjs +18 -0
  44. package/dist/MySiteWidget-CBDKQT35.cjs.map +1 -0
  45. package/dist/NestedWidget-N4I7LOVX.js +6 -0
  46. package/dist/NestedWidget-N4I7LOVX.js.map +1 -0
  47. package/dist/NestedWidget-VO3YYOOH.cjs +19 -0
  48. package/dist/NestedWidget-VO3YYOOH.cjs.map +1 -0
  49. package/dist/QuickShareWidget-3VGSFY4J.js +4 -0
  50. package/dist/QuickShareWidget-3VGSFY4J.js.map +1 -0
  51. package/dist/QuickShareWidget-VHDB5SYT.cjs +17 -0
  52. package/dist/QuickShareWidget-VHDB5SYT.cjs.map +1 -0
  53. package/dist/RecentActivityWidget-3KAR64SB.js +5 -0
  54. package/dist/RecentActivityWidget-3KAR64SB.js.map +1 -0
  55. package/dist/RecentActivityWidget-X5UABJHL.cjs +18 -0
  56. package/dist/RecentActivityWidget-X5UABJHL.cjs.map +1 -0
  57. package/dist/SpacerWidget-K7CXVECO.cjs +16 -0
  58. package/dist/SpacerWidget-K7CXVECO.cjs.map +1 -0
  59. package/dist/SpacerWidget-ODKNZAND.js +3 -0
  60. package/dist/SpacerWidget-ODKNZAND.js.map +1 -0
  61. package/dist/TableWidget-MDEBHVIA.cjs +20 -0
  62. package/dist/TableWidget-MDEBHVIA.cjs.map +1 -0
  63. package/dist/TableWidget-W6LL5FLE.js +7 -0
  64. package/dist/TableWidget-W6LL5FLE.js.map +1 -0
  65. package/dist/TextWidget-D72TL53O.js +4 -0
  66. package/dist/TextWidget-D72TL53O.js.map +1 -0
  67. package/dist/TextWidget-DYINWJGB.cjs +17 -0
  68. package/dist/TextWidget-DYINWJGB.cjs.map +1 -0
  69. package/dist/ToDoWidget-DH544SJH.cjs +18 -0
  70. package/dist/ToDoWidget-DH544SJH.cjs.map +1 -0
  71. package/dist/ToDoWidget-LCAYWRVH.js +5 -0
  72. package/dist/ToDoWidget-LCAYWRVH.js.map +1 -0
  73. package/dist/VideoWidget-VHAZTNLI.js +4 -0
  74. package/dist/VideoWidget-VHAZTNLI.js.map +1 -0
  75. package/dist/VideoWidget-YLRKZ27S.cjs +17 -0
  76. package/dist/VideoWidget-YLRKZ27S.cjs.map +1 -0
  77. package/dist/chunk-2KQFMF6L.js +413 -0
  78. package/dist/chunk-2KQFMF6L.js.map +1 -0
  79. package/dist/chunk-3CUVGQQI.cjs +15 -0
  80. package/dist/chunk-3CUVGQQI.cjs.map +1 -0
  81. package/dist/chunk-3RV7AYQZ.js +149 -0
  82. package/dist/chunk-3RV7AYQZ.js.map +1 -0
  83. package/dist/chunk-4M2A5W2D.cjs +42 -0
  84. package/dist/chunk-4M2A5W2D.cjs.map +1 -0
  85. package/dist/chunk-4XJCU4HY.js +248 -0
  86. package/dist/chunk-4XJCU4HY.js.map +1 -0
  87. package/dist/chunk-5HHN5MRZ.js +11 -0
  88. package/dist/chunk-5HHN5MRZ.js.map +1 -0
  89. package/dist/chunk-6GF46P3S.js +33 -0
  90. package/dist/chunk-6GF46P3S.js.map +1 -0
  91. package/dist/chunk-7JIRJTGY.js +32 -0
  92. package/dist/chunk-7JIRJTGY.js.map +1 -0
  93. package/dist/chunk-7XWMJDFE.js +443 -0
  94. package/dist/chunk-7XWMJDFE.js.map +1 -0
  95. package/dist/chunk-C7A3OMIF.cjs +446 -0
  96. package/dist/chunk-C7A3OMIF.cjs.map +1 -0
  97. package/dist/chunk-CEZOXMO6.js +377 -0
  98. package/dist/chunk-CEZOXMO6.js.map +1 -0
  99. package/dist/chunk-CM7D7WGL.cjs +36 -0
  100. package/dist/chunk-CM7D7WGL.cjs.map +1 -0
  101. package/dist/chunk-D4ULCQ42.cjs +353 -0
  102. package/dist/chunk-D4ULCQ42.cjs.map +1 -0
  103. package/dist/chunk-DKGP3DTX.cjs +389 -0
  104. package/dist/chunk-DKGP3DTX.cjs.map +1 -0
  105. package/dist/chunk-DM2JDG3D.js +318 -0
  106. package/dist/chunk-DM2JDG3D.js.map +1 -0
  107. package/dist/chunk-DW6V4ZCT.cjs +140 -0
  108. package/dist/chunk-DW6V4ZCT.cjs.map +1 -0
  109. package/dist/chunk-E4MY6TUE.cjs +255 -0
  110. package/dist/chunk-E4MY6TUE.cjs.map +1 -0
  111. package/dist/chunk-EHSWARYY.js +39 -0
  112. package/dist/chunk-EHSWARYY.js.map +1 -0
  113. package/dist/chunk-EUOP3MWJ.cjs +118 -0
  114. package/dist/chunk-EUOP3MWJ.cjs.map +1 -0
  115. package/dist/chunk-F3SFIX7U.cjs +58 -0
  116. package/dist/chunk-F3SFIX7U.cjs.map +1 -0
  117. package/dist/chunk-F63VY23B.js +174 -0
  118. package/dist/chunk-F63VY23B.js.map +1 -0
  119. package/dist/chunk-FSLUSFJ2.cjs +75 -0
  120. package/dist/chunk-FSLUSFJ2.cjs.map +1 -0
  121. package/dist/chunk-GA52TZC4.js +133 -0
  122. package/dist/chunk-GA52TZC4.js.map +1 -0
  123. package/dist/chunk-GRFCSQ2M.js +13 -0
  124. package/dist/chunk-GRFCSQ2M.js.map +1 -0
  125. package/dist/chunk-HBRGW3CJ.js +383 -0
  126. package/dist/chunk-HBRGW3CJ.js.map +1 -0
  127. package/dist/chunk-HDA2ZOV2.cjs +13 -0
  128. package/dist/chunk-HDA2ZOV2.cjs.map +1 -0
  129. package/dist/chunk-HQVTEFSO.js +386 -0
  130. package/dist/chunk-HQVTEFSO.js.map +1 -0
  131. package/dist/chunk-IU657MP5.js +270 -0
  132. package/dist/chunk-IU657MP5.js.map +1 -0
  133. package/dist/chunk-IY3BNQ5Y.js +24 -0
  134. package/dist/chunk-IY3BNQ5Y.js.map +1 -0
  135. package/dist/chunk-J2FIIZSN.js +137 -0
  136. package/dist/chunk-J2FIIZSN.js.map +1 -0
  137. package/dist/chunk-JRBJXVXL.cjs +251 -0
  138. package/dist/chunk-JRBJXVXL.cjs.map +1 -0
  139. package/dist/chunk-JYWKXNUO.cjs +37 -0
  140. package/dist/chunk-JYWKXNUO.cjs.map +1 -0
  141. package/dist/chunk-KE27RJ3X.cjs +954 -0
  142. package/dist/chunk-KE27RJ3X.cjs.map +1 -0
  143. package/dist/chunk-M4J3OZJF.cjs +152 -0
  144. package/dist/chunk-M4J3OZJF.cjs.map +1 -0
  145. package/dist/chunk-MKUJOEAC.cjs +178 -0
  146. package/dist/chunk-MKUJOEAC.cjs.map +1 -0
  147. package/dist/chunk-MNRHGJDQ.cjs +225 -0
  148. package/dist/chunk-MNRHGJDQ.cjs.map +1 -0
  149. package/dist/chunk-MNWWZGL2.js +14 -0
  150. package/dist/chunk-MNWWZGL2.js.map +1 -0
  151. package/dist/chunk-MWED53XR.js +115 -0
  152. package/dist/chunk-MWED53XR.js.map +1 -0
  153. package/dist/chunk-NCQQI2T2.cjs +386 -0
  154. package/dist/chunk-NCQQI2T2.cjs.map +1 -0
  155. package/dist/chunk-NGYR4RQF.js +476 -0
  156. package/dist/chunk-NGYR4RQF.js.map +1 -0
  157. package/dist/chunk-NNJDJNSY.cjs +197 -0
  158. package/dist/chunk-NNJDJNSY.cjs.map +1 -0
  159. package/dist/chunk-NOZVVD6G.cjs +26 -0
  160. package/dist/chunk-NOZVVD6G.cjs.map +1 -0
  161. package/dist/chunk-NUG3DWF7.js +55 -0
  162. package/dist/chunk-NUG3DWF7.js.map +1 -0
  163. package/dist/chunk-NXAZEYLC.cjs +136 -0
  164. package/dist/chunk-NXAZEYLC.cjs.map +1 -0
  165. package/dist/chunk-PNVBMN27.cjs +380 -0
  166. package/dist/chunk-PNVBMN27.cjs.map +1 -0
  167. package/dist/chunk-RKDOQV4T.js +73 -0
  168. package/dist/chunk-RKDOQV4T.js.map +1 -0
  169. package/dist/chunk-RMZFC7HF.cjs +17 -0
  170. package/dist/chunk-RMZFC7HF.cjs.map +1 -0
  171. package/dist/chunk-SBHL3GFW.js +40 -0
  172. package/dist/chunk-SBHL3GFW.js.map +1 -0
  173. package/dist/chunk-TFJQ4525.cjs +416 -0
  174. package/dist/chunk-TFJQ4525.cjs.map +1 -0
  175. package/dist/chunk-VBJ5FT4C.cjs +273 -0
  176. package/dist/chunk-VBJ5FT4C.cjs.map +1 -0
  177. package/dist/chunk-VZFL5BZM.js +222 -0
  178. package/dist/chunk-VZFL5BZM.js.map +1 -0
  179. package/dist/chunk-W7VPL5I4.js +252 -0
  180. package/dist/chunk-W7VPL5I4.js.map +1 -0
  181. package/dist/chunk-XALQ3ANE.cjs +34 -0
  182. package/dist/chunk-XALQ3ANE.cjs.map +1 -0
  183. package/dist/chunk-YCYKV5KF.cjs +43 -0
  184. package/dist/chunk-YCYKV5KF.cjs.map +1 -0
  185. package/dist/chunk-YJZGIS4L.cjs +479 -0
  186. package/dist/chunk-YJZGIS4L.cjs.map +1 -0
  187. package/dist/chunk-YU5DAILW.cjs +14 -0
  188. package/dist/chunk-YU5DAILW.cjs.map +1 -0
  189. package/dist/chunk-YY5WLV63.js +951 -0
  190. package/dist/chunk-YY5WLV63.js.map +1 -0
  191. package/dist/chunk-ZS7C474P.js +3 -0
  192. package/dist/chunk-ZS7C474P.js.map +1 -0
  193. package/dist/chunk-ZSUGXJWD.js +194 -0
  194. package/dist/chunk-ZSUGXJWD.js.map +1 -0
  195. package/dist/chunk-ZWFK5UUU.js +11 -0
  196. package/dist/chunk-ZWFK5UUU.js.map +1 -0
  197. package/dist/components/index.cjs +17 -0
  198. package/dist/components/index.cjs.map +1 -0
  199. package/dist/components/index.d.cts +8 -0
  200. package/dist/components/index.d.ts +8 -0
  201. package/dist/components/index.js +4 -0
  202. package/dist/components/index.js.map +1 -0
  203. package/dist/contexts/index.cjs +29 -0
  204. package/dist/contexts/index.cjs.map +1 -0
  205. package/dist/contexts/index.d.cts +73 -0
  206. package/dist/contexts/index.d.ts +73 -0
  207. package/dist/contexts/index.js +4 -0
  208. package/dist/contexts/index.js.map +1 -0
  209. package/dist/core/index.cjs +55 -0
  210. package/dist/core/index.cjs.map +1 -0
  211. package/dist/core/index.d.cts +64 -0
  212. package/dist/core/index.d.ts +64 -0
  213. package/dist/core/index.js +6 -0
  214. package/dist/core/index.js.map +1 -0
  215. package/dist/ui/index.cjs +80 -0
  216. package/dist/ui/index.cjs.map +1 -0
  217. package/dist/ui/index.d.cts +69 -0
  218. package/dist/ui/index.d.ts +69 -0
  219. package/dist/ui/index.js +7 -0
  220. package/dist/ui/index.js.map +1 -0
  221. package/dist/widgets/index.cjs +217 -0
  222. package/dist/widgets/index.cjs.map +1 -0
  223. package/dist/widgets/index.d.cts +397 -0
  224. package/dist/widgets/index.d.ts +397 -0
  225. package/dist/widgets/index.js +59 -0
  226. package/dist/widgets/index.js.map +1 -0
  227. package/package.json +99 -0
  228. package/styles/globals.css +20 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/widgets/ListWidget.tsx"],"names":[],"mappings":"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","file":"chunk-YY5WLV63.js","sourcesContent":["import { useRef, type ComponentProps } from \"react\";\nimport type {\n ColorOptions,\n FontSizeOptions,\n BorderRadiusOptions,\n PaddingOptions,\n GapOptions,\n BackgroundValue,\n} from \"@fluid-app/rep-core/types\";\nimport type { WidgetPropertySchema } from \"@fluid-app/rep-core/registries\";\nimport {\n getBorderRadiusField,\n getColorField,\n getFontSizeField,\n getPaddingField,\n getGapField,\n gapValues,\n} from \"../core/fields\";\nimport { ScrollArrows } from \"../ui/scroll-arrows\";\nimport { MediaRenderer } from \"../components/MediaRenderer\";\n\n// Layout constants\nconst SCROLL_ITEM_WIDTH = 300;\n\ntype ListItem = {\n id: string;\n image?: string;\n imageUrl?: string;\n videoUrl?: string;\n title?: string;\n description?: string;\n price?: string;\n originalPrice?: string;\n discount?: string;\n qv?: string;\n cv?: string;\n};\n\ntype ImageAspectRatio = \"square\" | \"landscape\" | \"portrait\";\ntype ListType = \"ordered\" | \"unordered\";\ntype ScrollAxis = \"horizontal\" | \"vertical\";\n\ntype ListWidgetProps = ComponentProps<\"div\"> & {\n // List configuration\n listType?: ListType;\n scrollAxis?: ScrollAxis;\n titleEnabled?: boolean;\n title?: string;\n items?: ListItem[];\n\n // Text styling\n titleColor?: ColorOptions;\n titleSize?: FontSizeOptions;\n itemTitleColor?: ColorOptions;\n itemTitleSize?: FontSizeOptions;\n descriptionColor?: ColorOptions;\n descriptionSize?: FontSizeOptions;\n priceColor?: ColorOptions;\n priceSize?: FontSizeOptions;\n originalPriceColor?: ColorOptions;\n metaTextColor?: ColorOptions;\n metaTextSize?: FontSizeOptions;\n\n // Ordered list styling\n numberColor?: ColorOptions;\n numberSize?: FontSizeOptions;\n\n // Layout\n borderRadius?: BorderRadiusOptions;\n padding?: PaddingOptions;\n gap?: GapOptions;\n columns?: number;\n imageAspectRatio?: ImageAspectRatio;\n background?: BackgroundValue;\n\n // Behavior\n showBadge?: boolean;\n showFavorite?: boolean;\n showMetaText?: boolean;\n maxItems?: number;\n\n // Featured section\n showFeaturedSection?: boolean;\n featuredAsset?: string | { [key: string]: unknown };\n featuredTitle?: string;\n featuredSubtitle?: string;\n featuredButtonText?: string;\n featuredButtonUrl?: string;\n featuredSubtitleColor?: ColorOptions;\n featuredSubtitleSize?: FontSizeOptions;\n};\n\n// Helper functions\nconst getImageUrl = (item: ListItem): string | undefined => {\n return item.imageUrl || item.image;\n};\n\nfunction getFeaturedAssetUrl(\n value: string | { [key: string]: unknown } | undefined,\n): { url: string; isVideo: boolean } | undefined {\n if (!value) return undefined;\n\n // Handle string URLs\n if (typeof value === \"string\") {\n const isVideo = /\\.(mp4|webm|ogg|mov)$/i.test(value);\n return { url: value, isVideo };\n }\n\n // Handle ShareableItem objects\n if (typeof value === \"object\") {\n // Check for video URL first\n const videoUrl =\n (value.videoUrl as string) ||\n (value.video_url as string) ||\n (value.url as string);\n if (videoUrl && /\\.(mp4|webm|ogg|mov)$/i.test(videoUrl)) {\n return { url: videoUrl, isVideo: true };\n }\n\n // Fall back to image URL\n const imageUrl =\n (value.imageUrl as string) ||\n (value.image_url as string) ||\n (value.url as string);\n if (imageUrl) {\n return { url: imageUrl, isVideo: false };\n }\n }\n\n return undefined;\n}\n\nfunction getTextContent(value: string | unknown | undefined): string {\n if (!value) return \"\";\n if (typeof value === \"string\") return value;\n if (typeof value === \"object\" && value !== null && \"body\" in value) {\n const body = (value as { body: unknown }).body;\n return typeof body === \"string\" ? body : \"\";\n }\n // For any other object or value, convert to string safely\n if (typeof value === \"object\") return \"\";\n return String(value);\n}\n\nfunction getStringValue(value: unknown): string {\n if (!value) return \"\";\n if (typeof value === \"string\") return value;\n if (typeof value === \"number\") return String(value);\n if (typeof value === \"object\" && value !== null) {\n // Try common text properties\n if (\"body\" in value) {\n const body = (value as { body: unknown }).body;\n if (typeof body === \"string\") return body;\n }\n if (\"text\" in value) {\n const text = (value as { text: unknown }).text;\n if (typeof text === \"string\") return text;\n }\n if (\"value\" in value) {\n const val = (value as { value: unknown }).value;\n if (typeof val === \"string\") return val;\n if (typeof val === \"number\") return String(val);\n }\n }\n return \"\";\n}\n\nconst getAspectRatioClass = (ratio: ImageAspectRatio): string => {\n const ratios = {\n square: \"aspect-square\",\n landscape: \"aspect-video\",\n portrait: \"aspect-[3/4]\",\n };\n return ratios[ratio];\n};\n\nconst getResponsiveGridClass = (columns: number): string => {\n // Always 2 columns on mobile, then configured columns on larger containers\n const responsiveClasses: Record<number, string> = {\n 1: \"grid-cols-2 @lg:grid-cols-1\",\n 2: \"grid-cols-2 @lg:grid-cols-2\",\n 3: \"grid-cols-2 @lg:grid-cols-3\",\n 4: \"grid-cols-2 @lg:grid-cols-4\",\n 5: \"grid-cols-2 @lg:grid-cols-5\",\n 6: \"grid-cols-2 @lg:grid-cols-6\",\n };\n return responsiveClasses[columns] || \"grid-cols-2 @lg:grid-cols-3\";\n};\n\nexport function ListWidget({\n listType = \"unordered\",\n scrollAxis = \"horizontal\",\n titleEnabled = true,\n title,\n items = [],\n titleColor = \"foreground\",\n titleSize = \"lg\",\n itemTitleColor = \"foreground\",\n itemTitleSize = \"sm\",\n descriptionColor = \"muted\",\n descriptionSize = \"sm\",\n priceColor = \"foreground\",\n priceSize = \"md\",\n originalPriceColor = \"muted\",\n metaTextColor = \"muted\",\n metaTextSize = \"xs\",\n numberColor = \"primary\",\n numberSize = \"2xl\",\n borderRadius = \"md\",\n padding = 4,\n gap = \"md\",\n columns = 3,\n imageAspectRatio = \"square\",\n background = { type: \"solid\", color: \"background\" },\n showBadge = true,\n showFavorite = true,\n showMetaText = true,\n maxItems = 12,\n showFeaturedSection = false,\n featuredAsset,\n featuredTitle,\n featuredSubtitle,\n featuredButtonText,\n featuredButtonUrl,\n featuredSubtitleColor = \"background\",\n featuredSubtitleSize = \"md\",\n className,\n ...props\n}: ListWidgetProps) {\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n\n const displayItems = maxItems ? items.slice(0, maxItems) : items;\n const hasItems = displayItems.length > 0;\n\n // Large number sizes for ordered lists (in rem, used with inline styles)\n const largeNumberSizes: Record<FontSizeOptions, string> = {\n xs: \"8rem\",\n sm: \"10rem\",\n md: \"12rem\",\n lg: \"14rem\",\n xl: \"16rem\",\n \"2xl\": \"20rem\",\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 scrollAmount = SCROLL_ITEM_WIDTH + computedGap;\n\n container.scrollTo({\n left:\n container.scrollLeft +\n (direction === \"next\" ? scrollAmount : -scrollAmount),\n behavior: \"smooth\",\n });\n };\n\n // Featured Section - Standalone section with background image and text overlay\n const renderFeaturedSection = () => {\n if (!showFeaturedSection) return null;\n\n const asset = getFeaturedAssetUrl(featuredAsset);\n if (!asset) return null;\n\n return (\n <div\n className={`relative h-full min-h-[300px] w-full overflow-hidden rounded-${borderRadius}`}\n >\n {/* Background image or video */}\n <div className=\"absolute inset-0 h-full w-full\">\n <MediaRenderer\n src={asset.url}\n mediaType={asset.isVideo ? \"video\" : \"image\"}\n alt={featuredTitle || \"Featured\"}\n objectFit=\"cover\"\n autoplay={asset.isVideo}\n loop={asset.isVideo}\n muted={asset.isVideo}\n controls={false}\n />\n </div>\n\n {/* Dark overlay for better text readability */}\n <div className=\"absolute inset-0 bg-black/40\" />\n\n {/* Content overlay */}\n <div className=\"absolute inset-0 flex flex-col items-start justify-end p-8\">\n {featuredTitle && (\n <h3\n className={`mb-2 font-bold text-white text-${titleSize === \"md\" ? \"base\" : titleSize}`}\n >\n {featuredTitle}\n </h3>\n )}\n {featuredSubtitle && (\n <p\n className={`mb-4 text-${featuredSubtitleColor} text-${featuredSubtitleSize === \"md\" ? \"base\" : featuredSubtitleSize}`}\n >\n {featuredSubtitle}\n </p>\n )}\n {featuredButtonText && (\n <a\n href={featuredButtonUrl || \"#\"}\n className={`bg-white px-6 py-2 font-medium text-foreground transition-opacity hover:opacity-90 rounded-${borderRadius}`}\n >\n {featuredButtonText}\n </a>\n )}\n </div>\n </div>\n );\n };\n\n // Unordered List Renderer (Grid Layout)\n const renderUnorderedList = () => {\n const gridClass = getResponsiveGridClass(columns);\n\n return (\n <div className={`grid ${gridClass} gap-${gapValues[gap]}`}>\n {displayItems.map((item) => {\n const imageUrl = getImageUrl(item);\n const aspectRatioClass = getAspectRatioClass(imageAspectRatio);\n\n return (\n <div\n key={item.id}\n className={`relative rounded-${borderRadius} overflow-hidden bg-white shadow-sm transition-shadow hover:shadow-md`}\n >\n {showBadge && item.discount && (\n <div className=\"absolute top-2 right-2 z-10 rounded-md bg-red-500 px-2 py-1 text-xs font-bold text-white\">\n {getStringValue(item.discount)}\n </div>\n )}\n {showFavorite && (\n <button className=\"absolute top-2 left-2 z-10 rounded-full bg-white/80 p-2 backdrop-blur-sm transition-colors hover:bg-white\">\n <svg\n className=\"h-5 w-5 text-gray-600\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z\"\n />\n </svg>\n </button>\n )}\n {imageUrl && (\n <div className={`w-full ${aspectRatioClass} overflow-hidden`}>\n <img\n src={imageUrl}\n alt={item.title || \"Product\"}\n className=\"h-full w-full object-cover\"\n />\n </div>\n )}\n <div className={`p-${padding}`}>\n {item.title && (\n <h3\n className={`text-${itemTitleColor} text-${itemTitleSize === \"md\" ? \"base\" : itemTitleSize} mb-1 font-semibold`}\n >\n {getTextContent(item.title)}\n </h3>\n )}\n {item.description && (\n <p\n className={`text-${descriptionColor} text-${descriptionSize === \"md\" ? \"base\" : descriptionSize} mb-2`}\n >\n {getTextContent(item.description)}\n </p>\n )}\n <div className=\"flex items-center gap-2\">\n {item.price && (\n <span\n className={`text-${priceColor} text-${priceSize === \"md\" ? \"base\" : priceSize} font-bold`}\n >\n {getStringValue(item.price)}\n </span>\n )}\n {item.originalPrice && (\n <span\n className={`text-${originalPriceColor} text-${descriptionSize === \"md\" ? \"base\" : descriptionSize} line-through`}\n >\n {getStringValue(item.originalPrice)}\n </span>\n )}\n </div>\n {showMetaText && (item.qv || item.cv) && (\n <div\n className={`mt-2 flex gap-3 text-${metaTextColor} text-${metaTextSize === \"md\" ? \"base\" : metaTextSize}`}\n >\n {item.qv && <span>QV: {getStringValue(item.qv)}</span>}\n {item.cv && <span>CV: {getStringValue(item.cv)}</span>}\n </div>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n };\n\n // Ordered List Renderer (Numbered Items with Scroll)\n const renderOrderedList = () => {\n const isHorizontal = scrollAxis === \"horizontal\";\n const isVertical = scrollAxis === \"vertical\";\n\n if (isHorizontal) {\n return (\n <div className=\"relative\">\n <div\n ref={scrollContainerRef}\n className={`flex gap-${gapValues[gap]} scrollbar-hide overflow-x-auto scroll-smooth`}\n >\n {displayItems.map((item, index) => {\n const imageUrl = getImageUrl(item);\n const aspectRatioClass = getAspectRatioClass(imageAspectRatio);\n\n return (\n <div\n key={item.id}\n className={`relative w-[300px] flex-shrink-0`}\n >\n {/* Huge number behind the card */}\n <div\n className={`absolute top-0 left-0 text-${numberColor} z-0 leading-none font-bold opacity-20`}\n style={{ fontSize: largeNumberSizes[numberSize] }}\n >\n {index + 1}\n </div>\n\n {/* Card content - positioned on top with margin to show number */}\n <div\n className={`relative z-10 ml-20 rounded-${borderRadius} overflow-hidden bg-white shadow-sm transition-shadow hover:shadow-md`}\n >\n {showBadge && item.discount && (\n <div className=\"absolute top-2 right-2 z-10 rounded-md bg-red-500 px-2 py-1 text-xs font-bold text-white\">\n {getStringValue(item.discount)}\n </div>\n )}\n {showFavorite && (\n <button className=\"absolute top-2 left-2 z-10 rounded-full bg-white/80 p-2 backdrop-blur-sm transition-colors hover:bg-white\">\n <svg\n className=\"h-5 w-5 text-gray-600\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z\"\n />\n </svg>\n </button>\n )}\n {imageUrl && (\n <div\n className={`w-full ${aspectRatioClass} overflow-hidden`}\n >\n <img\n src={imageUrl}\n alt={item.title || \"Product\"}\n className=\"h-full w-full object-cover\"\n />\n </div>\n )}\n <div className={`p-${padding}`}>\n {item.title && (\n <h3\n className={`text-${itemTitleColor} text-${itemTitleSize === \"md\" ? \"base\" : itemTitleSize} mb-1 font-semibold`}\n >\n {getTextContent(item.title)}\n </h3>\n )}\n {item.description && (\n <p\n className={`text-${descriptionColor} text-${descriptionSize === \"md\" ? \"base\" : descriptionSize} mb-2`}\n >\n {getTextContent(item.description)}\n </p>\n )}\n <div className=\"flex items-center gap-2\">\n {item.price && (\n <span\n className={`text-${priceColor} text-${priceSize === \"md\" ? \"base\" : priceSize} font-bold`}\n >\n {getStringValue(item.price)}\n </span>\n )}\n {item.originalPrice && (\n <span\n className={`text-${originalPriceColor} text-${descriptionSize === \"md\" ? \"base\" : descriptionSize} line-through`}\n >\n {getStringValue(item.originalPrice)}\n </span>\n )}\n </div>\n {showMetaText && (item.qv || item.cv) && (\n <div\n className={`mt-2 flex gap-3 text-${metaTextColor} text-${metaTextSize === \"md\" ? \"base\" : metaTextSize}`}\n >\n {item.qv && (\n <span>QV: {getStringValue(item.qv)}</span>\n )}\n {item.cv && (\n <span>CV: {getStringValue(item.cv)}</span>\n )}\n </div>\n )}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n\n {/* Navigation arrows */}\n <div\n className={`absolute inset-x-0 top-1/2 z-20 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 }\n\n if (isVertical) {\n return (\n <div className={`flex flex-col gap-${gapValues[gap]}`}>\n {displayItems.map((item, index) => {\n const imageUrl = getImageUrl(item);\n\n return (\n <div\n key={item.id}\n className={`relative flex gap-${gapValues[gap]} rounded-${borderRadius} overflow-hidden bg-white shadow-sm transition-shadow hover:shadow-md ${`p-${padding}`}`}\n >\n <div\n className={`flex-shrink-0 text-${numberColor} text-${numberSize === \"md\" ? \"base\" : numberSize} flex w-16 items-center justify-center font-bold`}\n >\n {index + 1}\n </div>\n {imageUrl && (\n <div className=\"h-24 w-24 flex-shrink-0 overflow-hidden rounded-md\">\n <img\n src={imageUrl}\n alt={item.title || \"Product\"}\n className=\"h-full w-full object-cover\"\n />\n </div>\n )}\n <div className=\"flex-1\">\n {item.title && (\n <h3\n className={`text-${itemTitleColor} text-${itemTitleSize === \"md\" ? \"base\" : itemTitleSize} mb-1 font-semibold`}\n >\n {getTextContent(item.title)}\n </h3>\n )}\n {item.description && (\n <p\n className={`text-${descriptionColor} text-${descriptionSize === \"md\" ? \"base\" : descriptionSize} mb-2`}\n >\n {getTextContent(item.description)}\n </p>\n )}\n <div className=\"flex items-center gap-2\">\n {item.price && (\n <span\n className={`text-${priceColor} text-${priceSize === \"md\" ? \"base\" : priceSize} font-bold`}\n >\n {getStringValue(item.price)}\n </span>\n )}\n {item.originalPrice && (\n <span\n className={`text-${originalPriceColor} text-${descriptionSize === \"md\" ? \"base\" : descriptionSize} line-through`}\n >\n {getStringValue(item.originalPrice)}\n </span>\n )}\n </div>\n {showMetaText && (item.qv || item.cv) && (\n <div\n className={`mt-2 flex gap-3 text-${metaTextColor} text-${metaTextSize === \"md\" ? \"base\" : metaTextSize}`}\n >\n {item.qv && <span>QV: {getStringValue(item.qv)}</span>}\n {item.cv && <span>CV: {getStringValue(item.cv)}</span>}\n </div>\n )}\n </div>\n {showBadge && item.discount && (\n <div className=\"absolute top-2 right-2 rounded-md bg-red-500 px-2 py-1 text-xs font-bold text-white\">\n {getStringValue(item.discount)}\n </div>\n )}\n {showFavorite && (\n <button className=\"absolute top-2 right-12 rounded-full bg-white/80 p-2 backdrop-blur-sm transition-colors hover:bg-white\">\n <svg\n className=\"h-5 w-5 text-gray-600\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z\"\n />\n </svg>\n </button>\n )}\n </div>\n );\n })}\n </div>\n );\n }\n\n return null;\n };\n\n // Check if there's actually a featured asset to show\n const hasFeaturedAsset = getFeaturedAssetUrl(featuredAsset);\n const shouldShowFeaturedSection = showFeaturedSection && hasFeaturedAsset;\n\n // Background styling\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 bg-${backgroundColor} ${className}`}\n style={{ backgroundImage }}\n {...props}\n >\n {titleEnabled && title && (\n <h2\n className={`text-${titleColor} text-${titleSize === \"md\" ? \"base\" : titleSize} mb-6 font-bold`}\n >\n {title}\n </h2>\n )}\n {!hasItems ? (\n <div className=\"flex items-center justify-center rounded-md border-2 border-dashed border-gray-300 bg-gray-50 py-12 text-center\">\n <p className=\"text-muted\">No items to display</p>\n </div>\n ) : shouldShowFeaturedSection ? (\n <div className=\"flex flex-col gap-4 @lg:flex-row @lg:gap-6\">\n {/* Featured section - full height standalone, left on desktop, top on mobile */}\n <div className=\"w-full @lg:w-[45%]\">{renderFeaturedSection()}</div>\n\n {/* List content - right on desktop, bottom on mobile */}\n <div className=\"w-full @lg:w-[55%]\">\n {listType === \"unordered\"\n ? renderUnorderedList()\n : renderOrderedList()}\n </div>\n </div>\n ) : listType === \"unordered\" ? (\n renderUnorderedList()\n ) : (\n renderOrderedList()\n )}\n </div>\n );\n}\n\nexport const listWidgetPropertySchema: WidgetPropertySchema = {\n widgetType: \"ListWidget\",\n displayName: \"List\",\n tabsConfig: [\n { id: \"styling\", label: \"Styling\" },\n { id: \"data\", label: \"Data\" },\n ],\n dataSourceTargetProps: [\"items\"],\n fields: [\n // Styling tab - Title group\n {\n key: \"titleEnabled\",\n label: \"Widget Title\",\n type: \"boolean\",\n description: \"Enable the title displayed above the list\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Title\",\n },\n {\n key: \"title\",\n label: \"Title\",\n type: \"text\",\n description: \"Header text for the list\",\n defaultValue: \"List\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n },\n getFontSizeField({\n key: \"titleSize\",\n label: \"Title Font Size\",\n description: \"Size of the list title\",\n defaultValue: \"xl\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n getColorField({\n key: \"titleColor\",\n label: \"Title Color\",\n description: \"Color for the list title\",\n defaultValue: \"foreground\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n\n // Styling tab - Design group\n getPaddingField({\n key: \"padding\",\n label: \"Padding\",\n description: \"Padding inside the container\",\n defaultValue: 4,\n tab: \"styling\",\n group: \"Design\",\n }),\n getBorderRadiusField({\n key: \"borderRadius\",\n label: \"Border Radius\",\n description: \"Rounded corners for the container and images\",\n defaultValue: \"md\",\n tab: \"styling\",\n group: \"Design\",\n }),\n getGapField({\n key: \"gap\",\n label: \"Gap\",\n description: \"Spacing between items\",\n defaultValue: \"md\",\n tab: \"styling\",\n group: \"Design\",\n }),\n {\n type: \"background\",\n defaultValue: \"background\",\n key: \"background\",\n label: \"Background\",\n description: \"Background color or image for the widget\",\n tab: \"styling\",\n group: \"Design\",\n },\n\n // Styling tab - List Configuration group\n {\n key: \"listType\",\n label: \"List Type\",\n type: \"select\",\n description: \"Type of list layout\",\n defaultValue: \"unordered\",\n options: [\n { label: \"Unordered (Grid)\", value: \"unordered\" },\n { label: \"Ordered (Numbered)\", value: \"ordered\" },\n ],\n tab: \"styling\",\n group: \"List Configuration\",\n },\n {\n key: \"maxItems\",\n label: \"Max Items\",\n type: \"number\",\n description: \"Maximum number of items to display\",\n min: 1,\n max: 100,\n step: 1,\n defaultValue: 12,\n tab: \"styling\",\n group: \"List Configuration\",\n },\n {\n key: \"imageAspectRatio\",\n label: \"Image Aspect Ratio\",\n type: \"buttonGroup\",\n description: \"Aspect ratio for item images\",\n defaultValue: \"square\",\n options: [\n { label: \"Square\", value: \"square\" },\n { label: \"Landscape\", value: \"landscape\" },\n { label: \"Portrait\", value: \"portrait\" },\n ],\n tab: \"styling\",\n group: \"List Configuration\",\n },\n {\n key: \"showBadge\",\n label: \"Show Discount Badge\",\n type: \"boolean\",\n description: \"Display discount badge on images\",\n defaultValue: true,\n tab: \"styling\",\n group: \"List Configuration\",\n },\n {\n key: \"showFavorite\",\n label: \"Show Favorite Icon\",\n type: \"boolean\",\n description: \"Display favorite/heart icon on images\",\n defaultValue: true,\n tab: \"styling\",\n group: \"List Configuration\",\n },\n {\n key: \"showMetaText\",\n label: \"Show QV/CV Text\",\n type: \"boolean\",\n description: \"Display QV and CV values\",\n defaultValue: true,\n tab: \"styling\",\n group: \"List Configuration\",\n },\n\n // Styling tab - Unordered List Configuration\n {\n key: \"columns\",\n label: \"Grid Columns\",\n type: \"number\",\n description: \"Number of columns in the grid (unordered list only)\",\n min: 1,\n max: 6,\n step: 1,\n defaultValue: 3,\n tab: \"styling\",\n group: \"Unordered List Configuration\",\n requiresKeyValue: { key: \"listType\", value: \"unordered\" },\n },\n\n // Styling tab - Ordered List Configuration\n {\n key: \"scrollAxis\",\n label: \"Scroll Direction\",\n type: \"select\",\n description: \"Direction for ordered list scrolling\",\n defaultValue: \"horizontal\",\n options: [\n { label: \"Horizontal\", value: \"horizontal\" },\n { label: \"Vertical\", value: \"vertical\" },\n ],\n tab: \"styling\",\n group: \"Ordered List Configuration\",\n requiresKeyValue: { key: \"listType\", value: \"ordered\" },\n },\n getColorField({\n key: \"numberColor\",\n label: \"Number Color\",\n description: \"Color for ordered list numbers\",\n defaultValue: \"primary\",\n tab: \"styling\",\n group: \"Ordered List Configuration\",\n requiresKeyValue: { key: \"listType\", value: \"ordered\" },\n }),\n getFontSizeField({\n key: \"numberSize\",\n label: \"Number Font Size\",\n description: \"Size of ordered list numbers\",\n defaultValue: \"2xl\",\n tab: \"styling\",\n group: \"Ordered List Configuration\",\n requiresKeyValue: { key: \"listType\", value: \"ordered\" },\n }),\n\n // Styling tab - Item Styling group\n getColorField({\n key: \"itemTitleColor\",\n label: \"Item Title Color\",\n description: \"Color for item titles\",\n defaultValue: \"foreground\",\n tab: \"styling\",\n group: \"Item Styling\",\n }),\n getFontSizeField({\n key: \"itemTitleSize\",\n label: \"Item Title Font Size\",\n description: \"Size of item titles\",\n defaultValue: \"sm\",\n tab: \"styling\",\n group: \"Item Styling\",\n }),\n {\n key: \"separator2\",\n type: \"separator\",\n label: \"Separator\",\n tab: \"styling\",\n group: \"Item Styling\",\n },\n getColorField({\n key: \"priceColor\",\n label: \"Price Color\",\n description: \"Color for prices\",\n defaultValue: \"foreground\",\n tab: \"styling\",\n group: \"Item Styling\",\n }),\n getFontSizeField({\n key: \"priceSize\",\n label: \"Price Font Size\",\n description: \"Size of prices\",\n defaultValue: \"md\",\n tab: \"styling\",\n group: \"Item Styling\",\n }),\n getColorField({\n key: \"originalPriceColor\",\n label: \"Original Price Color\",\n description: \"Color for crossed-out original prices\",\n defaultValue: \"foreground\",\n tab: \"styling\",\n group: \"Item Styling\",\n }),\n {\n key: \"separator3\",\n type: \"separator\",\n label: \"Separator\",\n tab: \"styling\",\n group: \"Item Styling\",\n },\n getColorField({\n key: \"metaTextColor\",\n label: \"Meta Text Color\",\n description: \"Color for QV/CV text\",\n defaultValue: \"foreground\",\n tab: \"styling\",\n group: \"Item Styling\",\n }),\n getFontSizeField({\n key: \"metaTextSize\",\n label: \"Meta Text Font Size\",\n description: \"Size of QV/CV text\",\n defaultValue: \"xs\",\n tab: \"styling\",\n group: \"Item Styling\",\n }),\n\n // Styling tab - Featured Section group\n {\n key: \"showFeaturedSection\",\n label: \"Show Featured Section\",\n type: \"boolean\",\n description: \"Display a featured content section\",\n defaultValue: false,\n tab: \"styling\",\n group: \"Featured Section\",\n },\n {\n key: \"featuredAsset\",\n label: \"Featured Asset\",\n type: \"resource\",\n description:\n \"Select a single image or video resource for the featured section\",\n tab: \"styling\",\n group: \"Featured Section\",\n allowedTypes: [\"Medium\"],\n requiresKeyToBeTrue: \"showFeaturedSection\",\n },\n {\n key: \"featuredTitle\",\n label: \"Featured Title\",\n type: \"text\",\n description: \"Title for featured section\",\n tab: \"styling\",\n group: \"Featured Section\",\n requiresKeyToBeTrue: \"showFeaturedSection\",\n },\n {\n key: \"featuredSubtitle\",\n label: \"Featured Subtitle\",\n type: \"text\",\n description: \"Subtitle for featured section\",\n tab: \"styling\",\n group: \"Featured Section\",\n requiresKeyToBeTrue: \"showFeaturedSection\",\n },\n {\n key: \"featuredButtonText\",\n label: \"Featured Button Text\",\n type: \"text\",\n description: \"Text for featured section button\",\n tab: \"styling\",\n group: \"Featured Section\",\n requiresKeyToBeTrue: \"showFeaturedSection\",\n },\n {\n key: \"featuredButtonUrl\",\n label: \"Featured Button URL\",\n type: \"text\",\n description: \"URL for featured section button\",\n tab: \"styling\",\n group: \"Featured Section\",\n requiresKeyToBeTrue: \"showFeaturedSection\",\n },\n getColorField({\n key: \"featuredSubtitleColor\",\n label: \"Featured Subtitle Color\",\n description: \"Color for featured subtitle\",\n defaultValue: \"background\",\n tab: \"styling\",\n group: \"Featured Section\",\n requiresKeyToBeTrue: \"showFeaturedSection\",\n }),\n getFontSizeField({\n key: \"featuredSubtitleSize\",\n label: \"Featured Subtitle Font Size\",\n description: \"Size of featured subtitle\",\n defaultValue: \"md\",\n tab: \"styling\",\n group: \"Featured Section\",\n requiresKeyToBeTrue: \"showFeaturedSection\",\n }),\n\n // Data tab - Data Configuration\n {\n key: \"dataSource\",\n label: \"Data Source\",\n type: \"dataSource\",\n description: \"\",\n tab: \"data\",\n group: \"Data Configuration\",\n },\n ],\n itemConfigSchema: {\n description: \"Configure settings for this list item\",\n fields: [\n {\n key: \"title\",\n label: \"Custom Title\",\n type: \"text\",\n description: \"Override the item's title\",\n },\n {\n key: \"description\",\n label: \"Custom Description\",\n type: \"textarea\",\n description: \"Override the item's description\",\n rows: 3,\n },\n {\n key: \"price\",\n label: \"Price\",\n type: \"text\",\n description: \"Current price\",\n },\n {\n key: \"originalPrice\",\n label: \"Original Price\",\n type: \"text\",\n description: \"Original price (will be crossed out)\",\n },\n {\n key: \"discount\",\n label: \"Discount Badge\",\n type: \"text\",\n description: \"Discount text (e.g., '40% Off')\",\n },\n {\n key: \"qv\",\n label: \"QV Value\",\n type: \"text\",\n description: \"Qualifying Volume value\",\n },\n {\n key: \"cv\",\n label: \"CV Value\",\n type: \"text\",\n description: \"Commission Volume value\",\n },\n {\n key: \"image\",\n label: \"Image URL\",\n type: \"text\",\n description: \"Custom image URL for this item\",\n },\n ],\n },\n} as const satisfies WidgetPropertySchema;\n"]}
@@ -0,0 +1,3 @@
1
+ export { gapValues, getBorderRadiusField, getButtonSizeField, getColorField, getFontSizeField, getGapField, getPaddingField } from '@fluid-app/rep-core/registries';
2
+ //# sourceMappingURL=chunk-ZS7C474P.js.map
3
+ //# sourceMappingURL=chunk-ZS7C474P.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-ZS7C474P.js","sourcesContent":[]}
@@ -0,0 +1,194 @@
1
+ import { MediaRenderer } from './chunk-F63VY23B.js';
2
+ import { getBorderRadiusField } from '@fluid-app/rep-core/registries';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ function VideoWidget({
6
+ src = "",
7
+ poster = "",
8
+ borderRadius = "md",
9
+ verticalSizing = "auto",
10
+ fixedHeight = "200px",
11
+ displayFit = "cover",
12
+ focusPoint,
13
+ controls = true,
14
+ autoplay = false,
15
+ loop = false,
16
+ muted = false,
17
+ resource,
18
+ useCustomUrl
19
+ }) {
20
+ const effectiveSrc = useCustomUrl ? src : resource?.videoUrl ?? src;
21
+ const effectivePoster = useCustomUrl ? poster : resource?.imageUrl ?? poster;
22
+ const isFixed = verticalSizing === "fixed";
23
+ return /* @__PURE__ */ jsx(
24
+ "div",
25
+ {
26
+ className: `relative w-full overflow-hidden rounded-${borderRadius}`,
27
+ style: isFixed ? { height: fixedHeight } : void 0,
28
+ children: /* @__PURE__ */ jsx(
29
+ MediaRenderer,
30
+ {
31
+ mediaType: "video",
32
+ src: effectiveSrc,
33
+ poster: effectivePoster,
34
+ objectFit: isFixed ? displayFit : void 0,
35
+ focusPoint: isFixed ? focusPoint : void 0,
36
+ controls,
37
+ autoplay,
38
+ loop,
39
+ muted
40
+ }
41
+ )
42
+ }
43
+ );
44
+ }
45
+ var videoWidgetPropertySchema = {
46
+ widgetType: "VideoWidget",
47
+ displayName: "Video",
48
+ tabsConfig: [
49
+ { id: "styling", label: "Styling" },
50
+ { id: "behavior", label: "Behavior" }
51
+ ],
52
+ fields: [
53
+ // Styling tab - Content group
54
+ {
55
+ key: "resource",
56
+ label: "Select Video",
57
+ type: "resource",
58
+ description: "Browse and select a video",
59
+ allowedTypes: ["Medium"],
60
+ tab: "styling",
61
+ group: "Content"
62
+ },
63
+ {
64
+ key: "useCustomUrl",
65
+ label: "Use Custom URL",
66
+ type: "boolean",
67
+ description: "Enter a custom video URL instead of selecting media",
68
+ defaultValue: false,
69
+ tab: "styling",
70
+ group: "Content"
71
+ },
72
+ {
73
+ key: "src",
74
+ label: "Video URL",
75
+ type: "text",
76
+ description: "The source URL of the video",
77
+ defaultValue: "",
78
+ tab: "styling",
79
+ group: "Content",
80
+ requiresKeyToBeTrue: "useCustomUrl"
81
+ },
82
+ {
83
+ key: "poster",
84
+ label: "Poster Image URL",
85
+ type: "text",
86
+ description: "Thumbnail image displayed before video plays",
87
+ defaultValue: "",
88
+ tab: "styling",
89
+ group: "Content",
90
+ requiresKeyToBeTrue: "useCustomUrl"
91
+ },
92
+ // Styling tab - Design group
93
+ getBorderRadiusField({
94
+ key: "borderRadius",
95
+ label: "Border Radius",
96
+ description: "Border radius for the calendar container",
97
+ defaultValue: "md",
98
+ tab: "styling",
99
+ group: "Design"
100
+ }),
101
+ {
102
+ key: "verticalSizing",
103
+ label: "Vertical Sizing",
104
+ type: "buttonGroup",
105
+ description: "How the video height is determined",
106
+ options: [
107
+ { label: "Auto", value: "auto" },
108
+ { label: "Fixed", value: "fixed" }
109
+ ],
110
+ defaultValue: "auto",
111
+ tab: "styling",
112
+ group: "Design"
113
+ },
114
+ {
115
+ key: "fixedHeight",
116
+ label: "Height",
117
+ type: "slider",
118
+ description: "Fixed height of the video container in pixels",
119
+ min: 80,
120
+ max: 500,
121
+ step: 10,
122
+ defaultValue: 200,
123
+ unit: "px",
124
+ tab: "styling",
125
+ group: "Design",
126
+ requiresKeyValue: { key: "verticalSizing", value: "fixed" }
127
+ },
128
+ {
129
+ key: "displayFit",
130
+ label: "Display Fit",
131
+ type: "buttonGroup",
132
+ description: "How the video fills its container",
133
+ options: [
134
+ { label: "Cover", value: "cover" },
135
+ { label: "Contain", value: "contain" }
136
+ ],
137
+ defaultValue: "cover",
138
+ tab: "styling",
139
+ group: "Design",
140
+ requiresKeyValue: { key: "verticalSizing", value: "fixed" }
141
+ },
142
+ {
143
+ key: "focusPoint",
144
+ label: "Focus Point",
145
+ type: "contentPosition",
146
+ description: "The focal point of the video within its container",
147
+ defaultValue: "center",
148
+ tab: "styling",
149
+ group: "Design",
150
+ requiresKeyValue: { key: "verticalSizing", value: "fixed" }
151
+ },
152
+ // Behavior tab
153
+ {
154
+ key: "controls",
155
+ label: "Show Controls",
156
+ type: "boolean",
157
+ description: "Display video playback controls",
158
+ defaultValue: true,
159
+ tab: "behavior",
160
+ group: "Behavior"
161
+ },
162
+ {
163
+ key: "autoplay",
164
+ label: "Autoplay",
165
+ type: "boolean",
166
+ description: "Automatically start playing the video",
167
+ defaultValue: false,
168
+ tab: "behavior",
169
+ group: "Behavior"
170
+ },
171
+ {
172
+ key: "loop",
173
+ label: "Loop",
174
+ type: "boolean",
175
+ description: "Repeat the video when it ends",
176
+ defaultValue: false,
177
+ tab: "behavior",
178
+ group: "Behavior"
179
+ },
180
+ {
181
+ key: "muted",
182
+ label: "Muted",
183
+ type: "boolean",
184
+ description: "Start with audio muted",
185
+ defaultValue: false,
186
+ tab: "behavior",
187
+ group: "Behavior"
188
+ }
189
+ ]
190
+ };
191
+
192
+ export { VideoWidget, videoWidgetPropertySchema };
193
+ //# sourceMappingURL=chunk-ZSUGXJWD.js.map
194
+ //# sourceMappingURL=chunk-ZSUGXJWD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/widgets/VideoWidget.tsx"],"names":[],"mappings":"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","file":"chunk-ZSUGXJWD.js","sourcesContent":["import type { ComponentProps } from \"react\";\nimport {\n getBorderRadiusField,\n type WidgetPropertySchema,\n} from \"@fluid-app/rep-core/registries\";\nimport type {\n BorderRadiusOptions,\n ShareableItem,\n} from \"@fluid-app/rep-core/types\";\nimport { MediaRenderer } from \"../components/MediaRenderer\";\n\ntype VideoWidgetProps = ComponentProps<\"div\"> & {\n src?: string;\n poster?: string;\n borderRadius?: BorderRadiusOptions;\n verticalSizing?: \"auto\" | \"fixed\";\n fixedHeight?: string;\n displayFit?: \"cover\" | \"contain\";\n focusPoint?: string;\n controls?: boolean;\n autoplay?: boolean;\n loop?: boolean;\n muted?: boolean;\n resource?: ShareableItem;\n useCustomUrl?: boolean;\n};\n\nexport function VideoWidget({\n src = \"\",\n poster = \"\",\n borderRadius = \"md\",\n verticalSizing = \"auto\",\n fixedHeight = \"200px\",\n displayFit = \"cover\",\n focusPoint,\n controls = true,\n autoplay = false,\n loop = false,\n muted = false,\n resource,\n useCustomUrl,\n}: VideoWidgetProps) {\n const effectiveSrc = useCustomUrl ? src : (resource?.videoUrl ?? src);\n const effectivePoster = useCustomUrl\n ? poster\n : (resource?.imageUrl ?? poster);\n\n const isFixed = verticalSizing === \"fixed\";\n\n return (\n <div\n className={`relative w-full overflow-hidden rounded-${borderRadius}`}\n style={isFixed ? { height: fixedHeight } : undefined}\n >\n <MediaRenderer\n mediaType=\"video\"\n src={effectiveSrc}\n poster={effectivePoster}\n objectFit={isFixed ? displayFit : undefined}\n focusPoint={isFixed ? focusPoint : undefined}\n controls={controls}\n autoplay={autoplay}\n loop={loop}\n muted={muted}\n />\n </div>\n );\n}\n\nexport const videoWidgetPropertySchema: WidgetPropertySchema = {\n widgetType: \"VideoWidget\",\n displayName: \"Video\",\n tabsConfig: [\n { id: \"styling\", label: \"Styling\" },\n { id: \"behavior\", label: \"Behavior\" },\n ],\n fields: [\n // Styling tab - Content group\n {\n key: \"resource\",\n label: \"Select Video\",\n type: \"resource\",\n description: \"Browse and select a video\",\n allowedTypes: [\"Medium\"],\n tab: \"styling\",\n group: \"Content\",\n },\n {\n key: \"useCustomUrl\",\n label: \"Use Custom URL\",\n type: \"boolean\",\n description: \"Enter a custom video URL instead of selecting media\",\n defaultValue: false,\n tab: \"styling\",\n group: \"Content\",\n },\n {\n key: \"src\",\n label: \"Video URL\",\n type: \"text\",\n description: \"The source URL of the video\",\n defaultValue: \"\",\n tab: \"styling\",\n group: \"Content\",\n requiresKeyToBeTrue: \"useCustomUrl\",\n },\n {\n key: \"poster\",\n label: \"Poster Image URL\",\n type: \"text\",\n description: \"Thumbnail image displayed before video plays\",\n defaultValue: \"\",\n tab: \"styling\",\n group: \"Content\",\n requiresKeyToBeTrue: \"useCustomUrl\",\n },\n\n // Styling tab - Design group\n getBorderRadiusField({\n key: \"borderRadius\",\n label: \"Border Radius\",\n description: \"Border radius for the calendar container\",\n defaultValue: \"md\",\n tab: \"styling\",\n group: \"Design\",\n }),\n {\n key: \"verticalSizing\",\n label: \"Vertical Sizing\",\n type: \"buttonGroup\",\n description: \"How the video height is determined\",\n options: [\n { label: \"Auto\", value: \"auto\" },\n { label: \"Fixed\", value: \"fixed\" },\n ],\n defaultValue: \"auto\",\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"fixedHeight\",\n label: \"Height\",\n type: \"slider\",\n description: \"Fixed height of the video container in pixels\",\n min: 80,\n max: 500,\n step: 10,\n defaultValue: 200,\n unit: \"px\",\n tab: \"styling\",\n group: \"Design\",\n requiresKeyValue: { key: \"verticalSizing\", value: \"fixed\" },\n },\n {\n key: \"displayFit\",\n label: \"Display Fit\",\n type: \"buttonGroup\",\n description: \"How the video fills its container\",\n options: [\n { label: \"Cover\", value: \"cover\" },\n { label: \"Contain\", value: \"contain\" },\n ],\n defaultValue: \"cover\",\n tab: \"styling\",\n group: \"Design\",\n requiresKeyValue: { key: \"verticalSizing\", value: \"fixed\" },\n },\n {\n key: \"focusPoint\",\n label: \"Focus Point\",\n type: \"contentPosition\",\n description: \"The focal point of the video within its container\",\n defaultValue: \"center\",\n tab: \"styling\",\n group: \"Design\",\n requiresKeyValue: { key: \"verticalSizing\", value: \"fixed\" },\n },\n\n // Behavior tab\n {\n key: \"controls\",\n label: \"Show Controls\",\n type: \"boolean\",\n description: \"Display video playback controls\",\n defaultValue: true,\n tab: \"behavior\",\n group: \"Behavior\",\n },\n {\n key: \"autoplay\",\n label: \"Autoplay\",\n type: \"boolean\",\n description: \"Automatically start playing the video\",\n defaultValue: false,\n tab: \"behavior\",\n group: \"Behavior\",\n },\n {\n key: \"loop\",\n label: \"Loop\",\n type: \"boolean\",\n description: \"Repeat the video when it ends\",\n defaultValue: false,\n tab: \"behavior\",\n group: \"Behavior\",\n },\n {\n key: \"muted\",\n label: \"Muted\",\n type: \"boolean\",\n description: \"Start with audio muted\",\n defaultValue: false,\n tab: \"behavior\",\n group: \"Behavior\",\n },\n ],\n};\n"]}
@@ -0,0 +1,11 @@
1
+ import { createContext, useContext } from 'react';
2
+
3
+ // src/contexts/ScreenRendererContext.tsx
4
+ var ScreenRendererContext = createContext(void 0);
5
+ function useScreenRenderer() {
6
+ return useContext(ScreenRendererContext);
7
+ }
8
+
9
+ export { ScreenRendererContext, useScreenRenderer };
10
+ //# sourceMappingURL=chunk-ZWFK5UUU.js.map
11
+ //# sourceMappingURL=chunk-ZWFK5UUU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/contexts/ScreenRendererContext.tsx"],"names":[],"mappings":";;;AAwBO,IAAM,qBAAA,GAAwB,cAEnC,MAAS;AAMJ,SAAS,iBAAA,GAEF;AACZ,EAAA,OAAO,WAAW,qBAAqB,CAAA;AACzC","file":"chunk-ZWFK5UUU.js","sourcesContent":["import { createContext, useContext, type ComponentType } from \"react\";\nimport type { WidgetSchema } from \"@fluid-app/rep-core/types\";\nimport type { WidgetRegistry } from \"./RegistryContext\";\n\n/**\n * Props that any ScreenRenderer must accept.\n * This is the minimal interface used by container widgets (e.g. LayoutWidget)\n * to render their children.\n */\nexport interface ScreenRendererComponentProps {\n screen: WidgetSchema[];\n registry?: WidgetRegistry;\n className?: string;\n}\n\n/**\n * Context for providing an alternative ScreenRenderer component.\n *\n * This allows packages like rep-builder to inject their own ScreenRenderer\n * (with edit mode, drag-and-drop, etc.) so that container widgets in rep-widgets\n * use the richer renderer instead of the basic view-only one.\n *\n * Default is undefined — container widgets fall back to the local ScreenRenderer import.\n */\nexport const ScreenRendererContext = createContext<\n ComponentType<ScreenRendererComponentProps> | undefined\n>(undefined);\n\n/**\n * Hook to get the ScreenRenderer component from context.\n * Returns undefined if no override has been provided.\n */\nexport function useScreenRenderer():\n | ComponentType<ScreenRendererComponentProps>\n | undefined {\n return useContext(ScreenRendererContext);\n}\n"]}
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ var chunkHDA2ZOV2_cjs = require('../chunk-HDA2ZOV2.cjs');
4
+ var chunk3CUVGQQI_cjs = require('../chunk-3CUVGQQI.cjs');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "cn", {
9
+ enumerable: true,
10
+ get: function () { return chunkHDA2ZOV2_cjs.cn; }
11
+ });
12
+ Object.defineProperty(exports, "ErrorState", {
13
+ enumerable: true,
14
+ get: function () { return chunk3CUVGQQI_cjs.ErrorState; }
15
+ });
16
+ //# sourceMappingURL=index.cjs.map
17
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
@@ -0,0 +1,8 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ClassValue } from 'clsx';
3
+
4
+ declare function ErrorState(): react_jsx_runtime.JSX.Element;
5
+
6
+ declare function cn(...inputs: readonly ClassValue[]): string;
7
+
8
+ export { ErrorState, cn };
@@ -0,0 +1,8 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ClassValue } from 'clsx';
3
+
4
+ declare function ErrorState(): react_jsx_runtime.JSX.Element;
5
+
6
+ declare function cn(...inputs: readonly ClassValue[]): string;
7
+
8
+ export { ErrorState, cn };
@@ -0,0 +1,4 @@
1
+ export { cn } from '../chunk-5HHN5MRZ.js';
2
+ export { ErrorState } from '../chunk-GRFCSQ2M.js';
3
+ //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ var chunkYU5DAILW_cjs = require('../chunk-YU5DAILW.cjs');
4
+ var chunkJYWKXNUO_cjs = require('../chunk-JYWKXNUO.cjs');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "ScreenRendererContext", {
9
+ enumerable: true,
10
+ get: function () { return chunkYU5DAILW_cjs.ScreenRendererContext; }
11
+ });
12
+ Object.defineProperty(exports, "useScreenRenderer", {
13
+ enumerable: true,
14
+ get: function () { return chunkYU5DAILW_cjs.useScreenRenderer; }
15
+ });
16
+ Object.defineProperty(exports, "RegistryContext", {
17
+ enumerable: true,
18
+ get: function () { return chunkJYWKXNUO_cjs.RegistryContext; }
19
+ });
20
+ Object.defineProperty(exports, "RegistryProvider", {
21
+ enumerable: true,
22
+ get: function () { return chunkJYWKXNUO_cjs.RegistryProvider; }
23
+ });
24
+ Object.defineProperty(exports, "useRegistry", {
25
+ enumerable: true,
26
+ get: function () { return chunkJYWKXNUO_cjs.useRegistry; }
27
+ });
28
+ //# sourceMappingURL=index.cjs.map
29
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
@@ -0,0 +1,73 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { ComponentType, ReactNode } from 'react';
4
+ import { WidgetSchema } from '@fluid-app/rep-core/types';
5
+
6
+ /**
7
+ * Base props interface for widget components.
8
+ * All widgets receive at least these props from the ScreenRenderer.
9
+ */
10
+ interface WidgetBaseProps {
11
+ readonly widget: WidgetSchema;
12
+ readonly path?: readonly number[];
13
+ }
14
+ /**
15
+ * Generic widget component type.
16
+ * Widgets receive WidgetBaseProps and may have additional props.
17
+ */
18
+ type WidgetComponent<P extends WidgetBaseProps = WidgetBaseProps> = ComponentType<P>;
19
+ /**
20
+ * Registry mapping widget type names to their components.
21
+ * The keys are widget type strings (e.g., "TextWidget", "ButtonWidget").
22
+ * Using WidgetComponent for the value type provides better type safety than `any`.
23
+ */
24
+ type WidgetRegistry = Readonly<Record<string, WidgetComponent<any>>>;
25
+ /**
26
+ * Context for providing the widget registry to all components in the tree.
27
+ * This eliminates prop drilling and makes the registry accessible anywhere.
28
+ *
29
+ * Default to undefined - registry must be provided by a RegistryProvider.
30
+ */
31
+ declare const RegistryContext: React.Context<Readonly<Record<string, WidgetComponent<any>>> | undefined>;
32
+ interface RegistryProviderProps {
33
+ registry?: WidgetRegistry;
34
+ children: ReactNode;
35
+ }
36
+ /**
37
+ * Provider component that makes the widget registry available to all descendants.
38
+ * A registry must be provided either via props or by nesting within another RegistryProvider.
39
+ */
40
+ declare function RegistryProvider({ registry, children, }: RegistryProviderProps): react_jsx_runtime.JSX.Element;
41
+ /**
42
+ * Hook to access the widget registry from anywhere in the component tree.
43
+ * Must be used within a RegistryProvider that has a registry prop.
44
+ */
45
+ declare function useRegistry(): WidgetRegistry;
46
+
47
+ /**
48
+ * Props that any ScreenRenderer must accept.
49
+ * This is the minimal interface used by container widgets (e.g. LayoutWidget)
50
+ * to render their children.
51
+ */
52
+ interface ScreenRendererComponentProps {
53
+ screen: WidgetSchema[];
54
+ registry?: WidgetRegistry;
55
+ className?: string;
56
+ }
57
+ /**
58
+ * Context for providing an alternative ScreenRenderer component.
59
+ *
60
+ * This allows packages like rep-builder to inject their own ScreenRenderer
61
+ * (with edit mode, drag-and-drop, etc.) so that container widgets in rep-widgets
62
+ * use the richer renderer instead of the basic view-only one.
63
+ *
64
+ * Default is undefined — container widgets fall back to the local ScreenRenderer import.
65
+ */
66
+ declare const ScreenRendererContext: React.Context<ComponentType<ScreenRendererComponentProps> | undefined>;
67
+ /**
68
+ * Hook to get the ScreenRenderer component from context.
69
+ * Returns undefined if no override has been provided.
70
+ */
71
+ declare function useScreenRenderer(): ComponentType<ScreenRendererComponentProps> | undefined;
72
+
73
+ export { RegistryContext, RegistryProvider, type RegistryProviderProps, type ScreenRendererComponentProps, ScreenRendererContext, type WidgetBaseProps, type WidgetComponent, type WidgetRegistry, useRegistry, useScreenRenderer };
@@ -0,0 +1,73 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { ComponentType, ReactNode } from 'react';
4
+ import { WidgetSchema } from '@fluid-app/rep-core/types';
5
+
6
+ /**
7
+ * Base props interface for widget components.
8
+ * All widgets receive at least these props from the ScreenRenderer.
9
+ */
10
+ interface WidgetBaseProps {
11
+ readonly widget: WidgetSchema;
12
+ readonly path?: readonly number[];
13
+ }
14
+ /**
15
+ * Generic widget component type.
16
+ * Widgets receive WidgetBaseProps and may have additional props.
17
+ */
18
+ type WidgetComponent<P extends WidgetBaseProps = WidgetBaseProps> = ComponentType<P>;
19
+ /**
20
+ * Registry mapping widget type names to their components.
21
+ * The keys are widget type strings (e.g., "TextWidget", "ButtonWidget").
22
+ * Using WidgetComponent for the value type provides better type safety than `any`.
23
+ */
24
+ type WidgetRegistry = Readonly<Record<string, WidgetComponent<any>>>;
25
+ /**
26
+ * Context for providing the widget registry to all components in the tree.
27
+ * This eliminates prop drilling and makes the registry accessible anywhere.
28
+ *
29
+ * Default to undefined - registry must be provided by a RegistryProvider.
30
+ */
31
+ declare const RegistryContext: React.Context<Readonly<Record<string, WidgetComponent<any>>> | undefined>;
32
+ interface RegistryProviderProps {
33
+ registry?: WidgetRegistry;
34
+ children: ReactNode;
35
+ }
36
+ /**
37
+ * Provider component that makes the widget registry available to all descendants.
38
+ * A registry must be provided either via props or by nesting within another RegistryProvider.
39
+ */
40
+ declare function RegistryProvider({ registry, children, }: RegistryProviderProps): react_jsx_runtime.JSX.Element;
41
+ /**
42
+ * Hook to access the widget registry from anywhere in the component tree.
43
+ * Must be used within a RegistryProvider that has a registry prop.
44
+ */
45
+ declare function useRegistry(): WidgetRegistry;
46
+
47
+ /**
48
+ * Props that any ScreenRenderer must accept.
49
+ * This is the minimal interface used by container widgets (e.g. LayoutWidget)
50
+ * to render their children.
51
+ */
52
+ interface ScreenRendererComponentProps {
53
+ screen: WidgetSchema[];
54
+ registry?: WidgetRegistry;
55
+ className?: string;
56
+ }
57
+ /**
58
+ * Context for providing an alternative ScreenRenderer component.
59
+ *
60
+ * This allows packages like rep-builder to inject their own ScreenRenderer
61
+ * (with edit mode, drag-and-drop, etc.) so that container widgets in rep-widgets
62
+ * use the richer renderer instead of the basic view-only one.
63
+ *
64
+ * Default is undefined — container widgets fall back to the local ScreenRenderer import.
65
+ */
66
+ declare const ScreenRendererContext: React.Context<ComponentType<ScreenRendererComponentProps> | undefined>;
67
+ /**
68
+ * Hook to get the ScreenRenderer component from context.
69
+ * Returns undefined if no override has been provided.
70
+ */
71
+ declare function useScreenRenderer(): ComponentType<ScreenRendererComponentProps> | undefined;
72
+
73
+ export { RegistryContext, RegistryProvider, type RegistryProviderProps, type ScreenRendererComponentProps, ScreenRendererContext, type WidgetBaseProps, type WidgetComponent, type WidgetRegistry, useRegistry, useScreenRenderer };
@@ -0,0 +1,4 @@
1
+ export { ScreenRendererContext, useScreenRenderer } from '../chunk-ZWFK5UUU.js';
2
+ export { RegistryContext, RegistryProvider, useRegistry } from '../chunk-6GF46P3S.js';
3
+ //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map