@rosettadash/react 0.1.1 → 0.1.3

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 (177) hide show
  1. package/package.json +87 -2
  2. package/src/domain/i18n/app-language-select/AppLanguageSelect.d.ts +17 -0
  3. package/src/domain/i18n/app-language-select/AppLanguageSelect.js +24 -0
  4. package/src/domain/i18n/app-language-select/AppLanguageSelect.js.map +1 -0
  5. package/src/domain/i18n/app-language-select/index.d.ts +2 -0
  6. package/src/domain/i18n/app-language-select/index.js +2 -0
  7. package/src/domain/i18n/app-language-select/index.js.map +1 -0
  8. package/src/domain/role-gate/RoleGate.d.ts +3 -0
  9. package/src/domain/role-gate/RoleGate.js +22 -4
  10. package/src/domain/role-gate/RoleGate.js.map +1 -1
  11. package/src/index.d.ts +15 -0
  12. package/src/index.js +15 -0
  13. package/src/index.js.map +1 -1
  14. package/src/infra/env/EnvConfig.d.ts +5 -0
  15. package/src/infra/env/EnvConfig.js +17 -2
  16. package/src/infra/env/EnvConfig.js.map +1 -1
  17. package/src/infra/env/index.d.ts +1 -1
  18. package/src/layout/collapsible/Collapsible.d.ts +1 -0
  19. package/src/layout/collapsible/Collapsible.js +16 -5
  20. package/src/layout/collapsible/Collapsible.js.map +1 -1
  21. package/src/layout/filter-grid/FilterGrid.d.ts +26 -0
  22. package/src/layout/filter-grid/FilterGrid.js +21 -0
  23. package/src/layout/filter-grid/FilterGrid.js.map +1 -0
  24. package/src/layout/filter-grid/index.d.ts +2 -0
  25. package/src/layout/filter-grid/index.js +2 -0
  26. package/src/layout/filter-grid/index.js.map +1 -0
  27. package/src/layout/flex/FlexLayout.d.ts +3 -0
  28. package/src/layout/flex/FlexLayout.js +24 -4
  29. package/src/layout/flex/FlexLayout.js.map +1 -1
  30. package/src/layout/form-section/FormSectionGrid.d.ts +21 -0
  31. package/src/layout/form-section/FormSectionGrid.js +16 -0
  32. package/src/layout/form-section/FormSectionGrid.js.map +1 -0
  33. package/src/layout/form-section/index.d.ts +2 -0
  34. package/src/layout/form-section/index.js +2 -0
  35. package/src/layout/form-section/index.js.map +1 -0
  36. package/src/layout/geo-explorer/GeoExplorerLayout.d.ts +18 -0
  37. package/src/layout/geo-explorer/GeoExplorerLayout.js +14 -0
  38. package/src/layout/geo-explorer/GeoExplorerLayout.js.map +1 -0
  39. package/src/layout/geo-explorer/index.d.ts +2 -0
  40. package/src/layout/geo-explorer/index.js +2 -0
  41. package/src/layout/geo-explorer/index.js.map +1 -0
  42. package/src/layout/scroll-region/ScrollRegion.d.ts +13 -0
  43. package/src/layout/scroll-region/ScrollRegion.js +15 -0
  44. package/src/layout/scroll-region/ScrollRegion.js.map +1 -0
  45. package/src/layout/scroll-region/index.d.ts +2 -0
  46. package/src/layout/scroll-region/index.js +2 -0
  47. package/src/layout/scroll-region/index.js.map +1 -0
  48. package/src/layout/tabs/TabsLayout.d.ts +1 -0
  49. package/src/layout/tabs/TabsLayout.js +7 -2
  50. package/src/layout/tabs/TabsLayout.js.map +1 -1
  51. package/src/lib/custom-element-host.js +2 -2
  52. package/src/lib/custom-element-host.js.map +1 -1
  53. package/src/visual/chart/bar/BarChart.d.ts +7 -0
  54. package/src/visual/chart/bar/BarChart.js +32 -2
  55. package/src/visual/chart/bar/BarChart.js.map +1 -1
  56. package/src/visual/chart/bar/index.d.ts +1 -1
  57. package/src/visual/chart/line/LineChart.d.ts +8 -0
  58. package/src/visual/chart/line/LineChart.js +58 -2
  59. package/src/visual/chart/line/LineChart.js.map +1 -1
  60. package/src/visual/chart/line/index.d.ts +1 -1
  61. package/src/visual/chart/sankey/JourneySankeyChart.d.ts +20 -0
  62. package/src/visual/chart/sankey/JourneySankeyChart.js +105 -0
  63. package/src/visual/chart/sankey/JourneySankeyChart.js.map +1 -0
  64. package/src/visual/chart/sankey/index.d.ts +2 -0
  65. package/src/visual/chart/sankey/index.js +2 -0
  66. package/src/visual/chart/sankey/index.js.map +1 -0
  67. package/src/visual/chart/venn/VennOverlapChart.d.ts +22 -0
  68. package/src/visual/chart/venn/VennOverlapChart.js +24 -0
  69. package/src/visual/chart/venn/VennOverlapChart.js.map +1 -0
  70. package/src/visual/chart/venn/index.d.ts +2 -0
  71. package/src/visual/chart/venn/index.js +2 -0
  72. package/src/visual/chart/venn/index.js.map +1 -0
  73. package/src/visual/destination/destination-select-list/DestinationSelectList.d.ts +16 -0
  74. package/src/visual/destination/destination-select-list/DestinationSelectList.js +39 -0
  75. package/src/visual/destination/destination-select-list/DestinationSelectList.js.map +1 -0
  76. package/src/visual/destination/destination-select-list/index.d.ts +2 -0
  77. package/src/visual/destination/destination-select-list/index.js +2 -0
  78. package/src/visual/destination/destination-select-list/index.js.map +1 -0
  79. package/src/visual/detail/DetailHistoricList.d.ts +14 -0
  80. package/src/visual/detail/DetailHistoricList.js +10 -0
  81. package/src/visual/detail/DetailHistoricList.js.map +1 -0
  82. package/src/visual/detail/DetailPanel.js +1 -1
  83. package/src/visual/detail/DetailPanel.js.map +1 -1
  84. package/src/visual/detail/DetailStats.d.ts +13 -0
  85. package/src/visual/detail/DetailStats.js +10 -0
  86. package/src/visual/detail/DetailStats.js.map +1 -0
  87. package/src/visual/detail/index.d.ts +4 -0
  88. package/src/visual/detail/index.js +2 -0
  89. package/src/visual/detail/index.js.map +1 -1
  90. package/src/visual/display/3d-geo-globe/ThreeGeoGlobe.d.ts +12 -2
  91. package/src/visual/display/3d-geo-globe/ThreeGeoGlobe.js +241 -7
  92. package/src/visual/display/3d-geo-globe/ThreeGeoGlobe.js.map +1 -1
  93. package/src/visual/display/3d-scatter/ThreeScatterPlot.d.ts +15 -2
  94. package/src/visual/display/3d-scatter/ThreeScatterPlot.js +152 -7
  95. package/src/visual/display/3d-scatter/ThreeScatterPlot.js.map +1 -1
  96. package/src/visual/display/3d-scatter/index.d.ts +1 -1
  97. package/src/visual/display/equirect-globe/EquirectGlobe.d.ts +21 -0
  98. package/src/visual/display/equirect-globe/EquirectGlobe.js +28 -0
  99. package/src/visual/display/equirect-globe/EquirectGlobe.js.map +1 -0
  100. package/src/visual/display/equirect-globe/index.d.ts +2 -0
  101. package/src/visual/display/equirect-globe/index.js +2 -0
  102. package/src/visual/display/equirect-globe/index.js.map +1 -0
  103. package/src/visual/display/geo-map/GeoMap.d.ts +22 -0
  104. package/src/visual/display/geo-map/GeoMap.js +29 -0
  105. package/src/visual/display/geo-map/GeoMap.js.map +1 -0
  106. package/src/visual/display/geo-map/index.d.ts +2 -0
  107. package/src/visual/display/geo-map/index.js +2 -0
  108. package/src/visual/display/geo-map/index.js.map +1 -0
  109. package/src/visual/filter/filter-summary/FilterSummary.d.ts +16 -0
  110. package/src/visual/filter/filter-summary/FilterSummary.js +9 -0
  111. package/src/visual/filter/filter-summary/FilterSummary.js.map +1 -0
  112. package/src/visual/filter/filter-summary/index.d.ts +2 -0
  113. package/src/visual/filter/filter-summary/index.js +2 -0
  114. package/src/visual/filter/filter-summary/index.js.map +1 -0
  115. package/src/visual/input/date-range/DateRangeFilter.d.ts +4 -0
  116. package/src/visual/input/date-range/DateRangeFilter.js +3 -1
  117. package/src/visual/input/date-range/DateRangeFilter.js.map +1 -1
  118. package/src/visual/input/number/NumberInput.d.ts +1 -0
  119. package/src/visual/input/number/NumberInput.js +1 -1
  120. package/src/visual/input/number/NumberInput.js.map +1 -1
  121. package/src/visual/input/text/TextInput.d.ts +1 -0
  122. package/src/visual/input/text/TextInput.js +2 -1
  123. package/src/visual/input/text/TextInput.js.map +1 -1
  124. package/src/visual/link-list/LinkList.d.ts +3 -0
  125. package/src/visual/link-list/LinkList.js +3 -2
  126. package/src/visual/link-list/LinkList.js.map +1 -1
  127. package/src/visual/media/carousel/SlideCarousel.d.ts +19 -0
  128. package/src/visual/media/carousel/SlideCarousel.js +39 -0
  129. package/src/visual/media/carousel/SlideCarousel.js.map +1 -0
  130. package/src/visual/media/carousel/index.d.ts +2 -0
  131. package/src/visual/media/carousel/index.js +2 -0
  132. package/src/visual/media/carousel/index.js.map +1 -0
  133. package/src/visual/media/equirect-sphere-viewport/EquirectSphereViewport.d.ts +45 -0
  134. package/src/visual/media/equirect-sphere-viewport/EquirectSphereViewport.js +527 -0
  135. package/src/visual/media/equirect-sphere-viewport/EquirectSphereViewport.js.map +1 -0
  136. package/src/visual/media/equirect-sphere-viewport/index.d.ts +2 -0
  137. package/src/visual/media/equirect-sphere-viewport/index.js +2 -0
  138. package/src/visual/media/equirect-sphere-viewport/index.js.map +1 -0
  139. package/src/visual/media/equirect-sphere-viewport/planet-shader.d.ts +6 -0
  140. package/src/visual/media/equirect-sphere-viewport/planet-shader.js +69 -0
  141. package/src/visual/media/equirect-sphere-viewport/planet-shader.js.map +1 -0
  142. package/src/visual/media/flat-video-viewport/FlatVideoViewport.d.ts +32 -0
  143. package/src/visual/media/flat-video-viewport/FlatVideoViewport.js +317 -0
  144. package/src/visual/media/flat-video-viewport/FlatVideoViewport.js.map +1 -0
  145. package/src/visual/media/flat-video-viewport/index.d.ts +2 -0
  146. package/src/visual/media/flat-video-viewport/index.js +2 -0
  147. package/src/visual/media/flat-video-viewport/index.js.map +1 -0
  148. package/src/visual/media/video-metadata/VideoMetadataPanel.d.ts +13 -0
  149. package/src/visual/media/video-metadata/VideoMetadataPanel.js +8 -0
  150. package/src/visual/media/video-metadata/VideoMetadataPanel.js.map +1 -0
  151. package/src/visual/media/video-metadata/index.d.ts +2 -0
  152. package/src/visual/media/video-metadata/index.js +2 -0
  153. package/src/visual/media/video-metadata/index.js.map +1 -0
  154. package/src/visual/media/video-source/VideoSource.d.ts +2 -0
  155. package/src/visual/media/video-source/VideoSource.js +6 -2
  156. package/src/visual/media/video-source/VideoSource.js.map +1 -1
  157. package/src/visual/media/youtube-embed/YoutubeEmbed.d.ts +14 -0
  158. package/src/visual/media/youtube-embed/YoutubeEmbed.js +21 -0
  159. package/src/visual/media/youtube-embed/YoutubeEmbed.js.map +1 -0
  160. package/src/visual/media/youtube-embed/index.d.ts +2 -0
  161. package/src/visual/media/youtube-embed/index.js +2 -0
  162. package/src/visual/media/youtube-embed/index.js.map +1 -0
  163. package/src/visual/news/article-detail/NewsArticleDetail.js +2 -2
  164. package/src/visual/news/article-detail/NewsArticleDetail.js.map +1 -1
  165. package/src/visual/news/results-table/NewsResultsTable.d.ts +14 -0
  166. package/src/visual/news/results-table/NewsResultsTable.js +30 -3
  167. package/src/visual/news/results-table/NewsResultsTable.js.map +1 -1
  168. package/src/visual/news/results-table/index.d.ts +1 -1
  169. package/src/visual/plugin/metric-chip/MetricChip.js +1 -1
  170. package/src/visual/plugin/metric-chip/MetricChip.js.map +1 -1
  171. package/src/visual/table/DataTable.d.ts +11 -1
  172. package/src/visual/table/DataTable.js +31 -2
  173. package/src/visual/table/DataTable.js.map +1 -1
  174. package/src/visual/table/index.d.ts +1 -1
  175. package/src/visual/wasm/media/WasmMedia.d.ts +6 -0
  176. package/src/visual/wasm/media/WasmMedia.js +9 -3
  177. package/src/visual/wasm/media/WasmMedia.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rosettadash/react",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "RosettaDash React runtime — same import paths as @rosettadash/web-components. Storybook: github.com/KevinEverywhere/rosettadash (port 6007).",
