@fluid-app/portal-widgets 0.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/dist/AlertWidget-AS_8Jjbd.cjs +39 -0
  2. package/dist/AlertWidget-AS_8Jjbd.cjs.map +1 -0
  3. package/dist/AlertWidget-Dy6pBmXm.mjs +22 -0
  4. package/dist/AlertWidget-Dy6pBmXm.mjs.map +1 -0
  5. package/dist/CalendarWidget-DAHnT9Wn.mjs +424 -0
  6. package/dist/CalendarWidget-DAHnT9Wn.mjs.map +1 -0
  7. package/dist/CalendarWidget-DW7q6Q7_.cjs +441 -0
  8. package/dist/CalendarWidget-DW7q6Q7_.cjs.map +1 -0
  9. package/dist/CarouselWidget-BJvLjY7H.mjs +436 -0
  10. package/dist/CarouselWidget-BJvLjY7H.mjs.map +1 -0
  11. package/dist/CarouselWidget-Bdn0LVXT.cjs +453 -0
  12. package/dist/CarouselWidget-Bdn0LVXT.cjs.map +1 -0
  13. package/dist/CatchUpWidget-CZMptzf8.cjs +264 -0
  14. package/dist/CatchUpWidget-CZMptzf8.cjs.map +1 -0
  15. package/dist/CatchUpWidget-vEP5scfy.mjs +247 -0
  16. package/dist/CatchUpWidget-vEP5scfy.mjs.map +1 -0
  17. package/dist/ChartWidget-B3GcdLqH.mjs +415 -0
  18. package/dist/ChartWidget-B3GcdLqH.mjs.map +1 -0
  19. package/dist/ChartWidget-DQB7K6S0.cjs +432 -0
  20. package/dist/ChartWidget-DQB7K6S0.cjs.map +1 -0
  21. package/dist/ContainerWidget-B-4hcPKJ.mjs +44 -0
  22. package/dist/ContainerWidget-B-4hcPKJ.mjs.map +1 -0
  23. package/dist/ContainerWidget-CHa4gVvV.cjs +2 -0
  24. package/dist/ContainerWidget-rGsakG66.cjs +51 -0
  25. package/dist/ContainerWidget-rGsakG66.cjs.map +1 -0
  26. package/dist/EmbedWidget-ChLVA_9a.mjs +156 -0
  27. package/dist/EmbedWidget-ChLVA_9a.mjs.map +1 -0
  28. package/dist/EmbedWidget-mv5ce32s.cjs +173 -0
  29. package/dist/EmbedWidget-mv5ce32s.cjs.map +1 -0
  30. package/dist/ImageWidget-DFt4mJJx.cjs +167 -0
  31. package/dist/ImageWidget-DFt4mJJx.cjs.map +1 -0
  32. package/dist/ImageWidget-DMubcgat.mjs +150 -0
  33. package/dist/ImageWidget-DMubcgat.mjs.map +1 -0
  34. package/dist/LayoutWidget-BEi0yFpz.mjs +107 -0
  35. package/dist/LayoutWidget-BEi0yFpz.mjs.map +1 -0
  36. package/dist/LayoutWidget-C4-ka0Ge.cjs +114 -0
  37. package/dist/LayoutWidget-C4-ka0Ge.cjs.map +1 -0
  38. package/dist/LayoutWidget-D4haEqTQ.cjs +2 -0
  39. package/dist/ListWidget-C-jcsCb4.mjs +901 -0
  40. package/dist/ListWidget-C-jcsCb4.mjs.map +1 -0
  41. package/dist/ListWidget-RHQ2fQXa.cjs +919 -0
  42. package/dist/ListWidget-RHQ2fQXa.cjs.map +1 -0
  43. package/dist/MediaRenderer-CcJvyOJ1.cjs +181 -0
  44. package/dist/MediaRenderer-CcJvyOJ1.cjs.map +1 -0
  45. package/dist/MediaRenderer-Uq90PZcY.mjs +163 -0
  46. package/dist/MediaRenderer-Uq90PZcY.mjs.map +1 -0
  47. package/dist/MySiteWidget-A_cYFgxJ.cjs +279 -0
  48. package/dist/MySiteWidget-A_cYFgxJ.cjs.map +1 -0
  49. package/dist/MySiteWidget-DariqlfU.mjs +262 -0
  50. package/dist/MySiteWidget-DariqlfU.mjs.map +1 -0
  51. package/dist/NestedWidget-CNkwGwhM.mjs +330 -0
  52. package/dist/NestedWidget-CNkwGwhM.mjs.map +1 -0
  53. package/dist/NestedWidget-ofk9O-t1.cjs +346 -0
  54. package/dist/NestedWidget-ofk9O-t1.cjs.map +1 -0
  55. package/dist/QuickShareWidget-DWvgEy74.cjs +262 -0
  56. package/dist/QuickShareWidget-DWvgEy74.cjs.map +1 -0
  57. package/dist/QuickShareWidget-DXq5lcDn.mjs +245 -0
  58. package/dist/QuickShareWidget-DXq5lcDn.mjs.map +1 -0
  59. package/dist/RecentActivityWidget-BvncOdax.mjs +391 -0
  60. package/dist/RecentActivityWidget-BvncOdax.mjs.map +1 -0
  61. package/dist/RecentActivityWidget-wODng8dt.cjs +408 -0
  62. package/dist/RecentActivityWidget-wODng8dt.cjs.map +1 -0
  63. package/dist/RegistryContext-CscXrsRa.mjs +36 -0
  64. package/dist/RegistryContext-CscXrsRa.mjs.map +1 -0
  65. package/dist/RegistryContext-xjea4xVV.cjs +55 -0
  66. package/dist/RegistryContext-xjea4xVV.cjs.map +1 -0
  67. package/dist/ScreenRenderer-D52h5VQr.mjs +76 -0
  68. package/dist/ScreenRenderer-D52h5VQr.mjs.map +1 -0
  69. package/dist/ScreenRenderer-DZAxcg7x.cjs +82 -0
  70. package/dist/ScreenRenderer-DZAxcg7x.cjs.map +1 -0
  71. package/dist/ScreenRendererContext-CK1IsFTn.cjs +36 -0
  72. package/dist/ScreenRendererContext-CK1IsFTn.cjs.map +1 -0
  73. package/dist/ScreenRendererContext-DKcdcmiT.mjs +23 -0
  74. package/dist/ScreenRendererContext-DKcdcmiT.mjs.map +1 -0
  75. package/dist/SpacerWidget-Bgz6701y.cjs +60 -0
  76. package/dist/SpacerWidget-Bgz6701y.cjs.map +1 -0
  77. package/dist/SpacerWidget-DHGoW6eu.mjs +43 -0
  78. package/dist/SpacerWidget-DHGoW6eu.mjs.map +1 -0
  79. package/dist/TableWidget--yLJTqoW.mjs +438 -0
  80. package/dist/TableWidget--yLJTqoW.mjs.map +1 -0
  81. package/dist/TableWidget-TfQfFHft.cjs +455 -0
  82. package/dist/TableWidget-TfQfFHft.cjs.map +1 -0
  83. package/dist/TextWidget-CL2H3vei.mjs +129 -0
  84. package/dist/TextWidget-CL2H3vei.mjs.map +1 -0
  85. package/dist/TextWidget-D6Ug_2Z1.cjs +146 -0
  86. package/dist/TextWidget-D6Ug_2Z1.cjs.map +1 -0
  87. package/dist/ToDoWidget-D8YIsl7y.mjs +274 -0
  88. package/dist/ToDoWidget-D8YIsl7y.mjs.map +1 -0
  89. package/dist/ToDoWidget-Dvs0GDkx.cjs +291 -0
  90. package/dist/ToDoWidget-Dvs0GDkx.cjs.map +1 -0
  91. package/dist/VideoWidget-D6C_jHOF.mjs +192 -0
  92. package/dist/VideoWidget-D6C_jHOF.mjs.map +1 -0
  93. package/dist/VideoWidget-SODAPZO4.cjs +209 -0
  94. package/dist/VideoWidget-SODAPZO4.cjs.map +1 -0
  95. package/dist/chunk-CZWwpsFl.cjs +43 -0
  96. package/dist/components/index.cjs +14 -0
  97. package/dist/components/index.cjs.map +1 -0
  98. package/dist/components/index.d.cts +11 -0
  99. package/dist/components/index.d.cts.map +1 -0
  100. package/dist/components/index.d.mts +11 -0
  101. package/dist/components/index.d.mts.map +1 -0
  102. package/dist/components/index.mjs +11 -0
  103. package/dist/components/index.mjs.map +1 -0
  104. package/dist/contexts/index.cjs +8 -0
  105. package/dist/contexts/index.d.cts +77 -0
  106. package/dist/contexts/index.d.cts.map +1 -0
  107. package/dist/contexts/index.d.mts +77 -0
  108. package/dist/contexts/index.d.mts.map +1 -0
  109. package/dist/contexts/index.mjs +3 -0
  110. package/dist/core/index.cjs +51 -0
  111. package/dist/core/index.d.cts +77 -0
  112. package/dist/core/index.d.cts.map +1 -0
  113. package/dist/core/index.d.mts +77 -0
  114. package/dist/core/index.d.mts.map +1 -0
  115. package/dist/core/index.mjs +4 -0
  116. package/dist/error-state-DErSxZwH.mjs +18 -0
  117. package/dist/error-state-DErSxZwH.mjs.map +1 -0
  118. package/dist/error-state-DSzVUtEl.cjs +24 -0
  119. package/dist/error-state-DSzVUtEl.cjs.map +1 -0
  120. package/dist/fields-4FC6JUNH.d.mts +2 -0
  121. package/dist/fields-DjLFJmz6.d.cts +2 -0
  122. package/dist/fields-wPOk-SmZ.mjs +2 -0
  123. package/dist/rolldown-runtime-wcPFST8Q.mjs +13 -0
  124. package/dist/scroll-arrows-BZIlsE_x.cjs +35 -0
  125. package/dist/scroll-arrows-BZIlsE_x.cjs.map +1 -0
  126. package/dist/scroll-arrows-BevCYRNT.mjs +29 -0
  127. package/dist/scroll-arrows-BevCYRNT.mjs.map +1 -0
  128. package/dist/ui/index.cjs +101 -0
  129. package/dist/ui/index.d.cts +15 -0
  130. package/dist/ui/index.d.cts.map +1 -0
  131. package/dist/ui/index.d.mts +15 -0
  132. package/dist/ui/index.d.mts.map +1 -0
  133. package/dist/ui/index.mjs +3 -0
  134. package/dist/widgets/index.cjs +92 -0
  135. package/dist/widgets/index.cjs.map +1 -0
  136. package/dist/widgets/index.d.cts +689 -0
  137. package/dist/widgets/index.d.cts.map +1 -0
  138. package/dist/widgets/index.d.mts +689 -0
  139. package/dist/widgets/index.d.mts.map +1 -0
  140. package/dist/widgets/index.mjs +46 -0
  141. package/dist/widgets/index.mjs.map +1 -0
  142. package/package.json +104 -0
  143. package/src/styles/globals.css +23 -0
  144. package/src/styles/index.ts +1 -0
  145. package/tailwind.config.ts +61 -0
