@rosettadash/web-components 0.1.0 → 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 (351) hide show
  1. package/browser/media.js +461 -39
  2. package/browser/media.js.map +3 -3
  3. package/package.json +332 -36
  4. package/src/domain/i18n/app-language-select/index.d.ts +3 -0
  5. package/src/domain/i18n/app-language-select/index.js +3 -0
  6. package/src/domain/i18n/app-language-select/index.js.map +1 -0
  7. package/src/domain/i18n/app-language-select/parse-locale-options.d.ts +7 -0
  8. package/src/domain/i18n/app-language-select/parse-locale-options.js +39 -0
  9. package/src/domain/i18n/app-language-select/parse-locale-options.js.map +1 -0
  10. package/src/domain/i18n/app-language-select/rd-app-language-select.d.ts +38 -0
  11. package/src/domain/i18n/app-language-select/rd-app-language-select.js +138 -0
  12. package/src/domain/i18n/app-language-select/rd-app-language-select.js.map +1 -0
  13. package/src/domain/i18n/index.d.ts +2 -0
  14. package/src/domain/i18n/index.js +6 -0
  15. package/src/domain/i18n/index.js.map +1 -0
  16. package/src/domain/index.d.ts +6 -0
  17. package/src/domain/index.js +18 -0
  18. package/src/domain/index.js.map +1 -0
  19. package/src/domain/person-invite/index.d.ts +2 -0
  20. package/src/domain/person-invite/index.js +2 -0
  21. package/src/domain/person-invite/index.js.map +1 -0
  22. package/src/domain/person-invite/rd-person-invite.d.ts +17 -0
  23. package/src/domain/person-invite/rd-person-invite.js +33 -0
  24. package/src/domain/person-invite/rd-person-invite.js.map +1 -0
  25. package/src/domain/role-assign/index.d.ts +2 -0
  26. package/src/domain/role-assign/index.js +2 -0
  27. package/src/domain/role-assign/index.js.map +1 -0
  28. package/src/domain/role-assign/rd-role-assign.d.ts +21 -0
  29. package/src/domain/role-assign/rd-role-assign.js +36 -0
  30. package/src/domain/role-assign/rd-role-assign.js.map +1 -0
  31. package/src/domain/role-gate/index.d.ts +2 -0
  32. package/src/domain/role-gate/index.js +2 -0
  33. package/src/domain/role-gate/index.js.map +1 -0
  34. package/src/domain/role-gate/rd-role-gate.d.ts +19 -0
  35. package/src/domain/role-gate/rd-role-gate.js +31 -0
  36. package/src/domain/role-gate/rd-role-gate.js.map +1 -0
  37. package/src/domain/time-preset/index.d.ts +2 -0
  38. package/src/domain/time-preset/index.js +2 -0
  39. package/src/domain/time-preset/index.js.map +1 -0
  40. package/src/domain/time-preset/rd-time-preset.d.ts +23 -0
  41. package/src/domain/time-preset/rd-time-preset.js +34 -0
  42. package/src/domain/time-preset/rd-time-preset.js.map +1 -0
  43. package/src/index.d.ts +5 -5
  44. package/src/index.js +13 -13
  45. package/src/index.js.map +1 -1
  46. package/src/layout/collapsible/index.d.ts +2 -0
  47. package/src/layout/collapsible/index.js +2 -0
  48. package/src/layout/collapsible/index.js.map +1 -0
  49. package/src/layout/collapsible/rd-collapsible.d.ts +21 -0
  50. package/src/layout/collapsible/rd-collapsible.js +50 -0
  51. package/src/layout/collapsible/rd-collapsible.js.map +1 -0
  52. package/src/layout/flex/index.d.ts +2 -0
  53. package/src/layout/flex/index.js +2 -0
  54. package/src/layout/flex/index.js.map +1 -0
  55. package/src/layout/flex/rd-flex-layout.d.ts +17 -0
  56. package/src/layout/flex/rd-flex-layout.js +24 -0
  57. package/src/layout/flex/rd-flex-layout.js.map +1 -0
  58. package/src/layout/grid/index.d.ts +2 -0
  59. package/src/layout/grid/index.js +2 -0
  60. package/src/layout/grid/index.js.map +1 -0
  61. package/src/layout/grid/rd-grid-layout.d.ts +17 -0
  62. package/src/layout/grid/rd-grid-layout.js +24 -0
  63. package/src/layout/grid/rd-grid-layout.js.map +1 -0
  64. package/src/layout/index.d.ts +9 -0
  65. package/src/layout/index.js +27 -0
  66. package/src/layout/index.js.map +1 -0
  67. package/src/layout/modal/index.d.ts +2 -0
  68. package/src/layout/modal/index.js +2 -0
  69. package/src/layout/modal/index.js.map +1 -0
  70. package/src/layout/modal/rd-modal-layout.d.ts +20 -0
  71. package/src/layout/modal/rd-modal-layout.js +40 -0
  72. package/src/layout/modal/rd-modal-layout.js.map +1 -0
  73. package/src/layout/scroll-region/index.d.ts +2 -0
  74. package/src/layout/scroll-region/index.js +2 -0
  75. package/src/layout/scroll-region/index.js.map +1 -0
  76. package/src/layout/scroll-region/rd-scroll-region.d.ts +17 -0
  77. package/src/layout/scroll-region/rd-scroll-region.js +26 -0
  78. package/src/layout/scroll-region/rd-scroll-region.js.map +1 -0
  79. package/src/layout/tabs/index.d.ts +2 -0
  80. package/src/layout/tabs/index.js +2 -0
  81. package/src/layout/tabs/index.js.map +1 -0
  82. package/src/layout/tabs/rd-tabs-layout.d.ts +23 -0
  83. package/src/layout/tabs/rd-tabs-layout.js +34 -0
  84. package/src/layout/tabs/rd-tabs-layout.js.map +1 -0
  85. package/src/lib/element-utils.js +3 -0
  86. package/src/lib/element-utils.js.map +1 -1
  87. package/src/lib/rosetta-atom-element.d.ts +23 -0
  88. package/src/lib/rosetta-atom-element.js +104 -0
  89. package/src/lib/rosetta-atom-element.js.map +1 -0
  90. package/src/lib/shadow-base.js +3 -0
  91. package/src/lib/shadow-base.js.map +1 -1
  92. package/src/lib/shadow-resources.js +7 -2
  93. package/src/lib/shadow-resources.js.map +1 -1
  94. package/src/logic/index.d.ts +2 -0
  95. package/src/logic/index.js +6 -0
  96. package/src/logic/index.js.map +1 -0
  97. package/src/logic/timer/index.d.ts +2 -0
  98. package/src/logic/timer/index.js +2 -0
  99. package/src/logic/timer/index.js.map +1 -0
  100. package/src/logic/timer/rd-timer.d.ts +18 -0
  101. package/src/logic/timer/rd-timer.js +24 -0
  102. package/src/logic/timer/rd-timer.js.map +1 -0
  103. package/src/visual/chart/bar/index.d.ts +2 -0
  104. package/src/visual/chart/bar/index.js +2 -0
  105. package/src/visual/chart/bar/index.js.map +1 -0
  106. package/src/visual/chart/bar/rd-bar-chart.d.ts +21 -0
  107. package/src/visual/chart/bar/rd-bar-chart.js +83 -0
  108. package/src/visual/chart/bar/rd-bar-chart.js.map +1 -0
  109. package/src/visual/chart/line/index.d.ts +2 -0
  110. package/src/visual/chart/line/index.js +2 -0
  111. package/src/visual/chart/line/index.js.map +1 -0
  112. package/src/visual/chart/line/rd-line-chart.d.ts +22 -0
  113. package/src/visual/chart/line/rd-line-chart.js +105 -0
  114. package/src/visual/chart/line/rd-line-chart.js.map +1 -0
  115. package/src/visual/chart/pie/index.d.ts +2 -0
  116. package/src/visual/chart/pie/index.js +2 -0
  117. package/src/visual/chart/pie/index.js.map +1 -0
  118. package/src/visual/chart/pie/rd-pie-chart.d.ts +15 -0
  119. package/src/visual/chart/pie/rd-pie-chart.js +23 -0
  120. package/src/visual/chart/pie/rd-pie-chart.js.map +1 -0
  121. package/src/visual/detail/index.d.ts +2 -0
  122. package/src/visual/detail/index.js +2 -0
  123. package/src/visual/detail/index.js.map +1 -0
  124. package/src/visual/detail/rd-detail-panel.d.ts +16 -0
  125. package/src/visual/detail/rd-detail-panel.js +24 -0
  126. package/src/visual/detail/rd-detail-panel.js.map +1 -0
  127. package/src/visual/display/3d-bar-chart/index.d.ts +2 -0
  128. package/src/visual/display/3d-bar-chart/index.js +2 -0
  129. package/src/visual/display/3d-bar-chart/index.js.map +1 -0
  130. package/src/visual/display/3d-bar-chart/rd-three-bar-chart.d.ts +16 -0
  131. package/src/visual/display/3d-bar-chart/rd-three-bar-chart.js +24 -0
  132. package/src/visual/display/3d-bar-chart/rd-three-bar-chart.js.map +1 -0
  133. package/src/visual/display/3d-geo-globe/globe-view.d.ts +86 -0
  134. package/src/visual/display/3d-geo-globe/globe-view.js +235 -0
  135. package/src/visual/display/3d-geo-globe/globe-view.js.map +1 -0
  136. package/src/visual/display/3d-geo-globe/index.d.ts +3 -0
  137. package/src/visual/display/3d-geo-globe/index.js +3 -0
  138. package/src/visual/display/3d-geo-globe/index.js.map +1 -0
  139. package/src/visual/display/3d-geo-globe/rd-three-geo-globe.d.ts +36 -0
  140. package/src/visual/display/3d-geo-globe/rd-three-geo-globe.js +330 -0
  141. package/src/visual/display/3d-geo-globe/rd-three-geo-globe.js.map +1 -0
  142. package/src/visual/display/3d-gltf-model/index.d.ts +2 -0
  143. package/src/visual/display/3d-gltf-model/index.js +2 -0
  144. package/src/visual/display/3d-gltf-model/index.js.map +1 -0
  145. package/src/visual/display/3d-gltf-model/rd-three-gltf-model.d.ts +16 -0
  146. package/src/visual/display/3d-gltf-model/rd-three-gltf-model.js +24 -0
  147. package/src/visual/display/3d-gltf-model/rd-three-gltf-model.js.map +1 -0
  148. package/src/visual/display/3d-scatter/index.d.ts +2 -0
  149. package/src/visual/display/3d-scatter/index.js +2 -0
  150. package/src/visual/display/3d-scatter/index.js.map +1 -0
  151. package/src/visual/display/3d-scatter/rd-three-scatter-plot.d.ts +16 -0
  152. package/src/visual/display/3d-scatter/rd-three-scatter-plot.js +24 -0
  153. package/src/visual/display/3d-scatter/rd-three-scatter-plot.js.map +1 -0
  154. package/src/visual/display/3d-scene/index.d.ts +2 -0
  155. package/src/visual/display/3d-scene/index.js +2 -0
  156. package/src/visual/display/3d-scene/index.js.map +1 -0
  157. package/src/visual/display/3d-scene/rd-three-scene-point-cloud.d.ts +16 -0
  158. package/src/visual/display/3d-scene/rd-three-scene-point-cloud.js +24 -0
  159. package/src/visual/display/3d-scene/rd-three-scene-point-cloud.js.map +1 -0
  160. package/src/visual/display/geo-map/geo-map-types.d.ts +32 -0
  161. package/src/visual/display/geo-map/geo-map-types.js +10 -0
  162. package/src/visual/display/geo-map/geo-map-types.js.map +1 -0
  163. package/src/visual/display/geo-map/index.d.ts +5 -0
  164. package/src/visual/display/geo-map/index.js +5 -0
  165. package/src/visual/display/geo-map/index.js.map +1 -0
  166. package/src/visual/display/geo-map/parse-center.d.ts +5 -0
  167. package/src/visual/display/geo-map/parse-center.js +28 -0
  168. package/src/visual/display/geo-map/parse-center.js.map +1 -0
  169. package/src/visual/display/geo-map/parse-markers.d.ts +2 -0
  170. package/src/visual/display/geo-map/parse-markers.js +32 -0
  171. package/src/visual/display/geo-map/parse-markers.js.map +1 -0
  172. package/src/visual/display/geo-map/providers/create-adapter.d.ts +2 -0
  173. package/src/visual/display/geo-map/providers/create-adapter.js +11 -0
  174. package/src/visual/display/geo-map/providers/create-adapter.js.map +1 -0
  175. package/src/visual/display/geo-map/providers/google-maps-adapter.d.ts +2 -0
  176. package/src/visual/display/geo-map/providers/google-maps-adapter.js +63 -0
  177. package/src/visual/display/geo-map/providers/google-maps-adapter.js.map +1 -0
  178. package/src/visual/display/geo-map/providers/leaflet-adapter.d.ts +2 -0
  179. package/src/visual/display/geo-map/providers/leaflet-adapter.js +78 -0
  180. package/src/visual/display/geo-map/providers/leaflet-adapter.js.map +1 -0
  181. package/src/visual/display/geo-map/providers/maplibre-adapter.d.ts +2 -0
  182. package/src/visual/display/geo-map/providers/maplibre-adapter.js +71 -0
  183. package/src/visual/display/geo-map/providers/maplibre-adapter.js.map +1 -0
  184. package/src/visual/display/geo-map/providers/provider-utils.d.ts +8 -0
  185. package/src/visual/display/geo-map/providers/provider-utils.js +28 -0
  186. package/src/visual/display/geo-map/providers/provider-utils.js.map +1 -0
  187. package/src/visual/display/geo-map/rd-geo-map.d.ts +48 -0
  188. package/src/visual/display/geo-map/rd-geo-map.js +219 -0
  189. package/src/visual/display/geo-map/rd-geo-map.js.map +1 -0
  190. package/src/visual/display/index.d.ts +7 -0
  191. package/src/visual/display/index.js +21 -0
  192. package/src/visual/display/index.js.map +1 -0
  193. package/src/visual/index.d.ts +34 -0
  194. package/src/visual/index.js +102 -0
  195. package/src/visual/index.js.map +1 -0
  196. package/src/visual/input/checkbox/index.d.ts +2 -0
  197. package/src/visual/input/checkbox/index.js +2 -0
  198. package/src/visual/input/checkbox/index.js.map +1 -0
  199. package/src/visual/input/checkbox/rd-checkbox-input.d.ts +19 -0
  200. package/src/visual/input/checkbox/rd-checkbox-input.js +32 -0
  201. package/src/visual/input/checkbox/rd-checkbox-input.js.map +1 -0
  202. package/src/visual/input/date-range/index.d.ts +2 -0
  203. package/src/visual/input/date-range/index.js +2 -0
  204. package/src/visual/input/date-range/index.js.map +1 -0
  205. package/src/visual/input/date-range/rd-date-range-filter.d.ts +24 -0
  206. package/src/visual/input/date-range/rd-date-range-filter.js +42 -0
  207. package/src/visual/input/date-range/rd-date-range-filter.js.map +1 -0
  208. package/src/visual/input/number/index.d.ts +2 -0
  209. package/src/visual/input/number/index.js +2 -0
  210. package/src/visual/input/number/index.js.map +1 -0
  211. package/src/visual/input/number/rd-number-input.d.ts +22 -0
  212. package/src/visual/input/number/rd-number-input.js +36 -0
  213. package/src/visual/input/number/rd-number-input.js.map +1 -0
  214. package/src/visual/input/select/index.d.ts +2 -0
  215. package/src/visual/input/select/index.js +2 -0
  216. package/src/visual/input/select/index.js.map +1 -0
  217. package/src/visual/input/select/rd-select-input.d.ts +24 -0
  218. package/src/visual/input/select/rd-select-input.js +37 -0
  219. package/src/visual/input/select/rd-select-input.js.map +1 -0
  220. package/src/visual/input/text/index.d.ts +2 -0
  221. package/src/visual/input/text/index.js +2 -0
  222. package/src/visual/input/text/index.js.map +1 -0
  223. package/src/visual/input/text/rd-text-input.d.ts +21 -0
  224. package/src/visual/input/text/rd-text-input.js +35 -0
  225. package/src/visual/input/text/rd-text-input.js.map +1 -0
  226. package/src/visual/input/textarea/index.d.ts +2 -0
  227. package/src/visual/input/textarea/index.js +2 -0
  228. package/src/visual/input/textarea/index.js.map +1 -0
  229. package/src/visual/input/textarea/rd-textarea-input.d.ts +20 -0
  230. package/src/visual/input/textarea/rd-textarea-input.js +34 -0
  231. package/src/visual/input/textarea/rd-textarea-input.js.map +1 -0
  232. package/src/visual/kpi/index.d.ts +2 -0
  233. package/src/visual/kpi/index.js +2 -0
  234. package/src/visual/kpi/index.js.map +1 -0
  235. package/src/visual/kpi/rd-kpi-card.d.ts +18 -0
  236. package/src/visual/kpi/rd-kpi-card.js +26 -0
  237. package/src/visual/kpi/rd-kpi-card.js.map +1 -0
  238. package/src/visual/media/index.d.ts +2 -0
  239. package/src/visual/media/index.js +6 -0
  240. package/src/visual/media/index.js.map +1 -1
  241. package/src/visual/media/live-capture/index.d.ts +2 -0
  242. package/src/visual/media/live-capture/index.js +2 -0
  243. package/src/visual/media/live-capture/index.js.map +1 -0
  244. package/src/visual/media/live-capture/rd-live-capture.d.ts +16 -0
  245. package/src/visual/media/live-capture/rd-live-capture.js +23 -0
  246. package/src/visual/media/live-capture/rd-live-capture.js.map +1 -0
  247. package/src/visual/media/video-source/rd-video-source.d.ts +5 -0
  248. package/src/visual/media/video-source/rd-video-source.js +101 -18
  249. package/src/visual/media/video-source/rd-video-source.js.map +1 -1
  250. package/src/visual/media/youtube-embed/index.d.ts +3 -0
  251. package/src/visual/media/youtube-embed/index.js +3 -0
  252. package/src/visual/media/youtube-embed/index.js.map +1 -0
  253. package/src/visual/media/youtube-embed/parse-youtube-id.d.ts +10 -0
  254. package/src/visual/media/youtube-embed/parse-youtube-id.js +56 -0
  255. package/src/visual/media/youtube-embed/parse-youtube-id.js.map +1 -0
  256. package/src/visual/media/youtube-embed/rd-youtube-embed.d.ts +35 -0
  257. package/src/visual/media/youtube-embed/rd-youtube-embed.js +121 -0
  258. package/src/visual/media/youtube-embed/rd-youtube-embed.js.map +1 -0
  259. package/src/visual/news/article-detail/index.d.ts +2 -0
  260. package/src/visual/news/article-detail/index.js +2 -0
  261. package/src/visual/news/article-detail/index.js.map +1 -0
  262. package/src/visual/news/article-detail/rd-news-article-detail.d.ts +16 -0
  263. package/src/visual/news/article-detail/rd-news-article-detail.js +24 -0
  264. package/src/visual/news/article-detail/rd-news-article-detail.js.map +1 -0
  265. package/src/visual/news/language-select/index.d.ts +2 -0
  266. package/src/visual/news/language-select/index.js +2 -0
  267. package/src/visual/news/language-select/index.js.map +1 -0
  268. package/src/visual/news/language-select/rd-news-language-select.d.ts +23 -0
  269. package/src/visual/news/language-select/rd-news-language-select.js +37 -0
  270. package/src/visual/news/language-select/rd-news-language-select.js.map +1 -0
  271. package/src/visual/news/region-select/index.d.ts +2 -0
  272. package/src/visual/news/region-select/index.js +2 -0
  273. package/src/visual/news/region-select/index.js.map +1 -0
  274. package/src/visual/news/region-select/rd-news-region-select.d.ts +23 -0
  275. package/src/visual/news/region-select/rd-news-region-select.js +37 -0
  276. package/src/visual/news/region-select/rd-news-region-select.js.map +1 -0
  277. package/src/visual/news/results-table/index.d.ts +2 -0
  278. package/src/visual/news/results-table/index.js +2 -0
  279. package/src/visual/news/results-table/index.js.map +1 -0
  280. package/src/visual/news/results-table/rd-news-results-table.d.ts +16 -0
  281. package/src/visual/news/results-table/rd-news-results-table.js +33 -0
  282. package/src/visual/news/results-table/rd-news-results-table.js.map +1 -0
  283. package/src/visual/news/search-box/index.d.ts +2 -0
  284. package/src/visual/news/search-box/index.js +2 -0
  285. package/src/visual/news/search-box/index.js.map +1 -0
  286. package/src/visual/news/search-box/rd-news-search-box.d.ts +19 -0
  287. package/src/visual/news/search-box/rd-news-search-box.js +42 -0
  288. package/src/visual/news/search-box/rd-news-search-box.js.map +1 -0
  289. package/src/visual/news/type-select/index.d.ts +2 -0
  290. package/src/visual/news/type-select/index.js +2 -0
  291. package/src/visual/news/type-select/index.js.map +1 -0
  292. package/src/visual/news/type-select/rd-news-type-select.d.ts +23 -0
  293. package/src/visual/news/type-select/rd-news-type-select.js +37 -0
  294. package/src/visual/news/type-select/rd-news-type-select.js.map +1 -0
  295. package/src/visual/plugin/metric-chip/index.d.ts +2 -0
  296. package/src/visual/plugin/metric-chip/index.js +2 -0
  297. package/src/visual/plugin/metric-chip/index.js.map +1 -0
  298. package/src/visual/plugin/metric-chip/rd-metric-chip.d.ts +16 -0
  299. package/src/visual/plugin/metric-chip/rd-metric-chip.js +23 -0
  300. package/src/visual/plugin/metric-chip/rd-metric-chip.js.map +1 -0
  301. package/src/visual/plugin/status-badge/index.d.ts +2 -0
  302. package/src/visual/plugin/status-badge/index.js +2 -0
  303. package/src/visual/plugin/status-badge/index.js.map +1 -0
  304. package/src/visual/plugin/status-badge/rd-status-badge.d.ts +16 -0
  305. package/src/visual/plugin/status-badge/rd-status-badge.js +19 -0
  306. package/src/visual/plugin/status-badge/rd-status-badge.js.map +1 -0
  307. package/src/visual/skeleton/index.d.ts +2 -0
  308. package/src/visual/skeleton/index.js +2 -0
  309. package/src/visual/skeleton/index.js.map +1 -0
  310. package/src/visual/skeleton/rd-loading-skeleton.d.ts +15 -0
  311. package/src/visual/skeleton/rd-loading-skeleton.js +20 -0
  312. package/src/visual/skeleton/rd-loading-skeleton.js.map +1 -0
  313. package/src/visual/svg/icon/index.d.ts +2 -0
  314. package/src/visual/svg/icon/index.js +2 -0
  315. package/src/visual/svg/icon/index.js.map +1 -0
  316. package/src/visual/svg/icon/rd-svg-icon.d.ts +18 -0
  317. package/src/visual/svg/icon/rd-svg-icon.js +20 -0
  318. package/src/visual/svg/icon/rd-svg-icon.js.map +1 -0
  319. package/src/visual/svg/inline/index.d.ts +2 -0
  320. package/src/visual/svg/inline/index.js +2 -0
  321. package/src/visual/svg/inline/index.js.map +1 -0
  322. package/src/visual/svg/inline/rd-svg-inline.d.ts +17 -0
  323. package/src/visual/svg/inline/rd-svg-inline.js +20 -0
  324. package/src/visual/svg/inline/rd-svg-inline.js.map +1 -0
  325. package/src/visual/table/index.d.ts +2 -0
  326. package/src/visual/table/index.js +2 -0
  327. package/src/visual/table/index.js.map +1 -0
  328. package/src/visual/table/rd-data-table.d.ts +26 -0
  329. package/src/visual/table/rd-data-table.js +46 -0
  330. package/src/visual/table/rd-data-table.js.map +1 -0
  331. package/src/visual/wasm/media/index.d.ts +1 -0
  332. package/src/visual/wasm/media/index.js +2 -0
  333. package/src/visual/wasm/media/index.js.map +1 -0
  334. package/src/visual/wasm/module/index.d.ts +2 -0
  335. package/src/visual/wasm/module/index.js +2 -0
  336. package/src/visual/wasm/module/index.js.map +1 -0
  337. package/src/visual/wasm/module/rd-wasm-module.d.ts +16 -0
  338. package/src/visual/wasm/module/rd-wasm-module.js +24 -0
  339. package/src/visual/wasm/module/rd-wasm-module.js.map +1 -0
  340. package/src/visual/wasm/worker-host/index.d.ts +2 -0
  341. package/src/visual/wasm/worker-host/index.js +2 -0
  342. package/src/visual/wasm/worker-host/index.js.map +1 -0
  343. package/src/visual/wasm/worker-host/rd-wasm-worker-host.d.ts +16 -0
  344. package/src/visual/wasm/worker-host/rd-wasm-worker-host.js +24 -0
  345. package/src/visual/wasm/worker-host/rd-wasm-worker-host.js.map +1 -0
  346. package/src/wasm/wasm-media/rd-wasm-media.d.ts +10 -0
  347. package/src/wasm/wasm-media/rd-wasm-media.js +182 -41
  348. package/src/wasm/wasm-media/rd-wasm-media.js.map +1 -1
  349. package/styles/runtime.css +1609 -0
  350. package/styles/styles.css +1 -0
  351. package/styles/tokens.css +9 -0