5
5
  "author": "Kevin Ready <kevin@planetkevin.com>",
6
6
  "type": "module",
@@ -14,6 +14,11 @@
14
14
  "import": "./src/index.js",
15
15
  "default": "./src/index.js"
16
16
  },
17
+ "./domain/i18n/app-language-select": {
18
+ "types": "./src/domain/i18n/app-language-select/index.d.ts",
19
+ "import": "./src/domain/i18n/app-language-select/index.js",
20
+ "default": "./src/domain/i18n/app-language-select/index.js"
21
+ },
17
22
  "./domain/person-invite": {
18
23
  "types": "./src/domain/person-invite/index.d.ts",
19
24
  "import": "./src/domain/person-invite/index.js",
@@ -99,11 +104,31 @@
99
104
  "import": "./src/layout/collapsible/index.js",
100
105
  "default": "./src/layout/collapsible/index.js"
101
106
  },
107
+ "./layout/scroll-region": {
108
+ "types": "./src/layout/scroll-region/index.d.ts",
109
+ "import": "./src/layout/scroll-region/index.js",
110
+ "default": "./src/layout/scroll-region/index.js"
111
+ },
112
+ "./layout/filter-grid": {
113
+ "types": "./src/layout/filter-grid/index.d.ts",
114
+ "import": "./src/layout/filter-grid/index.js",
115
+ "default": "./src/layout/filter-grid/index.js"
116
+ },
117
+ "./layout/geo-explorer": {
118
+ "types": "./src/layout/geo-explorer/index.d.ts",
119
+ "import": "./src/layout/geo-explorer/index.js",
120
+ "default": "./src/layout/geo-explorer/index.js"
121
+ },
102
122
  "./layout/flex": {
103
123
  "types": "./src/layout/flex/index.d.ts",
104
124
  "import": "./src/layout/flex/index.js",
105
125
  "default": "./src/layout/flex/index.js"
106
126
  },