@@ -0,0 +1,209 @@
1
+ const require_chunk = require("./chunk-CZWwpsFl.cjs");
2
+ const require_MediaRenderer = require("./MediaRenderer-CcJvyOJ1.cjs");
3
+ let _fluid_app_portal_core_registries = require("@fluid-app/portal-core/registries");
4
+ let react_jsx_runtime = require("react/jsx-runtime");
5
+ //#region src/widgets/VideoWidget.tsx
6
+ var VideoWidget_exports = /* @__PURE__ */ require_chunk.__exportAll({
7
+ VideoWidget: () => VideoWidget,
8
+ videoWidgetPropertySchema: () => videoWidgetPropertySchema
9
+ });
10
+ function VideoWidget({ src = "", poster = "", borderRadius = "md", verticalSizing = "auto", fixedHeight = "200px", displayFit = "cover", focusPoint, controls = true, autoplay = false, loop = false, muted = false, resource, useCustomUrl }) {
11
+ const effectiveSrc = useCustomUrl ? src : resource?.videoUrl ?? src;
12
+ const effectivePoster = useCustomUrl ? poster : resource?.imageUrl ?? poster;
13
+ const isFixed = verticalSizing === "fixed";
14
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
15
+ className: `relative w-full overflow-hidden rounded-${borderRadius}`,
16
+ style: isFixed ? { height: fixedHeight } : void 0,
17
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MediaRenderer.MediaRenderer, {
18
+ mediaType: "video",
19
+ src: effectiveSrc,
20
+ poster: effectivePoster,
21
+ objectFit: isFixed ? displayFit : void 0,
22
+ focusPoint: isFixed ? focusPoint : void 0,
23
+ controls,
24
+ autoplay,
25
+ loop,
26
+ muted
27
+ })
28
+ });
29
+ }
30
+ const videoWidgetPropertySchema = {
31
+ widgetType: "VideoWidget",
32
+ displayName: "Video",
33
+ tabsConfig: [{
34
+ id: "styling",
35
+ label: "Styling"
36
+ }, {
37
+ id: "behavior",
38
+ label: "Behavior"
39
+ }],
40
+ fields: [
41
+ {
42
+ key: "resource",
43
+ label: "Select Video",
44
+ type: "resource",
45
+ description: "Browse and select a video",
46
+ allowedTypes: ["Medium"],
47
+ tab: "styling",
48
+ group: "Content"
49
+ },
50
+ {
51
+ key: "useCustomUrl",
52
+ label: "Use Custom URL",
53
+ type: "boolean",
54
+ description: "Enter a custom video URL instead of selecting media",
55
+ defaultValue: false,
56
+ tab: "styling",
57
+ group: "Content"
58
+ },
59
+ {
60
+ key: "src",
61
+ label: "Video URL",
62
+ type: "text",
63
+ description: "The source URL of the video",
64
+ defaultValue: "",
65
+ tab: "styling",
66
+ group: "Content",
67
+ requiresKeyToBeTrue: "useCustomUrl"
68
+ },
69
+ {
70
+ key: "poster",
71
+ label: "Poster Image URL",
72
+ type: "text",
73
+ description: "Thumbnail image displayed before video plays",
74
+ defaultValue: "",
75
+ tab: "styling",
76
+ group: "Content",
77
+ requiresKeyToBeTrue: "useCustomUrl"
78
+ },
79
+ (0, _fluid_app_portal_core_registries.getBorderRadiusField)({
80
+ key: "borderRadius",
81
+ label: "Border Radius",
82
+ description: "Border radius for the calendar container",
83
+ defaultValue: "md",
84
+ tab: "styling",
85
+ group: "Design"
86
+ }),
87
+ {
88
+ key: "verticalSizing",
89
+ label: "Vertical Sizing",
90
+ type: "buttonGroup",
91
+ description: "How the video height is determined",
92
+ options: [{
93
+ label: "Auto",
94
+ value: "auto"
95
+ }, {
96
+ label: "Fixed",
97
+ value: "fixed"
98
+ }],
99
+ defaultValue: "auto",
100
+ tab: "styling",
101
+ group: "Design"
102
+ },
103
+ (0, _fluid_app_portal_core_registries.getHeightField)({
104
+ key: "fixedHeight",
105
+ label: "Height",
106
+ description: "Fixed height of the video container",
107
+ min: 10,
108
+ max: 1200,
109
+ step: 10,
110
+ defaultValue: "200px",
111
+ tab: "styling",
112
+ group: "Design",
113
+ requiresKeyValue: {
114
+ key: "verticalSizing",
115
+ value: "fixed"
116
+ }
117
+ }),
118
+ {
119
+ key: "displayFit",
120
+ label: "Display Fit",
121
+ type: "buttonGroup",
122
+ description: "How the video fills its container",
123
+ options: [{
124
+ label: "Cover",
125
+ value: "cover"
126
+ }, {
127
+ label: "Contain",
128
+ value: "contain"
129
+ }],
130
+ defaultValue: "cover",
131
+ tab: "styling",
132
+ group: "Design",
133
+ requiresKeyValue: {
134
+ key: "verticalSizing",
135
+ value: "fixed"
136
+ }
137
+ },
138
+ {
139
+ key: "focusPoint",
140
+ label: "Focus Point",
141
+ type: "contentPosition",
142
+ description: "The focal point of the video within its container",
143
+ defaultValue: "center",
144
+ tab: "styling",
145
+ group: "Design",
146
+ requiresKeyValue: {
147
+ key: "verticalSizing",
148
+ value: "fixed"
149
+ }
150
+ },
151
+ {
152
+ key: "controls",
153
+ label: "Show Controls",
154
+ type: "boolean",
155
+ description: "Display video playback controls",
156
+ defaultValue: true,
157
+ tab: "behavior",
158
+ group: "Behavior"
159
+ },
160
+ {
161
+ key: "autoplay",
162
+ label: "Autoplay",
163
+ type: "boolean",
164
+ description: "Automatically start playing the video",
165
+ defaultValue: false,
166
+ tab: "behavior",
167
+ group: "Behavior"
168
+ },
169
+ {
170
+ key: "loop",
171
+ label: "Loop",
172
+ type: "boolean",
173
+ description: "Repeat the video when it ends",
174
+ defaultValue: false,
175
+ tab: "behavior",
176
+ group: "Behavior"
177
+ },
178
+ {
179
+ key: "muted",
180
+ label: "Muted",
181
+ type: "boolean",
182
+ description: "Start with audio muted",
183
+ defaultValue: false,
184
+ tab: "behavior",
185
+ group: "Behavior"
186
+ }
187
+ ]
188
+ };
189
+ //#endregion
190
+ Object.defineProperty(exports, "VideoWidget", {
191
+ enumerable: true,
192
+ get: function() {
193
+ return VideoWidget;
194
+ }
195
+ });
196
+ Object.defineProperty(exports, "VideoWidget_exports", {
197
+ enumerable: true,
198
+ get: function() {
199
+ return VideoWidget_exports;
200
+ }
201
+ });
202
+ Object.defineProperty(exports, "videoWidgetPropertySchema", {
203
+ enumerable: true,
204
+ get: function() {
205
+ return videoWidgetPropertySchema;
206
+ }
207
+ });
208
+
209
+ //# sourceMappingURL=VideoWidget-SODAPZO4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoWidget-SODAPZO4.cjs","names":["MediaRenderer"],"sources":["../src/widgets/VideoWidget.tsx"],"sourcesContent":["import type { ComponentProps } from \"react\";\nimport type React from \"react\";\nimport {\n getBorderRadiusField,\n getHeightField,\n type WidgetPropertySchema,\n} from \"@fluid-app/portal-core/registries\";\nimport type {\n BorderRadiusOptions,\n ShareableItem,\n} from \"@fluid-app/portal-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): React.JSX.Element {\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 getHeightField({\n key: \"fixedHeight\",\n label: \"Height\",\n description: \"Fixed height of the video container\",\n min: 10,\n max: 1200,\n step: 10,\n defaultValue: \"200px\",\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"],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __exportAll = (all, no_symbols) => {
9
+ let target = {};
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: true
13
+ });
14
+ if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
15
+ return target;
16
+ };
17
+ var __copyProps = (to, from, except, desc) => {
18
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
19
+ key = keys[i];
20
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
21
+ get: ((k) => from[k]).bind(null, key),
22
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
23
+ });
24
+ }
25
+ return to;
26
+ };
27
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
+ value: mod,
29
+ enumerable: true
30
+ }) : target, mod));
31
+ //#endregion
32
+ Object.defineProperty(exports, "__exportAll", {
33
+ enumerable: true,
34
+ get: function() {
35
+ return __exportAll;
36
+ }
37
+ });
38
+ Object.defineProperty(exports, "__toESM", {
39
+ enumerable: true,
40
+ get: function() {
41
+ return __toESM;
42
+ }
43
+ });
@@ -0,0 +1,14 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ require("../chunk-CZWwpsFl.cjs");
3
+ const require_error_state = require("../error-state-DSzVUtEl.cjs");
4
+ let clsx = require("clsx");
5
+ let tailwind_merge = require("tailwind-merge");
6
+ //#region src/lib/utils.ts
7
+ function cn(...inputs) {
8
+ return (0, tailwind_merge.twMerge)((0, clsx.clsx)(inputs));
9
+ }
10
+ //#endregion
11
+ exports.ErrorState = require_error_state.ErrorState;
12
+ exports.cn = cn;
13
+
14
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../src/lib/utils.ts"],"sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: readonly ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n"],"mappings":";;;;;;AAGA,SAAgB,GAAG,GAAG,QAAuC;AAC3D,SAAA,GAAA,eAAA,UAAA,GAAA,KAAA,MAAoB,OAAO,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { ClassValue } from "clsx";
3
+
4
+ //#region src/components/error-state.d.ts
5
+ declare function ErrorState(): React.JSX.Element;
6
+ //#endregion
7
+ //#region src/lib/utils.d.ts
8
+ declare function cn(...inputs: readonly ClassValue[]): string;
9
+ //#endregion
10
+ export { ErrorState, cn };
11
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/components/error-state.tsx","../../src/lib/utils.ts"],"mappings":";;;;iBACgB,UAAA,CAAA,GAAc,KAAA,CAAM,GAAA,CAAI,OAAA;;;iBCExB,EAAA,CAAA,GAAM,MAAA,WAAiB,UAAA"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { ClassValue } from "clsx";
3
+
4
+ //#region src/components/error-state.d.ts
5
+ declare function ErrorState(): React.JSX.Element;
6
+ //#endregion
7
+ //#region src/lib/utils.d.ts
8
+ declare function cn(...inputs: readonly ClassValue[]): string;
9
+ //#endregion
10
+ export { ErrorState, cn };
11
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/components/error-state.tsx","../../src/lib/utils.ts"],"mappings":";;;;iBACgB,UAAA,CAAA,GAAc,KAAA,CAAM,GAAA,CAAI,OAAA;;;iBCExB,EAAA,CAAA,GAAM,MAAA,WAAiB,UAAA"}
@@ -0,0 +1,11 @@
1
+ import { t as ErrorState } from "../error-state-DErSxZwH.mjs";
2
+ import { clsx } from "clsx";
3
+ import { twMerge } from "tailwind-merge";
4
+ //#region src/lib/utils.ts
5
+ function cn(...inputs) {
6
+ return twMerge(clsx(inputs));
7
+ }
8
+ //#endregion
9
+ export { ErrorState, cn };
10
+
11
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/lib/utils.ts"],"sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: readonly ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n"],"mappings":";;;;AAGA,SAAgB,GAAG,GAAG,QAAuC;AAC3D,QAAO,QAAQ,KAAK,OAAO,CAAC"}
@@ -0,0 +1,8 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_RegistryContext = require("../RegistryContext-xjea4xVV.cjs");
3
+ const require_ScreenRendererContext = require("../ScreenRendererContext-CK1IsFTn.cjs");
4
+ exports.RegistryContext = require_RegistryContext.RegistryContext;
5
+ exports.RegistryProvider = require_RegistryContext.RegistryProvider;
6
+ exports.ScreenRendererContext = require_ScreenRendererContext.ScreenRendererContext;
7
+ exports.useRegistry = require_RegistryContext.useRegistry;
8
+ exports.useScreenRenderer = require_ScreenRendererContext.useScreenRenderer;
@@ -0,0 +1,77 @@
1
+ import React, { ComponentType, ReactNode } from "react";
2
+ import { WidgetSchema } from "@fluid-app/portal-core/types";
3
+
4
+ //#region src/contexts/RegistryContext.d.ts
5
+ /**
6
+ * Base props interface for widget components.
7
+ * All widgets receive at least these props from the ScreenRenderer.
8
+ */
9
+ interface WidgetBaseProps {
10
+ readonly widget: WidgetSchema;
11
+ readonly path?: readonly number[];
12
+ }
13
+ /**
14
+ * Generic widget component type.
15
+ * Widgets receive WidgetBaseProps and may have additional props.
16
+ */
17
+ type WidgetComponent<P extends WidgetBaseProps = WidgetBaseProps> = ComponentType<P>;
18
+ /**
19
+ * Registry mapping widget type names to their components.
20
+ * The keys are widget type strings (e.g., "TextWidget", "ButtonWidget").
21
+ * Using WidgetComponent for the value type provides better type safety than `any`.
22
+ */
23
+ type WidgetRegistry = Readonly<Record<string, WidgetComponent<any>>>;
24
+ /**
25
+ * Context for providing the widget registry to all components in the tree.
26
+ * This eliminates prop drilling and makes the registry accessible anywhere.
27
+ *
28
+ * Default to undefined - registry must be provided by a RegistryProvider.
29
+ */
30
+ declare const RegistryContext: React.Context<WidgetRegistry | undefined>;
31
+ interface RegistryProviderProps {
32
+ registry?: WidgetRegistry;
33
+ children: ReactNode;
34
+ }
35
+ /**
36
+ * Provider component that makes the widget registry available to all descendants.
37
+ * A registry must be provided either via props or by nesting within another RegistryProvider.
38
+ */
39
+ declare function RegistryProvider({
40
+ registry,
41
+ children
42
+ }: RegistryProviderProps): React.JSX.Element;
43
+ /**
44
+ * Hook to access the widget registry from anywhere in the component tree.
45
+ * Must be used within a RegistryProvider that has a registry prop.
46
+ */
47
+ declare function useRegistry(): WidgetRegistry;
48
+ //#endregion
49
+ //#region src/contexts/ScreenRendererContext.d.ts
50
+ /**
51
+ * Props that any ScreenRenderer must accept.
52
+ * This is the minimal interface used by container widgets (e.g. LayoutWidget)
53
+ * to render their children.
54
+ */
55
+ interface ScreenRendererComponentProps {
56
+ screen: WidgetSchema[];
57
+ registry?: WidgetRegistry;
58
+ className?: string;
59
+ }
60
+ /**
61
+ * Context for providing an alternative ScreenRenderer component.
62
+ *
63
+ * This allows packages like portal-builder to inject their own ScreenRenderer
64
+ * (with edit mode, drag-and-drop, etc.) so that container widgets in portal-widgets
65
+ * use the richer renderer instead of the basic view-only one.
66
+ *
67
+ * Default is undefined — container widgets fall back to the local ScreenRenderer import.
68
+ */
69
+ declare const ScreenRendererContext: React.Context<ComponentType<ScreenRendererComponentProps> | undefined>;
70
+ /**
71
+ * Hook to get the ScreenRenderer component from context.
72
+ * Returns undefined if no override has been provided.
73
+ */
74
+ declare function useScreenRenderer(): ComponentType<ScreenRendererComponentProps> | undefined;
75
+ //#endregion
76
+ export { RegistryContext, RegistryProvider, type RegistryProviderProps, type ScreenRendererComponentProps, ScreenRendererContext, type WidgetBaseProps, type WidgetComponent, type WidgetRegistry, useRegistry, useScreenRenderer };
77
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/contexts/RegistryContext.tsx","../../src/contexts/ScreenRendererContext.tsx"],"mappings":";;;;;;AAYA;;UAAiB,eAAA;EAAA,SACN,MAAA,EAAQ,YAAA;EAAA,SACR,IAAA;AAAA;;;;AAOX;KAAY,eAAA,WAA0B,eAAA,GAAkB,eAAA,IACtD,aAAA,CAAc,CAAA;;;;;;KAOJ,cAAA,GAAiB,QAAA,CAE3B,MAAA,SAAe,eAAA;;;;;;;cASJ,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,cAAA;AAAA,UAG3B,qBAAA;EACf,QAAA,GAAW,cAAA;EACX,QAAA,EAAU,SAAA;AAAA;;;;;iBAOI,gBAAA,CAAA;EACd,QAAA;EACA;AAAA,GACC,qBAAA,GAAwB,KAAA,CAAM,GAAA,CAAI,OAAA;;;;;iBAsBrB,WAAA,CAAA,GAAe,cAAA;;;;AAjE/B;;;;UCHiB,4BAAA;EACf,MAAA,EAAQ,YAAA;EACR,QAAA,GAAW,cAAA;EACX,SAAA;AAAA;ADSF;;;;;;;;;AAAA,cCGa,qBAAA,EAAuB,KAAA,CAAM,OAAA,CACxC,aAAA,CAAc,4BAAA;;;;;iBASA,iBAAA,CAAA,GACZ,aAAA,CAAc,4BAAA"}
@@ -0,0 +1,77 @@
1
+ import React, { ComponentType, ReactNode } from "react";
2
+ import { WidgetSchema } from "@fluid-app/portal-core/types";
3
+
4
+ //#region src/contexts/RegistryContext.d.ts
5
+ /**
6
+ * Base props interface for widget components.
7
+ * All widgets receive at least these props from the ScreenRenderer.
8
+ */
9
+ interface WidgetBaseProps {
10
+ readonly widget: WidgetSchema;
11
+ readonly path?: readonly number[];
12
+ }
13
+ /**
14
+ * Generic widget component type.
15
+ * Widgets receive WidgetBaseProps and may have additional props.
16
+ */
17
+ type WidgetComponent<P extends WidgetBaseProps = WidgetBaseProps> = ComponentType<P>;
18
+ /**
19
+ * Registry mapping widget type names to their components.
20
+ * The keys are widget type strings (e.g., "TextWidget", "ButtonWidget").
21
+ * Using WidgetComponent for the value type provides better type safety than `any`.
22
+ */
23
+ type WidgetRegistry = Readonly<Record<string, WidgetComponent<any>>>;
24
+ /**
25
+ * Context for providing the widget registry to all components in the tree.
26
+ * This eliminates prop drilling and makes the registry accessible anywhere.
27
+ *
28
+ * Default to undefined - registry must be provided by a RegistryProvider.
29
+ */
30
+ declare const RegistryContext: React.Context<WidgetRegistry | undefined>;
31
+ interface RegistryProviderProps {
32
+ registry?: WidgetRegistry;
33
+ children: ReactNode;
34
+ }
35
+ /**
36
+ * Provider component that makes the widget registry available to all descendants.
37
+ * A registry must be provided either via props or by nesting within another RegistryProvider.
38
+ */
39
+ declare function RegistryProvider({
40
+ registry,
41
+ children
42
+ }: RegistryProviderProps): React.JSX.Element;
43
+ /**
44
+ * Hook to access the widget registry from anywhere in the component tree.
45
+ * Must be used within a RegistryProvider that has a registry prop.
46
+ */
47
+ declare function useRegistry(): WidgetRegistry;
48
+ //#endregion
49
+ //#region src/contexts/ScreenRendererContext.d.ts
50
+ /**
51
+ * Props that any ScreenRenderer must accept.
52
+ * This is the minimal interface used by container widgets (e.g. LayoutWidget)
53
+ * to render their children.
54
+ */
55
+ interface ScreenRendererComponentProps {
56
+ screen: WidgetSchema[];
57
+ registry?: WidgetRegistry;
58
+ className?: string;
59
+ }
60
+ /**
61
+ * Context for providing an alternative ScreenRenderer component.
62
+ *
63
+ * This allows packages like portal-builder to inject their own ScreenRenderer
64
+ * (with edit mode, drag-and-drop, etc.) so that container widgets in portal-widgets
65
+ * use the richer renderer instead of the basic view-only one.
66
+ *
67
+ * Default is undefined — container widgets fall back to the local ScreenRenderer import.
68
+ */
69
+ declare const ScreenRendererContext: React.Context<ComponentType<ScreenRendererComponentProps> | undefined>;
70
+ /**
71
+ * Hook to get the ScreenRenderer component from context.
72
+ * Returns undefined if no override has been provided.
73
+ */
74
+ declare function useScreenRenderer(): ComponentType<ScreenRendererComponentProps> | undefined;
75
+ //#endregion
76
+ export { RegistryContext, RegistryProvider, type RegistryProviderProps, type ScreenRendererComponentProps, ScreenRendererContext, type WidgetBaseProps, type WidgetComponent, type WidgetRegistry, useRegistry, useScreenRenderer };
77
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/contexts/RegistryContext.tsx","../../src/contexts/ScreenRendererContext.tsx"],"mappings":";;;;;;AAYA;;UAAiB,eAAA;EAAA,SACN,MAAA,EAAQ,YAAA;EAAA,SACR,IAAA;AAAA;;;;AAOX;KAAY,eAAA,WAA0B,eAAA,GAAkB,eAAA,IACtD,aAAA,CAAc,CAAA;;;;;;KAOJ,cAAA,GAAiB,QAAA,CAE3B,MAAA,SAAe,eAAA;;;;;;;cASJ,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,cAAA;AAAA,UAG3B,qBAAA;EACf,QAAA,GAAW,cAAA;EACX,QAAA,EAAU,SAAA;AAAA;;;;;iBAOI,gBAAA,CAAA;EACd,QAAA;EACA;AAAA,GACC,qBAAA,GAAwB,KAAA,CAAM,GAAA,CAAI,OAAA;;;;;iBAsBrB,WAAA,CAAA,GAAe,cAAA;;;;AAjE/B;;;;UCHiB,4BAAA;EACf,MAAA,EAAQ,YAAA;EACR,QAAA,GAAW,cAAA;EACX,SAAA;AAAA;ADSF;;;;;;;;;AAAA,cCGa,qBAAA,EAAuB,KAAA,CAAM,OAAA,CACxC,aAAA,CAAc,4BAAA;;;;;iBASA,iBAAA,CAAA,GACZ,aAAA,CAAc,4BAAA"}
@@ -0,0 +1,3 @@
1
+ import { n as RegistryProvider, r as useRegistry, t as RegistryContext } from "../RegistryContext-CscXrsRa.mjs";
2
+ import { n as useScreenRenderer, t as ScreenRendererContext } from "../ScreenRendererContext-DKcdcmiT.mjs";
3
+ export { RegistryContext, RegistryProvider, ScreenRendererContext, useRegistry, useScreenRenderer };
@@ -0,0 +1,51 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ require("../chunk-CZWwpsFl.cjs");
3
+ const require_MediaRenderer = require("../MediaRenderer-CcJvyOJ1.cjs");
4
+ const require_ScreenRenderer = require("../ScreenRenderer-DZAxcg7x.cjs");
5
+ let _fluid_app_portal_core_registries = require("@fluid-app/portal-core/registries");
6
+ exports.MediaRenderer = require_MediaRenderer.MediaRenderer;
7
+ exports.ScreenRenderer = require_ScreenRenderer.ScreenRenderer;
8
+ Object.defineProperty(exports, "gapValues", {
9
+ enumerable: true,
10
+ get: function() {
11
+ return _fluid_app_portal_core_registries.gapValues;
12
+ }
13
+ });
14
+ Object.defineProperty(exports, "getBorderRadiusField", {
15
+ enumerable: true,
16
+ get: function() {
17
+ return _fluid_app_portal_core_registries.getBorderRadiusField;
18
+ }
19
+ });
20
+ Object.defineProperty(exports, "getButtonSizeField", {
21
+ enumerable: true,
22
+ get: function() {
23
+ return _fluid_app_portal_core_registries.getButtonSizeField;
24
+ }
25
+ });
26
+ Object.defineProperty(exports, "getColorField", {
27
+ enumerable: true,
28
+ get: function() {
29
+ return _fluid_app_portal_core_registries.getColorField;
30
+ }
31
+ });
32
+ Object.defineProperty(exports, "getFontSizeField", {
33
+ enumerable: true,
34
+ get: function() {
35
+ return _fluid_app_portal_core_registries.getFontSizeField;
36
+ }
37
+ });
38
+ Object.defineProperty(exports, "getGapField", {
39
+ enumerable: true,
40
+ get: function() {
41
+ return _fluid_app_portal_core_registries.getGapField;
42
+ }
43
+ });
44
+ exports.getMediaPropsFromShareable = require_MediaRenderer.getMediaPropsFromShareable;
45
+ exports.getMediaPropsFromWidgetSchema = require_MediaRenderer.getMediaPropsFromWidgetSchema;
46
+ Object.defineProperty(exports, "getPaddingField", {
47
+ enumerable: true,
48
+ get: function() {
49
+ return _fluid_app_portal_core_registries.getPaddingField;
50
+ }
51
+ });
@@ -0,0 +1,77 @@
1
+ import { a as getFontSizeField, i as getColorField, n as getBorderRadiusField, o as getGapField, r as getButtonSizeField, s as getPaddingField, t as gapValues } from "../fields-DjLFJmz6.cjs";
2
+ import React, { ComponentType } from "react";
3
+ import { ShareableItem, TypedWidgetSchema, WidgetSchema } from "@fluid-app/portal-core/types";
4
+
5
+ //#region src/core/ScreenRenderer.d.ts
6
+ interface ScreenRendererProps<T extends Record<string, ComponentType<any>>> {
7
+ /** Array of widget schemas to render */
8
+ screen: TypedWidgetSchema<T>[] | WidgetSchema[];
9
+ /** Widget registry mapping type names to components */
10
+ registry?: T;
11
+ /** Container widgets (like LayoutWidget) receive these additional props */
12
+ containerWidgetTypes?: string[];
13
+ /** Additional CSS classes for the wrapper div */
14
+ className?: string;
15
+ }
16
+ /**
17
+ * ScreenRenderer - View-only component for rendering widget screens.
18
+ *
19
+ * This is a simplified version designed for the SDK that only handles
20
+ * rendering widgets without edit mode or drag-and-drop functionality.
21
+ *
22
+ * Features:
23
+ * - Static rendering of widgets
24
+ * - Registry context: No prop drilling for widget registry
25
+ * - Container widget support with path tracking
26
+ *
27
+ * Usage:
28
+ * ```tsx
29
+ * import { ScreenRenderer } from '@fluid-app/portal-widgets/core';
30
+ * import { WIDGET_REGISTRY } from '@fluid-app/portal-widgets/widgets';
31
+ *
32
+ * <ScreenRenderer
33
+ * screen={widgets}
34
+ * registry={WIDGET_REGISTRY}
35
+ * />
36
+ * ```
37
+ */
38
+ declare function ScreenRenderer<T extends Record<string, ComponentType<any>>>(props: ScreenRendererProps<T>): React.JSX.Element;
39
+ //#endregion
40
+ //#region src/components/MediaRenderer.d.ts
41
+ type MediaRendererProps = {
42
+ src?: string | undefined;
43
+ alt?: string | undefined;
44
+ objectFit?: "contain" | "cover" | "fill" | "none" | undefined;
45
+ focusPoint?: string | undefined;
46
+ mediaType?: "image" | "video" | undefined;
47
+ poster?: string | undefined;
48
+ autoplay?: boolean | undefined;
49
+ loop?: boolean | undefined;
50
+ muted?: boolean | undefined;
51
+ controls?: boolean | undefined;
52
+ };
53
+ declare function MediaRenderer({
54
+ src,
55
+ alt,
56
+ objectFit,
57
+ focusPoint,
58
+ mediaType,
59
+ poster,
60
+ autoplay,
61
+ loop,
62
+ muted,
63
+ controls
64
+ }: MediaRendererProps): React.JSX.Element;
65
+ /**
66
+ * Converts a ShareableItem to MediaRenderer props.
67
+ * Replaces the createWidgetFromShareable → ScreenRenderer pattern.
68
+ */
69
+ declare function getMediaPropsFromShareable(item: ShareableItem): MediaRendererProps;
70
+ /**
71
+ * Extracts media props from an ImageWidget/VideoWidget schema.
72
+ * Used by CarouselWidget for slide.content rendering.
73
+ */
74
+ declare function getMediaPropsFromWidgetSchema(schema: WidgetSchema): MediaRendererProps;
75
+ //#endregion
76
+ export { MediaRenderer, type MediaRendererProps, ScreenRenderer, type ScreenRendererProps, gapValues, getBorderRadiusField, getButtonSizeField, getColorField, getFontSizeField, getGapField, getMediaPropsFromShareable, getMediaPropsFromWidgetSchema, getPaddingField };
77
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/core/ScreenRenderer.tsx","../../src/components/MediaRenderer.tsx"],"mappings":";;;;;UAWiB,mBAAA,WAEL,MAAA,SAAe,aAAA;;EAGzB,MAAA,EAAQ,iBAAA,CAAkB,CAAA,MAAO,YAAA;EALlB;EAOf,QAAA,GAAW,CAAA;;EAEX,oBAAA;;EAEA,SAAA;AAAA;;;;;;;;;;;;;;;;;AAiGF;;;;;;iBAAgB,cAAA,WAEJ,MAAA,SAAe,aAAA,OAAA,CACzB,KAAA,EAAO,mBAAA,CAAoB,CAAA,IAAK,KAAA,CAAM,GAAA,CAAI,OAAA;;;KCrHhC,kBAAA;EACV,GAAA;EACA,GAAA;EACA,SAAA;EACA,UAAA;EACA,SAAA;EACA,MAAA;EACA,QAAA;EACA,IAAA;EACA,KAAA;EACA,QAAA;AAAA;AAAA,iBAGc,aAAA,CAAA;EACd,GAAA;EACA,GAAA;EACA,SAAA;EACA,UAAA;EACA,SAAA;EACA,MAAA;EACA,QAAA;EACA,IAAA;EACA,KAAA;EACA;AAAA,GACC,kBAAA,GAAqB,KAAA,CAAM,GAAA,CAAI,OAAA;;;;;iBAsGlB,0BAAA,CACd,IAAA,EAAM,aAAA,GACL,kBAAA;;;;;iBA0Ba,6BAAA,CACd,MAAA,EAAQ,YAAA,GACP,kBAAA"}