@@ -0,0 +1,1609 @@
1
+ .rd-role-gate {
2
+ border: 1px dashed var(--rd-color-border);
3
+ border-radius: 0.5rem;
4
+ padding: 0.75rem;
5
+ background: color-mix(in srgb, var(--rd-color-surface-raised) 96%, var(--rd-color-accent) 4%);
6
+ }
7
+
8
+ .rd-role-gate--hidden {
9
+ border-style: solid;
10
+ background: color-mix(in srgb, var(--rd-color-surface-raised) 92%, var(--rd-color-danger) 8%);
11
+ }
12
+
13
+ .rd-role-gate__status {
14
+ margin: 0.35rem 0 0.5rem;
15
+ font-size: 0.8125rem;
16
+ font-weight: 600;
17
+ color: var(--rd-color-success);
18
+ }
19
+
20
+ .rd-role-gate__status--hidden {
21
+ color: var(--rd-color-warning);
22
+ }
23
+
24
+ .rd-role-gate--visible .rd-field__label {
25
+ font-size: 0.8125rem;
26
+ font-weight: 600;
27
+ color: var(--rd-color-muted);
28
+ }
29
+ /* Form field chrome */
30
+ .rd-field__label {
31
+ display: block;
32
+ margin-bottom: 0.35rem;
33
+ font-size: 0.8125rem;
34
+ font-weight: 600;
35
+ color: var(--rd-color-muted);
36
+ }
37
+
38
+ .rd-input,
39
+ .rd-select {
40
+ display: block;
41
+ width: 100%;
42
+ min-height: 2.25rem;
43
+ padding: 0.45rem 0.6rem;
44
+ border: 1px solid var(--rd-color-border);
45
+ border-radius: 0.375rem;
46
+ background: var(--rd-color-surface-raised);
47
+ color: var(--rd-color-text);
48
+ font: inherit;
49
+ font-size: 0.875rem;
50
+ }
51
+
52
+ .rd-input-text,
53
+ .rd-input-select,
54
+ .rd-input-date-range,
55
+ .rd-time-preset,
56
+ .rd-input-number,
57
+ .rd-input-textarea,
58
+ .rd-input-checkbox {
59
+ display: grid;
60
+ gap: 0;
61
+ }
62
+
63
+ .rd-date-range__controls {
64
+ display: flex;
65
+ align-items: center;
66
+ gap: 0.65rem;
67
+ flex-wrap: nowrap;
68
+ min-width: 0;
69
+ }
70
+
71
+ .rd-date-range__field {
72
+ display: grid;
73
+ gap: 0.25rem;
74
+ flex: 1 1 0;
75
+ min-width: 0;
76
+ }
77
+
78
+ .rd-date-range__field-label {
79
+ font-size: 0.75rem;
80
+ color: var(--rd-color-muted);
81
+ }
82
+
83
+ .rd-date-range__sep {
84
+ flex: 0 0 auto;
85
+ padding: 0 0.15rem;
86
+ font-size: 0.8125rem;
87
+ color: var(--rd-color-muted);
88
+ line-height: 2.25rem;
89
+ }
90
+
91
+ .rd-date-range__input {
92
+ width: 100%;
93
+ min-width: 0;
94
+ }
95
+
96
+ .rd-date-range__controls > .rd-input {
97
+ flex: 1 1 0;
98
+ min-width: 0;
99
+ }
100
+
101
+ .rd-time-preset__buttons {
102
+ display: flex;
103
+ width: 100%;
104
+ gap: 0.35rem;
105
+ }
106
+
107
+ .rd-time-preset__button {
108
+ flex: 1 1 0;
109
+ min-width: 0;
110
+ min-height: 2.25rem;
111
+ padding: 0.45rem 0.6rem;
112
+ border: 1px solid var(--rd-color-border);
113
+ background: var(--rd-color-nav-bg);
114
+ color: var(--rd-color-nav-fg);
115
+ border-radius: 0.375rem;
116
+ font: inherit;
117
+ font-size: 0.875rem;
118
+ cursor: pointer;
119
+ }
120
+
121
+ .rd-time-preset__button--active {
122
+ border-color: var(--rd-color-accent);
123
+ background: color-mix(in srgb, var(--rd-color-accent) 16%, var(--rd-color-nav-bg));
124
+ }
125
+
126
+ .rd-kpi,
127
+ .rd-chart-line,
128
+ .rd-chart-bar,
129
+ .rd-grid,
130
+ .rd-table,
131
+ .rd-detail,
132
+ .rd-input-text,
133
+ .rd-input-select,
134
+ .rd-input-number,
135
+ .rd-input-textarea,
136
+ .rd-input-checkbox,
137
+ .rd-input-date-range,
138
+ .rd-time-preset,
139
+ .rd-news-search-box,
140
+ .rd-news-region-select,
141
+ .rd-news-results-table,
142
+ .rd-news-article-detail,
143
+ .rd-role-gate,
144
+ .rd-person-invite,
145
+ .rd-role-assign,
146
+ .rd-timer,
147
+ .rd-env,
148
+ .rd-infra,
149
+ .rd-tabs,
150
+ .rd-plugin-metric-chip,
151
+ .rd-plugin-status-badge {
152
+ color: var(--rd-color-text);
153
+ font-family: inherit;
154
+ }
155
+
156
+ .rd-kpi {
157
+ display: grid;
158
+ gap: 0.25rem;
159
+ border: 1px solid var(--rd-color-border);
160
+ border-radius: 0.375rem;
161
+ padding: 0.75rem 1rem;
162
+ background: color-mix(in srgb, var(--rd-color-surface-raised) 92%, var(--rd-color-accent) 8%);
163
+ }
164
+
165
+ .rd-kpi__title {
166
+ font-size: 0.875rem;
167
+ color: var(--rd-color-muted);
168
+ }
169
+
170
+ .rd-kpi__value {
171
+ font-size: 1.25rem;
172
+ font-weight: 600;
173
+ }
174
+
175
+ .rd-kpi__delta {
176
+ font-size: 0.8125rem;
177
+ color: var(--rd-color-accent);
178
+ }
179
+
180
+ .rd-grid__title {
181
+ display: block;
182
+ font-weight: 600;
183
+ margin-bottom: 0.5rem;
184
+ }
185
+
186
+ .rd-grid__grid {
187
+ display: grid;
188
+ }
189
+
190
+ .rd-chart-line,
191
+ .rd-chart-bar {
192
+ border: 1px solid var(--rd-color-border);
193
+ border-radius: 0.375rem;
194
+ padding: 0.75rem;
195
+ background: color-mix(in srgb, var(--rd-color-surface-raised) 96%, var(--rd-color-accent) 4%);
196
+ }
197
+
198
+ .rd-chart-line__header,
199
+ .rd-chart-bar__header {
200
+ font-weight: 600;
201
+ margin-bottom: 0.5rem;
202
+ }
203
+
204
+ .rd-chart-line__line {
205
+ fill: none;
206
+ stroke: var(--rd-color-chart-line);
207
+ stroke-width: 3;
208
+ }
209
+
210
+ .rd-chart-bar__bar {
211
+ width: 100%;
212
+ border-radius: 0.25rem 0.25rem 0 0;
213
+ background: var(--rd-color-chart-bar);
214
+ min-height: 0.5rem;
215
+ }
216
+
217
+ .rd-plugin-metric-chip,
218
+ .rd-plugin-status-badge {
219
+ display: inline-flex;
220
+ gap: 0.35rem;
221
+ align-items: center;
222
+ border: 1px solid var(--rd-color-border);
223
+ border-radius: 999px;
224
+ padding: 0.25rem 0.65rem;
225
+ font-size: 0.8125rem;
226
+ }
227
+
228
+ .rd-status-badge--success {
229
+ border-color: color-mix(in srgb, #16a34a 40%, var(--rd-color-border));
230
+ }
231
+
232
+ /* Workbench — preview + component source */
233
+ .da-workbench {
234
+ display: grid;
235
+ gap: 0.75rem;
236
+ }
237
+
238
+ .da-workbench__mobile-toggle {
239
+ display: none;
240
+ gap: 0.5rem;
241
+ }
242
+
243
+ .da-workbench__mobile-toggle button {
244
+ flex: 1;
245
+ border: 1px solid var(--rd-color-border);
246
+ background: var(--rd-color-nav-bg);
247
+ color: var(--rd-color-nav-fg);
248
+ border-radius: 0.375rem;
249
+ padding: 0.45rem 0.75rem;
250
+ font: inherit;
251
+ cursor: pointer;
252
+ }
253
+
254
+ .da-workbench__mobile-toggle button.is-active {
255
+ border-color: var(--rd-color-accent);
256
+ background: color-mix(in srgb, var(--rd-color-accent) 16%, var(--rd-color-nav-bg));
257
+ }
258
+
259
+ .da-workbench__split {
260
+ display: grid;
261
+ grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
262
+ gap: 1rem;
263
+ align-items: start;
264
+ }
265
+
266
+ .da-workbench__source {
267
+ position: sticky;
268
+ top: 1rem;
269
+ border: 1px solid var(--rd-color-border);
270
+ border-radius: 0.5rem;
271
+ background: color-mix(in srgb, var(--rd-color-surface-raised) 94%, var(--rd-color-accent) 6%);
272
+ overflow: hidden;
273
+ }
274
+
275
+ .da-workbench__source-header {
276
+ padding: 0.75rem 1rem 0.25rem;
277
+ border-bottom: 1px solid var(--rd-color-border);
278
+ }
279
+
280
+ .da-workbench__source-header h3 {
281
+ margin: 0;
282
+ font-size: 0.9375rem;
283
+ }
284
+
285
+ .da-workbench__source-header p {
286
+ margin: 0.25rem 0 0;
287
+ font-size: 0.8125rem;
288
+ color: var(--rd-color-muted);
289
+ }
290
+
291
+ .da-workbench__code {
292
+ margin: 0;
293
+ padding: 1rem;
294
+ overflow: auto;
295
+ max-height: calc(100vh - 12rem);
296
+ font-size: 0.75rem;
297
+ line-height: 1.55;
298
+ color: var(--rd-color-text);
299
+ white-space: pre-wrap;
300
+ word-break: break-word;
301
+ }
302
+
303
+ .da-error-panel__trace {
304
+ margin: 0.75rem 0 0;
305
+ padding: 0.75rem;
306
+ border-radius: 0.375rem;
307
+ background: color-mix(in srgb, var(--rd-color-danger) 12%, var(--rd-color-surface-raised));
308
+ overflow: auto;
309
+ font-size: 0.8125rem;
310
+ }
311
+
312
+ @media (max-width: 959px) {
313
+ .da-workbench__mobile-toggle {
314
+ display: flex;
315
+ }
316
+
317
+ .da-workbench__split {
318
+ grid-template-columns: 1fr;
319
+ }
320
+
321
+ .da-workbench__pane--hidden-mobile {
322
+ display: none;
323
+ }
324
+
325
+ .da-workbench__source {
326
+ position: static;
327
+ }
328
+ }
329
+
330
+ /* Destinations layout */
331
+ .da-dest-layout .rd-flex__flex {
332
+ align-items: stretch;
333
+ }
334
+
335
+ .da-dest-layout .rd-table {
336
+ flex: 1.4;
337
+ min-width: 0;
338
+ }
339
+
340
+ .da-dest-layout .rd-detail {
341
+ flex: 1;
342
+ min-width: 0;
343
+ }
344
+
345
+ .da-detail-card__title {
346
+ margin: 0;
347
+ font-size: 1.125rem;
348
+ font-weight: 600;
349
+ }
350
+
351
+ .da-detail-card__meta {
352
+ margin: 0.25rem 0 0.75rem;
353
+ color: var(--rd-color-muted);
354
+ font-size: 0.875rem;
355
+ }
356
+
357
+ .da-detail-card__stats {
358
+ display: grid;
359
+ gap: 0.5rem;
360
+ margin: 0 0 1rem;
361
+ }
362
+
363
+ .da-detail-card__stats dt {
364
+ font-size: 0.75rem;
365
+ text-transform: uppercase;
366
+ letter-spacing: 0.04em;
367
+ color: var(--rd-color-muted);
368
+ }
369
+
370
+ .da-detail-card__stats dd {
371
+ margin: 0.125rem 0 0;
372
+ font-weight: 600;
373
+ }
374
+
375
+ .da-detail-card__historic h4 {
376
+ margin: 0 0 0.5rem;
377
+ font-size: 0.875rem;
378
+ }
379
+
380
+ .da-detail-card__historic ul {
381
+ list-style: none;
382
+ margin: 0;
383
+ padding: 0;
384
+ display: grid;
385
+ gap: 0.35rem;
386
+ }
387
+
388
+ .da-detail-card__historic li {
389
+ display: flex;
390
+ justify-content: space-between;
391
+ gap: 1rem;
392
+ padding: 0.35rem 0.5rem;
393
+ border-radius: 0.25rem;
394
+ background: color-mix(in srgb, var(--rd-color-surface-raised) 92%, var(--rd-color-accent) 8%);
395
+ font-size: 0.875rem;
396
+ }
397
+
398
+ .da-stack--metrics {
399
+ align-items: center;
400
+ }
401
+
402
+ /* Enhanced charts */
403
+ .rd-chart-line__body,
404
+ .rd-chart-bar__body {
405
+ margin-top: 0.25rem;
406
+ }
407
+
408
+ .rd-chart-line__body {
409
+ aspect-ratio: 320 / 200;
410
+ }
411
+
412
+ .rd-chart-line__svg {
413
+ width: 100%;
414
+ height: 100%;
415
+ display: block;
416
+ }
417
+
418
+ .rd-chart-line__grid {
419
+ stroke: color-mix(in srgb, var(--rd-color-border) 80%, transparent);
420
+ stroke-width: 1;
421
+ }
422
+
423
+ .rd-chart-line__tick-label {
424
+ fill: var(--rd-color-muted);
425
+ font-size: 9px;
426
+ text-anchor: end;
427
+ font-variant-numeric: tabular-nums;
428
+ }
429
+
430
+ .rd-chart-line__x-label,
431
+ .rd-chart-line__axis-label {
432
+ fill: var(--rd-color-muted);
433
+ font-size: 9px;
434
+ }
435
+
436
+ .rd-chart-line__x-label {
437
+ text-anchor: middle;
438
+ }
439
+
440
+ .rd-chart-line__axis-label--x {
441
+ text-anchor: middle;
442
+ }
443
+
444
+ .rd-chart-line__axis-label--y {
445
+ text-anchor: middle;
446
+ transform: rotate(-90deg);
447
+ transform-origin: 12px 100px;
448
+ }
449
+
450
+ .rd-chart-line__dot {
451
+ fill: var(--rd-color-chart-line);
452
+ stroke: var(--rd-color-surface-raised);
453
+ stroke-width: 1.5;
454
+ }
455
+
456
+ .rd-chart-bar__body {
457
+ display: grid;
458
+ grid-template-columns: 3.75rem minmax(0, 1fr);
459
+ gap: 0.5rem;
460
+ min-height: 10rem;
461
+ }
462
+
463
+ .rd-chart-bar__y-axis {
464
+ display: flex;
465
+ flex-direction: column;
466
+ width: 3.75rem;
467
+ flex-shrink: 0;
468
+ padding-bottom: 2.5rem;
469
+ font-size: 0.6875rem;
470
+ color: var(--rd-color-muted);
471
+ }
472
+
473
+ .rd-chart-bar__y-ticks {
474
+ flex: 1;
475
+ display: grid;
476
+ grid-template-rows: repeat(4, 1fr);
477
+ align-items: center;
478
+ justify-items: end;
479
+ min-height: 8rem;
480
+ }
481
+
482
+ .rd-chart-bar__y-tick {
483
+ display: block;
484
+ width: 100%;
485
+ text-align: right;
486
+ font-variant-numeric: tabular-nums;
487
+ white-space: nowrap;
488
+ }
489
+
490
+ .rd-chart-bar__y-label {
491
+ writing-mode: vertical-rl;
492
+ transform: rotate(180deg);
493
+ margin-top: 0.5rem;
494
+ font-size: 0.625rem;
495
+ letter-spacing: 0.04em;
496
+ text-transform: uppercase;
497
+ }
498
+
499
+ .rd-chart-bar__plot {
500
+ position: relative;
501
+ min-height: 10rem;
502
+ overflow-x: auto;
503
+ overscroll-behavior: contain;
504
+ }
505
+
506
+ .rd-chart-bar__grid-lines {
507
+ position: absolute;
508
+ inset: 0 0 2.5rem;
509
+ pointer-events: none;
510
+ }
511
+
512
+ .rd-chart-bar__grid-line {
513
+ position: absolute;
514
+ left: 0;
515
+ right: 0;
516
+ border-top: 1px solid color-mix(in srgb, var(--rd-color-border) 70%, transparent);
517
+ }
518
+
519
+ .rd-chart-bar__bars {
520
+ position: relative;
521
+ display: flex;
522
+ align-items: flex-end;
523
+ gap: 0.65rem;
524
+ min-height: 8rem;
525
+ padding-bottom: 2.5rem;
526
+ }
527
+
528
+ .rd-chart-bar__bar-group {
529
+ flex: 1 0 2.75rem;
530
+ display: flex;
531
+ flex-direction: column;
532
+ align-items: stretch;
533
+ gap: 0.25rem;
534
+ min-width: 2.75rem;
535
+ }
536
+
537
+ .rd-chart-bar__bar-wrap {
538
+ width: 100%;
539
+ display: flex;
540
+ align-items: flex-end;
541
+ height: 8rem;
542
+ }
543
+
544
+ .rd-chart-bar__x-label {
545
+ font-size: 0.6875rem;
546
+ color: var(--rd-color-muted);
547
+ text-align: center;
548
+ white-space: nowrap;
549
+ overflow: hidden;
550
+ text-overflow: ellipsis;
551
+ max-width: 100%;
552
+ }
553
+
554
+ .rd-chart-bar__value {
555
+ font-size: 0.625rem;
556
+ color: var(--rd-color-accent);
557
+ font-weight: 600;
558
+ text-align: right;
559
+ font-variant-numeric: tabular-nums;
560
+ white-space: nowrap;
561
+ }
562
+
563
+ /* Enhanced table + detail */
564
+ .rd-table__header {
565
+ display: flex;
566
+ align-items: baseline;
567
+ justify-content: space-between;
568
+ gap: 0.75rem;
569
+ font-weight: 600;
570
+ margin-bottom: 0.5rem;
571
+ }
572
+
573
+ .rd-table__count {
574
+ font-size: 0.75rem;
575
+ font-weight: 500;
576
+ color: var(--rd-color-muted);
577
+ }
578
+
579
+ .rd-table {
580
+ border: 1px solid var(--rd-color-border);
581
+ border-radius: 0.5rem;
582
+ padding: 0.75rem;
583
+ background: color-mix(in srgb, var(--rd-color-surface-raised) 96%, var(--rd-color-accent) 4%);
584
+ }
585
+
586
+ .rd-table__scroll {
587
+ overflow: auto;
588
+ max-height: 22rem;
589
+ }
590
+
591
+ .rd-table__table {
592
+ width: 100%;
593
+ border-collapse: collapse;
594
+ font-size: 0.875rem;
595
+ table-layout: fixed;
596
+ }
597
+
598
+ .rd-table__table th,
599
+ .rd-table__table td {
600
+ padding: 0.55rem 0.65rem;
601
+ border-bottom: 1px solid var(--rd-color-border);
602
+ text-align: left;
603
+ overflow: hidden;
604
+ text-overflow: ellipsis;
605
+ }
606
+
607
+ .rd-table__table :is(th, td).rd-table__cell--right {
608
+ text-align: right;
609
+ font-variant-numeric: tabular-nums;
610
+ }
611
+
612
+ .rd-table__table :is(th, td).rd-table__cell--center {
613
+ text-align: center;
614
+ }
615
+
616
+ .rd-table__table th {
617
+ font-size: 0.75rem;
618
+ text-transform: uppercase;
619
+ letter-spacing: 0.04em;
620
+ color: var(--rd-color-muted);
621
+ background: color-mix(in srgb, var(--rd-color-surface-raised) 90%, var(--rd-color-accent) 10%);
622
+ }
623
+
624
+ .rd-table__row--interactive {
625
+ cursor: pointer;
626
+ }
627
+
628
+ .rd-table__row--interactive:hover td {
629
+ background: color-mix(in srgb, var(--rd-color-accent) 10%, transparent);
630
+ }
631
+
632
+ .rd-table__row--selected td {
633
+ background: color-mix(in srgb, var(--rd-color-accent) 18%, transparent);
634
+ }
635
+
636
+ .rd-detail {
637
+ border: 1px solid var(--rd-color-border);
638
+ border-radius: 0.5rem;
639
+ padding: 0.75rem 1rem;
640
+ background: color-mix(in srgb, var(--rd-color-surface-raised) 94%, var(--rd-color-accent) 6%);
641
+ }
642
+
643
+ .rd-detail__header {
644
+ font-weight: 600;
645
+ margin-bottom: 0.5rem;
646
+ }
647
+
648
+ .rd-detail__body {
649
+ font-size: 0.9375rem;
650
+ }
651
+
652
+ .rd-flex__flex {
653
+ display: flex;
654
+ }
655
+
656
+ .rd-tabs {
657
+ margin-top: 0.75rem;
658
+ }
659
+
660
+ .rd-tabs__tabs {
661
+ display: flex;
662
+ gap: 0.5rem;
663
+ margin-bottom: 0.75rem;
664
+ }
665
+
666
+ .rd-tabs__tab {
667
+ border: 1px solid var(--rd-color-border);
668
+ background: var(--rd-color-nav-bg);
669
+ color: var(--rd-color-nav-fg);
670
+ border-radius: 0.375rem;
671
+ padding: 0.35rem 0.75rem;
672
+ font: inherit;
673
+ cursor: pointer;
674
+ }
675
+
676
+ .rd-tabs__tab--active {
677
+ border-color: var(--rd-color-accent);
678
+ background: color-mix(in srgb, var(--rd-color-accent) 16%, var(--rd-color-nav-bg));
679
+ }
680
+
681
+ .rd-tabs__panel {
682
+ min-height: var(--rd-tabs-panel-min-height, auto);
683
+ }
684
+
685
+ .rd-scroll-region {
686
+ display: flex;
687
+ flex-direction: column;
688
+ min-height: 0;
689
+ border: 1px solid var(--rd-color-border);
690
+ border-radius: 0.5rem;
691
+ background: color-mix(in srgb, var(--rd-color-surface-raised) 96%, var(--rd-color-accent) 4%);
692
+ color: var(--rd-color-text);
693
+ }
694
+
695
+ .rd-scroll-region__header {
696
+ flex: 0 0 auto;
697
+ padding: 0.75rem 1rem 0.35rem;
698
+ font-weight: 600;
699
+ border-bottom: 1px solid var(--rd-color-border);
700
+ }
701
+
702
+ .rd-scroll-region__body {
703
+ flex: 1 1 auto;
704
+ min-height: 0;
705
+ overflow-y: auto;
706
+ padding: 0.75rem 1rem 1rem;
707
+ overscroll-behavior: contain;
708
+ }
709
+
710
+ .rd-scroll-region--overlay-scrollbar .rd-scroll-region__body {
711
+ scrollbar-width: thin;
712
+ scrollbar-color: color-mix(in srgb, var(--rd-color-muted) 55%, transparent) transparent;
713
+ }
714
+
715
+ .rd-scroll-region--overlay-scrollbar .rd-scroll-region__body::-webkit-scrollbar {
716
+ width: 8px;
717
+ }
718
+
719
+ .rd-scroll-region--overlay-scrollbar .rd-scroll-region__body::-webkit-scrollbar-thumb {
720
+ background: color-mix(in srgb, var(--rd-color-muted) 45%, transparent);
721
+ border-radius: 999px;
722
+ }
723
+
724
+ .rd-scroll-region--overlay-scrollbar .rd-scroll-region__body::-webkit-scrollbar-track {
725
+ background: transparent;
726
+ }
727
+
728
+ .rd-detail__empty {
729
+ margin: 0.5rem 0 0;
730
+ font-size: 0.9375rem;
731
+ color: var(--rd-color-muted);
732
+ }
733
+
734
+ .rd-button {
735
+ display: inline-flex;
736
+ align-items: center;
737
+ justify-content: center;
738
+ min-height: 2.25rem;
739
+ padding: 0.45rem 0.75rem;
740
+ border: 1px solid var(--rd-color-border);
741
+ border-radius: 0.375rem;
742
+ background: var(--rd-color-nav-bg);
743
+ color: var(--rd-color-nav-fg);
744
+ font: inherit;
745
+ font-size: 0.875rem;
746
+ cursor: pointer;
747
+ }
748
+
749
+ .rd-button:hover {
750
+ border-color: var(--rd-color-accent);
751
+ }
752
+
753
+ .rd-search__row {
754
+ display: flex;
755
+ gap: 0.5rem;
756
+ align-items: stretch;
757
+ }
758
+
759
+ .rd-search__row .rd-input {
760
+ flex: 1;
761
+ min-width: 0;
762
+ }
763
+
764
+ .rd-person-invite,
765
+ .rd-role-assign,
766
+ .rd-timer,
767
+ .rd-env,
768
+ .rd-infra {
769
+ display: grid;
770
+ gap: 0.5rem;
771
+ }
772
+
773
+ .rd-env__keys {
774
+ list-style: none;
775
+ margin: 0;
776
+ padding: 0;
777
+ display: grid;
778
+ gap: 0.35rem;
779
+ }
780
+
781
+ .rd-env__key-row {
782
+ display: flex;
783
+ align-items: center;
784
+ justify-content: space-between;
785
+ gap: 0.75rem;
786
+ font-size: 0.8125rem;
787
+ }
788
+
789
+ .rd-env__key-state {
790
+ font-size: 0.75rem;
791
+ text-transform: uppercase;
792
+ letter-spacing: 0.04em;
793
+ color: var(--rd-color-muted);
794
+ }
795
+
796
+ .rd-env__key-state--configured {
797
+ color: #15803d;
798
+ }
799
+
800
+ .rd-env__key-state--missing {
801
+ color: #b45309;
802
+ }
803
+
804
+ .rd-env__key-state--unknown {
805
+ color: var(--rd-color-muted);
806
+ }
807
+
808
+ .rd-collapsible {
809
+ border: 1px solid var(--rd-color-border);
810
+ border-radius: 0.375rem;
811
+ background: var(--rd-color-surface-raised);
812
+ }
813
+
814
+ .rd-collapsible__header {
815
+ display: flex;
816
+ align-items: center;
817
+ justify-content: space-between;
818
+ gap: 0.75rem;
819
+ width: 100%;
820
+ border: 0;
821
+ background: transparent;
822
+ color: var(--rd-color-text);
823
+ font: inherit;
824
+ text-align: left;
825
+ padding: 0.75rem 1rem;
826
+ cursor: pointer;
827
+ }
828
+
829
+ .rd-collapsible__titles {
830
+ display: grid;
831
+ gap: 0.15rem;
832
+ }
833
+
834
+ .rd-collapsible__title {
835
+ font-size: 0.9375rem;
836
+ font-weight: 600;
837
+ }
838
+
839
+ .rd-collapsible__summary {
840
+ font-size: 0.8125rem;
841
+ color: var(--rd-color-muted);
842
+ }
843
+
844
+ .rd-collapsible__chevron {
845
+ color: var(--rd-color-muted);
846
+ font-size: 0.875rem;
847
+ }
848
+
849
+ .rd-collapsible__panel {
850
+ padding: 0 1rem 1rem;
851
+ border-top: 1px solid var(--rd-color-border);
852
+ }
853
+
854
+ .rd-timer__label {
855
+ font-size: 0.8125rem;
856
+ font-weight: 600;
857
+ color: var(--rd-color-muted);
858
+ }
859
+
860
+ .rd-timer__value {
861
+ font-size: 0.875rem;
862
+ }
863
+
864
+ .rd-onboarding__summary {
865
+ margin: 0;
866
+ font-size: 0.8125rem;
867
+ color: var(--rd-color-muted);
868
+ }
869
+
870
+ .rd-plugin-metric-chip__label,
871
+ .rd-plugin-metric-chip__value {
872
+ display: inline;
873
+ }
874
+
875
+ .rd-flex__title {
876
+ display: block;
877
+ font-weight: 600;
878
+ margin-bottom: 0.5rem;
879
+ }
880
+
881
+ .rd-flex--stretch-items .rd-flex__flex {
882
+ align-items: stretch;
883
+ }
884
+
885
+ .rd-flex__item {
886
+ min-width: 0;
887
+ }
888
+
889
+ .rd-flex__item--grow {
890
+ flex: var(--rd-flex-grow, 1);
891
+ }
892
+
893
+ .rd-display-3d-geo-globe__svg {
894
+ width: 100%;
895
+ height: auto;
896
+ display: block;
897
+ border-radius: var(--rd-radius-md);
898
+ }
899
+
900
+ .rd-filter-grid {
901
+ display: grid;
902
+ grid-template-columns: minmax(180px, 1fr) minmax(260px, 1.2fr);
903
+ grid-template-rows: auto auto;
904
+ gap: 0.85rem 1rem;
905
+ padding: 0.85rem;
906
+ border: 1px solid var(--rd-color-border);
907
+ border-radius: 0.5rem;
908
+ background: color-mix(in srgb, var(--rd-color-surface-raised) 96%, var(--rd-color-accent) 4%);
909
+ }
910
+
911
+ .rd-filter-grid__stack {
912
+ display: grid;
913
+ gap: 0.75rem;
914
+ align-content: start;
915
+ }
916
+
917
+ .rd-filter-grid__period {
918
+ align-self: start;
919
+ }
920
+
921
+ .rd-filter-grid__full {
922
+ grid-column: 1 / -1;
923
+ }
924
+
925
+ .rd-filter-summary {
926
+ padding: 0.75rem 0.85rem;
927
+ border: 1px solid var(--rd-color-border);
928
+ border-radius: 0.5rem;
929
+ background: color-mix(in srgb, var(--rd-color-surface-raised) 94%, var(--rd-color-accent) 6%);
930
+ }
931
+
932
+ .rd-filter-summary__header {
933
+ display: flex;
934
+ align-items: baseline;
935
+ justify-content: space-between;
936
+ gap: 0.75rem;
937
+ margin-bottom: 0.5rem;
938
+ }
939
+
940
+ .rd-filter-summary__count {
941
+ font-size: 0.8125rem;
942
+ color: var(--rd-color-muted);
943
+ }
944
+
945
+ .rd-filter-summary__chips {
946
+ display: flex;
947
+ flex-wrap: wrap;
948
+ gap: 0.5rem 1rem;
949
+ margin: 0 0 0.5rem;
950
+ }
951
+
952
+ .rd-filter-summary__chips dt {
953
+ font-size: 0.6875rem;
954
+ text-transform: uppercase;
955
+ letter-spacing: 0.04em;
956
+ color: var(--rd-color-muted);
957
+ }
958
+
959
+ .rd-filter-summary__chips dd {
960
+ margin: 0.1rem 0 0;
961
+ font-weight: 600;
962
+ font-size: 0.875rem;
963
+ }
964
+
965
+ .rd-filter-summary__hint {
966
+ margin: 0;
967
+ font-size: 0.8125rem;
968
+ color: var(--rd-color-muted);
969
+ }
970
+
971
+ .rd-detail-stats {
972
+ display: grid;
973
+ gap: 0.5rem;
974
+ margin: 0 0 1rem;
975
+ }
976
+
977
+ .rd-detail-stats--compact {
978
+ grid-template-columns: 1fr 1fr;
979
+ gap: 0.65rem;
980
+ }
981
+
982
+ .rd-detail-stats dt {
983
+ font-size: 0.75rem;
984
+ text-transform: uppercase;
985
+ letter-spacing: 0.04em;
986
+ color: var(--rd-color-muted);
987
+ }
988
+
989
+ .rd-detail-stats dd {
990
+ margin: 0.125rem 0 0;
991
+ font-weight: 600;
992
+ font-variant-numeric: tabular-nums;
993
+ }
994
+
995
+ .rd-detail-historic h4 {
996
+ margin: 0 0 0.5rem;
997
+ font-size: 0.875rem;
998
+ }
999
+
1000
+ .rd-detail-historic ul {
1001
+ list-style: none;
1002
+ margin: 0;
1003
+ padding: 0;
1004
+ display: grid;
1005
+ gap: 0.35rem;
1006
+ max-height: 14rem;
1007
+ overflow-y: auto;
1008
+ overscroll-behavior: contain;
1009
+ }
1010
+
1011
+ .rd-detail-historic--compact ul {
1012
+ gap: 0.2rem;
1013
+ }
1014
+
1015
+ .rd-detail-historic li {
1016
+ display: flex;
1017
+ justify-content: space-between;
1018
+ gap: 1rem;
1019
+ padding: 0.35rem 0.5rem;
1020
+ border-radius: 0.25rem;
1021
+ background: color-mix(in srgb, var(--rd-color-surface-raised) 92%, var(--rd-color-accent) 8%);
1022
+ font-size: 0.875rem;
1023
+ }
1024
+
1025
+ .rd-detail-historic li strong {
1026
+ text-align: right;
1027
+ font-variant-numeric: tabular-nums;
1028
+ min-width: 4.5rem;
1029
+ flex-shrink: 0;
1030
+ }
1031
+
1032
+ .rd-detail-historic--compact li {
1033
+ padding: 0.25rem 0.45rem;
1034
+ }
1035
+
1036
+ .rd-detail-card__title {
1037
+ margin: 0;
1038
+ font-size: 1.125rem;
1039
+ font-weight: 600;
1040
+ }
1041
+
1042
+ .rd-detail-card__meta {
1043
+ margin: 0.25rem 0 0.75rem;
1044
+ color: var(--rd-color-muted);
1045
+ font-size: 0.875rem;
1046
+ }
1047
+
1048
+ .rd-form-section-grid {
1049
+ display: grid;
1050
+ gap: 1rem;
1051
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1052
+ }
1053
+
1054
+ .rd-form-section {
1055
+ border: 1px solid var(--rd-color-border);
1056
+ border-radius: 0.5rem;
1057
+ padding: 0.85rem;
1058
+ background: color-mix(in srgb, var(--rd-color-surface-raised) 96%, var(--rd-color-accent) 4%);
1059
+ }
1060
+
1061
+ .rd-form-section--full {
1062
+ grid-column: 1 / -1;
1063
+ }
1064
+
1065
+ .rd-form-section__title {
1066
+ margin: 0 0 0.65rem;
1067
+ font-size: 0.9375rem;
1068
+ }
1069
+
1070
+ .rd-form-section__body {
1071
+ display: grid;
1072
+ gap: 0.75rem;
1073
+ }
1074
+
1075
+ .rd-form-section__body--2col {
1076
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1077
+ }
1078
+
1079
+ .rd-media-layout {
1080
+ display: grid;
1081
+ grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
1082
+ gap: 1rem;
1083
+ align-items: start;
1084
+ }
1085
+
1086
+ .rd-media-primary,
1087
+ .rd-media-tools {
1088
+ display: grid;
1089
+ gap: 0.75rem;
1090
+ }
1091
+
1092
+ .rd-media-tools {
1093
+ align-content: start;
1094
+ }
1095
+
1096
+ .rd-youtube-embed-host {
1097
+ display: block;
1098
+ width: 100%;
1099
+ min-height: 16rem;
1100
+ margin-top: 0.75rem;
1101
+ }
1102
+
1103
+ rd-youtube-embed.rd-youtube-embed-host {
1104
+ min-height: 16rem;
1105
+ }
1106
+
1107
+ .rd-highlight-target {
1108
+ animation: rd-highlight-pulse 1.6s ease-out 2;
1109
+ }
1110
+
1111
+ @keyframes rd-highlight-pulse {
1112
+ 0%,
1113
+ 100% {
1114
+ box-shadow: 0 0 0 0 transparent;
1115
+ }
1116
+
1117
+ 30% {
1118
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--rd-color-accent) 45%, transparent);
1119
+ }
1120
+ }
1121
+
1122
+ .rd-link-list__link:hover,
1123
+ .rd-link-list__link:focus-visible {
1124
+ text-decoration: underline;
1125
+ }
1126
+
1127
+ .rd-link-list__button {
1128
+ border: 0;
1129
+ background: transparent;
1130
+ padding: 0;
1131
+ font: inherit;
1132
+ color: var(--rd-color-accent);
1133
+ cursor: pointer;
1134
+ text-align: left;
1135
+ text-decoration: none;
1136
+ }
1137
+
1138
+ .rd-link-list__button:hover,
1139
+ .rd-link-list__button:focus-visible {
1140
+ text-decoration: underline;
1141
+ }
1142
+
1143
+ .rd-map-location {
1144
+ display: flex;
1145
+ gap: 0.65rem;
1146
+ align-items: flex-end;
1147
+ margin-bottom: 0.5rem;
1148
+ }
1149
+
1150
+ .rd-map-location .rd-input-text {
1151
+ flex: 1;
1152
+ min-width: 0;
1153
+ }
1154
+
1155
+ .rd-equirect-globe__viewport {
1156
+ position: relative;
1157
+ border-radius: var(--rd-radius-md);
1158
+ overflow: hidden;
1159
+ border: 1px solid var(--rd-color-border);
1160
+ }
1161
+
1162
+ .rd-equirect-globe__image {
1163
+ display: block;
1164
+ width: 100%;
1165
+ height: auto;
1166
+ }
1167
+
1168
+ .rd-equirect-globe__markers {
1169
+ position: absolute;
1170
+ inset: 0;
1171
+ width: 100%;
1172
+ height: 100%;
1173
+ pointer-events: none;
1174
+ }
1175
+
1176
+ .rd-equirect-globe__marker {
1177
+ pointer-events: auto;
1178
+ }
1179
+
1180
+ .rd-equirect-globe__attribution {
1181
+ margin: 0.35rem 0 0;
1182
+ font-size: 0.75rem;
1183
+ color: var(--rd-color-muted);
1184
+ }
1185
+
1186
+ .rd-video-metadata {
1187
+ border: 1px solid var(--rd-color-border);
1188
+ border-radius: 0.5rem;
1189
+ padding: 0.75rem;
1190
+ background: color-mix(in srgb, var(--rd-color-surface-raised) 96%, var(--rd-color-accent) 4%);
1191
+ }
1192
+
1193
+ .rd-video-metadata__title {
1194
+ margin: 0 0 0.5rem;
1195
+ font-size: 0.9375rem;
1196
+ }
1197
+
1198
+ .rd-video-metadata__list {
1199
+ display: grid;
1200
+ gap: 0.45rem;
1201
+ margin: 0;
1202
+ }
1203
+
1204
+ .rd-video-metadata__list dt {
1205
+ font-size: 0.6875rem;
1206
+ text-transform: uppercase;
1207
+ letter-spacing: 0.04em;
1208
+ color: var(--rd-color-muted);
1209
+ }
1210
+
1211
+ .rd-video-metadata__list dd {
1212
+ margin: 0.1rem 0 0;
1213
+ font-weight: 600;
1214
+ font-size: 0.875rem;
1215
+ }
1216
+
1217
+ .rd-media-360 {
1218
+ margin-top: 1rem;
1219
+ padding-top: 1rem;
1220
+ border-top: 1px dashed var(--rd-color-border);
1221
+ }
1222
+
1223
+ .rd-media-360__title {
1224
+ margin: 0 0 0.35rem;
1225
+ font-size: 1rem;
1226
+ }
1227
+
1228
+ .rd-media-360__grid {
1229
+ display: grid;
1230
+ gap: 0.75rem;
1231
+ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
1232
+ margin-top: 0.75rem;
1233
+ }
1234
+
1235
+ /* Geo explorer composite — viewport + destination sidebar */
1236
+ .rd-geo-explorer {
1237
+ display: grid;
1238
+ gap: 0.75rem;
1239
+ }
1240
+
1241
+ .rd-geo-explorer__title {
1242
+ font-weight: 600;
1243
+ }
1244
+
1245
+ .rd-geo-explorer__body {
1246
+ display: flex;
1247
+ gap: 1rem;
1248
+ align-items: stretch;
1249
+ min-height: 0;
1250
+ }
1251
+
1252
+ .rd-geo-explorer__body--list-left {
1253
+ flex-direction: row-reverse;
1254
+ }
1255
+
1256
+ .rd-geo-explorer__viewport {
1257
+ flex: 1 1 auto;
1258
+ min-width: 0;
1259
+ min-height: var(--rd-geo-explorer-min-height, 28rem);
1260
+ display: flex;
1261
+ flex-direction: column;
1262
+ }
1263
+
1264
+ .rd-geo-explorer__viewport > * {
1265
+ flex: 1 1 auto;
1266
+ min-height: 0;
1267
+ width: 100%;
1268
+ }
1269
+
1270
+ .rd-geo-explorer__list {
1271
+ flex: 0 0 var(--rd-geo-explorer-list-width, 14rem);
1272
+ min-width: var(--rd-geo-explorer-list-width, 14rem);
1273
+ height: var(--rd-geo-explorer-min-height, 28rem);
1274
+ max-height: var(--rd-geo-explorer-min-height, 28rem);
1275
+ display: flex;
1276
+ flex-direction: column;
1277
+ min-height: 0;
1278
+ overflow: hidden;
1279
+ }
1280
+
1281
+ /* Destination select list */
1282
+ .rd-destination-list {
1283
+ border: 1px solid var(--rd-color-border);
1284
+ border-radius: 0.5rem;
1285
+ background: var(--rd-color-surface-raised);
1286
+ display: flex;
1287
+ flex-direction: column;
1288
+ min-height: 0;
1289
+ height: 100%;
1290
+ max-height: 100%;
1291
+ }
1292
+
1293
+ .rd-destination-list__header {
1294
+ display: flex;
1295
+ align-items: baseline;
1296
+ justify-content: space-between;
1297
+ gap: 0.5rem;
1298
+ padding: 0.65rem 0.75rem;
1299
+ border-bottom: 1px solid var(--rd-color-border);
1300
+ }
1301
+
1302
+ .rd-destination-list__header h3 {
1303
+ margin: 0;
1304
+ font-size: 0.875rem;
1305
+ font-weight: 600;
1306
+ }
1307
+
1308
+ .rd-destination-list__count {
1309
+ font-size: 0.75rem;
1310
+ color: var(--rd-color-muted);
1311
+ }
1312
+
1313
+ .rd-destination-list__items {
1314
+ list-style: none;
1315
+ margin: 0;
1316
+ padding: 0.35rem;
1317
+ flex: 1 1 auto;
1318
+ min-height: 0;
1319
+ overflow-y: auto;
1320
+ overscroll-behavior: contain;
1321
+ }
1322
+
1323
+ .rd-destination-list__item + .rd-destination-list__item {
1324
+ margin-top: 0.2rem;
1325
+ }
1326
+
1327
+ .rd-destination-list__button {
1328
+ width: 100%;
1329
+ display: grid;
1330
+ gap: 0.15rem;
1331
+ padding: 0.55rem 0.65rem;
1332
+ border: 1px solid transparent;
1333
+ border-radius: 0.375rem;
1334
+ background: transparent;
1335
+ color: var(--rd-color-text);
1336
+ font: inherit;
1337
+ font-size: 0.875rem;
1338
+ text-align: left;
1339
+ cursor: pointer;
1340
+ }
1341
+
1342
+ .rd-destination-list__button:hover,
1343
+ .rd-destination-list__button:focus-visible {
1344
+ background: color-mix(in srgb, var(--rd-color-accent) 10%, transparent);
1345
+ outline: none;
1346
+ }
1347
+
1348
+ .rd-destination-list__item--selected .rd-destination-list__button {
1349
+ border-color: color-mix(in srgb, var(--rd-color-accent) 45%, var(--rd-color-border));
1350
+ background: color-mix(in srgb, var(--rd-color-accent) 16%, var(--rd-color-surface-raised));
1351
+ font-weight: 600;
1352
+ }
1353
+
1354
+ /* Vue/React/Angular merge `rd-geo-explorer__list` onto this root; keep the explorer height cap. */
1355
+ .rd-geo-explorer__list.rd-destination-list {
1356
+ height: var(--rd-geo-explorer-min-height, 28rem);
1357
+ max-height: var(--rd-geo-explorer-min-height, 28rem);
1358
+ }
1359
+
1360
+ .rd-geo-explorer__list .rd-destination-list {
1361
+ flex: 1 1 auto;
1362
+ min-height: 0;
1363
+ height: 100%;
1364
+ max-height: 100%;
1365
+ }
1366
+
1367
+ .rd-destination-list__meta {
1368
+ font-size: 0.75rem;
1369
+ font-weight: 500;
1370
+ color: var(--rd-color-muted);
1371
+ }
1372
+
1373
+ /* Three.js geo globe */
1374
+ .rd-display-3d-geo-globe {
1375
+ display: flex;
1376
+ flex-direction: column;
1377
+ min-height: 16rem;
1378
+ border: 1px solid var(--rd-color-border);
1379
+ border-radius: 0.5rem;
1380
+ overflow: hidden;
1381
+ background: #0b1220;
1382
+ }
1383
+
1384
+ .rd-display-3d-geo-globe__header {
1385
+ padding: 0.5rem 0.75rem;
1386
+ font-size: 0.8125rem;
1387
+ font-weight: 600;
1388
+ color: #e2e8f0;
1389
+ border-bottom: 1px solid color-mix(in srgb, #64748b 40%, transparent);
1390
+ }
1391
+
1392
+ .rd-display-3d-geo-globe__canvas-host {
1393
+ flex: 1 1 auto;
1394
+ min-height: 0;
1395
+ width: 100%;
1396
+ }
1397
+
1398
+ /* Sankey journey chart */
1399
+ .rd-chart-sankey,
1400
+ .rd-chart-venn {
1401
+ border: 1px solid var(--rd-color-border);
1402
+ border-radius: 0.5rem;
1403
+ background: var(--rd-color-surface-raised);
1404
+ padding: 0.75rem;
1405
+ }
1406
+
1407
+ .rd-chart-sankey__header,
1408
+ .rd-chart-venn__header {
1409
+ font-size: 0.875rem;
1410
+ font-weight: 600;
1411
+ margin-bottom: 0.5rem;
1412
+ }
1413
+
1414
+ .rd-chart-sankey__svg,
1415
+ .rd-chart-venn__svg {
1416
+ width: 100%;
1417
+ height: auto;
1418
+ display: block;
1419
+ }
1420
+
1421
+ .rd-chart-sankey__link {
1422
+ fill: color-mix(in srgb, var(--rd-color-accent) 35%, transparent);
1423
+ stroke: none;
1424
+ }
1425
+
1426
+ .rd-chart-sankey__node {
1427
+ fill: var(--rd-color-accent);
1428
+ }
1429
+
1430
+ .rd-chart-sankey__label {
1431
+ font-size: 11px;
1432
+ fill: var(--rd-color-text);
1433
+ }
1434
+
1435
+ /* Venn overlap chart */
1436
+ .rd-chart-venn__body {
1437
+ display: grid;
1438
+ gap: 0.75rem;
1439
+ }
1440
+
1441
+ .rd-chart-venn__circle {
1442
+ fill-opacity: 0.35;
1443
+ stroke: var(--rd-color-border);
1444
+ stroke-width: 1.5;
1445
+ }
1446
+
1447
+ .rd-chart-venn__set-label {
1448
+ font-size: 12px;
1449
+ fill: var(--rd-color-text);
1450
+ font-weight: 600;
1451
+ }
1452
+
1453
+ .rd-chart-venn__legend {
1454
+ list-style: none;
1455
+ margin: 0;
1456
+ padding: 0;
1457
+ display: grid;
1458
+ gap: 0.35rem;
1459
+ font-size: 0.8125rem;
1460
+ }
1461
+
1462
+ .rd-chart-venn__legend li {
1463
+ display: grid;
1464
+ grid-template-columns: auto 1fr auto;
1465
+ gap: 0.5rem;
1466
+ align-items: center;
1467
+ }
1468
+
1469
+ .rd-chart-venn__swatch {
1470
+ width: 0.75rem;
1471
+ height: 0.75rem;
1472
+ border-radius: 999px;
1473
+ }
1474
+
1475
+ .rd-chart-venn__swatch--overlap {
1476
+ background: color-mix(in srgb, var(--rd-color-accent) 40%, var(--rd-color-muted));
1477
+ }
1478
+
1479
+ /* Media carousel */
1480
+ .rd-media-carousel {
1481
+ border: 1px solid var(--rd-color-border);
1482
+ border-radius: 0.5rem;
1483
+ background: var(--rd-color-surface-raised);
1484
+ overflow: hidden;
1485
+ }
1486
+
1487
+ .rd-media-carousel__header {
1488
+ padding: 0.65rem 0.75rem;
1489
+ font-size: 0.875rem;
1490
+ font-weight: 600;
1491
+ border-bottom: 1px solid var(--rd-color-border);
1492
+ }
1493
+
1494
+ .rd-media-carousel__viewport {
1495
+ display: grid;
1496
+ grid-template-columns: auto 1fr auto;
1497
+ align-items: center;
1498
+ gap: 0.35rem;
1499
+ padding: 0.5rem;
1500
+ }
1501
+
1502
+ .rd-media-carousel__nav {
1503
+ border: 1px solid var(--rd-color-border);
1504
+ background: var(--rd-color-surface);
1505
+ color: var(--rd-color-text);
1506
+ width: 2rem;
1507
+ height: 2rem;
1508
+ border-radius: 999px;
1509
+ cursor: pointer;
1510
+ font-size: 1.25rem;
1511
+ line-height: 1;
1512
+ }
1513
+
1514
+ .rd-media-carousel__slide {
1515
+ margin: 0;
1516
+ display: grid;
1517
+ gap: 0.35rem;
1518
+ }
1519
+
1520
+ .rd-media-carousel__image {
1521
+ width: 100%;
1522
+ aspect-ratio: 16 / 9;
1523
+ object-fit: cover;
1524
+ border-radius: 0.375rem;
1525
+ background: var(--rd-color-surface);
1526
+ }
1527
+
1528
+ .rd-media-carousel__caption {
1529
+ display: grid;
1530
+ gap: 0.15rem;
1531
+ font-size: 0.8125rem;
1532
+ }
1533
+
1534
+ .rd-media-carousel__caption span {
1535
+ color: var(--rd-color-muted);
1536
+ }
1537
+
1538
+ .rd-media-carousel__dots {
1539
+ display: flex;
1540
+ justify-content: center;
1541
+ gap: 0.35rem;
1542
+ padding: 0 0.75rem 0.75rem;
1543
+ }
1544
+
1545
+ .rd-media-carousel__dot {
1546
+ width: 0.55rem;
1547
+ height: 0.55rem;
1548
+ border-radius: 999px;
1549
+ border: none;
1550
+ background: var(--rd-color-border);
1551
+ cursor: pointer;
1552
+ padding: 0;
1553
+ }
1554
+
1555
+ .rd-media-carousel__dot--active {
1556
+ background: var(--rd-color-accent);
1557
+ }
1558
+
1559
+ /* Three.js scatter plot */
1560
+ .rd-display-3d-scatter {
1561
+ display: flex;
1562
+ flex-direction: column;
1563
+ min-height: 16rem;
1564
+ border: 1px solid var(--rd-color-border);
1565
+ border-radius: 0.5rem;
1566
+ overflow: hidden;
1567
+ background: #0f172a;
1568
+ }
1569
+
1570
+ .rd-display-3d-scatter__header {
1571
+ padding: 0.5rem 0.75rem;
1572
+ font-size: 0.8125rem;
1573
+ font-weight: 600;
1574
+ color: #e2e8f0;
1575
+ border-bottom: 1px solid color-mix(in srgb, #64748b 40%, transparent);
1576
+ }
1577
+
1578
+ .rd-display-3d-scatter__axes {
1579
+ margin: 0;
1580
+ padding: 0.35rem 0.75rem;
1581
+ font-size: 0.75rem;
1582
+ color: #94a3b8;
1583
+ }
1584
+
1585
+ .rd-display-3d-scatter__canvas-host {
1586
+ flex: 1 1 auto;
1587
+ min-height: 12rem;
1588
+ width: 100%;
1589
+ }
1590
+
1591
+ @media (max-width: 800px) {
1592
+ .rd-filter-grid,
1593
+ .rd-form-section-grid,
1594
+ .rd-form-section__body--2col,
1595
+ .rd-media-layout,
1596
+ .rd-geo-explorer__body {
1597
+ grid-template-columns: 1fr;
1598
+ flex-direction: column;
1599
+ }
1600
+
1601
+ .rd-geo-explorer__list,
1602
+ .rd-geo-explorer__list.rd-destination-list {
1603
+ flex-basis: auto;
1604
+ min-width: 0;
1605
+ height: 16rem;
1606
+ max-height: 16rem;
1607
+ }
1608
+ }
1609
+