127
+ "./layout/form-section": {
128
+ "types": "./src/layout/form-section/index.d.ts",
129
+ "import": "./src/layout/form-section/index.js",
130
+ "default": "./src/layout/form-section/index.js"
131
+ },
107
132
  "./layout/grid": {
108
133
  "types": "./src/layout/grid/index.d.ts",
109
134
  "import": "./src/layout/grid/index.js",
@@ -139,11 +164,31 @@
139
164
  "import": "./src/visual/chart/pie/index.js",
140
165
  "default": "./src/visual/chart/pie/index.js"
141
166
  },
167
+ "./visual/chart/sankey": {
168
+ "types": "./src/visual/chart/sankey/index.d.ts",
169
+ "import": "./src/visual/chart/sankey/index.js",
170
+ "default": "./src/visual/chart/sankey/index.js"
171
+ },
172
+ "./visual/chart/venn": {
173
+ "types": "./src/visual/chart/venn/index.d.ts",
174
+ "import": "./src/visual/chart/venn/index.js",
175
+ "default": "./src/visual/chart/venn/index.js"
176
+ },
142
177
  "./visual/detail": {
143
178
  "types": "./src/visual/detail/index.d.ts",
144
179
  "import": "./src/visual/detail/index.js",
145
180
  "default": "./src/visual/detail/index.js"
146
181
  },
182
+ "./visual/destination/destination-select-list": {
183
+ "types": "./src/visual/destination/destination-select-list/index.d.ts",
184
+ "import": "./src/visual/destination/destination-select-list/index.js",
185
+ "default": "./src/visual/destination/destination-select-list/index.js"
186
+ },
187
+ "./visual/filter/filter-summary": {
188
+ "types": "./src/visual/filter/filter-summary/index.d.ts",
189
+ "import": "./src/visual/filter/filter-summary/index.js",
190
+ "default": "./src/visual/filter/filter-summary/index.js"
191
+ },
147
192
  "./visual/display/3d-bar-chart": {
148
193
  "types": "./src/visual/display/3d-bar-chart/index.d.ts",
149
194
  "import": "./src/visual/display/3d-bar-chart/index.js",
@@ -154,6 +199,11 @@
154
199
  "import": "./src/visual/display/3d-geo-globe/index.js",
155
200
  "default": "./src/visual/display/3d-geo-globe/index.js"
156
201
  },
202
+ "./visual/display/equirect-globe": {
203
+ "types": "./src/visual/display/equirect-globe/index.d.ts",
204
+ "import": "./src/visual/display/equirect-globe/index.js",
205
+ "default": "./src/visual/display/equirect-globe/index.js"
206
+ },
157
207
  "./visual/display/3d-gltf-model": {
158
208
  "types": "./src/visual/display/3d-gltf-model/index.d.ts",
159
209
  "import": "./src/visual/display/3d-gltf-model/index.js",
@@ -169,6 +219,11 @@
169
219
  "import": "./src/visual/display/3d-scene/index.js",
170
220
  "default": "./src/visual/display/3d-scene/index.js"
171
221
  },
222
+ "./visual/display/geo-map": {
223
+ "types": "./src/visual/display/geo-map/index.d.ts",
224
+ "import": "./src/visual/display/geo-map/index.js",
225
+ "default": "./src/visual/display/geo-map/index.js"
226
+ },
172
227
  "./visual/input/checkbox": {
173
228
  "types": "./src/visual/input/checkbox/index.d.ts",
174
229
  "import": "./src/visual/input/checkbox/index.js",
@@ -209,11 +264,31 @@
209
264
  "import": "./src/visual/link-list/index.js",
210
265
  "default": "./src/visual/link-list/index.js"
211
266
  },
267
+ "./visual/media/carousel": {
268
+ "types": "./src/visual/media/carousel/index.d.ts",
269
+ "import": "./src/visual/media/carousel/index.js",
270
+ "default": "./src/visual/media/carousel/index.js"
271
+ },
212
272
  "./visual/media/equirect-viewport": {
213
273
  "types": "./src/visual/media/equirect-viewport/index.d.ts",
214
274
  "import": "./src/visual/media/equirect-viewport/index.js",
215
275
  "default": "./src/visual/media/equirect-viewport/index.js"
216
276
  },
277
+ "./visual/media/equirect-sphere-viewport": {
278
+ "types": "./src/visual/media/equirect-sphere-viewport/index.d.ts",
279
+ "import": "./src/visual/media/equirect-sphere-viewport/index.js",
280
+ "default": "./src/visual/media/equirect-sphere-viewport/index.js"
281
+ },
282
+ "./visual/media/flat-video-viewport": {
283
+ "types": "./src/visual/media/flat-video-viewport/index.d.ts",
284
+ "import": "./src/visual/media/flat-video-viewport/index.js",
285
+ "default": "./src/visual/media/flat-video-viewport/index.js"
286
+ },
287
+ "./visual/media/video-metadata": {
288
+ "types": "./src/visual/media/video-metadata/index.d.ts",
289
+ "import": "./src/visual/media/video-metadata/index.js",
290
+ "default": "./src/visual/media/video-metadata/index.js"
291
+ },
217
292
  "./visual/media/live-capture": {
218
293
  "types": "./src/visual/media/live-capture/index.d.ts",
219
294
  "import": "./src/visual/media/live-capture/index.js",
@@ -224,6 +299,11 @@
224
299
  "import": "./src/visual/media/video-source/index.js",
225
300
  "default": "./src/visual/media/video-source/index.js"
226
301
  },
302
+ "./visual/media/youtube-embed": {
303
+ "types": "./src/visual/media/youtube-embed/index.d.ts",
304
+ "import": "./src/visual/media/youtube-embed/index.js",
305
+ "default": "./src/visual/media/youtube-embed/index.js"
306
+ },
227
307
  "./visual/news/article-detail": {
228
308
  "types": "./src/visual/news/article-detail/index.d.ts",
229
309
  "import": "./src/visual/news/article-detail/index.js",
@@ -305,6 +385,7 @@
305
385
  "default": "./src/wasm/wasm-media/index.js"
306
386
  },
307
387
  "./package.json": "./package.json",
388
+ "./domain/i18n/app-language-select/index": "./src/domain/i18n/app-language-select/index.js",
308
389
  "./domain/person-invite/index": "./src/domain/person-invite/index.js",
309
390
  "./domain/role-assign/index": "./src/domain/role-assign/index.js",
310
391
  "./domain/role-gate/index": "./src/domain/role-gate/index.js",
@@ -336,6 +417,7 @@
336
417
  "./visual/display/3d-gltf-model/index": "./src/visual/display/3d-gltf-model/index.js",
337
418
  "./visual/display/3d-scatter/index": "./src/visual/display/3d-scatter/index.js",
338
419
  "./visual/display/3d-scene/index": "./src/visual/display/3d-scene/index.js",
420
+ "./visual/display/geo-map/index": "./src/visual/display/geo-map/index.js",
339
421
  "./visual/input/checkbox/index": "./src/visual/input/checkbox/index.js",
340
422
  "./visual/input/date-range/index": "./src/visual/input/date-range/index.js",
341
423
  "./visual/input/number/index": "./src/visual/input/number/index.js",
@@ -345,8 +427,11 @@
345
427
  "./visual/kpi/index": "./src/visual/kpi/index.js",
346
428
  "./visual/link-list/index": "./src/visual/link-list/index.js",
347
429
  "./visual/media/equirect-viewport/index": "./src/visual/media/equirect-viewport/index.js",
430
+ "./visual/media/equirect-sphere-viewport/index": "./src/visual/media/equirect-sphere-viewport/index.js",
431
+ "./visual/media/flat-video-viewport/index": "./src/visual/media/flat-video-viewport/index.js",
348
432
  "./visual/media/live-capture/index": "./src/visual/media/live-capture/index.js",
349
433
  "./visual/media/video-source/index": "./src/visual/media/video-source/index.js",
434
+ "./visual/media/youtube-embed/index": "./src/visual/media/youtube-embed/index.js",
350
435
  "./visual/news/article-detail/index": "./src/visual/news/article-detail/index.js",
351
436
  "./visual/news/language-select/index": "./src/visual/news/language-select/index.js",
352
437
  "./visual/news/region-select/index": "./src/visual/news/region-select/index.js",
@@ -370,7 +455,7 @@
370
455
  "LICENSE"
371
456
  ],
372
457
  "dependencies": {
373
- "@rosettadash/web-components": "0.1.1",
458
+ "@rosettadash/web-components": "0.1.3",
374
459
  "tslib": "^2.3.0"
375
460
  },
376
461
  "peerDependencies": {
@@ -0,0 +1,17 @@
1
+ import { type CSSProperties } from 'react';
2
+ import { type AppLocaleOption } from '@rosettadash/web-components/domain/i18n/app-language-select';
3
+ export type { AppLocaleOption };
4
+ export interface AppLanguageSelectProps {
5
+ locales?: AppLocaleOption[];
6
+ value?: string;
7
+ defaultLocale?: string;
8
+ label?: string;
9
+ placeholder?: string;
10
+ className?: string;
11
+ style?: CSSProperties;
12
+ onLocaleChange?: (detail: {
13
+ locale: string;
14
+ }) => void;
15
+ }
16
+ /** React wrapper around `<rd-app-language-select>`. */
17
+ export declare const AppLanguageSelect: import("react").ForwardRefExoticComponent<AppLanguageSelectProps & import("react").RefAttributes<HTMLElement>>;
@@ -0,0 +1,24 @@
1
+ import { createElement, forwardRef } from 'react';
2
+ import { DB_APP_LANGUAGE_SELECT_TAG, registerRdAppLanguageSelect, } from '@rosettadash/web-components/domain/i18n/app-language-select';
3
+ import { useCustomElementHost } from '../../../lib/custom-element-host.js';
4
+ /** React wrapper around `<rd-app-language-select>`. */
5
+ export const AppLanguageSelect = forwardRef(function AppLanguageSelect({ locales, value, defaultLocale, label, placeholder, className, style, onLocaleChange, }, ref) {
6
+ const hostRef = useCustomElementHost({
7
+ register: registerRdAppLanguageSelect,
8
+ attrs: {
9
+ defaultLocale: 'default-locale',
10
+ },
11
+ properties: ['locales'],
12
+ events: {
13
+ 'locale-change': 'onLocaleChange',
14
+ },
15
+ }, { value, defaultLocale, label, placeholder }, {
16
+ onLocaleChange: onLocaleChange,
17
+ }, ref, { locales });
18
+ return createElement(DB_APP_LANGUAGE_SELECT_TAG, {
19
+ ref: hostRef,
20
+ className,
21
+ style,
22
+ });
23
+ });
24
+ //# sourceMappingURL=AppLanguageSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppLanguageSelect.js","sourceRoot":"","sources":["../../../../../../../packages/react/src/domain/i18n/app-language-select/AppLanguageSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAsB,MAAM,OAAO,CAAC;AACtE,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,GAE5B,MAAM,6DAA6D,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAe3E,uDAAuD;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CACzC,SAAS,iBAAiB,CACxB,EACE,OAAO,EACP,KAAK,EACL,aAAa,EACb,KAAK,EACL,WAAW,EACX,SAAS,EACT,KAAK,EACL,cAAc,GACf,EACD,GAAG;IAEH,MAAM,OAAO,GAAG,oBAAoB,CAClC;QACE,QAAQ,EAAE,2BAA2B;QACrC,KAAK,EAAE;YACL,aAAa,EAAE,gBAAgB;SAChC;QACD,UAAU,EAAE,CAAC,SAAS,CAAC;QACvB,MAAM,EAAE;YACN,eAAe,EAAE,gBAAgB;SAClC;KACF,EACD,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,EAC5C;QACE,cAAc,EAAE,cAAyD;KAC1E,EACD,GAAG,EACH,EAAE,OAAO,EAAE,CACZ,CAAC;IAEF,OAAO,aAAa,CAAC,0BAA0B,EAAE;QAC/C,GAAG,EAAE,OAAO;QACZ,SAAS;QACT,KAAK;KACN,CAAC,CAAC;AACL,CAAC,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type { AppLanguageSelectProps, AppLocaleOption } from './AppLanguageSelect';
2
+ export { AppLanguageSelect } from './AppLanguageSelect';
@@ -0,0 +1,2 @@
1
+ export { AppLanguageSelect } from './AppLanguageSelect';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/react/src/domain/i18n/app-language-select/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -2,7 +2,10 @@ import { type CSSProperties, type ReactNode } from 'react';
2
2
  export interface RoleGateProps {
3
3
  label?: string;
4
4
  allowedRoles?: string[];
5
+ /** Active session role — when omitted, content is always shown (builder/demo mode). */
6
+ currentRole?: string;
5
7
  statusText?: string;
8
+ hiddenStatusText?: string;
6
9
  className?: string;
7
10
  style?: CSSProperties;
8
11
  children?: ReactNode;
@@ -1,10 +1,28 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { forwardRef } from 'react';
3
+ function roleGateAllowsRole(allowedRoles, roleId) {
4
+ const normalizedRole = roleId.trim();
5
+ if (!normalizedRole) {
6
+ return false;
7
+ }
8
+ return allowedRoles.some((allowed) => allowed === normalizedRole);
9
+ }
3
10
  /** @rosettadash/react/domain/role-gate — domain.role-gate */
4
11
  export const RoleGate = forwardRef(function RoleGate(props, ref) {
5
- var _a, _b;
12
+ var _a, _b, _c, _d;
6
13
  const { className, style, children } = props;
7
- const rootClass = ['rd-role-gate', className].filter(Boolean).join(' ');
8
- return (_jsxs("section", { ref: ref, className: rootClass, style: style, "data-testid": "rd-role-gate", children: [props.label ? _jsx("span", { className: "rd-field__label", children: props.label }) : null, _jsx("p", { className: "rd-role-gate__status", children: (_a = props.statusText) !== null && _a !== void 0 ? _a : 'Visible' }), ((_b = props.allowedRoles) === null || _b === void 0 ? void 0 : _b.length) ? _jsx("code", { children: JSON.stringify(props.allowedRoles) }) : null, children] }));
14
+ const allowedRoles = (_a = props.allowedRoles) !== null && _a !== void 0 ? _a : [];
15
+ const hasRoleContext = props.currentRole !== undefined && props.currentRole !== '';
16
+ const visible = !hasRoleContext ||
17
+ allowedRoles.length === 0 ||
18
+ roleGateAllowsRole(allowedRoles, (_b = props.currentRole) !== null && _b !== void 0 ? _b : '');
19
+ const rootClass = [
20
+ 'rd-role-gate',
21
+ visible ? 'rd-role-gate--visible' : 'rd-role-gate--hidden',
22
+ className,
23
+ ]
24
+ .filter(Boolean)
25
+ .join(' ');
26
+ return (_jsxs("section", { ref: ref, className: rootClass, style: style, "data-testid": "rd-role-gate", children: [props.label ? _jsx("span", { className: "rd-field__label", children: props.label }) : null, visible ? (_jsxs(_Fragment, { children: [_jsx("p", { className: "rd-role-gate__status", "data-testid": "rd-role-gate-visible", children: (_c = props.statusText) !== null && _c !== void 0 ? _c : 'Visible' }), children] })) : (_jsx("p", { className: "rd-role-gate__status rd-role-gate__status--hidden", "data-testid": "rd-role-gate-hidden", children: (_d = props.hiddenStatusText) !== null && _d !== void 0 ? _d : 'Hidden for current role' }))] }));
9
27
  });
10
28
  //# sourceMappingURL=RoleGate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RoleGate.js","sourceRoot":"","sources":["../../../../../../packages/react/src/domain/role-gate/RoleGate.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAsC,MAAM,OAAO,CAAC;AAWvE,6DAA6D;AAC7D,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAA6B,SAAS,QAAQ,CAC9E,KAAK,EACL,GAAG;;IAEH,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC7C,MAAM,SAAS,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAExE,OAAO,CACL,mBAAS,GAAG,EAAE,GAAmC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,iBAAc,cAAc,aAC9G,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,iBAAiB,YAAE,KAAK,CAAC,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,EAC5E,YAAG,SAAS,EAAC,sBAAsB,YAAE,MAAA,KAAK,CAAC,UAAU,mCAAI,SAAS,GAAK,EACtE,CAAA,MAAA,KAAK,CAAC,YAAY,0CAAE,MAAM,EAAC,CAAC,CAAC,yBAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,GAAQ,CAAC,CAAC,CAAC,IAAI,EACrF,QAAQ,IACD,CACX,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"RoleGate.js","sourceRoot":"","sources":["../../../../../../packages/react/src/domain/role-gate/RoleGate.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAsC,MAAM,OAAO,CAAC;AAcvE,SAAS,kBAAkB,CAAC,YAAsB,EAAE,MAAc;IAChE,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,cAAc,CAAC,CAAC;AACpE,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAA6B,SAAS,QAAQ,CAC9E,KAAK,EACL,GAAG;;IAEH,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC7C,MAAM,YAAY,GAAG,MAAA,KAAK,CAAC,YAAY,mCAAI,EAAE,CAAC;IAC9C,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,EAAE,CAAC;IACnF,MAAM,OAAO,GACX,CAAC,cAAc;QACf,YAAY,CAAC,MAAM,KAAK,CAAC;QACzB,kBAAkB,CAAC,YAAY,EAAE,MAAA,KAAK,CAAC,WAAW,mCAAI,EAAE,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAG;QAChB,cAAc;QACd,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,sBAAsB;QAC1D,SAAS;KACV;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,CACL,mBACE,GAAG,EAAE,GAAmC,EACxC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,iBACA,cAAc,aAEzB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,iBAAiB,YAAE,KAAK,CAAC,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,EAC3E,OAAO,CAAC,CAAC,CAAC,CACT,8BACE,YAAG,SAAS,EAAC,sBAAsB,iBAAa,sBAAsB,YACnE,MAAA,KAAK,CAAC,UAAU,mCAAI,SAAS,GAC5B,EACH,QAAQ,IACR,CACJ,CAAC,CAAC,CAAC,CACF,YACE,SAAS,EAAC,mDAAmD,iBACjD,qBAAqB,YAEhC,MAAA,KAAK,CAAC,gBAAgB,mCAAI,yBAAyB,GAClD,CACL,IACO,CACX,CAAC;AACJ,CAAC,CAAC,CAAC"}
package/src/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './domain/i18n/app-language-select/index.js';
1
2
  export * from './domain/person-invite/index.js';
2
3
  export * from './domain/role-assign/index.js';
3
4
  export * from './domain/role-gate/index.js';
@@ -15,7 +16,11 @@ export * from './infra/wasm/asset/index.js';
15
16
  export * from './layout/accordion/index.js';
16
17
  export * from './layout/accordion-link-list/index.js';
17
18
  export * from './layout/collapsible/index.js';
19
+ export * from './layout/scroll-region/index.js';
20
+ export * from './layout/filter-grid/index.js';
21
+ export * from './layout/geo-explorer/index.js';
18
22
  export * from './layout/flex/index.js';
23
+ export * from './layout/form-section/index.js';
19
24
  export * from './layout/grid/index.js';
20
25
  export * from './layout/modal/index.js';
21
26
  export * from './layout/tabs/index.js';
@@ -23,12 +28,17 @@ export * from './logic/timer/index.js';
23
28
  export * from './visual/chart/bar/index.js';
24
29
  export * from './visual/chart/line/index.js';
25
30
  export * from './visual/chart/pie/index.js';
31
+ export * from './visual/chart/sankey/index.js';
32
+ export * from './visual/chart/venn/index.js';
26
33
  export * from './visual/detail/index.js';
34
+ export * from './visual/filter/filter-summary/index.js';
27
35
  export * from './visual/display/3d-bar-chart/index.js';
28
36
  export * from './visual/display/3d-geo-globe/index.js';
37
+ export * from './visual/display/equirect-globe/index.js';
29
38
  export * from './visual/display/3d-gltf-model/index.js';
30
39
  export * from './visual/display/3d-scatter/index.js';
31
40
  export * from './visual/display/3d-scene/index.js';
41
+ export * from './visual/display/geo-map/index.js';
32
42
  export * from './visual/input/checkbox/index.js';
33
43
  export * from './visual/input/date-range/index.js';
34
44
  export * from './visual/input/number/index.js';
@@ -37,9 +47,14 @@ export * from './visual/input/text/index.js';
37
47
  export * from './visual/input/textarea/index.js';
38
48
  export * from './visual/kpi/index.js';
39
49
  export * from './visual/link-list/index.js';
50
+ export * from './visual/media/carousel/index.js';
40
51
  export * from './visual/media/equirect-viewport/index.js';
52
+ export * from './visual/media/equirect-sphere-viewport/index.js';
53
+ export * from './visual/media/flat-video-viewport/index.js';
54
+ export * from './visual/media/video-metadata/index.js';
41
55
  export * from './visual/media/live-capture/index.js';
42
56
  export * from './visual/media/video-source/index.js';
57
+ export * from './visual/media/youtube-embed/index.js';
43
58
  export * from './visual/news/article-detail/index.js';
44
59
  export * from './visual/news/language-select/index.js';
45
60
  export * from './visual/news/region-select/index.js';
package/src/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './domain/i18n/app-language-select/index.js';
1
2
  export * from './domain/person-invite/index.js';
2
3
  export * from './domain/role-assign/index.js';
3
4
  export * from './domain/role-gate/index.js';
@@ -15,7 +16,11 @@ export * from './infra/wasm/asset/index.js';
15
16
  export * from './layout/accordion/index.js';
16
17
  export * from './layout/accordion-link-list/index.js';
17
18
  export * from './layout/collapsible/index.js';
19
+ export * from './layout/scroll-region/index.js';
20
+ export * from './layout/filter-grid/index.js';
21
+ export * from './layout/geo-explorer/index.js';
18
22
  export * from './layout/flex/index.js';
23
+ export * from './layout/form-section/index.js';
19
24
  export * from './layout/grid/index.js';
20
25
  export * from './layout/modal/index.js';
21
26
  export * from './layout/tabs/index.js';
@@ -23,12 +28,17 @@ export * from './logic/timer/index.js';
23
28
  export * from './visual/chart/bar/index.js';
24
29
  export * from './visual/chart/line/index.js';
25
30
  export * from './visual/chart/pie/index.js';
31
+ export * from './visual/chart/sankey/index.js';
32
+ export * from './visual/chart/venn/index.js';
26
33
  export * from './visual/detail/index.js';
34
+ export * from './visual/filter/filter-summary/index.js';
27
35
  export * from './visual/display/3d-bar-chart/index.js';
28
36
  export * from './visual/display/3d-geo-globe/index.js';
37
+ export * from './visual/display/equirect-globe/index.js';
29
38
  export * from './visual/display/3d-gltf-model/index.js';
30
39
  export * from './visual/display/3d-scatter/index.js';
31
40
  export * from './visual/display/3d-scene/index.js';
41
+ export * from './visual/display/geo-map/index.js';
32
42
  export * from './visual/input/checkbox/index.js';
33
43
  export * from './visual/input/date-range/index.js';
34
44
  export * from './visual/input/number/index.js';
@@ -37,9 +47,14 @@ export * from './visual/input/text/index.js';
37
47
  export * from './visual/input/textarea/index.js';
38
48
  export * from './visual/kpi/index.js';
39
49
  export * from './visual/link-list/index.js';
50
+ export * from './visual/media/carousel/index.js';
40
51
  export * from './visual/media/equirect-viewport/index.js';
52
+ export * from './visual/media/equirect-sphere-viewport/index.js';
53
+ export * from './visual/media/flat-video-viewport/index.js';
54
+ export * from './visual/media/video-metadata/index.js';
41
55
  export * from './visual/media/live-capture/index.js';
42
56
  export * from './visual/media/video-source/index.js';
57
+ export * from './visual/media/youtube-embed/index.js';
43
58
  export * from './visual/news/article-detail/index.js';
44
59
  export * from './visual/news/language-select/index.js';
45
60
  export * from './visual/news/region-select/index.js';
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/react/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/react/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4CAA4C,CAAC;AAC3D,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kDAAkD,CAAC;AACjE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC"}
@@ -1,6 +1,11 @@
1
1
  import { type CSSProperties, type ReactNode } from 'react';
2
+ export interface EnvKeyStatus {
3
+ envKey: string;
4
+ configured: boolean;
5
+ }
2
6
  export interface EnvConfigProps {
3
7
  envKeys?: string;
8
+ keyStatus?: EnvKeyStatus[];
4
9
  className?: string;
5
10
  style?: CSSProperties;
6
11
  children?: ReactNode;
@@ -1,10 +1,25 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { forwardRef } from 'react';
3
+ function parseEnvKeys(raw) {
4
+ if (!raw) {
5
+ return ['DATABASE_URL', 'API_KEY'];
6
+ }
7
+ return raw.split(',').map((entry) => entry.trim()).filter(Boolean);
8
+ }
3
9
  /** @rosettadash/react/infra/env — infra.env */
4
10
  export const EnvConfig = forwardRef(function EnvConfig(props, ref) {
5
11
  var _a;
6
- const { className, style, children } = props;
12
+ const { className, style, children, keyStatus } = props;
7
13
  const rootClass = ['rd-env', className].filter(Boolean).join(' ');
8
- return (_jsxs("section", { ref: ref, className: rootClass, style: style, "data-testid": "rd-env", children: [_jsx("span", { className: "rd-infra__badge", children: "INFRA" }), _jsx("span", { className: "rd-field__label", children: "Environment config" }), _jsx("code", { children: (_a = props.envKeys) !== null && _a !== void 0 ? _a : 'DATABASE_URL, API_KEY' }), children] }));
14
+ const keys = parseEnvKeys(props.envKeys);
15
+ const statusByKey = new Map(keyStatus === null || keyStatus === void 0 ? void 0 : keyStatus.map((entry) => [entry.envKey, entry.configured]));
16
+ return (_jsxs("section", { ref: ref, className: rootClass, style: style, "data-testid": "rd-env", children: [_jsx("span", { className: "rd-infra__badge", children: "INFRA" }), _jsx("span", { className: "rd-field__label", children: "Environment config" }), (keyStatus === null || keyStatus === void 0 ? void 0 : keyStatus.length) ? (_jsx("ul", { className: "rd-env__keys", children: keys.map((envKey) => {
17
+ const configured = statusByKey.get(envKey);
18
+ return (_jsxs("li", { className: "rd-env__key-row", children: [_jsx("code", { children: envKey }), _jsx("span", { className: configured === undefined
19
+ ? 'rd-env__key-state rd-env__key-state--unknown'
20
+ : configured
21
+ ? 'rd-env__key-state rd-env__key-state--configured'
22
+ : 'rd-env__key-state rd-env__key-state--missing', children: configured === undefined ? 'unknown' : configured ? 'configured' : 'missing' })] }, envKey));
23
+ }) })) : (_jsx("code", { children: (_a = props.envKeys) !== null && _a !== void 0 ? _a : 'DATABASE_URL, API_KEY' })), children] }));
9
24
  });
10
25
  //# sourceMappingURL=EnvConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EnvConfig.js","sourceRoot":"","sources":["../../../../../../packages/react/src/infra/env/EnvConfig.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAsC,MAAM,OAAO,CAAC;AASvE,+CAA+C;AAC/C,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAA8B,SAAS,SAAS,CACjF,KAAK,EACL,GAAG;;IAEH,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC7C,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAElE,OAAO,CACL,mBAAS,GAAG,EAAE,GAAmC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,iBAAc,QAAQ,aACzG,eAAM,SAAS,EAAC,iBAAiB,sBAAa,EAC9C,eAAM,SAAS,EAAC,iBAAiB,mCAA0B,EAC3D,yBAAO,MAAA,KAAK,CAAC,OAAO,mCAAI,uBAAuB,GAAQ,EACtD,QAAQ,IACD,CACX,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"EnvConfig.js","sourceRoot":"","sources":["../../../../../../packages/react/src/infra/env/EnvConfig.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAsC,MAAM,OAAO,CAAC;AAevE,SAAS,YAAY,CAAC,GAAuB;IAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,+CAA+C;AAC/C,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAA8B,SAAS,SAAS,CACjF,KAAK,EACL,GAAG;;IAEH,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACxD,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAEzF,OAAO,CACL,mBAAS,GAAG,EAAE,GAAmC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,iBAAc,QAAQ,aACzG,eAAM,SAAS,EAAC,iBAAiB,sBAAa,EAC9C,eAAM,SAAS,EAAC,iBAAiB,mCAA0B,EAC1D,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,EAAC,CAAC,CAAC,CACnB,aAAI,SAAS,EAAC,cAAc,YACzB,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;oBACnB,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC3C,OAAO,CACL,cAAiB,SAAS,EAAC,iBAAiB,aAC1C,yBAAO,MAAM,GAAQ,EACrB,eACE,SAAS,EACP,UAAU,KAAK,SAAS;oCACtB,CAAC,CAAC,8CAA8C;oCAChD,CAAC,CAAC,UAAU;wCACV,CAAC,CAAC,iDAAiD;wCACnD,CAAC,CAAC,8CAA8C,YAGrD,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,GACxE,KAZA,MAAM,CAaV,CACN,CAAC;gBACJ,CAAC,CAAC,GACC,CACN,CAAC,CAAC,CAAC,CACF,yBAAO,MAAA,KAAK,CAAC,OAAO,mCAAI,uBAAuB,GAAQ,CACxD,EACA,QAAQ,IACD,CACX,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
- export type { EnvConfigProps } from './EnvConfig.js';
1
+ export type { EnvConfigProps, EnvKeyStatus } from './EnvConfig.js';
2
2
  export { EnvConfig } from './EnvConfig.js';
@@ -1,6 +1,7 @@
1
1
  import { type CSSProperties, type ReactNode } from 'react';
2
2
  export interface CollapsibleProps {
3
3
  title?: string;
4
+ summary?: string;
4
5
  open?: boolean;
5
6
  defaultOpen?: boolean;
6
7
  onOpenChange?: (open: boolean) => void;
@@ -1,10 +1,21 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { forwardRef } from 'react';
2
+ import { useState, forwardRef, useCallback } from 'react';
3
3
  /** @rosettadash/react/layout/collapsible — layout.collapsible */
4
4
  export const Collapsible = forwardRef(function Collapsible(props, ref) {
5
- var _a, _b, _c;
6
- const { className, style, children } = props;
7
- const rootClass = ['rd-collapsible', className].filter(Boolean).join(' ');
8
- return (_jsxs("section", { ref: ref, className: rootClass, style: style, "data-testid": "rd-collapsible", children: [_jsx("button", { type: "button", className: "rd-collapsible__header", "aria-expanded": (_b = (_a = props.open) !== null && _a !== void 0 ? _a : props.defaultOpen) !== null && _b !== void 0 ? _b : false, children: _jsx("span", { children: (_c = props.title) !== null && _c !== void 0 ? _c : 'Section' }) }), _jsx("div", { className: "rd-collapsible__panel", children: children })] }));
5
+ var _a;
6
+ const { className, style, children, title, summary } = props;
7
+ const [internalOpen, setInternalOpen] = useState((_a = props.defaultOpen) !== null && _a !== void 0 ? _a : false);
8
+ const isControlled = props.open !== undefined;
9
+ const open = isControlled ? props.open : internalOpen;
10
+ const toggle = useCallback(() => {
11
+ var _a;
12
+ const next = !open;
13
+ if (!isControlled) {
14
+ setInternalOpen(next);
15
+ }
16
+ (_a = props.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(props, next);
17
+ }, [isControlled, open, props]);
18
+ const rootClass = ['rd-collapsible', open ? 'is-open' : '', className].filter(Boolean).join(' ');
19
+ return (_jsxs("section", { ref: ref, className: rootClass, style: style, "data-testid": "rd-collapsible", children: [_jsxs("button", { type: "button", className: "rd-collapsible__header", "aria-expanded": open, onClick: toggle, children: [_jsxs("span", { className: "rd-collapsible__titles", children: [_jsx("span", { className: "rd-collapsible__title", children: title !== null && title !== void 0 ? title : 'Section' }), summary ? _jsx("span", { className: "rd-collapsible__summary", children: summary }) : null] }), _jsx("span", { className: "rd-collapsible__chevron", "aria-hidden": "true", children: open ? '▾' : '▸' })] }), open ? _jsx("div", { className: "rd-collapsible__panel", children: children }) : null] }));
9
20
  });
10
21
  //# sourceMappingURL=Collapsible.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Collapsible.js","sourceRoot":"","sources":["../../../../../../packages/react/src/layout/collapsible/Collapsible.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAsC,MAAM,OAAO,CAAC;AAYvE,iEAAiE;AACjE,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAgC,SAAS,WAAW,CACvF,KAAK,EACL,GAAG;;IAEH,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC7C,MAAM,SAAS,GAAG,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE1E,OAAO,CACL,mBAAS,GAAG,EAAE,GAAmC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,iBAAc,gBAAgB,aACjH,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,wBAAwB,mBAAgB,MAAA,MAAA,KAAK,CAAC,IAAI,mCAAI,KAAK,CAAC,WAAW,mCAAI,KAAK,YAC9G,yBAAO,MAAA,KAAK,CAAC,KAAK,mCAAI,SAAS,GAAQ,GAChC,EACT,cAAK,SAAS,EAAC,uBAAuB,YAAE,QAAQ,GAAO,IAC/C,CACX,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"Collapsible.js","sourceRoot":"","sources":["../../../../../../packages/react/src/layout/collapsible/Collapsible.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAsC,MAAM,OAAO,CAAC;AAa9F,iEAAiE;AACjE,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAgC,SAAS,WAAW,CACvF,KAAK,EACL,GAAG;;IAEH,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC7D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,MAAA,KAAK,CAAC,WAAW,mCAAI,KAAK,CAAC,CAAC;IAC7E,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;IAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;IAEtD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;;QAC9B,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,MAAA,KAAK,CAAC,YAAY,sDAAG,IAAI,CAAC,CAAC;IAC7B,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAEhC,MAAM,SAAS,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEjG,OAAO,CACL,mBAAS,GAAG,EAAE,GAAmC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,iBAAc,gBAAgB,aACjH,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,wBAAwB,mBACnB,IAAI,EACnB,OAAO,EAAE,MAAM,aAEf,gBAAM,SAAS,EAAC,wBAAwB,aACtC,eAAM,SAAS,EAAC,uBAAuB,YAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,SAAS,GAAQ,EAClE,OAAO,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,yBAAyB,YAAE,OAAO,GAAQ,CAAC,CAAC,CAAC,IAAI,IACvE,EACP,eAAM,SAAS,EAAC,yBAAyB,iBAAa,MAAM,YACzD,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GACZ,IACA,EACR,IAAI,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,uBAAuB,YAAE,QAAQ,GAAO,CAAC,CAAC,CAAC,IAAI,IAC9D,CACX,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { type CSSProperties, type ReactNode } from 'react';
2
+ export interface FilterGridProps {
3
+ className?: string;
4
+ style?: CSSProperties;
5
+ children?: ReactNode;
6
+ }
7
+ declare function FilterGridRoot({ className, style, children }: FilterGridProps): import("react").JSX.Element;
8
+ declare function FilterGridStack({ children, className }: {
9
+ children?: ReactNode;
10
+ className?: string;
11
+ }): import("react").JSX.Element;
12
+ declare function FilterGridPeriod({ children, className }: {
13
+ children?: ReactNode;
14
+ className?: string;
15
+ }): import("react").JSX.Element;
16
+ declare function FilterGridFull({ children, className }: {
17
+ children?: ReactNode;
18
+ className?: string;
19
+ }): import("react").JSX.Element;
20
+ /** @rosettadash/react/layout/filter-grid — layout.filter-grid */
21
+ export declare const FilterGrid: typeof FilterGridRoot & {
22
+ Stack: typeof FilterGridStack;
23
+ Period: typeof FilterGridPeriod;
24
+ Full: typeof FilterGridFull;
25
+ };
26
+ export {};
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ function FilterGridRoot({ className, style, children }) {
3
+ const rootClass = ['rd-filter-grid', className].filter(Boolean).join(' ');
4
+ return (_jsx("div", { className: rootClass, style: style, "data-testid": "rd-filter-grid", children: children }));
5
+ }
6
+ function FilterGridStack({ children, className }) {
7
+ return _jsx("div", { className: ['rd-filter-grid__stack', className].filter(Boolean).join(' '), children: children });
8
+ }
9
+ function FilterGridPeriod({ children, className }) {
10
+ return _jsx("div", { className: ['rd-filter-grid__period', className].filter(Boolean).join(' '), children: children });
11
+ }
12
+ function FilterGridFull({ children, className }) {
13
+ return _jsx("div", { className: ['rd-filter-grid__full', className].filter(Boolean).join(' '), children: children });
14
+ }
15
+ /** @rosettadash/react/layout/filter-grid — layout.filter-grid */
16
+ export const FilterGrid = Object.assign(FilterGridRoot, {
17
+ Stack: FilterGridStack,
18
+ Period: FilterGridPeriod,
19
+ Full: FilterGridFull,
20
+ });
21
+ //# sourceMappingURL=FilterGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterGrid.js","sourceRoot":"","sources":["../../../../../../packages/react/src/layout/filter-grid/FilterGrid.tsx"],"names":[],"mappings":";AAQA,SAAS,cAAc,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAmB;IACrE,MAAM,SAAS,GAAG,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1E,OAAO,CACL,cAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,iBAAc,gBAAgB,YAClE,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAgD;IAC5F,OAAO,cAAK,SAAS,EAAE,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAG,QAAQ,GAAO,CAAC;AAC1G,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAgD;IAC7F,OAAO,cAAK,SAAS,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAG,QAAQ,GAAO,CAAC;AAC3G,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAgD;IAC3F,OAAO,cAAK,SAAS,EAAE,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAG,QAAQ,GAAO,CAAC;AACzG,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;IACtD,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,gBAAgB;IACxB,IAAI,EAAE,cAAc;CACrB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type { FilterGridProps } from './FilterGrid.js';
2
+ export { FilterGrid } from './FilterGrid.js';
@@ -0,0 +1,2 @@
1
+ export { FilterGrid } from './FilterGrid.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/react/src/layout/filter-grid/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
@@ -3,6 +3,9 @@ export interface FlexLayoutProps {
3
3
  title?: string;
4
4
  direction?: 'row' | 'column';
5
5
  gap?: number | string;
6
+ /** Per-child flex grow weights (e.g. [1.4, 1] for table + detail). */
7
+ itemFlex?: number[];
8
+ stretchItems?: boolean;
6
9
  className?: string;
7
10
  style?: CSSProperties;
8
11
  children?: ReactNode;