tempest-react-sdk 0.61.0 → 0.63.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (793) hide show
  1. package/README.md +19 -14
  2. package/dist/br/BrazilMap.module.cjs +1 -0
  3. package/dist/br/BrazilMap.module.cjs.map +1 -1
  4. package/dist/br/BrazilMap.module.js +1 -0
  5. package/dist/br/BrazilMap.module.js.map +1 -1
  6. package/dist/br/MapLegend.module.cjs +1 -0
  7. package/dist/br/MapLegend.module.cjs.map +1 -1
  8. package/dist/br/MapLegend.module.js +1 -0
  9. package/dist/br/MapLegend.module.js.map +1 -1
  10. package/dist/br/MunicipalitySearch.module.cjs +1 -0
  11. package/dist/br/MunicipalitySearch.module.cjs.map +1 -1
  12. package/dist/br/MunicipalitySearch.module.js +1 -0
  13. package/dist/br/MunicipalitySearch.module.js.map +1 -1
  14. package/dist/br/PixQRCode.module.cjs +1 -0
  15. package/dist/br/PixQRCode.module.cjs.map +1 -1
  16. package/dist/br/PixQRCode.module.js +1 -0
  17. package/dist/br/PixQRCode.module.js.map +1 -1
  18. package/dist/components/AIChat/AIChat.module.cjs +1 -0
  19. package/dist/components/AIChat/AIChat.module.cjs.map +1 -1
  20. package/dist/components/AIChat/AIChat.module.js +1 -0
  21. package/dist/components/AIChat/AIChat.module.js.map +1 -1
  22. package/dist/components/Accordion/Accordion.module.cjs +1 -0
  23. package/dist/components/Accordion/Accordion.module.cjs.map +1 -1
  24. package/dist/components/Accordion/Accordion.module.js +1 -0
  25. package/dist/components/Accordion/Accordion.module.js.map +1 -1
  26. package/dist/components/Alert/Alert.module.cjs +1 -0
  27. package/dist/components/Alert/Alert.module.cjs.map +1 -1
  28. package/dist/components/Alert/Alert.module.js +1 -0
  29. package/dist/components/Alert/Alert.module.js.map +1 -1
  30. package/dist/components/AppBar/AppBar.module.cjs +1 -0
  31. package/dist/components/AppBar/AppBar.module.cjs.map +1 -1
  32. package/dist/components/AppBar/AppBar.module.js +1 -0
  33. package/dist/components/AppBar/AppBar.module.js.map +1 -1
  34. package/dist/components/AppShell/AppShell.module.cjs +1 -0
  35. package/dist/components/AppShell/AppShell.module.cjs.map +1 -1
  36. package/dist/components/AppShell/AppShell.module.js +1 -0
  37. package/dist/components/AppShell/AppShell.module.js.map +1 -1
  38. package/dist/components/AspectRatio/AspectRatio.module.cjs +1 -0
  39. package/dist/components/AspectRatio/AspectRatio.module.cjs.map +1 -1
  40. package/dist/components/AspectRatio/AspectRatio.module.js +1 -0
  41. package/dist/components/AspectRatio/AspectRatio.module.js.map +1 -1
  42. package/dist/components/AudioPlayer/AudioPlayer.module.cjs +1 -0
  43. package/dist/components/AudioPlayer/AudioPlayer.module.cjs.map +1 -1
  44. package/dist/components/AudioPlayer/AudioPlayer.module.js +1 -0
  45. package/dist/components/AudioPlayer/AudioPlayer.module.js.map +1 -1
  46. package/dist/components/AudioRecorder/AudioRecorder.module.cjs +1 -0
  47. package/dist/components/AudioRecorder/AudioRecorder.module.cjs.map +1 -1
  48. package/dist/components/AudioRecorder/AudioRecorder.module.js +1 -0
  49. package/dist/components/AudioRecorder/AudioRecorder.module.js.map +1 -1
  50. package/dist/components/Avatar/Avatar.module.cjs +1 -0
  51. package/dist/components/Avatar/Avatar.module.cjs.map +1 -1
  52. package/dist/components/Avatar/Avatar.module.js +1 -0
  53. package/dist/components/Avatar/Avatar.module.js.map +1 -1
  54. package/dist/components/AvatarGroup/AvatarGroup.module.cjs +1 -0
  55. package/dist/components/AvatarGroup/AvatarGroup.module.cjs.map +1 -1
  56. package/dist/components/AvatarGroup/AvatarGroup.module.js +1 -0
  57. package/dist/components/AvatarGroup/AvatarGroup.module.js.map +1 -1
  58. package/dist/components/Badge/Badge.module.cjs +1 -0
  59. package/dist/components/Badge/Badge.module.cjs.map +1 -1
  60. package/dist/components/Badge/Badge.module.js +1 -0
  61. package/dist/components/Badge/Badge.module.js.map +1 -1
  62. package/dist/components/Banner/Banner.module.cjs +1 -0
  63. package/dist/components/Banner/Banner.module.cjs.map +1 -1
  64. package/dist/components/Banner/Banner.module.js +1 -0
  65. package/dist/components/Banner/Banner.module.js.map +1 -1
  66. package/dist/components/BarList/BarList.module.cjs +1 -0
  67. package/dist/components/BarList/BarList.module.cjs.map +1 -1
  68. package/dist/components/BarList/BarList.module.js +1 -0
  69. package/dist/components/BarList/BarList.module.js.map +1 -1
  70. package/dist/components/BarcodeScanner/BarcodeScanner.module.cjs +1 -0
  71. package/dist/components/BarcodeScanner/BarcodeScanner.module.cjs.map +1 -1
  72. package/dist/components/BarcodeScanner/BarcodeScanner.module.js +1 -0
  73. package/dist/components/BarcodeScanner/BarcodeScanner.module.js.map +1 -1
  74. package/dist/components/BottomNavigation/BottomNavigation.module.cjs +1 -0
  75. package/dist/components/BottomNavigation/BottomNavigation.module.cjs.map +1 -1
  76. package/dist/components/BottomNavigation/BottomNavigation.module.js +1 -0
  77. package/dist/components/BottomNavigation/BottomNavigation.module.js.map +1 -1
  78. package/dist/components/BottomSheet/BottomSheet.module.cjs +1 -0
  79. package/dist/components/BottomSheet/BottomSheet.module.cjs.map +1 -1
  80. package/dist/components/BottomSheet/BottomSheet.module.js +1 -0
  81. package/dist/components/BottomSheet/BottomSheet.module.js.map +1 -1
  82. package/dist/components/Breadcrumbs/Breadcrumbs.module.cjs +1 -0
  83. package/dist/components/Breadcrumbs/Breadcrumbs.module.cjs.map +1 -1
  84. package/dist/components/Breadcrumbs/Breadcrumbs.module.js +1 -0
  85. package/dist/components/Breadcrumbs/Breadcrumbs.module.js.map +1 -1
  86. package/dist/components/Button/Button.module.cjs +1 -0
  87. package/dist/components/Button/Button.module.cjs.map +1 -1
  88. package/dist/components/Button/Button.module.js +1 -0
  89. package/dist/components/Button/Button.module.js.map +1 -1
  90. package/dist/components/Calendar/Calendar.module.cjs +1 -0
  91. package/dist/components/Calendar/Calendar.module.cjs.map +1 -1
  92. package/dist/components/Calendar/Calendar.module.js +1 -0
  93. package/dist/components/Calendar/Calendar.module.js.map +1 -1
  94. package/dist/components/Card/Card.module.cjs +1 -0
  95. package/dist/components/Card/Card.module.cjs.map +1 -1
  96. package/dist/components/Card/Card.module.js +1 -0
  97. package/dist/components/Card/Card.module.js.map +1 -1
  98. package/dist/components/Carousel/Carousel.module.cjs +1 -0
  99. package/dist/components/Carousel/Carousel.module.cjs.map +1 -1
  100. package/dist/components/Carousel/Carousel.module.js +1 -0
  101. package/dist/components/Carousel/Carousel.module.js.map +1 -1
  102. package/dist/components/Center/Center.module.cjs +1 -0
  103. package/dist/components/Center/Center.module.cjs.map +1 -1
  104. package/dist/components/Center/Center.module.js +1 -0
  105. package/dist/components/Center/Center.module.js.map +1 -1
  106. package/dist/components/Chat/Chat.module.cjs +1 -0
  107. package/dist/components/Chat/Chat.module.cjs.map +1 -1
  108. package/dist/components/Chat/Chat.module.js +1 -0
  109. package/dist/components/Chat/Chat.module.js.map +1 -1
  110. package/dist/components/Checkbox/Checkbox.module.cjs +1 -0
  111. package/dist/components/Checkbox/Checkbox.module.cjs.map +1 -1
  112. package/dist/components/Checkbox/Checkbox.module.js +1 -0
  113. package/dist/components/Checkbox/Checkbox.module.js.map +1 -1
  114. package/dist/components/ChipInput/ChipInput.module.cjs +1 -0
  115. package/dist/components/ChipInput/ChipInput.module.cjs.map +1 -1
  116. package/dist/components/ChipInput/ChipInput.module.js +1 -0
  117. package/dist/components/ChipInput/ChipInput.module.js.map +1 -1
  118. package/dist/components/CodeBlock/CodeBlock.module.cjs +1 -0
  119. package/dist/components/CodeBlock/CodeBlock.module.cjs.map +1 -1
  120. package/dist/components/CodeBlock/CodeBlock.module.js +1 -0
  121. package/dist/components/CodeBlock/CodeBlock.module.js.map +1 -1
  122. package/dist/components/Collapsible/Collapsible.module.cjs +1 -0
  123. package/dist/components/Collapsible/Collapsible.module.cjs.map +1 -1
  124. package/dist/components/Collapsible/Collapsible.module.js +1 -0
  125. package/dist/components/Collapsible/Collapsible.module.js.map +1 -1
  126. package/dist/components/Combobox/Combobox.module.cjs +1 -0
  127. package/dist/components/Combobox/Combobox.module.cjs.map +1 -1
  128. package/dist/components/Combobox/Combobox.module.js +1 -0
  129. package/dist/components/Combobox/Combobox.module.js.map +1 -1
  130. package/dist/components/Command/Command.module.cjs +1 -0
  131. package/dist/components/Command/Command.module.cjs.map +1 -1
  132. package/dist/components/Command/Command.module.js +1 -0
  133. package/dist/components/Command/Command.module.js.map +1 -1
  134. package/dist/components/ContextMenu/ContextMenu.module.cjs +1 -0
  135. package/dist/components/ContextMenu/ContextMenu.module.cjs.map +1 -1
  136. package/dist/components/ContextMenu/ContextMenu.module.js +1 -0
  137. package/dist/components/ContextMenu/ContextMenu.module.js.map +1 -1
  138. package/dist/components/CopyButton/CopyButton.module.cjs +1 -0
  139. package/dist/components/CopyButton/CopyButton.module.cjs.map +1 -1
  140. package/dist/components/CopyButton/CopyButton.module.js +1 -0
  141. package/dist/components/CopyButton/CopyButton.module.js.map +1 -1
  142. package/dist/components/DataList/DataList.module.cjs +1 -0
  143. package/dist/components/DataList/DataList.module.cjs.map +1 -1
  144. package/dist/components/DataList/DataList.module.js +1 -0
  145. package/dist/components/DataList/DataList.module.js.map +1 -1
  146. package/dist/components/DataTable/DataTable.module.cjs +1 -0
  147. package/dist/components/DataTable/DataTable.module.cjs.map +1 -1
  148. package/dist/components/DataTable/DataTable.module.js +1 -0
  149. package/dist/components/DataTable/DataTable.module.js.map +1 -1
  150. package/dist/components/DateRangePicker/DateRangePicker.module.cjs +1 -0
  151. package/dist/components/DateRangePicker/DateRangePicker.module.cjs.map +1 -1
  152. package/dist/components/DateRangePicker/DateRangePicker.module.js +1 -0
  153. package/dist/components/DateRangePicker/DateRangePicker.module.js.map +1 -1
  154. package/dist/components/DescriptionList/DescriptionList.module.cjs +1 -0
  155. package/dist/components/DescriptionList/DescriptionList.module.cjs.map +1 -1
  156. package/dist/components/DescriptionList/DescriptionList.module.js +1 -0
  157. package/dist/components/DescriptionList/DescriptionList.module.js.map +1 -1
  158. package/dist/components/Divider/Divider.module.cjs +1 -0
  159. package/dist/components/Divider/Divider.module.cjs.map +1 -1
  160. package/dist/components/Divider/Divider.module.js +1 -0
  161. package/dist/components/Divider/Divider.module.js.map +1 -1
  162. package/dist/components/Drawer/Drawer.module.cjs +1 -0
  163. package/dist/components/Drawer/Drawer.module.cjs.map +1 -1
  164. package/dist/components/Drawer/Drawer.module.js +1 -0
  165. package/dist/components/Drawer/Drawer.module.js.map +1 -1
  166. package/dist/components/DropdownMenu/DropdownMenu.module.cjs +1 -0
  167. package/dist/components/DropdownMenu/DropdownMenu.module.cjs.map +1 -1
  168. package/dist/components/DropdownMenu/DropdownMenu.module.js +1 -0
  169. package/dist/components/DropdownMenu/DropdownMenu.module.js.map +1 -1
  170. package/dist/components/Dropzone/Dropzone.module.cjs +1 -0
  171. package/dist/components/Dropzone/Dropzone.module.cjs.map +1 -1
  172. package/dist/components/Dropzone/Dropzone.module.js +1 -0
  173. package/dist/components/Dropzone/Dropzone.module.js.map +1 -1
  174. package/dist/components/EmptyState/EmptyState.module.cjs +1 -0
  175. package/dist/components/EmptyState/EmptyState.module.cjs.map +1 -1
  176. package/dist/components/EmptyState/EmptyState.module.js +1 -0
  177. package/dist/components/EmptyState/EmptyState.module.js.map +1 -1
  178. package/dist/components/ErrorState/ErrorState.module.cjs +1 -0
  179. package/dist/components/ErrorState/ErrorState.module.cjs.map +1 -1
  180. package/dist/components/ErrorState/ErrorState.module.js +1 -0
  181. package/dist/components/ErrorState/ErrorState.module.js.map +1 -1
  182. package/dist/components/ErrorText/ErrorText.module.cjs +1 -0
  183. package/dist/components/ErrorText/ErrorText.module.cjs.map +1 -1
  184. package/dist/components/ErrorText/ErrorText.module.js +1 -0
  185. package/dist/components/ErrorText/ErrorText.module.js.map +1 -1
  186. package/dist/components/FileUpload/FileUpload.module.cjs +1 -0
  187. package/dist/components/FileUpload/FileUpload.module.cjs.map +1 -1
  188. package/dist/components/FileUpload/FileUpload.module.js +1 -0
  189. package/dist/components/FileUpload/FileUpload.module.js.map +1 -1
  190. package/dist/components/FilterBar/FilterBar.module.cjs +1 -0
  191. package/dist/components/FilterBar/FilterBar.module.cjs.map +1 -1
  192. package/dist/components/FilterBar/FilterBar.module.js +1 -0
  193. package/dist/components/FilterBar/FilterBar.module.js.map +1 -1
  194. package/dist/components/FloatingActionButton/FloatingActionButton.module.cjs +1 -0
  195. package/dist/components/FloatingActionButton/FloatingActionButton.module.cjs.map +1 -1
  196. package/dist/components/FloatingActionButton/FloatingActionButton.module.js +1 -0
  197. package/dist/components/FloatingActionButton/FloatingActionButton.module.js.map +1 -1
  198. package/dist/components/Form/Form.module.cjs +1 -0
  199. package/dist/components/Form/Form.module.cjs.map +1 -1
  200. package/dist/components/Form/Form.module.js +1 -0
  201. package/dist/components/Form/Form.module.js.map +1 -1
  202. package/dist/components/HoverCard/HoverCard.module.cjs +1 -0
  203. package/dist/components/HoverCard/HoverCard.module.cjs.map +1 -1
  204. package/dist/components/HoverCard/HoverCard.module.js +1 -0
  205. package/dist/components/HoverCard/HoverCard.module.js.map +1 -1
  206. package/dist/components/Image/Image.module.cjs +1 -0
  207. package/dist/components/Image/Image.module.cjs.map +1 -1
  208. package/dist/components/Image/Image.module.js +1 -0
  209. package/dist/components/Image/Image.module.js.map +1 -1
  210. package/dist/components/ImageCropper/ImageCropper.module.cjs +1 -0
  211. package/dist/components/ImageCropper/ImageCropper.module.cjs.map +1 -1
  212. package/dist/components/ImageCropper/ImageCropper.module.js +1 -0
  213. package/dist/components/ImageCropper/ImageCropper.module.js.map +1 -1
  214. package/dist/components/Input/Input.module.cjs +1 -0
  215. package/dist/components/Input/Input.module.cjs.map +1 -1
  216. package/dist/components/Input/Input.module.js +1 -0
  217. package/dist/components/Input/Input.module.js.map +1 -1
  218. package/dist/components/InstallBanner/InstallBanner.module.cjs +1 -0
  219. package/dist/components/InstallBanner/InstallBanner.module.cjs.map +1 -1
  220. package/dist/components/InstallBanner/InstallBanner.module.js +1 -0
  221. package/dist/components/InstallBanner/InstallBanner.module.js.map +1 -1
  222. package/dist/components/Kanban/Kanban.module.cjs +1 -0
  223. package/dist/components/Kanban/Kanban.module.cjs.map +1 -1
  224. package/dist/components/Kanban/Kanban.module.js +1 -0
  225. package/dist/components/Kanban/Kanban.module.js.map +1 -1
  226. package/dist/components/Kbd/Kbd.module.cjs +1 -0
  227. package/dist/components/Kbd/Kbd.module.cjs.map +1 -1
  228. package/dist/components/Kbd/Kbd.module.js +1 -0
  229. package/dist/components/Kbd/Kbd.module.js.map +1 -1
  230. package/dist/components/Label/Label.module.cjs +1 -0
  231. package/dist/components/Label/Label.module.cjs.map +1 -1
  232. package/dist/components/Label/Label.module.js +1 -0
  233. package/dist/components/Label/Label.module.js.map +1 -1
  234. package/dist/components/Layout/Layout.module.cjs +1 -0
  235. package/dist/components/Layout/Layout.module.cjs.map +1 -1
  236. package/dist/components/Layout/Layout.module.js +1 -0
  237. package/dist/components/Layout/Layout.module.js.map +1 -1
  238. package/dist/components/Lightbox/Lightbox.module.cjs +1 -0
  239. package/dist/components/Lightbox/Lightbox.module.cjs.map +1 -1
  240. package/dist/components/Lightbox/Lightbox.module.js +1 -0
  241. package/dist/components/Lightbox/Lightbox.module.js.map +1 -1
  242. package/dist/components/ListTile/ListTile.module.cjs +1 -0
  243. package/dist/components/ListTile/ListTile.module.cjs.map +1 -1
  244. package/dist/components/ListTile/ListTile.module.js +1 -0
  245. package/dist/components/ListTile/ListTile.module.js.map +1 -1
  246. package/dist/components/Markdown/Markdown.module.cjs +1 -0
  247. package/dist/components/Markdown/Markdown.module.cjs.map +1 -1
  248. package/dist/components/Markdown/Markdown.module.js +1 -0
  249. package/dist/components/Markdown/Markdown.module.js.map +1 -1
  250. package/dist/components/Masonry/Masonry.module.cjs +1 -0
  251. package/dist/components/Masonry/Masonry.module.cjs.map +1 -1
  252. package/dist/components/Masonry/Masonry.module.js +1 -0
  253. package/dist/components/Masonry/Masonry.module.js.map +1 -1
  254. package/dist/components/Menubar/Menubar.module.cjs +1 -0
  255. package/dist/components/Menubar/Menubar.module.cjs.map +1 -1
  256. package/dist/components/Menubar/Menubar.module.js +1 -0
  257. package/dist/components/Menubar/Menubar.module.js.map +1 -1
  258. package/dist/components/Modal/Modal.module.cjs +1 -0
  259. package/dist/components/Modal/Modal.module.cjs.map +1 -1
  260. package/dist/components/Modal/Modal.module.js +1 -0
  261. package/dist/components/Modal/Modal.module.js.map +1 -1
  262. package/dist/components/ModalsManager/ModalsManager.module.cjs +1 -0
  263. package/dist/components/ModalsManager/ModalsManager.module.cjs.map +1 -1
  264. package/dist/components/ModalsManager/ModalsManager.module.js +1 -0
  265. package/dist/components/ModalsManager/ModalsManager.module.js.map +1 -1
  266. package/dist/components/MultiSelect/MultiSelect.module.cjs +1 -0
  267. package/dist/components/MultiSelect/MultiSelect.module.cjs.map +1 -1
  268. package/dist/components/MultiSelect/MultiSelect.module.js +1 -0
  269. package/dist/components/MultiSelect/MultiSelect.module.js.map +1 -1
  270. package/dist/components/NProgress/NProgress.module.cjs +1 -0
  271. package/dist/components/NProgress/NProgress.module.cjs.map +1 -1
  272. package/dist/components/NProgress/NProgress.module.js +1 -0
  273. package/dist/components/NProgress/NProgress.module.js.map +1 -1
  274. package/dist/components/Navbar/Navbar.module.cjs +1 -0
  275. package/dist/components/Navbar/Navbar.module.cjs.map +1 -1
  276. package/dist/components/Navbar/Navbar.module.js +1 -0
  277. package/dist/components/Navbar/Navbar.module.js.map +1 -1
  278. package/dist/components/NavigationMenu/NavigationMenu.module.cjs +1 -0
  279. package/dist/components/NavigationMenu/NavigationMenu.module.cjs.map +1 -1
  280. package/dist/components/NavigationMenu/NavigationMenu.module.js +1 -0
  281. package/dist/components/NavigationMenu/NavigationMenu.module.js.map +1 -1
  282. package/dist/components/NavigationRail/NavigationRail.module.cjs +1 -0
  283. package/dist/components/NavigationRail/NavigationRail.module.cjs.map +1 -1
  284. package/dist/components/NavigationRail/NavigationRail.module.js +1 -0
  285. package/dist/components/NavigationRail/NavigationRail.module.js.map +1 -1
  286. package/dist/components/NotificationCenter/NotificationCenter.module.cjs +1 -0
  287. package/dist/components/NotificationCenter/NotificationCenter.module.cjs.map +1 -1
  288. package/dist/components/NotificationCenter/NotificationCenter.module.js +1 -0
  289. package/dist/components/NotificationCenter/NotificationCenter.module.js.map +1 -1
  290. package/dist/components/OfflineIndicator/OfflineIndicator.module.cjs +1 -0
  291. package/dist/components/OfflineIndicator/OfflineIndicator.module.cjs.map +1 -1
  292. package/dist/components/OfflineIndicator/OfflineIndicator.module.js +1 -0
  293. package/dist/components/OfflineIndicator/OfflineIndicator.module.js.map +1 -1
  294. package/dist/components/Page/Page.module.cjs +1 -0
  295. package/dist/components/Page/Page.module.cjs.map +1 -1
  296. package/dist/components/Page/Page.module.js +1 -0
  297. package/dist/components/Page/Page.module.js.map +1 -1
  298. package/dist/components/Pagination/Pagination.module.cjs +1 -0
  299. package/dist/components/Pagination/Pagination.module.cjs.map +1 -1
  300. package/dist/components/Pagination/Pagination.module.js +1 -0
  301. package/dist/components/Pagination/Pagination.module.js.map +1 -1
  302. package/dist/components/PasswordInput/PasswordInput.module.cjs +1 -0
  303. package/dist/components/PasswordInput/PasswordInput.module.cjs.map +1 -1
  304. package/dist/components/PasswordInput/PasswordInput.module.js +1 -0
  305. package/dist/components/PasswordInput/PasswordInput.module.js.map +1 -1
  306. package/dist/components/PinInput/PinInput.module.cjs +1 -0
  307. package/dist/components/PinInput/PinInput.module.cjs.map +1 -1
  308. package/dist/components/PinInput/PinInput.module.js +1 -0
  309. package/dist/components/PinInput/PinInput.module.js.map +1 -1
  310. package/dist/components/Popover/Popover.module.cjs +1 -0
  311. package/dist/components/Popover/Popover.module.cjs.map +1 -1
  312. package/dist/components/Popover/Popover.module.js +1 -0
  313. package/dist/components/Popover/Popover.module.js.map +1 -1
  314. package/dist/components/Progress/Progress.module.cjs +1 -0
  315. package/dist/components/Progress/Progress.module.cjs.map +1 -1
  316. package/dist/components/Progress/Progress.module.js +1 -0
  317. package/dist/components/Progress/Progress.module.js.map +1 -1
  318. package/dist/components/QRCode/QRCode.module.cjs +1 -0
  319. package/dist/components/QRCode/QRCode.module.cjs.map +1 -1
  320. package/dist/components/QRCode/QRCode.module.js +1 -0
  321. package/dist/components/QRCode/QRCode.module.js.map +1 -1
  322. package/dist/components/Radio/Radio.module.cjs +1 -0
  323. package/dist/components/Radio/Radio.module.cjs.map +1 -1
  324. package/dist/components/Radio/Radio.module.js +1 -0
  325. package/dist/components/Radio/Radio.module.js.map +1 -1
  326. package/dist/components/RangeSlider/RangeSlider.module.cjs +1 -0
  327. package/dist/components/RangeSlider/RangeSlider.module.cjs.map +1 -1
  328. package/dist/components/RangeSlider/RangeSlider.module.js +1 -0
  329. package/dist/components/RangeSlider/RangeSlider.module.js.map +1 -1
  330. package/dist/components/RatingStars/RatingStars.module.cjs +1 -0
  331. package/dist/components/RatingStars/RatingStars.module.cjs.map +1 -1
  332. package/dist/components/RatingStars/RatingStars.module.js +1 -0
  333. package/dist/components/RatingStars/RatingStars.module.js.map +1 -1
  334. package/dist/components/RefreshIndicator/RefreshIndicator.module.cjs +1 -0
  335. package/dist/components/RefreshIndicator/RefreshIndicator.module.cjs.map +1 -1
  336. package/dist/components/RefreshIndicator/RefreshIndicator.module.js +1 -0
  337. package/dist/components/RefreshIndicator/RefreshIndicator.module.js.map +1 -1
  338. package/dist/components/Resizable/Resizable.module.cjs +1 -0
  339. package/dist/components/Resizable/Resizable.module.cjs.map +1 -1
  340. package/dist/components/Resizable/Resizable.module.js +1 -0
  341. package/dist/components/Resizable/Resizable.module.js.map +1 -1
  342. package/dist/components/SafeArea/SafeArea.module.cjs +1 -0
  343. package/dist/components/SafeArea/SafeArea.module.cjs.map +1 -1
  344. package/dist/components/SafeArea/SafeArea.module.js +1 -0
  345. package/dist/components/SafeArea/SafeArea.module.js.map +1 -1
  346. package/dist/components/Scheduler/Scheduler.module.cjs +1 -0
  347. package/dist/components/Scheduler/Scheduler.module.cjs.map +1 -1
  348. package/dist/components/Scheduler/Scheduler.module.js +1 -0
  349. package/dist/components/Scheduler/Scheduler.module.js.map +1 -1
  350. package/dist/components/ScrollArea/ScrollArea.module.cjs +1 -0
  351. package/dist/components/ScrollArea/ScrollArea.module.cjs.map +1 -1
  352. package/dist/components/ScrollArea/ScrollArea.module.js +1 -0
  353. package/dist/components/ScrollArea/ScrollArea.module.js.map +1 -1
  354. package/dist/components/SearchBar/SearchBar.module.cjs +1 -0
  355. package/dist/components/SearchBar/SearchBar.module.cjs.map +1 -1
  356. package/dist/components/SearchBar/SearchBar.module.js +1 -0
  357. package/dist/components/SearchBar/SearchBar.module.js.map +1 -1
  358. package/dist/components/SegmentedControl/SegmentedControl.module.cjs +1 -0
  359. package/dist/components/SegmentedControl/SegmentedControl.module.cjs.map +1 -1
  360. package/dist/components/SegmentedControl/SegmentedControl.module.js +1 -0
  361. package/dist/components/SegmentedControl/SegmentedControl.module.js.map +1 -1
  362. package/dist/components/Select/Select.module.cjs +1 -0
  363. package/dist/components/Select/Select.module.cjs.map +1 -1
  364. package/dist/components/Select/Select.module.js +1 -0
  365. package/dist/components/Select/Select.module.js.map +1 -1
  366. package/dist/components/Sidebar/Sidebar.module.cjs +1 -0
  367. package/dist/components/Sidebar/Sidebar.module.cjs.map +1 -1
  368. package/dist/components/Sidebar/Sidebar.module.js +1 -0
  369. package/dist/components/Sidebar/Sidebar.module.js.map +1 -1
  370. package/dist/components/SignaturePad/SignaturePad.module.cjs +1 -0
  371. package/dist/components/SignaturePad/SignaturePad.module.cjs.map +1 -1
  372. package/dist/components/SignaturePad/SignaturePad.module.js +1 -0
  373. package/dist/components/SignaturePad/SignaturePad.module.js.map +1 -1
  374. package/dist/components/Skeleton/Skeleton.module.cjs +1 -0
  375. package/dist/components/Skeleton/Skeleton.module.cjs.map +1 -1
  376. package/dist/components/Skeleton/Skeleton.module.js +1 -0
  377. package/dist/components/Skeleton/Skeleton.module.js.map +1 -1
  378. package/dist/components/Slider/Slider.module.cjs +1 -0
  379. package/dist/components/Slider/Slider.module.cjs.map +1 -1
  380. package/dist/components/Slider/Slider.module.js +1 -0
  381. package/dist/components/Slider/Slider.module.js.map +1 -1
  382. package/dist/components/Spacer/Spacer.module.cjs +1 -0
  383. package/dist/components/Spacer/Spacer.module.cjs.map +1 -1
  384. package/dist/components/Spacer/Spacer.module.js +1 -0
  385. package/dist/components/Spacer/Spacer.module.js.map +1 -1
  386. package/dist/components/Sparkline/Sparkline.module.cjs +1 -0
  387. package/dist/components/Sparkline/Sparkline.module.cjs.map +1 -1
  388. package/dist/components/Sparkline/Sparkline.module.js +1 -0
  389. package/dist/components/Sparkline/Sparkline.module.js.map +1 -1
  390. package/dist/components/Spinner/Spinner.module.cjs +1 -0
  391. package/dist/components/Spinner/Spinner.module.cjs.map +1 -1
  392. package/dist/components/Spinner/Spinner.module.js +1 -0
  393. package/dist/components/Spinner/Spinner.module.js.map +1 -1
  394. package/dist/components/Stat/Stat.module.cjs +1 -0
  395. package/dist/components/Stat/Stat.module.cjs.map +1 -1
  396. package/dist/components/Stat/Stat.module.js +1 -0
  397. package/dist/components/Stat/Stat.module.js.map +1 -1
  398. package/dist/components/Stepper/Stepper.module.cjs +1 -0
  399. package/dist/components/Stepper/Stepper.module.cjs.map +1 -1
  400. package/dist/components/Stepper/Stepper.module.js +1 -0
  401. package/dist/components/Stepper/Stepper.module.js.map +1 -1
  402. package/dist/components/StepperInput/StepperInput.module.cjs +1 -0
  403. package/dist/components/StepperInput/StepperInput.module.cjs.map +1 -1
  404. package/dist/components/StepperInput/StepperInput.module.js +1 -0
  405. package/dist/components/StepperInput/StepperInput.module.js.map +1 -1
  406. package/dist/components/Switch/Switch.module.cjs +1 -0
  407. package/dist/components/Switch/Switch.module.cjs.map +1 -1
  408. package/dist/components/Switch/Switch.module.js +1 -0
  409. package/dist/components/Switch/Switch.module.js.map +1 -1
  410. package/dist/components/SyncStatusBadge/SyncStatusBadge.module.cjs +1 -0
  411. package/dist/components/SyncStatusBadge/SyncStatusBadge.module.cjs.map +1 -1
  412. package/dist/components/SyncStatusBadge/SyncStatusBadge.module.js +1 -0
  413. package/dist/components/SyncStatusBadge/SyncStatusBadge.module.js.map +1 -1
  414. package/dist/components/Table/Table.module.cjs +1 -0
  415. package/dist/components/Table/Table.module.cjs.map +1 -1
  416. package/dist/components/Table/Table.module.js +1 -0
  417. package/dist/components/Table/Table.module.js.map +1 -1
  418. package/dist/components/Tabs/Tabs.module.cjs +1 -0
  419. package/dist/components/Tabs/Tabs.module.cjs.map +1 -1
  420. package/dist/components/Tabs/Tabs.module.js +1 -0
  421. package/dist/components/Tabs/Tabs.module.js.map +1 -1
  422. package/dist/components/Tag/Tag.module.cjs +1 -0
  423. package/dist/components/Tag/Tag.module.cjs.map +1 -1
  424. package/dist/components/Tag/Tag.module.js +1 -0
  425. package/dist/components/Tag/Tag.module.js.map +1 -1
  426. package/dist/components/Textarea/Textarea.module.cjs +1 -0
  427. package/dist/components/Textarea/Textarea.module.cjs.map +1 -1
  428. package/dist/components/Textarea/Textarea.module.js +1 -0
  429. package/dist/components/Textarea/Textarea.module.js.map +1 -1
  430. package/dist/components/TimePicker/TimePicker.module.cjs +1 -0
  431. package/dist/components/TimePicker/TimePicker.module.cjs.map +1 -1
  432. package/dist/components/TimePicker/TimePicker.module.js +1 -0
  433. package/dist/components/TimePicker/TimePicker.module.js.map +1 -1
  434. package/dist/components/Timeline/Timeline.module.cjs +1 -0
  435. package/dist/components/Timeline/Timeline.module.cjs.map +1 -1
  436. package/dist/components/Timeline/Timeline.module.js +1 -0
  437. package/dist/components/Timeline/Timeline.module.js.map +1 -1
  438. package/dist/components/Toast/Toast.module.cjs +1 -0
  439. package/dist/components/Toast/Toast.module.cjs.map +1 -1
  440. package/dist/components/Toast/Toast.module.js +1 -0
  441. package/dist/components/Toast/Toast.module.js.map +1 -1
  442. package/dist/components/Toggle/Toggle.module.cjs +1 -0
  443. package/dist/components/Toggle/Toggle.module.cjs.map +1 -1
  444. package/dist/components/Toggle/Toggle.module.js +1 -0
  445. package/dist/components/Toggle/Toggle.module.js.map +1 -1
  446. package/dist/components/ToggleGroup/ToggleGroup.module.cjs +1 -0
  447. package/dist/components/ToggleGroup/ToggleGroup.module.cjs.map +1 -1
  448. package/dist/components/ToggleGroup/ToggleGroup.module.js +1 -0
  449. package/dist/components/ToggleGroup/ToggleGroup.module.js.map +1 -1
  450. package/dist/components/Tooltip/Tooltip.module.cjs +1 -0
  451. package/dist/components/Tooltip/Tooltip.module.cjs.map +1 -1
  452. package/dist/components/Tooltip/Tooltip.module.js +1 -0
  453. package/dist/components/Tooltip/Tooltip.module.js.map +1 -1
  454. package/dist/components/Tour/Tour.module.cjs +1 -0
  455. package/dist/components/Tour/Tour.module.cjs.map +1 -1
  456. package/dist/components/Tour/Tour.module.js +1 -0
  457. package/dist/components/Tour/Tour.module.js.map +1 -1
  458. package/dist/components/Transfer/Transfer.module.cjs +1 -0
  459. package/dist/components/Transfer/Transfer.module.cjs.map +1 -1
  460. package/dist/components/Transfer/Transfer.module.js +1 -0
  461. package/dist/components/Transfer/Transfer.module.js.map +1 -1
  462. package/dist/components/TreeView/TreeView.module.cjs +1 -0
  463. package/dist/components/TreeView/TreeView.module.cjs.map +1 -1
  464. package/dist/components/TreeView/TreeView.module.js +1 -0
  465. package/dist/components/TreeView/TreeView.module.js.map +1 -1
  466. package/dist/components/TruncateText/TruncateText.module.cjs +1 -0
  467. package/dist/components/TruncateText/TruncateText.module.cjs.map +1 -1
  468. package/dist/components/TruncateText/TruncateText.module.js +1 -0
  469. package/dist/components/TruncateText/TruncateText.module.js.map +1 -1
  470. package/dist/components/UpdatePrompt/UpdatePrompt.module.cjs +1 -0
  471. package/dist/components/UpdatePrompt/UpdatePrompt.module.cjs.map +1 -1
  472. package/dist/components/UpdatePrompt/UpdatePrompt.module.js +1 -0
  473. package/dist/components/UpdatePrompt/UpdatePrompt.module.js.map +1 -1
  474. package/dist/components/VideoPlayer/VideoPlayer.module.cjs +1 -0
  475. package/dist/components/VideoPlayer/VideoPlayer.module.cjs.map +1 -1
  476. package/dist/components/VideoPlayer/VideoPlayer.module.js +1 -0
  477. package/dist/components/VideoPlayer/VideoPlayer.module.js.map +1 -1
  478. package/dist/components/VirtualList/VirtualList.module.cjs +1 -0
  479. package/dist/components/VirtualList/VirtualList.module.cjs.map +1 -1
  480. package/dist/components/VirtualList/VirtualList.module.js +1 -0
  481. package/dist/components/VirtualList/VirtualList.module.js.map +1 -1
  482. package/dist/components/VirtualTable/VirtualTable.module.cjs +1 -0
  483. package/dist/components/VirtualTable/VirtualTable.module.cjs.map +1 -1
  484. package/dist/components/VirtualTable/VirtualTable.module.js +1 -0
  485. package/dist/components/VirtualTable/VirtualTable.module.js.map +1 -1
  486. package/dist/components/VisuallyHidden/VisuallyHidden.module.cjs +1 -0
  487. package/dist/components/VisuallyHidden/VisuallyHidden.module.cjs.map +1 -1
  488. package/dist/components/VisuallyHidden/VisuallyHidden.module.js +1 -0
  489. package/dist/components/VisuallyHidden/VisuallyHidden.module.js.map +1 -1
  490. package/dist/components/Wizard/Wizard.module.cjs +1 -0
  491. package/dist/components/Wizard/Wizard.module.cjs.map +1 -1
  492. package/dist/components/Wizard/Wizard.module.js +1 -0
  493. package/dist/components/Wizard/Wizard.module.js.map +1 -1
  494. package/dist/editor/RichTextEditor.module.cjs +1 -0
  495. package/dist/editor/RichTextEditor.module.cjs.map +1 -1
  496. package/dist/editor/RichTextEditor.module.js +1 -0
  497. package/dist/editor/RichTextEditor.module.js.map +1 -1
  498. package/dist/geo/TrajectoryMap.module.cjs +1 -0
  499. package/dist/geo/TrajectoryMap.module.cjs.map +1 -1
  500. package/dist/geo/TrajectoryMap.module.js +1 -0
  501. package/dist/geo/TrajectoryMap.module.js.map +1 -1
  502. package/dist/icons/IconPicker.module.cjs +1 -0
  503. package/dist/icons/IconPicker.module.cjs.map +1 -1
  504. package/dist/icons/IconPicker.module.js +1 -0
  505. package/dist/icons/IconPicker.module.js.map +1 -1
  506. package/dist/sse/create-event-stream.cjs +1 -1
  507. package/dist/sse/create-event-stream.cjs.map +1 -1
  508. package/dist/sse/create-event-stream.js +32 -27
  509. package/dist/sse/create-event-stream.js.map +1 -1
  510. package/dist/sse/use-event-stream.cjs.map +1 -1
  511. package/dist/sse/use-event-stream.js.map +1 -1
  512. package/dist/styles/AIChat.css +1 -78
  513. package/dist/styles/Accordion.css +1 -11
  514. package/dist/styles/Alert.css +1 -31
  515. package/dist/styles/AppBar.css +1 -16
  516. package/dist/styles/AppShell.css +1 -7
  517. package/dist/styles/AspectRatio.css +1 -2
  518. package/dist/styles/AudioPlayer.css +1 -12
  519. package/dist/styles/AudioRecorder.css +1 -19
  520. package/dist/styles/Avatar.css +1 -12
  521. package/dist/styles/AvatarGroup.css +1 -17
  522. package/dist/styles/Badge.css +1 -24
  523. package/dist/styles/Banner.css +1 -12
  524. package/dist/styles/BarList.css +1 -9
  525. package/dist/styles/BarcodeScanner.css +1 -20
  526. package/dist/styles/BottomNavigation.css +1 -9
  527. package/dist/styles/BottomSheet.css +1 -10
  528. package/dist/styles/BrazilMap.css +1 -19
  529. package/dist/styles/Breadcrumbs.css +1 -7
  530. package/dist/styles/Button.css +1 -41
  531. package/dist/styles/Calendar.css +1 -15
  532. package/dist/styles/Card.css +1 -14
  533. package/dist/styles/Carousel.css +1 -16
  534. package/dist/styles/Center.css +1 -4
  535. package/dist/styles/Chat.css +1 -34
  536. package/dist/styles/Checkbox.css +1 -10
  537. package/dist/styles/ChipInput.css +1 -12
  538. package/dist/styles/CodeBlock.css +1 -24
  539. package/dist/styles/Collapsible.css +1 -5
  540. package/dist/styles/Combobox.css +1 -17
  541. package/dist/styles/Command.css +1 -19
  542. package/dist/styles/ContextMenu.css +1 -10
  543. package/dist/styles/CopyButton.css +1 -3
  544. package/dist/styles/DataList.css +1 -2
  545. package/dist/styles/DataTable.css +1 -18
  546. package/dist/styles/DateRangePicker.css +1 -21
  547. package/dist/styles/DescriptionList.css +1 -3
  548. package/dist/styles/Divider.css +1 -10
  549. package/dist/styles/Drawer.css +1 -21
  550. package/dist/styles/DropdownMenu.css +1 -15
  551. package/dist/styles/Dropzone.css +1 -6
  552. package/dist/styles/EmptyState.css +1 -5
  553. package/dist/styles/ErrorState.css +1 -5
  554. package/dist/styles/ErrorText.css +1 -1
  555. package/dist/styles/FileUpload.css +1 -16
  556. package/dist/styles/FilterBar.css +1 -18
  557. package/dist/styles/FloatingActionButton.css +1 -22
  558. package/dist/styles/Form.css +1 -20
  559. package/dist/styles/HoverCard.css +1 -10
  560. package/dist/styles/IconPicker.css +1 -5
  561. package/dist/styles/Image.css +1 -1
  562. package/dist/styles/ImageCropper.css +1 -15
  563. package/dist/styles/Input.css +1 -23
  564. package/dist/styles/InstallBanner.css +1 -7
  565. package/dist/styles/Kanban.css +1 -14
  566. package/dist/styles/Kbd.css +1 -4
  567. package/dist/styles/Label.css +1 -2
  568. package/dist/styles/Layout.css +1 -21
  569. package/dist/styles/Lightbox.css +1 -20
  570. package/dist/styles/ListTile.css +1 -13
  571. package/dist/styles/MapLegend.css +1 -8
  572. package/dist/styles/Markdown.css +1 -23
  573. package/dist/styles/Masonry.css +1 -3
  574. package/dist/styles/Menubar.css +1 -16
  575. package/dist/styles/Modal.css +1 -20
  576. package/dist/styles/ModalsManager.css +1 -1
  577. package/dist/styles/MultiSelect.css +1 -20
  578. package/dist/styles/MunicipalitySearch.css +1 -5
  579. package/dist/styles/NProgress.css +1 -1
  580. package/dist/styles/Navbar.css +1 -9
  581. package/dist/styles/NavigationMenu.css +1 -11
  582. package/dist/styles/NavigationRail.css +1 -13
  583. package/dist/styles/NotificationCenter.css +1 -20
  584. package/dist/styles/OfflineIndicator.css +1 -6
  585. package/dist/styles/Page.css +1 -12
  586. package/dist/styles/Pagination.css +1 -11
  587. package/dist/styles/PasswordInput.css +1 -20
  588. package/dist/styles/PinInput.css +1 -12
  589. package/dist/styles/PixQRCode.css +1 -8
  590. package/dist/styles/Popover.css +1 -9
  591. package/dist/styles/Progress.css +1 -10
  592. package/dist/styles/QRCode.css +1 -2
  593. package/dist/styles/Radio.css +1 -13
  594. package/dist/styles/RangeSlider.css +1 -14
  595. package/dist/styles/RatingStars.css +1 -10
  596. package/dist/styles/RefreshIndicator.css +1 -4
  597. package/dist/styles/Resizable.css +1 -12
  598. package/dist/styles/RichTextEditor.css +1 -18
  599. package/dist/styles/SafeArea.css +1 -6
  600. package/dist/styles/Scheduler.css +1 -23
  601. package/dist/styles/ScrollArea.css +1 -6
  602. package/dist/styles/SearchBar.css +1 -10
  603. package/dist/styles/SegmentedControl.css +1 -11
  604. package/dist/styles/Select.css +1 -13
  605. package/dist/styles/Sidebar.css +1 -18
  606. package/dist/styles/SignaturePad.css +1 -5
  607. package/dist/styles/Skeleton.css +1 -6
  608. package/dist/styles/Slider.css +1 -14
  609. package/dist/styles/Spacer.css +1 -3
  610. package/dist/styles/Sparkline.css +1 -3
  611. package/dist/styles/Spinner.css +1 -11
  612. package/dist/styles/Stat.css +1 -11
  613. package/dist/styles/Stepper.css +1 -16
  614. package/dist/styles/StepperInput.css +1 -14
  615. package/dist/styles/Switch.css +1 -10
  616. package/dist/styles/SyncStatusBadge.css +1 -12
  617. package/dist/styles/Table.css +1 -15
  618. package/dist/styles/Tabs.css +1 -13
  619. package/dist/styles/Tag.css +1 -13
  620. package/dist/styles/Textarea.css +1 -12
  621. package/dist/styles/TimePicker.css +1 -13
  622. package/dist/styles/Timeline.css +1 -16
  623. package/dist/styles/Toast.css +1 -20
  624. package/dist/styles/Toggle.css +1 -11
  625. package/dist/styles/ToggleGroup.css +1 -8
  626. package/dist/styles/Tooltip.css +1 -9
  627. package/dist/styles/Tour.css +1 -19
  628. package/dist/styles/TrajectoryMap.css +1 -15
  629. package/dist/styles/Transfer.css +1 -20
  630. package/dist/styles/TreeView.css +1 -16
  631. package/dist/styles/TruncateText.css +1 -1
  632. package/dist/styles/UpdatePrompt.css +1 -9
  633. package/dist/styles/VideoPlayer.css +1 -22
  634. package/dist/styles/VirtualList.css +1 -4
  635. package/dist/styles/VirtualTable.css +1 -16
  636. package/dist/styles/VisuallyHidden.css +1 -1
  637. package/dist/styles/Wizard.css +1 -3
  638. package/dist/styles/component/AIChat.css +79 -0
  639. package/dist/styles/component/Accordion.css +12 -0
  640. package/dist/styles/component/Alert.css +32 -0
  641. package/dist/styles/component/AppBar.css +17 -0
  642. package/dist/styles/component/AppShell.css +8 -0
  643. package/dist/styles/component/AspectRatio.css +3 -0
  644. package/dist/styles/component/AudioPlayer.css +13 -0
  645. package/dist/styles/component/AudioRecorder.css +20 -0
  646. package/dist/styles/component/Avatar.css +13 -0
  647. package/dist/styles/component/AvatarGroup.css +18 -0
  648. package/dist/styles/component/Badge.css +25 -0
  649. package/dist/styles/component/Banner.css +13 -0
  650. package/dist/styles/component/BarList.css +10 -0
  651. package/dist/styles/component/BarcodeScanner.css +21 -0
  652. package/dist/styles/component/BottomNavigation.css +10 -0
  653. package/dist/styles/component/BottomSheet.css +11 -0
  654. package/dist/styles/component/BrazilMap.css +20 -0
  655. package/dist/styles/component/Breadcrumbs.css +8 -0
  656. package/dist/styles/component/Button.css +42 -0
  657. package/dist/styles/component/Calendar.css +16 -0
  658. package/dist/styles/component/Card.css +15 -0
  659. package/dist/styles/component/Carousel.css +17 -0
  660. package/dist/styles/component/Center.css +5 -0
  661. package/dist/styles/component/Chat.css +35 -0
  662. package/dist/styles/component/Checkbox.css +11 -0
  663. package/dist/styles/component/ChipInput.css +13 -0
  664. package/dist/styles/component/CodeBlock.css +25 -0
  665. package/dist/styles/component/Collapsible.css +6 -0
  666. package/dist/styles/component/Combobox.css +18 -0
  667. package/dist/styles/component/Command.css +20 -0
  668. package/dist/styles/component/ContextMenu.css +11 -0
  669. package/dist/styles/component/CopyButton.css +4 -0
  670. package/dist/styles/component/DataList.css +3 -0
  671. package/dist/styles/component/DataTable.css +19 -0
  672. package/dist/styles/component/DateRangePicker.css +22 -0
  673. package/dist/styles/component/DescriptionList.css +4 -0
  674. package/dist/styles/component/Divider.css +11 -0
  675. package/dist/styles/component/Drawer.css +22 -0
  676. package/dist/styles/component/DropdownMenu.css +16 -0
  677. package/dist/styles/component/Dropzone.css +7 -0
  678. package/dist/styles/component/EmptyState.css +6 -0
  679. package/dist/styles/component/ErrorState.css +6 -0
  680. package/dist/styles/component/ErrorText.css +2 -0
  681. package/dist/styles/component/FileUpload.css +17 -0
  682. package/dist/styles/component/FilterBar.css +19 -0
  683. package/dist/styles/component/FloatingActionButton.css +23 -0
  684. package/dist/styles/component/Form.css +21 -0
  685. package/dist/styles/component/HoverCard.css +11 -0
  686. package/dist/styles/component/IconPicker.css +6 -0
  687. package/dist/styles/component/Image.css +2 -0
  688. package/dist/styles/component/ImageCropper.css +16 -0
  689. package/dist/styles/component/Input.css +24 -0
  690. package/dist/styles/component/InstallBanner.css +8 -0
  691. package/dist/styles/component/Kanban.css +15 -0
  692. package/dist/styles/component/Kbd.css +5 -0
  693. package/dist/styles/component/Label.css +3 -0
  694. package/dist/styles/component/Layout.css +22 -0
  695. package/dist/styles/component/Lightbox.css +21 -0
  696. package/dist/styles/component/ListTile.css +14 -0
  697. package/dist/styles/component/MapLegend.css +9 -0
  698. package/dist/styles/component/Markdown.css +24 -0
  699. package/dist/styles/component/Masonry.css +4 -0
  700. package/dist/styles/component/Menubar.css +17 -0
  701. package/dist/styles/component/Modal.css +21 -0
  702. package/dist/styles/component/ModalsManager.css +2 -0
  703. package/dist/styles/component/MultiSelect.css +21 -0
  704. package/dist/styles/component/MunicipalitySearch.css +6 -0
  705. package/dist/styles/component/NProgress.css +2 -0
  706. package/dist/styles/component/Navbar.css +10 -0
  707. package/dist/styles/component/NavigationMenu.css +12 -0
  708. package/dist/styles/component/NavigationRail.css +14 -0
  709. package/dist/styles/component/NotificationCenter.css +21 -0
  710. package/dist/styles/component/OfflineIndicator.css +7 -0
  711. package/dist/styles/component/Page.css +13 -0
  712. package/dist/styles/component/Pagination.css +12 -0
  713. package/dist/styles/component/PasswordInput.css +21 -0
  714. package/dist/styles/component/PinInput.css +13 -0
  715. package/dist/styles/component/PixQRCode.css +9 -0
  716. package/dist/styles/component/Popover.css +10 -0
  717. package/dist/styles/component/Progress.css +11 -0
  718. package/dist/styles/component/QRCode.css +3 -0
  719. package/dist/styles/component/Radio.css +14 -0
  720. package/dist/styles/component/RangeSlider.css +15 -0
  721. package/dist/styles/component/RatingStars.css +11 -0
  722. package/dist/styles/component/RefreshIndicator.css +5 -0
  723. package/dist/styles/component/Resizable.css +13 -0
  724. package/dist/styles/component/RichTextEditor.css +19 -0
  725. package/dist/styles/component/SafeArea.css +7 -0
  726. package/dist/styles/component/Scheduler.css +24 -0
  727. package/dist/styles/component/ScrollArea.css +7 -0
  728. package/dist/styles/component/SearchBar.css +11 -0
  729. package/dist/styles/component/SegmentedControl.css +12 -0
  730. package/dist/styles/component/Select.css +14 -0
  731. package/dist/styles/component/Sidebar.css +19 -0
  732. package/dist/styles/component/SignaturePad.css +6 -0
  733. package/dist/styles/component/Skeleton.css +7 -0
  734. package/dist/styles/component/Slider.css +15 -0
  735. package/dist/styles/component/Spacer.css +4 -0
  736. package/dist/styles/component/Sparkline.css +4 -0
  737. package/dist/styles/component/Spinner.css +12 -0
  738. package/dist/styles/component/Stat.css +12 -0
  739. package/dist/styles/component/Stepper.css +17 -0
  740. package/dist/styles/component/StepperInput.css +15 -0
  741. package/dist/styles/component/Switch.css +11 -0
  742. package/dist/styles/component/SyncStatusBadge.css +13 -0
  743. package/dist/styles/component/Table.css +16 -0
  744. package/dist/styles/component/Tabs.css +14 -0
  745. package/dist/styles/component/Tag.css +14 -0
  746. package/dist/styles/component/Textarea.css +13 -0
  747. package/dist/styles/component/TimePicker.css +14 -0
  748. package/dist/styles/component/Timeline.css +17 -0
  749. package/dist/styles/component/Toast.css +21 -0
  750. package/dist/styles/component/Toggle.css +12 -0
  751. package/dist/styles/component/ToggleGroup.css +9 -0
  752. package/dist/styles/component/Tooltip.css +10 -0
  753. package/dist/styles/component/Tour.css +20 -0
  754. package/dist/styles/component/TrajectoryMap.css +16 -0
  755. package/dist/styles/component/Transfer.css +21 -0
  756. package/dist/styles/component/TreeView.css +17 -0
  757. package/dist/styles/component/TruncateText.css +2 -0
  758. package/dist/styles/component/UpdatePrompt.css +10 -0
  759. package/dist/styles/component/VideoPlayer.css +23 -0
  760. package/dist/styles/component/VirtualList.css +5 -0
  761. package/dist/styles/component/VirtualTable.css +17 -0
  762. package/dist/styles/component/VisuallyHidden.css +2 -0
  763. package/dist/styles/component/Wizard.css +4 -0
  764. package/dist/styles/manifest.json +190 -190
  765. package/dist/tempest-react-sdk.d.ts +180 -21
  766. package/dist/utils/dev-mode.cjs.map +1 -1
  767. package/dist/utils/dev-mode.js.map +1 -1
  768. package/dist/utils/json-frame.cjs +1 -1
  769. package/dist/utils/json-frame.cjs.map +1 -1
  770. package/dist/utils/json-frame.js +33 -14
  771. package/dist/utils/json-frame.js.map +1 -1
  772. package/dist/utils/schema-like.cjs +2 -0
  773. package/dist/utils/schema-like.cjs.map +1 -0
  774. package/dist/utils/schema-like.js +43 -0
  775. package/dist/utils/schema-like.js.map +1 -0
  776. package/dist/vite/narrow-tokens.cjs +3 -0
  777. package/dist/vite/narrow-tokens.cjs.map +1 -0
  778. package/dist/vite/narrow-tokens.js +50 -0
  779. package/dist/vite/narrow-tokens.js.map +1 -0
  780. package/dist/vite/tempest-styles.cjs +6 -4
  781. package/dist/vite/tempest-styles.cjs.map +1 -1
  782. package/dist/vite/tempest-styles.js +73 -47
  783. package/dist/vite/tempest-styles.js.map +1 -1
  784. package/dist/vite.d.ts +19 -0
  785. package/dist/ws/create-web-socket.cjs +1 -1
  786. package/dist/ws/create-web-socket.cjs.map +1 -1
  787. package/dist/ws/create-web-socket.js +54 -38
  788. package/dist/ws/create-web-socket.js.map +1 -1
  789. package/dist/ws/use-web-socket.cjs +1 -1
  790. package/dist/ws/use-web-socket.cjs.map +1 -1
  791. package/dist/ws/use-web-socket.js +5 -3
  792. package/dist/ws/use-web-socket.js.map +1 -1
  793. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"Transfer.module.cjs","names":[],"sources":["../../../src/components/Transfer/Transfer.module.css"],"sourcesContent":[".wrapper {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);\n gap: var(--tempest-space-3);\n align-items: stretch;\n font-family: var(--tempest-font-sans);\n}\n\n/*\n * The move controls sit between the panes in the grid, but come **last** in the\n * DOM: a keyboard reaching the buttons before it has seen what they act on has to\n * go back, and a screen reader reads \"move checked to the right\" with no idea what\n * is checked. Order 2 puts them back in the middle visually.\n */\n.controls {\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: var(--tempest-space-2);\n order: 2;\n}\n\n.pane {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-2);\n min-width: 0;\n padding: var(--tempest-space-3);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n background-color: var(--tempest-bg);\n}\n\n.pane:first-of-type {\n order: 1;\n}\n\n.pane:last-of-type {\n order: 3;\n}\n\n.paneHeader {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-2);\n min-width: 0;\n}\n\n.paneTitle {\n display: flex;\n align-items: center;\n gap: var(--tempest-space-2);\n min-width: 0;\n}\n\n.title {\n margin: 0;\n overflow: hidden;\n color: var(--tempest-text);\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-semibold);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.count {\n color: var(--tempest-text-muted);\n font-size: var(--tempest-text-xs);\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n.search {\n width: 100%;\n min-width: 0;\n padding: var(--tempest-space-2) var(--tempest-space-3);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-bg);\n color: inherit;\n font: inherit;\n font-size: var(--tempest-text-sm);\n}\n\n.search:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: -1px;\n}\n\n.list {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-1);\n margin: 0;\n padding: 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n list-style: none;\n}\n\n.row {\n padding: var(--tempest-space-1) var(--tempest-space-2);\n border-radius: var(--tempest-radius-sm);\n font-size: var(--tempest-text-sm);\n}\n\n.row:hover {\n background-color: var(--tempest-surface);\n}\n\n.empty {\n padding: var(--tempest-space-4) var(--tempest-space-2);\n color: var(--tempest-text-muted);\n font-size: var(--tempest-text-sm);\n text-align: center;\n}\n\n.control {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--tempest-control-height-sm);\n height: var(--tempest-control-height-sm);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-bg);\n color: var(--tempest-text);\n font-size: var(--tempest-text-base);\n line-height: 1;\n cursor: pointer;\n}\n\n.control:hover:not(:disabled) {\n border-color: var(--tempest-primary);\n color: var(--tempest-primary);\n}\n\n.control:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 1px;\n}\n\n.control:disabled {\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n/*\n * Below the md breakpoint the panes stack and the controls turn horizontal: two\n * 16rem lists side by side on a phone leave each about 150px wide, where a role\n * name wraps to three lines.\n */\n@media (max-width: 640px) {\n .wrapper {\n grid-template-columns: minmax(0, 1fr);\n }\n\n .controls {\n flex-direction: row;\n justify-content: center;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Transfer.module.cjs","names":[],"sources":["../../../src/components/Transfer/Transfer.module.css"],"sourcesContent":[".wrapper {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);\n gap: var(--tempest-space-3);\n align-items: stretch;\n font-family: var(--tempest-font-sans);\n}\n\n/*\n * The move controls sit between the panes in the grid, but come **last** in the\n * DOM: a keyboard reaching the buttons before it has seen what they act on has to\n * go back, and a screen reader reads \"move checked to the right\" with no idea what\n * is checked. Order 2 puts them back in the middle visually.\n */\n.controls {\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: var(--tempest-space-2);\n order: 2;\n}\n\n.pane {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-2);\n min-width: 0;\n padding: var(--tempest-space-3);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n background-color: var(--tempest-bg);\n}\n\n.pane:first-of-type {\n order: 1;\n}\n\n.pane:last-of-type {\n order: 3;\n}\n\n.paneHeader {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-2);\n min-width: 0;\n}\n\n.paneTitle {\n display: flex;\n align-items: center;\n gap: var(--tempest-space-2);\n min-width: 0;\n}\n\n.title {\n margin: 0;\n overflow: hidden;\n color: var(--tempest-text);\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-semibold);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.count {\n color: var(--tempest-text-muted);\n font-size: var(--tempest-text-xs);\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n.search {\n width: 100%;\n min-width: 0;\n padding: var(--tempest-space-2) var(--tempest-space-3);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-bg);\n color: inherit;\n font: inherit;\n font-size: var(--tempest-text-sm);\n}\n\n.search:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: -1px;\n}\n\n.list {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-1);\n margin: 0;\n padding: 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n list-style: none;\n}\n\n.row {\n padding: var(--tempest-space-1) var(--tempest-space-2);\n border-radius: var(--tempest-radius-sm);\n font-size: var(--tempest-text-sm);\n}\n\n.row:hover {\n background-color: var(--tempest-surface);\n}\n\n.empty {\n padding: var(--tempest-space-4) var(--tempest-space-2);\n color: var(--tempest-text-muted);\n font-size: var(--tempest-text-sm);\n text-align: center;\n}\n\n.control {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--tempest-control-height-sm);\n height: var(--tempest-control-height-sm);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-bg);\n color: var(--tempest-text);\n font-size: var(--tempest-text-base);\n line-height: 1;\n cursor: pointer;\n}\n\n.control:hover:not(:disabled) {\n border-color: var(--tempest-primary);\n color: var(--tempest-primary);\n}\n\n.control:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 1px;\n}\n\n.control:disabled {\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n/*\n * Below the md breakpoint the panes stack and the controls turn horizontal: two\n * 16rem lists side by side on a phone leave each about 150px wide, where a role\n * name wraps to three lines.\n */\n@media (max-width: 640px) {\n .wrapper {\n grid-template-columns: minmax(0, 1fr);\n }\n\n .controls {\n flex-direction: row;\n justify-content: center;\n }\n}\n"],"mappings":";"}
@@ -1,3 +1,4 @@
1
+ import "../../styles/component/Transfer.css";
1
2
  //#region src/components/Transfer/Transfer.module.css
2
3
  var e = "tempest_wrapper_v0MUQ", t = "tempest_controls_Khwwy", n = "tempest_pane_EZRbR", r = "tempest_paneHeader_JymjN", i = "tempest_paneTitle_FS-D2", a = "tempest_title_IhvAM", o = "tempest_count_2NX52", s = "tempest_search_OPJ2A", c = "tempest_list_LrZlc", l = "tempest_row_uZH5v", u = "tempest_empty_sM4jo", d = "tempest_control_-y936", f = {
3
4
  wrapper: e,
@@ -1 +1 @@
1
- {"version":3,"file":"Transfer.module.js","names":[],"sources":["../../../src/components/Transfer/Transfer.module.css"],"sourcesContent":[".wrapper {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);\n gap: var(--tempest-space-3);\n align-items: stretch;\n font-family: var(--tempest-font-sans);\n}\n\n/*\n * The move controls sit between the panes in the grid, but come **last** in the\n * DOM: a keyboard reaching the buttons before it has seen what they act on has to\n * go back, and a screen reader reads \"move checked to the right\" with no idea what\n * is checked. Order 2 puts them back in the middle visually.\n */\n.controls {\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: var(--tempest-space-2);\n order: 2;\n}\n\n.pane {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-2);\n min-width: 0;\n padding: var(--tempest-space-3);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n background-color: var(--tempest-bg);\n}\n\n.pane:first-of-type {\n order: 1;\n}\n\n.pane:last-of-type {\n order: 3;\n}\n\n.paneHeader {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-2);\n min-width: 0;\n}\n\n.paneTitle {\n display: flex;\n align-items: center;\n gap: var(--tempest-space-2);\n min-width: 0;\n}\n\n.title {\n margin: 0;\n overflow: hidden;\n color: var(--tempest-text);\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-semibold);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.count {\n color: var(--tempest-text-muted);\n font-size: var(--tempest-text-xs);\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n.search {\n width: 100%;\n min-width: 0;\n padding: var(--tempest-space-2) var(--tempest-space-3);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-bg);\n color: inherit;\n font: inherit;\n font-size: var(--tempest-text-sm);\n}\n\n.search:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: -1px;\n}\n\n.list {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-1);\n margin: 0;\n padding: 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n list-style: none;\n}\n\n.row {\n padding: var(--tempest-space-1) var(--tempest-space-2);\n border-radius: var(--tempest-radius-sm);\n font-size: var(--tempest-text-sm);\n}\n\n.row:hover {\n background-color: var(--tempest-surface);\n}\n\n.empty {\n padding: var(--tempest-space-4) var(--tempest-space-2);\n color: var(--tempest-text-muted);\n font-size: var(--tempest-text-sm);\n text-align: center;\n}\n\n.control {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--tempest-control-height-sm);\n height: var(--tempest-control-height-sm);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-bg);\n color: var(--tempest-text);\n font-size: var(--tempest-text-base);\n line-height: 1;\n cursor: pointer;\n}\n\n.control:hover:not(:disabled) {\n border-color: var(--tempest-primary);\n color: var(--tempest-primary);\n}\n\n.control:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 1px;\n}\n\n.control:disabled {\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n/*\n * Below the md breakpoint the panes stack and the controls turn horizontal: two\n * 16rem lists side by side on a phone leave each about 150px wide, where a role\n * name wraps to three lines.\n */\n@media (max-width: 640px) {\n .wrapper {\n grid-template-columns: minmax(0, 1fr);\n }\n\n .controls {\n flex-direction: row;\n justify-content: center;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Transfer.module.js","names":[],"sources":["../../../src/components/Transfer/Transfer.module.css"],"sourcesContent":[".wrapper {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);\n gap: var(--tempest-space-3);\n align-items: stretch;\n font-family: var(--tempest-font-sans);\n}\n\n/*\n * The move controls sit between the panes in the grid, but come **last** in the\n * DOM: a keyboard reaching the buttons before it has seen what they act on has to\n * go back, and a screen reader reads \"move checked to the right\" with no idea what\n * is checked. Order 2 puts them back in the middle visually.\n */\n.controls {\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: var(--tempest-space-2);\n order: 2;\n}\n\n.pane {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-2);\n min-width: 0;\n padding: var(--tempest-space-3);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n background-color: var(--tempest-bg);\n}\n\n.pane:first-of-type {\n order: 1;\n}\n\n.pane:last-of-type {\n order: 3;\n}\n\n.paneHeader {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-2);\n min-width: 0;\n}\n\n.paneTitle {\n display: flex;\n align-items: center;\n gap: var(--tempest-space-2);\n min-width: 0;\n}\n\n.title {\n margin: 0;\n overflow: hidden;\n color: var(--tempest-text);\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-semibold);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.count {\n color: var(--tempest-text-muted);\n font-size: var(--tempest-text-xs);\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n.search {\n width: 100%;\n min-width: 0;\n padding: var(--tempest-space-2) var(--tempest-space-3);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-bg);\n color: inherit;\n font: inherit;\n font-size: var(--tempest-text-sm);\n}\n\n.search:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: -1px;\n}\n\n.list {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-1);\n margin: 0;\n padding: 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n list-style: none;\n}\n\n.row {\n padding: var(--tempest-space-1) var(--tempest-space-2);\n border-radius: var(--tempest-radius-sm);\n font-size: var(--tempest-text-sm);\n}\n\n.row:hover {\n background-color: var(--tempest-surface);\n}\n\n.empty {\n padding: var(--tempest-space-4) var(--tempest-space-2);\n color: var(--tempest-text-muted);\n font-size: var(--tempest-text-sm);\n text-align: center;\n}\n\n.control {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--tempest-control-height-sm);\n height: var(--tempest-control-height-sm);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-bg);\n color: var(--tempest-text);\n font-size: var(--tempest-text-base);\n line-height: 1;\n cursor: pointer;\n}\n\n.control:hover:not(:disabled) {\n border-color: var(--tempest-primary);\n color: var(--tempest-primary);\n}\n\n.control:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 1px;\n}\n\n.control:disabled {\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n/*\n * Below the md breakpoint the panes stack and the controls turn horizontal: two\n * 16rem lists side by side on a phone leave each about 150px wide, where a role\n * name wraps to three lines.\n */\n@media (max-width: 640px) {\n .wrapper {\n grid-template-columns: minmax(0, 1fr);\n }\n\n .controls {\n flex-direction: row;\n justify-content: center;\n }\n}\n"],"mappings":";"}
@@ -1,2 +1,3 @@
1
+ require("../../styles/component/TreeView.css");
1
2
  var e=`tempest_tree_velMm`,t=`tempest_item_A2xw2`,n=`tempest_row_BsqpV`,r=`tempest_selected_uhjg8`,i=`tempest_disabled_vKxfJ`,a=`tempest_chevron_5v99r`,o=`tempest_chevronOpen_H3jAu`,s=`tempest_chevronPlaceholder_j0xjc`,c=`tempest_icon_O4r1C`,l=`tempest_label_MqR1B`,u={tree:e,item:t,row:n,selected:r,disabled:i,chevron:a,chevronOpen:o,chevronPlaceholder:s,icon:c,label:l};exports.chevron=a,exports.chevronOpen=o,exports.chevronPlaceholder=s,exports.default=u,exports.disabled=i,exports.icon=c,exports.item=t,exports.label=l,exports.row=n,exports.selected=r,exports.tree=e;
2
3
  //# sourceMappingURL=TreeView.module.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"TreeView.module.cjs","names":[],"sources":["../../../src/components/TreeView/TreeView.module.css"],"sourcesContent":[".tree {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style: none;\n color: var(--tempest-text);\n font-size: var(--tempest-text-sm);\n}\n\n.item {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.row {\n display: flex;\n align-items: center;\n gap: var(--tempest-space-2);\n width: 100%;\n padding-block: var(--tempest-space-2);\n padding-inline-end: var(--tempest-space-3);\n border-radius: var(--tempest-radius-sm);\n cursor: pointer;\n user-select: none;\n transition:\n background-color var(--tempest-duration-fast) var(--tempest-ease-out),\n color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n.row:hover {\n background-color: var(--tempest-surface-2);\n}\n\n.row:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: calc(var(--tempest-focus-ring-offset) * -1);\n}\n\n.selected {\n background-color: var(--tempest-primary-soft);\n color: var(--tempest-primary-on-soft);\n font-weight: var(--tempest-weight-medium);\n}\n\n.selected:hover {\n background-color: var(--tempest-primary-soft-hover);\n}\n\n.disabled {\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n.disabled:hover {\n background-color: transparent;\n}\n\n.chevron {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n width: 18px;\n height: 18px;\n border-radius: var(--tempest-radius-xs);\n color: var(--tempest-text-muted);\n transition: transform var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n.chevron:hover {\n background-color: var(--tempest-surface-3);\n}\n\n.chevronOpen {\n transform: rotate(90deg);\n}\n\n.chevronPlaceholder {\n display: inline-block;\n flex: 0 0 auto;\n width: 18px;\n height: 18px;\n}\n\n.icon {\n display: inline-flex;\n align-items: center;\n flex: 0 0 auto;\n color: var(--tempest-text-muted);\n}\n\n.label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .row,\n .chevron {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"TreeView.module.cjs","names":[],"sources":["../../../src/components/TreeView/TreeView.module.css"],"sourcesContent":[".tree {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style: none;\n color: var(--tempest-text);\n font-size: var(--tempest-text-sm);\n}\n\n.item {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.row {\n display: flex;\n align-items: center;\n gap: var(--tempest-space-2);\n width: 100%;\n padding-block: var(--tempest-space-2);\n padding-inline-end: var(--tempest-space-3);\n border-radius: var(--tempest-radius-sm);\n cursor: pointer;\n user-select: none;\n transition:\n background-color var(--tempest-duration-fast) var(--tempest-ease-out),\n color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n.row:hover {\n background-color: var(--tempest-surface-2);\n}\n\n.row:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: calc(var(--tempest-focus-ring-offset) * -1);\n}\n\n.selected {\n background-color: var(--tempest-primary-soft);\n color: var(--tempest-primary-on-soft);\n font-weight: var(--tempest-weight-medium);\n}\n\n.selected:hover {\n background-color: var(--tempest-primary-soft-hover);\n}\n\n.disabled {\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n.disabled:hover {\n background-color: transparent;\n}\n\n.chevron {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n width: 18px;\n height: 18px;\n border-radius: var(--tempest-radius-xs);\n color: var(--tempest-text-muted);\n transition: transform var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n.chevron:hover {\n background-color: var(--tempest-surface-3);\n}\n\n.chevronOpen {\n transform: rotate(90deg);\n}\n\n.chevronPlaceholder {\n display: inline-block;\n flex: 0 0 auto;\n width: 18px;\n height: 18px;\n}\n\n.icon {\n display: inline-flex;\n align-items: center;\n flex: 0 0 auto;\n color: var(--tempest-text-muted);\n}\n\n.label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .row,\n .chevron {\n transition: none;\n }\n}\n"],"mappings":";"}
@@ -1,3 +1,4 @@
1
+ import "../../styles/component/TreeView.css";
1
2
  //#region src/components/TreeView/TreeView.module.css
2
3
  var e = "tempest_tree_velMm", t = "tempest_item_A2xw2", n = "tempest_row_BsqpV", r = "tempest_selected_uhjg8", i = "tempest_disabled_vKxfJ", a = "tempest_chevron_5v99r", o = "tempest_chevronOpen_H3jAu", s = "tempest_chevronPlaceholder_j0xjc", c = "tempest_icon_O4r1C", l = "tempest_label_MqR1B", u = {
3
4
  tree: e,
@@ -1 +1 @@
1
- {"version":3,"file":"TreeView.module.js","names":[],"sources":["../../../src/components/TreeView/TreeView.module.css"],"sourcesContent":[".tree {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style: none;\n color: var(--tempest-text);\n font-size: var(--tempest-text-sm);\n}\n\n.item {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.row {\n display: flex;\n align-items: center;\n gap: var(--tempest-space-2);\n width: 100%;\n padding-block: var(--tempest-space-2);\n padding-inline-end: var(--tempest-space-3);\n border-radius: var(--tempest-radius-sm);\n cursor: pointer;\n user-select: none;\n transition:\n background-color var(--tempest-duration-fast) var(--tempest-ease-out),\n color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n.row:hover {\n background-color: var(--tempest-surface-2);\n}\n\n.row:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: calc(var(--tempest-focus-ring-offset) * -1);\n}\n\n.selected {\n background-color: var(--tempest-primary-soft);\n color: var(--tempest-primary-on-soft);\n font-weight: var(--tempest-weight-medium);\n}\n\n.selected:hover {\n background-color: var(--tempest-primary-soft-hover);\n}\n\n.disabled {\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n.disabled:hover {\n background-color: transparent;\n}\n\n.chevron {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n width: 18px;\n height: 18px;\n border-radius: var(--tempest-radius-xs);\n color: var(--tempest-text-muted);\n transition: transform var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n.chevron:hover {\n background-color: var(--tempest-surface-3);\n}\n\n.chevronOpen {\n transform: rotate(90deg);\n}\n\n.chevronPlaceholder {\n display: inline-block;\n flex: 0 0 auto;\n width: 18px;\n height: 18px;\n}\n\n.icon {\n display: inline-flex;\n align-items: center;\n flex: 0 0 auto;\n color: var(--tempest-text-muted);\n}\n\n.label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .row,\n .chevron {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"TreeView.module.js","names":[],"sources":["../../../src/components/TreeView/TreeView.module.css"],"sourcesContent":[".tree {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style: none;\n color: var(--tempest-text);\n font-size: var(--tempest-text-sm);\n}\n\n.item {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.row {\n display: flex;\n align-items: center;\n gap: var(--tempest-space-2);\n width: 100%;\n padding-block: var(--tempest-space-2);\n padding-inline-end: var(--tempest-space-3);\n border-radius: var(--tempest-radius-sm);\n cursor: pointer;\n user-select: none;\n transition:\n background-color var(--tempest-duration-fast) var(--tempest-ease-out),\n color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n.row:hover {\n background-color: var(--tempest-surface-2);\n}\n\n.row:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: calc(var(--tempest-focus-ring-offset) * -1);\n}\n\n.selected {\n background-color: var(--tempest-primary-soft);\n color: var(--tempest-primary-on-soft);\n font-weight: var(--tempest-weight-medium);\n}\n\n.selected:hover {\n background-color: var(--tempest-primary-soft-hover);\n}\n\n.disabled {\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n.disabled:hover {\n background-color: transparent;\n}\n\n.chevron {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n width: 18px;\n height: 18px;\n border-radius: var(--tempest-radius-xs);\n color: var(--tempest-text-muted);\n transition: transform var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n.chevron:hover {\n background-color: var(--tempest-surface-3);\n}\n\n.chevronOpen {\n transform: rotate(90deg);\n}\n\n.chevronPlaceholder {\n display: inline-block;\n flex: 0 0 auto;\n width: 18px;\n height: 18px;\n}\n\n.icon {\n display: inline-flex;\n align-items: center;\n flex: 0 0 auto;\n color: var(--tempest-text-muted);\n}\n\n.label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .row,\n .chevron {\n transition: none;\n }\n}\n"],"mappings":";"}
@@ -1,2 +1,3 @@
1
+ require("../../styles/component/TruncateText.css");
1
2
  var e=`tempest_clamp_r43C-`,t={clamp:e};exports.clamp=e,exports.default=t;
2
3
  //# sourceMappingURL=TruncateText.module.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"TruncateText.module.cjs","names":[],"sources":["../../../src/components/TruncateText/TruncateText.module.css"],"sourcesContent":[".clamp {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: var(--tempest-clamp-lines, 1);\n line-clamp: var(--tempest-clamp-lines, 1);\n overflow: hidden;\n text-overflow: ellipsis;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"TruncateText.module.cjs","names":[],"sources":["../../../src/components/TruncateText/TruncateText.module.css"],"sourcesContent":[".clamp {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: var(--tempest-clamp-lines, 1);\n line-clamp: var(--tempest-clamp-lines, 1);\n overflow: hidden;\n text-overflow: ellipsis;\n}\n"],"mappings":";"}
@@ -1,3 +1,4 @@
1
+ import "../../styles/component/TruncateText.css";
1
2
  //#region src/components/TruncateText/TruncateText.module.css
2
3
  var e = "tempest_clamp_r43C-", t = { clamp: e };
3
4
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"TruncateText.module.js","names":[],"sources":["../../../src/components/TruncateText/TruncateText.module.css"],"sourcesContent":[".clamp {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: var(--tempest-clamp-lines, 1);\n line-clamp: var(--tempest-clamp-lines, 1);\n overflow: hidden;\n text-overflow: ellipsis;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"TruncateText.module.js","names":[],"sources":["../../../src/components/TruncateText/TruncateText.module.css"],"sourcesContent":[".clamp {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: var(--tempest-clamp-lines, 1);\n line-clamp: var(--tempest-clamp-lines, 1);\n overflow: hidden;\n text-overflow: ellipsis;\n}\n"],"mappings":";"}
@@ -1,2 +1,3 @@
1
+ require("../../styles/component/UpdatePrompt.css");
1
2
  var e=`tempest_prompt_zjn4k`,t=`tempest_top_R7h6g`,n=`tempest_bottom_HcM1B`,r=`tempest_icon_2h5sW`,i=`tempest_message_OWZ-w`,a=`tempest_action_f6ida`,o=`tempest_dismiss_mNO-v`,s={prompt:e,top:t,bottom:n,icon:r,message:i,action:a,dismiss:o};exports.action=a,exports.bottom=n,exports.default=s,exports.dismiss=o,exports.icon=r,exports.message=i,exports.prompt=e,exports.top=t;
2
3
  //# sourceMappingURL=UpdatePrompt.module.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"UpdatePrompt.module.cjs","names":[],"sources":["../../../src/components/UpdatePrompt/UpdatePrompt.module.css"],"sourcesContent":[".prompt {\n position: fixed;\n left: 50%;\n transform: translateX(-50%);\n z-index: var(--tempest-z-toast, 1000);\n display: flex;\n align-items: center;\n gap: var(--tempest-space-3);\n max-width: calc(100vw - 2 * var(--tempest-space-4));\n padding: var(--tempest-space-3) var(--tempest-space-4);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-info-bg);\n color: var(--tempest-info-fg);\n border: 1px solid var(--tempest-info-border);\n box-shadow: var(--tempest-shadow-lg);\n font-family: var(--tempest-font-sans);\n font-size: var(--tempest-text-sm);\n line-height: var(--tempest-leading-snug);\n}\n\n.top {\n top: max(var(--tempest-space-4), env(safe-area-inset-top));\n}\n\n.bottom {\n bottom: max(var(--tempest-space-4), env(safe-area-inset-bottom));\n}\n\n.icon {\n flex: 0 0 auto;\n}\n\n.message {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.action {\n flex: 0 0 auto;\n padding: var(--tempest-space-1) var(--tempest-space-3);\n border: 1px solid currentColor;\n border-radius: var(--tempest-radius-sm);\n background: transparent;\n color: currentColor;\n font-family: inherit;\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-semibold);\n cursor: pointer;\n}\n\n.action:hover {\n background: color-mix(in srgb, currentColor 12%, transparent);\n}\n\n.dismiss {\n flex: 0 0 auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n border: 0;\n border-radius: var(--tempest-radius-sm);\n background: none;\n color: currentColor;\n cursor: pointer;\n}\n\n.dismiss:hover {\n background: color-mix(in srgb, currentColor 12%, transparent);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"UpdatePrompt.module.cjs","names":[],"sources":["../../../src/components/UpdatePrompt/UpdatePrompt.module.css"],"sourcesContent":[".prompt {\n position: fixed;\n left: 50%;\n transform: translateX(-50%);\n z-index: var(--tempest-z-toast, 1000);\n display: flex;\n align-items: center;\n gap: var(--tempest-space-3);\n max-width: calc(100vw - 2 * var(--tempest-space-4));\n padding: var(--tempest-space-3) var(--tempest-space-4);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-info-bg);\n color: var(--tempest-info-fg);\n border: 1px solid var(--tempest-info-border);\n box-shadow: var(--tempest-shadow-lg);\n font-family: var(--tempest-font-sans);\n font-size: var(--tempest-text-sm);\n line-height: var(--tempest-leading-snug);\n}\n\n.top {\n top: max(var(--tempest-space-4), env(safe-area-inset-top));\n}\n\n.bottom {\n bottom: max(var(--tempest-space-4), env(safe-area-inset-bottom));\n}\n\n.icon {\n flex: 0 0 auto;\n}\n\n.message {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.action {\n flex: 0 0 auto;\n padding: var(--tempest-space-1) var(--tempest-space-3);\n border: 1px solid currentColor;\n border-radius: var(--tempest-radius-sm);\n background: transparent;\n color: currentColor;\n font-family: inherit;\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-semibold);\n cursor: pointer;\n}\n\n.action:hover {\n background: color-mix(in srgb, currentColor 12%, transparent);\n}\n\n.dismiss {\n flex: 0 0 auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n border: 0;\n border-radius: var(--tempest-radius-sm);\n background: none;\n color: currentColor;\n cursor: pointer;\n}\n\n.dismiss:hover {\n background: color-mix(in srgb, currentColor 12%, transparent);\n}\n"],"mappings":";"}
@@ -1,3 +1,4 @@
1
+ import "../../styles/component/UpdatePrompt.css";
1
2
  //#region src/components/UpdatePrompt/UpdatePrompt.module.css
2
3
  var e = "tempest_prompt_zjn4k", t = "tempest_top_R7h6g", n = "tempest_bottom_HcM1B", r = "tempest_icon_2h5sW", i = "tempest_message_OWZ-w", a = "tempest_action_f6ida", o = "tempest_dismiss_mNO-v", s = {
3
4
  prompt: e,
@@ -1 +1 @@
1
- {"version":3,"file":"UpdatePrompt.module.js","names":[],"sources":["../../../src/components/UpdatePrompt/UpdatePrompt.module.css"],"sourcesContent":[".prompt {\n position: fixed;\n left: 50%;\n transform: translateX(-50%);\n z-index: var(--tempest-z-toast, 1000);\n display: flex;\n align-items: center;\n gap: var(--tempest-space-3);\n max-width: calc(100vw - 2 * var(--tempest-space-4));\n padding: var(--tempest-space-3) var(--tempest-space-4);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-info-bg);\n color: var(--tempest-info-fg);\n border: 1px solid var(--tempest-info-border);\n box-shadow: var(--tempest-shadow-lg);\n font-family: var(--tempest-font-sans);\n font-size: var(--tempest-text-sm);\n line-height: var(--tempest-leading-snug);\n}\n\n.top {\n top: max(var(--tempest-space-4), env(safe-area-inset-top));\n}\n\n.bottom {\n bottom: max(var(--tempest-space-4), env(safe-area-inset-bottom));\n}\n\n.icon {\n flex: 0 0 auto;\n}\n\n.message {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.action {\n flex: 0 0 auto;\n padding: var(--tempest-space-1) var(--tempest-space-3);\n border: 1px solid currentColor;\n border-radius: var(--tempest-radius-sm);\n background: transparent;\n color: currentColor;\n font-family: inherit;\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-semibold);\n cursor: pointer;\n}\n\n.action:hover {\n background: color-mix(in srgb, currentColor 12%, transparent);\n}\n\n.dismiss {\n flex: 0 0 auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n border: 0;\n border-radius: var(--tempest-radius-sm);\n background: none;\n color: currentColor;\n cursor: pointer;\n}\n\n.dismiss:hover {\n background: color-mix(in srgb, currentColor 12%, transparent);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"UpdatePrompt.module.js","names":[],"sources":["../../../src/components/UpdatePrompt/UpdatePrompt.module.css"],"sourcesContent":[".prompt {\n position: fixed;\n left: 50%;\n transform: translateX(-50%);\n z-index: var(--tempest-z-toast, 1000);\n display: flex;\n align-items: center;\n gap: var(--tempest-space-3);\n max-width: calc(100vw - 2 * var(--tempest-space-4));\n padding: var(--tempest-space-3) var(--tempest-space-4);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-info-bg);\n color: var(--tempest-info-fg);\n border: 1px solid var(--tempest-info-border);\n box-shadow: var(--tempest-shadow-lg);\n font-family: var(--tempest-font-sans);\n font-size: var(--tempest-text-sm);\n line-height: var(--tempest-leading-snug);\n}\n\n.top {\n top: max(var(--tempest-space-4), env(safe-area-inset-top));\n}\n\n.bottom {\n bottom: max(var(--tempest-space-4), env(safe-area-inset-bottom));\n}\n\n.icon {\n flex: 0 0 auto;\n}\n\n.message {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.action {\n flex: 0 0 auto;\n padding: var(--tempest-space-1) var(--tempest-space-3);\n border: 1px solid currentColor;\n border-radius: var(--tempest-radius-sm);\n background: transparent;\n color: currentColor;\n font-family: inherit;\n font-size: var(--tempest-text-sm);\n font-weight: var(--tempest-weight-semibold);\n cursor: pointer;\n}\n\n.action:hover {\n background: color-mix(in srgb, currentColor 12%, transparent);\n}\n\n.dismiss {\n flex: 0 0 auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n border: 0;\n border-radius: var(--tempest-radius-sm);\n background: none;\n color: currentColor;\n cursor: pointer;\n}\n\n.dismiss:hover {\n background: color-mix(in srgb, currentColor 12%, transparent);\n}\n"],"mappings":";"}
@@ -1,2 +1,3 @@
1
+ require("../../styles/component/VideoPlayer.css");
1
2
  var e=`tempest_player_tP0ul`,t=`tempest_frame_ds-xN`,n=`tempest_video_Ejoer`,r=`tempest_chrome_LI2ZI`,i=`tempest_transport_waV9q`,a=`tempest_icon_jIwyC`,o=`tempest_seek_qB6l-`,s=`tempest_volume_R0Fr0`,c=`tempest_rate_Dluev`,l=`tempest_time_z9Tg1`,u=`tempest_actions_UxFoM`,d=`tempest_immersive_eSsR6`,f={player:e,frame:t,video:n,chrome:r,transport:i,icon:a,seek:o,volume:s,rate:c,time:l,actions:u,immersive:d};exports.actions=u,exports.chrome=r,exports.default=f,exports.frame=t,exports.icon=a,exports.immersive=d,exports.player=e,exports.rate=c,exports.seek=o,exports.time=l,exports.transport=i,exports.video=n,exports.volume=s;
2
3
  //# sourceMappingURL=VideoPlayer.module.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"VideoPlayer.module.cjs","names":[],"sources":["../../../src/components/VideoPlayer/VideoPlayer.module.css"],"sourcesContent":["/*\n * The controls are a bar under the frame, not an overlay.\n *\n * An overlay has to earn its contrast against arbitrary video pixels, and no\n * `--tempest-*` token can promise that: every text token here is resolved\n * against a known surface, and the two contrast defects this repo shipped were\n * both a text token used over a surface it was never checked against. A bar with\n * its own surface inherits the theme and is legible by construction. An app that\n * wants a cinema overlay can position its own chrome over the frame; what ships\n * is the one that is right in both themes.\n */\n.player {\n display: flex;\n flex-direction: column;\n min-width: 0;\n overflow: hidden;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n font-family: var(--tempest-font-sans);\n}\n\n/*\n * The frame keeps its shape before the video reports one, so the control bar\n * does not jump down the page when metadata lands. Black rather than a surface\n * token: letterboxing is part of the picture, and a light bar around a dark\n * video reads as a rendering bug.\n */\n.frame {\n position: relative;\n width: 100%;\n background-color: #000000;\n}\n\n.video {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.chrome {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--tempest-space-3);\n padding: var(--tempest-space-2) var(--tempest-space-3);\n border-top: 1px solid var(--tempest-border);\n background-color: var(--tempest-surface);\n}\n\n.transport {\n position: relative;\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n width: 2.25rem;\n height: 2.25rem;\n padding: 0;\n border: none;\n border-radius: var(--tempest-radius-full);\n background-color: var(--tempest-primary);\n color: var(--tempest-primary-foreground);\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n.transport:disabled {\n background-color: var(--tempest-surface-3);\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n.icon {\n position: relative;\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n padding: 0;\n border: none;\n border-radius: var(--tempest-radius-md);\n background-color: transparent;\n color: var(--tempest-text-muted);\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n.icon:hover:not(:disabled) {\n background-color: var(--tempest-surface-2);\n color: var(--tempest-text);\n}\n\n.icon:disabled {\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n/*\n * The track is drawn on the input itself rather than with a wrapper and an\n * overlay: the native element already carries the keyboard behaviour and the\n * value semantics, and the only thing missing is the look.\n */\n.seek {\n flex: 1 1 8rem;\n min-width: 3rem;\n height: 1.25rem;\n margin: 0;\n background: none;\n accent-color: var(--tempest-primary);\n cursor: pointer;\n}\n\n.volume {\n flex: 0 1 4.5rem;\n min-width: 2.5rem;\n height: 1.25rem;\n margin: 0;\n background: none;\n accent-color: var(--tempest-primary);\n cursor: pointer;\n}\n\n.seek:disabled,\n.volume:disabled {\n accent-color: var(--tempest-surface-3);\n cursor: not-allowed;\n}\n\n.rate {\n flex: 0 0 auto;\n padding: var(--tempest-space-1) var(--tempest-space-2);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n font-family: inherit;\n font-size: var(--tempest-text-xs);\n font-variant-numeric: tabular-nums;\n cursor: pointer;\n}\n\n.rate:disabled {\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n.transport:focus-visible,\n.icon:focus-visible,\n.seek:focus-visible,\n.volume:focus-visible,\n.rate:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: 2px;\n border-radius: var(--tempest-radius-sm);\n}\n\n/*\n * Tabular figures, so the elapsed time does not shift the seek bar sideways as\n * the digits change — a proportional `1` is narrower than a `0`, and at ten\n * updates a second the whole row visibly jitters.\n */\n.time {\n display: inline-flex;\n flex: 0 0 auto;\n gap: var(--tempest-space-1);\n color: var(--tempest-text-muted);\n font-size: var(--tempest-text-xs);\n font-variant-numeric: tabular-nums;\n}\n\n.actions {\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n gap: var(--tempest-space-1);\n}\n\n/*\n * Fullscreen presents the shell, so the frame has to give up its aspect box and\n * take the height that is left over — otherwise a 16/9 box inside a 16/10\n * display leaves the bar floating in the middle of the screen.\n */\n.immersive {\n width: 100%;\n height: 100%;\n border: none;\n border-radius: 0;\n}\n\n.immersive .frame {\n flex: 1 1 auto;\n aspect-ratio: auto !important;\n min-height: 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .transport,\n .icon {\n transition: none;\n }\n}\n\n/* Touch hit-slop — 44×44 without changing the visual footprint, as `Button` does. */\n@media (pointer: coarse) {\n .transport::after,\n .icon::after {\n content: \"\";\n position: absolute;\n inset: -6px;\n }\n}\n\n/*\n * On a phone the row cannot hold seven controls. The seek bar takes a line of its\n * own and the rest wraps under it, which keeps every target at full size instead\n * of shrinking them all below the touch minimum.\n */\n@media (max-width: 480px) {\n .chrome {\n gap: var(--tempest-space-2);\n padding: var(--tempest-space-2);\n }\n\n .seek {\n flex: 1 1 100%;\n order: -1;\n }\n\n /*\n * No volume slider on a phone. Measured at 390px in Chromium: the second row\n * came to exactly the container width, which pushed the fullscreen button\n * onto a third row — spent on a slider nobody drags on a phone, where the\n * hardware keys do that job. The mute button stays, because silencing fast\n * is the thing people actually want from a video in a feed.\n */\n .volume {\n display: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"VideoPlayer.module.cjs","names":[],"sources":["../../../src/components/VideoPlayer/VideoPlayer.module.css"],"sourcesContent":["/*\n * The controls are a bar under the frame, not an overlay.\n *\n * An overlay has to earn its contrast against arbitrary video pixels, and no\n * `--tempest-*` token can promise that: every text token here is resolved\n * against a known surface, and the two contrast defects this repo shipped were\n * both a text token used over a surface it was never checked against. A bar with\n * its own surface inherits the theme and is legible by construction. An app that\n * wants a cinema overlay can position its own chrome over the frame; what ships\n * is the one that is right in both themes.\n */\n.player {\n display: flex;\n flex-direction: column;\n min-width: 0;\n overflow: hidden;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n font-family: var(--tempest-font-sans);\n}\n\n/*\n * The frame keeps its shape before the video reports one, so the control bar\n * does not jump down the page when metadata lands. Black rather than a surface\n * token: letterboxing is part of the picture, and a light bar around a dark\n * video reads as a rendering bug.\n */\n.frame {\n position: relative;\n width: 100%;\n background-color: #000000;\n}\n\n.video {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.chrome {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--tempest-space-3);\n padding: var(--tempest-space-2) var(--tempest-space-3);\n border-top: 1px solid var(--tempest-border);\n background-color: var(--tempest-surface);\n}\n\n.transport {\n position: relative;\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n width: 2.25rem;\n height: 2.25rem;\n padding: 0;\n border: none;\n border-radius: var(--tempest-radius-full);\n background-color: var(--tempest-primary);\n color: var(--tempest-primary-foreground);\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n.transport:disabled {\n background-color: var(--tempest-surface-3);\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n.icon {\n position: relative;\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n padding: 0;\n border: none;\n border-radius: var(--tempest-radius-md);\n background-color: transparent;\n color: var(--tempest-text-muted);\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n.icon:hover:not(:disabled) {\n background-color: var(--tempest-surface-2);\n color: var(--tempest-text);\n}\n\n.icon:disabled {\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n/*\n * The track is drawn on the input itself rather than with a wrapper and an\n * overlay: the native element already carries the keyboard behaviour and the\n * value semantics, and the only thing missing is the look.\n */\n.seek {\n flex: 1 1 8rem;\n min-width: 3rem;\n height: 1.25rem;\n margin: 0;\n background: none;\n accent-color: var(--tempest-primary);\n cursor: pointer;\n}\n\n.volume {\n flex: 0 1 4.5rem;\n min-width: 2.5rem;\n height: 1.25rem;\n margin: 0;\n background: none;\n accent-color: var(--tempest-primary);\n cursor: pointer;\n}\n\n.seek:disabled,\n.volume:disabled {\n accent-color: var(--tempest-surface-3);\n cursor: not-allowed;\n}\n\n.rate {\n flex: 0 0 auto;\n padding: var(--tempest-space-1) var(--tempest-space-2);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n font-family: inherit;\n font-size: var(--tempest-text-xs);\n font-variant-numeric: tabular-nums;\n cursor: pointer;\n}\n\n.rate:disabled {\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n.transport:focus-visible,\n.icon:focus-visible,\n.seek:focus-visible,\n.volume:focus-visible,\n.rate:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: 2px;\n border-radius: var(--tempest-radius-sm);\n}\n\n/*\n * Tabular figures, so the elapsed time does not shift the seek bar sideways as\n * the digits change — a proportional `1` is narrower than a `0`, and at ten\n * updates a second the whole row visibly jitters.\n */\n.time {\n display: inline-flex;\n flex: 0 0 auto;\n gap: var(--tempest-space-1);\n color: var(--tempest-text-muted);\n font-size: var(--tempest-text-xs);\n font-variant-numeric: tabular-nums;\n}\n\n.actions {\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n gap: var(--tempest-space-1);\n}\n\n/*\n * Fullscreen presents the shell, so the frame has to give up its aspect box and\n * take the height that is left over — otherwise a 16/9 box inside a 16/10\n * display leaves the bar floating in the middle of the screen.\n */\n.immersive {\n width: 100%;\n height: 100%;\n border: none;\n border-radius: 0;\n}\n\n.immersive .frame {\n flex: 1 1 auto;\n aspect-ratio: auto !important;\n min-height: 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .transport,\n .icon {\n transition: none;\n }\n}\n\n/* Touch hit-slop — 44×44 without changing the visual footprint, as `Button` does. */\n@media (pointer: coarse) {\n .transport::after,\n .icon::after {\n content: \"\";\n position: absolute;\n inset: -6px;\n }\n}\n\n/*\n * On a phone the row cannot hold seven controls. The seek bar takes a line of its\n * own and the rest wraps under it, which keeps every target at full size instead\n * of shrinking them all below the touch minimum.\n */\n@media (max-width: 480px) {\n .chrome {\n gap: var(--tempest-space-2);\n padding: var(--tempest-space-2);\n }\n\n .seek {\n flex: 1 1 100%;\n order: -1;\n }\n\n /*\n * No volume slider on a phone. Measured at 390px in Chromium: the second row\n * came to exactly the container width, which pushed the fullscreen button\n * onto a third row — spent on a slider nobody drags on a phone, where the\n * hardware keys do that job. The mute button stays, because silencing fast\n * is the thing people actually want from a video in a feed.\n */\n .volume {\n display: none;\n }\n}\n"],"mappings":";"}
@@ -1,3 +1,4 @@
1
+ import "../../styles/component/VideoPlayer.css";
1
2
  //#region src/components/VideoPlayer/VideoPlayer.module.css
2
3
  var e = "tempest_player_tP0ul", t = "tempest_frame_ds-xN", n = "tempest_video_Ejoer", r = "tempest_chrome_LI2ZI", i = "tempest_transport_waV9q", a = "tempest_icon_jIwyC", o = "tempest_seek_qB6l-", s = "tempest_volume_R0Fr0", c = "tempest_rate_Dluev", l = "tempest_time_z9Tg1", u = "tempest_actions_UxFoM", d = "tempest_immersive_eSsR6", f = {
3
4
  player: e,
@@ -1 +1 @@
1
- {"version":3,"file":"VideoPlayer.module.js","names":[],"sources":["../../../src/components/VideoPlayer/VideoPlayer.module.css"],"sourcesContent":["/*\n * The controls are a bar under the frame, not an overlay.\n *\n * An overlay has to earn its contrast against arbitrary video pixels, and no\n * `--tempest-*` token can promise that: every text token here is resolved\n * against a known surface, and the two contrast defects this repo shipped were\n * both a text token used over a surface it was never checked against. A bar with\n * its own surface inherits the theme and is legible by construction. An app that\n * wants a cinema overlay can position its own chrome over the frame; what ships\n * is the one that is right in both themes.\n */\n.player {\n display: flex;\n flex-direction: column;\n min-width: 0;\n overflow: hidden;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n font-family: var(--tempest-font-sans);\n}\n\n/*\n * The frame keeps its shape before the video reports one, so the control bar\n * does not jump down the page when metadata lands. Black rather than a surface\n * token: letterboxing is part of the picture, and a light bar around a dark\n * video reads as a rendering bug.\n */\n.frame {\n position: relative;\n width: 100%;\n background-color: #000000;\n}\n\n.video {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.chrome {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--tempest-space-3);\n padding: var(--tempest-space-2) var(--tempest-space-3);\n border-top: 1px solid var(--tempest-border);\n background-color: var(--tempest-surface);\n}\n\n.transport {\n position: relative;\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n width: 2.25rem;\n height: 2.25rem;\n padding: 0;\n border: none;\n border-radius: var(--tempest-radius-full);\n background-color: var(--tempest-primary);\n color: var(--tempest-primary-foreground);\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n.transport:disabled {\n background-color: var(--tempest-surface-3);\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n.icon {\n position: relative;\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n padding: 0;\n border: none;\n border-radius: var(--tempest-radius-md);\n background-color: transparent;\n color: var(--tempest-text-muted);\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n.icon:hover:not(:disabled) {\n background-color: var(--tempest-surface-2);\n color: var(--tempest-text);\n}\n\n.icon:disabled {\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n/*\n * The track is drawn on the input itself rather than with a wrapper and an\n * overlay: the native element already carries the keyboard behaviour and the\n * value semantics, and the only thing missing is the look.\n */\n.seek {\n flex: 1 1 8rem;\n min-width: 3rem;\n height: 1.25rem;\n margin: 0;\n background: none;\n accent-color: var(--tempest-primary);\n cursor: pointer;\n}\n\n.volume {\n flex: 0 1 4.5rem;\n min-width: 2.5rem;\n height: 1.25rem;\n margin: 0;\n background: none;\n accent-color: var(--tempest-primary);\n cursor: pointer;\n}\n\n.seek:disabled,\n.volume:disabled {\n accent-color: var(--tempest-surface-3);\n cursor: not-allowed;\n}\n\n.rate {\n flex: 0 0 auto;\n padding: var(--tempest-space-1) var(--tempest-space-2);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n font-family: inherit;\n font-size: var(--tempest-text-xs);\n font-variant-numeric: tabular-nums;\n cursor: pointer;\n}\n\n.rate:disabled {\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n.transport:focus-visible,\n.icon:focus-visible,\n.seek:focus-visible,\n.volume:focus-visible,\n.rate:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: 2px;\n border-radius: var(--tempest-radius-sm);\n}\n\n/*\n * Tabular figures, so the elapsed time does not shift the seek bar sideways as\n * the digits change — a proportional `1` is narrower than a `0`, and at ten\n * updates a second the whole row visibly jitters.\n */\n.time {\n display: inline-flex;\n flex: 0 0 auto;\n gap: var(--tempest-space-1);\n color: var(--tempest-text-muted);\n font-size: var(--tempest-text-xs);\n font-variant-numeric: tabular-nums;\n}\n\n.actions {\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n gap: var(--tempest-space-1);\n}\n\n/*\n * Fullscreen presents the shell, so the frame has to give up its aspect box and\n * take the height that is left over — otherwise a 16/9 box inside a 16/10\n * display leaves the bar floating in the middle of the screen.\n */\n.immersive {\n width: 100%;\n height: 100%;\n border: none;\n border-radius: 0;\n}\n\n.immersive .frame {\n flex: 1 1 auto;\n aspect-ratio: auto !important;\n min-height: 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .transport,\n .icon {\n transition: none;\n }\n}\n\n/* Touch hit-slop — 44×44 without changing the visual footprint, as `Button` does. */\n@media (pointer: coarse) {\n .transport::after,\n .icon::after {\n content: \"\";\n position: absolute;\n inset: -6px;\n }\n}\n\n/*\n * On a phone the row cannot hold seven controls. The seek bar takes a line of its\n * own and the rest wraps under it, which keeps every target at full size instead\n * of shrinking them all below the touch minimum.\n */\n@media (max-width: 480px) {\n .chrome {\n gap: var(--tempest-space-2);\n padding: var(--tempest-space-2);\n }\n\n .seek {\n flex: 1 1 100%;\n order: -1;\n }\n\n /*\n * No volume slider on a phone. Measured at 390px in Chromium: the second row\n * came to exactly the container width, which pushed the fullscreen button\n * onto a third row — spent on a slider nobody drags on a phone, where the\n * hardware keys do that job. The mute button stays, because silencing fast\n * is the thing people actually want from a video in a feed.\n */\n .volume {\n display: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"VideoPlayer.module.js","names":[],"sources":["../../../src/components/VideoPlayer/VideoPlayer.module.css"],"sourcesContent":["/*\n * The controls are a bar under the frame, not an overlay.\n *\n * An overlay has to earn its contrast against arbitrary video pixels, and no\n * `--tempest-*` token can promise that: every text token here is resolved\n * against a known surface, and the two contrast defects this repo shipped were\n * both a text token used over a surface it was never checked against. A bar with\n * its own surface inherits the theme and is legible by construction. An app that\n * wants a cinema overlay can position its own chrome over the frame; what ships\n * is the one that is right in both themes.\n */\n.player {\n display: flex;\n flex-direction: column;\n min-width: 0;\n overflow: hidden;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n font-family: var(--tempest-font-sans);\n}\n\n/*\n * The frame keeps its shape before the video reports one, so the control bar\n * does not jump down the page when metadata lands. Black rather than a surface\n * token: letterboxing is part of the picture, and a light bar around a dark\n * video reads as a rendering bug.\n */\n.frame {\n position: relative;\n width: 100%;\n background-color: #000000;\n}\n\n.video {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.chrome {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--tempest-space-3);\n padding: var(--tempest-space-2) var(--tempest-space-3);\n border-top: 1px solid var(--tempest-border);\n background-color: var(--tempest-surface);\n}\n\n.transport {\n position: relative;\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n width: 2.25rem;\n height: 2.25rem;\n padding: 0;\n border: none;\n border-radius: var(--tempest-radius-full);\n background-color: var(--tempest-primary);\n color: var(--tempest-primary-foreground);\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n.transport:disabled {\n background-color: var(--tempest-surface-3);\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n.icon {\n position: relative;\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n padding: 0;\n border: none;\n border-radius: var(--tempest-radius-md);\n background-color: transparent;\n color: var(--tempest-text-muted);\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n.icon:hover:not(:disabled) {\n background-color: var(--tempest-surface-2);\n color: var(--tempest-text);\n}\n\n.icon:disabled {\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n/*\n * The track is drawn on the input itself rather than with a wrapper and an\n * overlay: the native element already carries the keyboard behaviour and the\n * value semantics, and the only thing missing is the look.\n */\n.seek {\n flex: 1 1 8rem;\n min-width: 3rem;\n height: 1.25rem;\n margin: 0;\n background: none;\n accent-color: var(--tempest-primary);\n cursor: pointer;\n}\n\n.volume {\n flex: 0 1 4.5rem;\n min-width: 2.5rem;\n height: 1.25rem;\n margin: 0;\n background: none;\n accent-color: var(--tempest-primary);\n cursor: pointer;\n}\n\n.seek:disabled,\n.volume:disabled {\n accent-color: var(--tempest-surface-3);\n cursor: not-allowed;\n}\n\n.rate {\n flex: 0 0 auto;\n padding: var(--tempest-space-1) var(--tempest-space-2);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background-color: var(--tempest-surface);\n color: var(--tempest-text);\n font-family: inherit;\n font-size: var(--tempest-text-xs);\n font-variant-numeric: tabular-nums;\n cursor: pointer;\n}\n\n.rate:disabled {\n color: var(--tempest-text-subtle);\n cursor: not-allowed;\n}\n\n.transport:focus-visible,\n.icon:focus-visible,\n.seek:focus-visible,\n.volume:focus-visible,\n.rate:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: 2px;\n border-radius: var(--tempest-radius-sm);\n}\n\n/*\n * Tabular figures, so the elapsed time does not shift the seek bar sideways as\n * the digits change — a proportional `1` is narrower than a `0`, and at ten\n * updates a second the whole row visibly jitters.\n */\n.time {\n display: inline-flex;\n flex: 0 0 auto;\n gap: var(--tempest-space-1);\n color: var(--tempest-text-muted);\n font-size: var(--tempest-text-xs);\n font-variant-numeric: tabular-nums;\n}\n\n.actions {\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n gap: var(--tempest-space-1);\n}\n\n/*\n * Fullscreen presents the shell, so the frame has to give up its aspect box and\n * take the height that is left over — otherwise a 16/9 box inside a 16/10\n * display leaves the bar floating in the middle of the screen.\n */\n.immersive {\n width: 100%;\n height: 100%;\n border: none;\n border-radius: 0;\n}\n\n.immersive .frame {\n flex: 1 1 auto;\n aspect-ratio: auto !important;\n min-height: 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .transport,\n .icon {\n transition: none;\n }\n}\n\n/* Touch hit-slop — 44×44 without changing the visual footprint, as `Button` does. */\n@media (pointer: coarse) {\n .transport::after,\n .icon::after {\n content: \"\";\n position: absolute;\n inset: -6px;\n }\n}\n\n/*\n * On a phone the row cannot hold seven controls. The seek bar takes a line of its\n * own and the rest wraps under it, which keeps every target at full size instead\n * of shrinking them all below the touch minimum.\n */\n@media (max-width: 480px) {\n .chrome {\n gap: var(--tempest-space-2);\n padding: var(--tempest-space-2);\n }\n\n .seek {\n flex: 1 1 100%;\n order: -1;\n }\n\n /*\n * No volume slider on a phone. Measured at 390px in Chromium: the second row\n * came to exactly the container width, which pushed the fullscreen button\n * onto a third row — spent on a slider nobody drags on a phone, where the\n * hardware keys do that job. The mute button stays, because silencing fast\n * is the thing people actually want from a video in a feed.\n */\n .volume {\n display: none;\n }\n}\n"],"mappings":";"}
@@ -1,2 +1,3 @@
1
+ require("../../styles/component/VirtualList.css");
1
2
  var e=`tempest_scroll_8Giwl`,t=`tempest_spacer_P3Pvl`,n=`tempest_row_Ff0VU`,r={scroll:e,spacer:t,row:n};exports.default=r,exports.row=n,exports.scroll=e,exports.spacer=t;
2
3
  //# sourceMappingURL=VirtualList.module.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualList.module.cjs","names":[],"sources":["../../../src/components/VirtualList/VirtualList.module.css"],"sourcesContent":[".scroll {\n position: relative;\n overflow: auto;\n width: 100%;\n}\n\n.spacer {\n position: relative;\n width: 100%;\n}\n\n.row {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.scroll:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: 2px;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"VirtualList.module.cjs","names":[],"sources":["../../../src/components/VirtualList/VirtualList.module.css"],"sourcesContent":[".scroll {\n position: relative;\n overflow: auto;\n width: 100%;\n}\n\n.spacer {\n position: relative;\n width: 100%;\n}\n\n.row {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.scroll:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: 2px;\n}\n"],"mappings":";"}
@@ -1,3 +1,4 @@
1
+ import "../../styles/component/VirtualList.css";
1
2
  //#region src/components/VirtualList/VirtualList.module.css
2
3
  var e = "tempest_scroll_8Giwl", t = "tempest_spacer_P3Pvl", n = "tempest_row_Ff0VU", r = {
3
4
  scroll: e,
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualList.module.js","names":[],"sources":["../../../src/components/VirtualList/VirtualList.module.css"],"sourcesContent":[".scroll {\n position: relative;\n overflow: auto;\n width: 100%;\n}\n\n.spacer {\n position: relative;\n width: 100%;\n}\n\n.row {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.scroll:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: 2px;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"VirtualList.module.js","names":[],"sources":["../../../src/components/VirtualList/VirtualList.module.css"],"sourcesContent":[".scroll {\n position: relative;\n overflow: auto;\n width: 100%;\n}\n\n.spacer {\n position: relative;\n width: 100%;\n}\n\n.row {\n position: absolute;\n left: 0;\n right: 0;\n}\n\n.scroll:focus-visible {\n outline: var(--tempest-focus-ring-width) solid var(--tempest-focus-ring-color);\n outline-offset: 2px;\n}\n"],"mappings":";"}
@@ -1,2 +1,3 @@
1
+ require("../../styles/component/VirtualTable.css");
1
2
  var e=`tempest_scroll_XOPRs`,t=`tempest_table_wbJg-`,n=`tempest_caption_Dt-O5`,r=`tempest_head_9xVmx`,i=`tempest_th_-xzNL`,a=`tempest_td_Crp7i`,o=`tempest_alignRight_uxhpx`,s=`tempest_alignCenter_9B3Sb`,c=`tempest_sortButton_4h-vK`,l=`tempest_sortIndicator_-WpMp`,u=`tempest_tr_EI3uW`,d=`tempest_clickable_4AfSX`,f=`tempest_emptyRow_4kIiT`,p={scroll:e,table:t,caption:n,head:r,th:i,td:a,alignRight:o,alignCenter:s,sortButton:c,sortIndicator:l,tr:u,clickable:d,emptyRow:f};exports.alignCenter=s,exports.alignRight=o,exports.caption=n,exports.clickable=d,exports.default=p,exports.emptyRow=f,exports.head=r,exports.scroll=e,exports.sortButton=c,exports.sortIndicator=l,exports.table=t,exports.td=a,exports.th=i,exports.tr=u;
2
3
  //# sourceMappingURL=VirtualTable.module.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualTable.module.cjs","names":[],"sources":["../../../src/components/VirtualTable/VirtualTable.module.css"],"sourcesContent":[".scroll {\n width: 100%;\n overflow: auto;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n background-color: var(--tempest-bg);\n box-shadow: var(--tempest-shadow-xs);\n}\n\n.table {\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n font-family: var(--tempest-font-sans);\n font-size: var(--tempest-text-base);\n line-height: var(--tempest-leading-snug);\n /*\n * Fixed layout is what keeps columns from jumping mid-scroll: with `auto`,\n * the browser sizes each column from the rows currently in the DOM, and a\n * virtualized table swaps those rows out as you scroll.\n */\n table-layout: fixed;\n}\n\n.caption {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n}\n\n/*\n * `border-collapse: separate` above exists for this: a sticky `<th>` inside a\n * collapsed table loses its bottom border while scrolling, because the shared\n * border belongs to the cell that scrolled away.\n */\n.head .th {\n position: sticky;\n top: 0;\n z-index: 1;\n}\n\n.th,\n.td {\n padding: 0 var(--tempest-space-4);\n text-align: left;\n border-bottom: 1px solid var(--tempest-border);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.th {\n padding-block: var(--tempest-space-3);\n background-color: var(--tempest-surface);\n color: var(--tempest-text-muted);\n font-weight: var(--tempest-weight-semibold);\n font-size: var(--tempest-text-xs);\n letter-spacing: var(--tempest-tracking-wider);\n text-transform: uppercase;\n}\n\n.alignRight {\n text-align: right;\n}\n\n.alignCenter {\n text-align: center;\n}\n\n.sortButton {\n display: inline-flex;\n align-items: center;\n gap: var(--tempest-space-1);\n padding: 0;\n border: none;\n background: none;\n color: inherit;\n font: inherit;\n letter-spacing: inherit;\n text-transform: inherit;\n cursor: pointer;\n}\n\n.sortButton:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 2px;\n border-radius: var(--tempest-radius-sm);\n}\n\n.sortIndicator {\n font-size: var(--tempest-text-xs);\n opacity: 0.55;\n}\n\n.tr.clickable {\n cursor: pointer;\n transition: background-color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .tr.clickable:hover {\n background-color: var(--tempest-surface);\n }\n}\n\n.tr.clickable:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: -2px;\n}\n\n.emptyRow {\n padding: var(--tempest-space-8) var(--tempest-space-4);\n text-align: center;\n color: var(--tempest-text-muted);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .tr.clickable {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"VirtualTable.module.cjs","names":[],"sources":["../../../src/components/VirtualTable/VirtualTable.module.css"],"sourcesContent":[".scroll {\n width: 100%;\n overflow: auto;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n background-color: var(--tempest-bg);\n box-shadow: var(--tempest-shadow-xs);\n}\n\n.table {\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n font-family: var(--tempest-font-sans);\n font-size: var(--tempest-text-base);\n line-height: var(--tempest-leading-snug);\n /*\n * Fixed layout is what keeps columns from jumping mid-scroll: with `auto`,\n * the browser sizes each column from the rows currently in the DOM, and a\n * virtualized table swaps those rows out as you scroll.\n */\n table-layout: fixed;\n}\n\n.caption {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n}\n\n/*\n * `border-collapse: separate` above exists for this: a sticky `<th>` inside a\n * collapsed table loses its bottom border while scrolling, because the shared\n * border belongs to the cell that scrolled away.\n */\n.head .th {\n position: sticky;\n top: 0;\n z-index: 1;\n}\n\n.th,\n.td {\n padding: 0 var(--tempest-space-4);\n text-align: left;\n border-bottom: 1px solid var(--tempest-border);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.th {\n padding-block: var(--tempest-space-3);\n background-color: var(--tempest-surface);\n color: var(--tempest-text-muted);\n font-weight: var(--tempest-weight-semibold);\n font-size: var(--tempest-text-xs);\n letter-spacing: var(--tempest-tracking-wider);\n text-transform: uppercase;\n}\n\n.alignRight {\n text-align: right;\n}\n\n.alignCenter {\n text-align: center;\n}\n\n.sortButton {\n display: inline-flex;\n align-items: center;\n gap: var(--tempest-space-1);\n padding: 0;\n border: none;\n background: none;\n color: inherit;\n font: inherit;\n letter-spacing: inherit;\n text-transform: inherit;\n cursor: pointer;\n}\n\n.sortButton:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 2px;\n border-radius: var(--tempest-radius-sm);\n}\n\n.sortIndicator {\n font-size: var(--tempest-text-xs);\n opacity: 0.55;\n}\n\n.tr.clickable {\n cursor: pointer;\n transition: background-color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .tr.clickable:hover {\n background-color: var(--tempest-surface);\n }\n}\n\n.tr.clickable:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: -2px;\n}\n\n.emptyRow {\n padding: var(--tempest-space-8) var(--tempest-space-4);\n text-align: center;\n color: var(--tempest-text-muted);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .tr.clickable {\n transition: none;\n }\n}\n"],"mappings":";"}
@@ -1,3 +1,4 @@
1
+ import "../../styles/component/VirtualTable.css";
1
2
  //#region src/components/VirtualTable/VirtualTable.module.css
2
3
  var e = "tempest_scroll_XOPRs", t = "tempest_table_wbJg-", n = "tempest_caption_Dt-O5", r = "tempest_head_9xVmx", i = "tempest_th_-xzNL", a = "tempest_td_Crp7i", o = "tempest_alignRight_uxhpx", s = "tempest_alignCenter_9B3Sb", c = "tempest_sortButton_4h-vK", l = "tempest_sortIndicator_-WpMp", u = "tempest_tr_EI3uW", d = "tempest_clickable_4AfSX", f = "tempest_emptyRow_4kIiT", p = {
3
4
  scroll: e,
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualTable.module.js","names":[],"sources":["../../../src/components/VirtualTable/VirtualTable.module.css"],"sourcesContent":[".scroll {\n width: 100%;\n overflow: auto;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n background-color: var(--tempest-bg);\n box-shadow: var(--tempest-shadow-xs);\n}\n\n.table {\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n font-family: var(--tempest-font-sans);\n font-size: var(--tempest-text-base);\n line-height: var(--tempest-leading-snug);\n /*\n * Fixed layout is what keeps columns from jumping mid-scroll: with `auto`,\n * the browser sizes each column from the rows currently in the DOM, and a\n * virtualized table swaps those rows out as you scroll.\n */\n table-layout: fixed;\n}\n\n.caption {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n}\n\n/*\n * `border-collapse: separate` above exists for this: a sticky `<th>` inside a\n * collapsed table loses its bottom border while scrolling, because the shared\n * border belongs to the cell that scrolled away.\n */\n.head .th {\n position: sticky;\n top: 0;\n z-index: 1;\n}\n\n.th,\n.td {\n padding: 0 var(--tempest-space-4);\n text-align: left;\n border-bottom: 1px solid var(--tempest-border);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.th {\n padding-block: var(--tempest-space-3);\n background-color: var(--tempest-surface);\n color: var(--tempest-text-muted);\n font-weight: var(--tempest-weight-semibold);\n font-size: var(--tempest-text-xs);\n letter-spacing: var(--tempest-tracking-wider);\n text-transform: uppercase;\n}\n\n.alignRight {\n text-align: right;\n}\n\n.alignCenter {\n text-align: center;\n}\n\n.sortButton {\n display: inline-flex;\n align-items: center;\n gap: var(--tempest-space-1);\n padding: 0;\n border: none;\n background: none;\n color: inherit;\n font: inherit;\n letter-spacing: inherit;\n text-transform: inherit;\n cursor: pointer;\n}\n\n.sortButton:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 2px;\n border-radius: var(--tempest-radius-sm);\n}\n\n.sortIndicator {\n font-size: var(--tempest-text-xs);\n opacity: 0.55;\n}\n\n.tr.clickable {\n cursor: pointer;\n transition: background-color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .tr.clickable:hover {\n background-color: var(--tempest-surface);\n }\n}\n\n.tr.clickable:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: -2px;\n}\n\n.emptyRow {\n padding: var(--tempest-space-8) var(--tempest-space-4);\n text-align: center;\n color: var(--tempest-text-muted);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .tr.clickable {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"VirtualTable.module.js","names":[],"sources":["../../../src/components/VirtualTable/VirtualTable.module.css"],"sourcesContent":[".scroll {\n width: 100%;\n overflow: auto;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n background-color: var(--tempest-bg);\n box-shadow: var(--tempest-shadow-xs);\n}\n\n.table {\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n font-family: var(--tempest-font-sans);\n font-size: var(--tempest-text-base);\n line-height: var(--tempest-leading-snug);\n /*\n * Fixed layout is what keeps columns from jumping mid-scroll: with `auto`,\n * the browser sizes each column from the rows currently in the DOM, and a\n * virtualized table swaps those rows out as you scroll.\n */\n table-layout: fixed;\n}\n\n.caption {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n}\n\n/*\n * `border-collapse: separate` above exists for this: a sticky `<th>` inside a\n * collapsed table loses its bottom border while scrolling, because the shared\n * border belongs to the cell that scrolled away.\n */\n.head .th {\n position: sticky;\n top: 0;\n z-index: 1;\n}\n\n.th,\n.td {\n padding: 0 var(--tempest-space-4);\n text-align: left;\n border-bottom: 1px solid var(--tempest-border);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.th {\n padding-block: var(--tempest-space-3);\n background-color: var(--tempest-surface);\n color: var(--tempest-text-muted);\n font-weight: var(--tempest-weight-semibold);\n font-size: var(--tempest-text-xs);\n letter-spacing: var(--tempest-tracking-wider);\n text-transform: uppercase;\n}\n\n.alignRight {\n text-align: right;\n}\n\n.alignCenter {\n text-align: center;\n}\n\n.sortButton {\n display: inline-flex;\n align-items: center;\n gap: var(--tempest-space-1);\n padding: 0;\n border: none;\n background: none;\n color: inherit;\n font: inherit;\n letter-spacing: inherit;\n text-transform: inherit;\n cursor: pointer;\n}\n\n.sortButton:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 2px;\n border-radius: var(--tempest-radius-sm);\n}\n\n.sortIndicator {\n font-size: var(--tempest-text-xs);\n opacity: 0.55;\n}\n\n.tr.clickable {\n cursor: pointer;\n transition: background-color var(--tempest-duration-fast) var(--tempest-ease-out);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .tr.clickable:hover {\n background-color: var(--tempest-surface);\n }\n}\n\n.tr.clickable:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: -2px;\n}\n\n.emptyRow {\n padding: var(--tempest-space-8) var(--tempest-space-4);\n text-align: center;\n color: var(--tempest-text-muted);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .tr.clickable {\n transition: none;\n }\n}\n"],"mappings":";"}
@@ -1,2 +1,3 @@
1
+ require("../../styles/component/VisuallyHidden.css");
1
2
  var e=`tempest_hidden_k7p-e`,t={hidden:e};exports.default=t,exports.hidden=e;
2
3
  //# sourceMappingURL=VisuallyHidden.module.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"VisuallyHidden.module.cjs","names":[],"sources":["../../../src/components/VisuallyHidden/VisuallyHidden.module.css"],"sourcesContent":[".hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"VisuallyHidden.module.cjs","names":[],"sources":["../../../src/components/VisuallyHidden/VisuallyHidden.module.css"],"sourcesContent":[".hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n}\n"],"mappings":";"}
@@ -1,3 +1,4 @@
1
+ import "../../styles/component/VisuallyHidden.css";
1
2
  //#region src/components/VisuallyHidden/VisuallyHidden.module.css
2
3
  var e = "tempest_hidden_k7p-e", t = { hidden: e };
3
4
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"VisuallyHidden.module.js","names":[],"sources":["../../../src/components/VisuallyHidden/VisuallyHidden.module.css"],"sourcesContent":[".hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"VisuallyHidden.module.js","names":[],"sources":["../../../src/components/VisuallyHidden/VisuallyHidden.module.css"],"sourcesContent":[".hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n}\n"],"mappings":";"}
@@ -1,2 +1,3 @@
1
+ require("../../styles/component/Wizard.css");
1
2
  var e=`tempest_wizard_2BkgZ`,t=`tempest_body_ZDhtj`,n=`tempest_actions_-VsgT`,r={wizard:e,body:t,actions:n};exports.actions=n,exports.body=t,exports.default=r,exports.wizard=e;
2
3
  //# sourceMappingURL=Wizard.module.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Wizard.module.cjs","names":[],"sources":["../../../src/components/Wizard/Wizard.module.css"],"sourcesContent":[".wizard {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-6);\n width: 100%;\n}\n\n.body {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-4);\n min-height: var(--tempest-wizard-body-min-height, 0);\n}\n\n.actions {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-3);\n padding-top: var(--tempest-space-4);\n border-top: 1px solid var(--tempest-border);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Wizard.module.cjs","names":[],"sources":["../../../src/components/Wizard/Wizard.module.css"],"sourcesContent":[".wizard {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-6);\n width: 100%;\n}\n\n.body {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-4);\n min-height: var(--tempest-wizard-body-min-height, 0);\n}\n\n.actions {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-3);\n padding-top: var(--tempest-space-4);\n border-top: 1px solid var(--tempest-border);\n}\n"],"mappings":";"}
@@ -1,3 +1,4 @@
1
+ import "../../styles/component/Wizard.css";
1
2
  //#region src/components/Wizard/Wizard.module.css
2
3
  var e = "tempest_wizard_2BkgZ", t = "tempest_body_ZDhtj", n = "tempest_actions_-VsgT", r = {
3
4
  wizard: e,
@@ -1 +1 @@
1
- {"version":3,"file":"Wizard.module.js","names":[],"sources":["../../../src/components/Wizard/Wizard.module.css"],"sourcesContent":[".wizard {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-6);\n width: 100%;\n}\n\n.body {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-4);\n min-height: var(--tempest-wizard-body-min-height, 0);\n}\n\n.actions {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-3);\n padding-top: var(--tempest-space-4);\n border-top: 1px solid var(--tempest-border);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Wizard.module.js","names":[],"sources":["../../../src/components/Wizard/Wizard.module.css"],"sourcesContent":[".wizard {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-6);\n width: 100%;\n}\n\n.body {\n display: flex;\n flex-direction: column;\n gap: var(--tempest-space-4);\n min-height: var(--tempest-wizard-body-min-height, 0);\n}\n\n.actions {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--tempest-space-3);\n padding-top: var(--tempest-space-4);\n border-top: 1px solid var(--tempest-border);\n}\n"],"mappings":";"}
@@ -1,2 +1,3 @@
1
+ require("../styles/component/RichTextEditor.css");
1
2
  var e=`tempest_wrapper_5sjnw`,t=`tempest_toolbar_jPVYB`,n=`tempest_button_tGqU5`,r=`tempest_active_g-cLq`,i=`tempest_separator_9QcK0`,a=`tempest_content_zcR6N`,o={wrapper:e,toolbar:t,button:n,active:r,separator:i,content:a};exports.active=r,exports.button=n,exports.content=a,exports.default=o,exports.separator=i,exports.toolbar=t,exports.wrapper=e;
2
3
  //# sourceMappingURL=RichTextEditor.module.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextEditor.module.cjs","names":[],"sources":["../../src/editor/RichTextEditor.module.css"],"sourcesContent":[".wrapper {\n display: flex;\n flex-direction: column;\n width: 100%;\n font-family: var(--tempest-font-sans);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-control-radius);\n background-color: var(--tempest-bg);\n overflow: hidden;\n}\n\n.toolbar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--tempest-space-1);\n padding: var(--tempest-space-2);\n border-bottom: 1px solid var(--tempest-border);\n background-color: var(--tempest-surface);\n}\n\n.button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: 1px solid transparent;\n border-radius: var(--tempest-radius-sm);\n background-color: transparent;\n color: var(--tempest-text-muted);\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .button:hover:not(:disabled) {\n background-color: var(--tempest-bg);\n color: var(--tempest-text);\n }\n}\n\n.button:focus-visible {\n outline: none;\n border-color: var(--tempest-primary);\n box-shadow: 0 0 0 var(--tempest-focus-ring-width) var(--tempest-focus-ring-color);\n}\n\n.button:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n.button.active {\n background-color: var(--tempest-primary-soft);\n color: var(--tempest-primary-active);\n border-color: var(--tempest-primary-soft);\n}\n\n.separator {\n width: 1px;\n align-self: stretch;\n margin: 0 var(--tempest-space-1);\n background-color: var(--tempest-border);\n}\n\n.content {\n display: flex;\n flex-direction: column;\n}\n\n.content :global(.ProseMirror) {\n min-height: 160px;\n padding: var(--tempest-space-3);\n color: var(--tempest-text);\n font-size: var(--tempest-text-base);\n line-height: var(--tempest-leading-normal);\n outline: none;\n}\n\n.content :global(.ProseMirror:focus) {\n box-shadow: inset 0 0 0 var(--tempest-focus-ring-width) var(--tempest-focus-ring-color);\n}\n\n.content :global(.ProseMirror p) {\n margin: 0 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror h1) {\n font-size: var(--tempest-text-2xl);\n font-weight: var(--tempest-weight-bold);\n margin: var(--tempest-space-3) 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror h2) {\n font-size: var(--tempest-text-xl);\n font-weight: var(--tempest-weight-semibold);\n margin: var(--tempest-space-3) 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror ul),\n.content :global(.ProseMirror ol) {\n padding-left: var(--tempest-space-5);\n margin: 0 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror blockquote) {\n border-left: 3px solid var(--tempest-border);\n padding-left: var(--tempest-space-3);\n color: var(--tempest-text-muted);\n margin: 0 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror code) {\n font-family: var(--tempest-font-mono);\n font-size: var(--tempest-text-sm);\n background-color: var(--tempest-surface);\n padding: 0 var(--tempest-space-1);\n border-radius: var(--tempest-radius-sm);\n}\n\n.content :global(.ProseMirror p.is-editor-empty:first-child::before) {\n content: attr(data-placeholder);\n color: var(--tempest-text-subtle);\n float: left;\n height: 0;\n pointer-events: none;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"RichTextEditor.module.cjs","names":[],"sources":["../../src/editor/RichTextEditor.module.css"],"sourcesContent":[".wrapper {\n display: flex;\n flex-direction: column;\n width: 100%;\n font-family: var(--tempest-font-sans);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-control-radius);\n background-color: var(--tempest-bg);\n overflow: hidden;\n}\n\n.toolbar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--tempest-space-1);\n padding: var(--tempest-space-2);\n border-bottom: 1px solid var(--tempest-border);\n background-color: var(--tempest-surface);\n}\n\n.button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: 1px solid transparent;\n border-radius: var(--tempest-radius-sm);\n background-color: transparent;\n color: var(--tempest-text-muted);\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .button:hover:not(:disabled) {\n background-color: var(--tempest-bg);\n color: var(--tempest-text);\n }\n}\n\n.button:focus-visible {\n outline: none;\n border-color: var(--tempest-primary);\n box-shadow: 0 0 0 var(--tempest-focus-ring-width) var(--tempest-focus-ring-color);\n}\n\n.button:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n.button.active {\n background-color: var(--tempest-primary-soft);\n color: var(--tempest-primary-active);\n border-color: var(--tempest-primary-soft);\n}\n\n.separator {\n width: 1px;\n align-self: stretch;\n margin: 0 var(--tempest-space-1);\n background-color: var(--tempest-border);\n}\n\n.content {\n display: flex;\n flex-direction: column;\n}\n\n.content :global(.ProseMirror) {\n min-height: 160px;\n padding: var(--tempest-space-3);\n color: var(--tempest-text);\n font-size: var(--tempest-text-base);\n line-height: var(--tempest-leading-normal);\n outline: none;\n}\n\n.content :global(.ProseMirror:focus) {\n box-shadow: inset 0 0 0 var(--tempest-focus-ring-width) var(--tempest-focus-ring-color);\n}\n\n.content :global(.ProseMirror p) {\n margin: 0 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror h1) {\n font-size: var(--tempest-text-2xl);\n font-weight: var(--tempest-weight-bold);\n margin: var(--tempest-space-3) 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror h2) {\n font-size: var(--tempest-text-xl);\n font-weight: var(--tempest-weight-semibold);\n margin: var(--tempest-space-3) 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror ul),\n.content :global(.ProseMirror ol) {\n padding-left: var(--tempest-space-5);\n margin: 0 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror blockquote) {\n border-left: 3px solid var(--tempest-border);\n padding-left: var(--tempest-space-3);\n color: var(--tempest-text-muted);\n margin: 0 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror code) {\n font-family: var(--tempest-font-mono);\n font-size: var(--tempest-text-sm);\n background-color: var(--tempest-surface);\n padding: 0 var(--tempest-space-1);\n border-radius: var(--tempest-radius-sm);\n}\n\n.content :global(.ProseMirror p.is-editor-empty:first-child::before) {\n content: attr(data-placeholder);\n color: var(--tempest-text-subtle);\n float: left;\n height: 0;\n pointer-events: none;\n}\n"],"mappings":";"}
@@ -1,3 +1,4 @@
1
+ import "../styles/component/RichTextEditor.css";
1
2
  //#region src/editor/RichTextEditor.module.css
2
3
  var e = "tempest_wrapper_5sjnw", t = "tempest_toolbar_jPVYB", n = "tempest_button_tGqU5", r = "tempest_active_g-cLq", i = "tempest_separator_9QcK0", a = "tempest_content_zcR6N", o = {
3
4
  wrapper: e,
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextEditor.module.js","names":[],"sources":["../../src/editor/RichTextEditor.module.css"],"sourcesContent":[".wrapper {\n display: flex;\n flex-direction: column;\n width: 100%;\n font-family: var(--tempest-font-sans);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-control-radius);\n background-color: var(--tempest-bg);\n overflow: hidden;\n}\n\n.toolbar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--tempest-space-1);\n padding: var(--tempest-space-2);\n border-bottom: 1px solid var(--tempest-border);\n background-color: var(--tempest-surface);\n}\n\n.button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: 1px solid transparent;\n border-radius: var(--tempest-radius-sm);\n background-color: transparent;\n color: var(--tempest-text-muted);\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .button:hover:not(:disabled) {\n background-color: var(--tempest-bg);\n color: var(--tempest-text);\n }\n}\n\n.button:focus-visible {\n outline: none;\n border-color: var(--tempest-primary);\n box-shadow: 0 0 0 var(--tempest-focus-ring-width) var(--tempest-focus-ring-color);\n}\n\n.button:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n.button.active {\n background-color: var(--tempest-primary-soft);\n color: var(--tempest-primary-active);\n border-color: var(--tempest-primary-soft);\n}\n\n.separator {\n width: 1px;\n align-self: stretch;\n margin: 0 var(--tempest-space-1);\n background-color: var(--tempest-border);\n}\n\n.content {\n display: flex;\n flex-direction: column;\n}\n\n.content :global(.ProseMirror) {\n min-height: 160px;\n padding: var(--tempest-space-3);\n color: var(--tempest-text);\n font-size: var(--tempest-text-base);\n line-height: var(--tempest-leading-normal);\n outline: none;\n}\n\n.content :global(.ProseMirror:focus) {\n box-shadow: inset 0 0 0 var(--tempest-focus-ring-width) var(--tempest-focus-ring-color);\n}\n\n.content :global(.ProseMirror p) {\n margin: 0 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror h1) {\n font-size: var(--tempest-text-2xl);\n font-weight: var(--tempest-weight-bold);\n margin: var(--tempest-space-3) 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror h2) {\n font-size: var(--tempest-text-xl);\n font-weight: var(--tempest-weight-semibold);\n margin: var(--tempest-space-3) 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror ul),\n.content :global(.ProseMirror ol) {\n padding-left: var(--tempest-space-5);\n margin: 0 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror blockquote) {\n border-left: 3px solid var(--tempest-border);\n padding-left: var(--tempest-space-3);\n color: var(--tempest-text-muted);\n margin: 0 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror code) {\n font-family: var(--tempest-font-mono);\n font-size: var(--tempest-text-sm);\n background-color: var(--tempest-surface);\n padding: 0 var(--tempest-space-1);\n border-radius: var(--tempest-radius-sm);\n}\n\n.content :global(.ProseMirror p.is-editor-empty:first-child::before) {\n content: attr(data-placeholder);\n color: var(--tempest-text-subtle);\n float: left;\n height: 0;\n pointer-events: none;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"RichTextEditor.module.js","names":[],"sources":["../../src/editor/RichTextEditor.module.css"],"sourcesContent":[".wrapper {\n display: flex;\n flex-direction: column;\n width: 100%;\n font-family: var(--tempest-font-sans);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-control-radius);\n background-color: var(--tempest-bg);\n overflow: hidden;\n}\n\n.toolbar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--tempest-space-1);\n padding: var(--tempest-space-2);\n border-bottom: 1px solid var(--tempest-border);\n background-color: var(--tempest-surface);\n}\n\n.button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: 1px solid transparent;\n border-radius: var(--tempest-radius-sm);\n background-color: transparent;\n color: var(--tempest-text-muted);\n cursor: pointer;\n transition: var(--tempest-transition-color);\n}\n\n@media (hover: hover) and (pointer: fine) {\n .button:hover:not(:disabled) {\n background-color: var(--tempest-bg);\n color: var(--tempest-text);\n }\n}\n\n.button:focus-visible {\n outline: none;\n border-color: var(--tempest-primary);\n box-shadow: 0 0 0 var(--tempest-focus-ring-width) var(--tempest-focus-ring-color);\n}\n\n.button:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n\n.button.active {\n background-color: var(--tempest-primary-soft);\n color: var(--tempest-primary-active);\n border-color: var(--tempest-primary-soft);\n}\n\n.separator {\n width: 1px;\n align-self: stretch;\n margin: 0 var(--tempest-space-1);\n background-color: var(--tempest-border);\n}\n\n.content {\n display: flex;\n flex-direction: column;\n}\n\n.content :global(.ProseMirror) {\n min-height: 160px;\n padding: var(--tempest-space-3);\n color: var(--tempest-text);\n font-size: var(--tempest-text-base);\n line-height: var(--tempest-leading-normal);\n outline: none;\n}\n\n.content :global(.ProseMirror:focus) {\n box-shadow: inset 0 0 0 var(--tempest-focus-ring-width) var(--tempest-focus-ring-color);\n}\n\n.content :global(.ProseMirror p) {\n margin: 0 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror h1) {\n font-size: var(--tempest-text-2xl);\n font-weight: var(--tempest-weight-bold);\n margin: var(--tempest-space-3) 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror h2) {\n font-size: var(--tempest-text-xl);\n font-weight: var(--tempest-weight-semibold);\n margin: var(--tempest-space-3) 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror ul),\n.content :global(.ProseMirror ol) {\n padding-left: var(--tempest-space-5);\n margin: 0 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror blockquote) {\n border-left: 3px solid var(--tempest-border);\n padding-left: var(--tempest-space-3);\n color: var(--tempest-text-muted);\n margin: 0 0 var(--tempest-space-2);\n}\n\n.content :global(.ProseMirror code) {\n font-family: var(--tempest-font-mono);\n font-size: var(--tempest-text-sm);\n background-color: var(--tempest-surface);\n padding: 0 var(--tempest-space-1);\n border-radius: var(--tempest-radius-sm);\n}\n\n.content :global(.ProseMirror p.is-editor-empty:first-child::before) {\n content: attr(data-placeholder);\n color: var(--tempest-text-subtle);\n float: left;\n height: 0;\n pointer-events: none;\n}\n"],"mappings":";"}
@@ -1,2 +1,3 @@
1
+ require("../styles/component/TrajectoryMap.css");
1
2
  var e=`tempest_map_3qgBX`,t=`tempest_svg_Da-XM`,n=`tempest_empty_QQGkP`,r=`tempest_loading_R6YCf`,i=`tempest_grid_xFsTS`,a=`tempest_path_-A7Sl`,o=`tempest_start_OPmUL`,s=`tempest_end_7SX7p`,c=`tempest_current_WFLJk`,l=`tempest_pulse_DUzgL`,u=`tempest_tempest-geo-pulse_9O0Rj`,d=`tempest_marker_HB3Rb`,f=`tempest_scale_YuwqB`,p={map:e,svg:t,empty:n,loading:r,grid:i,path:a,start:o,end:s,current:c,pulse:l,tempestGeoPulse:u,marker:d,scale:f};exports.current=c,exports.default=p,exports.empty=n,exports.end=s,exports.grid=i,exports.loading=r,exports.map=e,exports.marker=d,exports.path=a,exports.pulse=l,exports.scale=f,exports.start=o,exports.svg=t,exports.tempestGeoPulse=u;
2
3
  //# sourceMappingURL=TrajectoryMap.module.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"TrajectoryMap.module.cjs","names":[],"sources":["../../src/geo/TrajectoryMap.module.css"],"sourcesContent":[".map {\n position: relative;\n width: 100%;\n overflow: hidden;\n background: var(--tempest-surface-2);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n font-family: var(--tempest-font-sans);\n}\n\n.svg {\n display: block;\n width: 100%;\n}\n\n.empty,\n.loading {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: var(--tempest-text-muted);\n font-size: var(--tempest-text-sm);\n}\n\n.grid line {\n stroke: var(--tempest-border);\n stroke-width: 1;\n stroke-dasharray: 3 5;\n opacity: 0.5;\n}\n\n.path {\n stroke: var(--tempest-primary);\n stroke-width: 3;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n\n.start {\n fill: var(--tempest-success-solid);\n stroke: var(--tempest-surface);\n stroke-width: 2;\n}\n\n.end {\n fill: var(--tempest-primary);\n stroke: var(--tempest-surface);\n stroke-width: 2;\n}\n\n.current {\n fill: var(--tempest-primary);\n stroke: var(--tempest-surface);\n stroke-width: 2;\n}\n\n.pulse {\n fill: var(--tempest-primary);\n opacity: 0.25;\n transform-origin: center;\n transform-box: fill-box;\n animation: tempest-geo-pulse 1.8s ease-out infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .pulse {\n animation: none;\n }\n}\n\n@keyframes tempest-geo-pulse {\n 0% {\n transform: scale(0.6);\n opacity: 0.35;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n\n.marker {\n fill: var(--tempest-primary);\n stroke: var(--tempest-surface);\n stroke-width: 2;\n}\n\n.marker[role=\"button\"] {\n cursor: pointer;\n}\n\n.marker[role=\"button\"]:focus-visible {\n outline: none;\n stroke: var(--tempest-primary-active);\n stroke-width: 3;\n}\n\n.scale line {\n stroke: var(--tempest-text);\n stroke-width: 2;\n}\n\n.scale text {\n fill: var(--tempest-text);\n font-size: var(--tempest-text-xs);\n font-family: var(--tempest-font-sans);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"TrajectoryMap.module.cjs","names":[],"sources":["../../src/geo/TrajectoryMap.module.css"],"sourcesContent":[".map {\n position: relative;\n width: 100%;\n overflow: hidden;\n background: var(--tempest-surface-2);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n font-family: var(--tempest-font-sans);\n}\n\n.svg {\n display: block;\n width: 100%;\n}\n\n.empty,\n.loading {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: var(--tempest-text-muted);\n font-size: var(--tempest-text-sm);\n}\n\n.grid line {\n stroke: var(--tempest-border);\n stroke-width: 1;\n stroke-dasharray: 3 5;\n opacity: 0.5;\n}\n\n.path {\n stroke: var(--tempest-primary);\n stroke-width: 3;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n\n.start {\n fill: var(--tempest-success-solid);\n stroke: var(--tempest-surface);\n stroke-width: 2;\n}\n\n.end {\n fill: var(--tempest-primary);\n stroke: var(--tempest-surface);\n stroke-width: 2;\n}\n\n.current {\n fill: var(--tempest-primary);\n stroke: var(--tempest-surface);\n stroke-width: 2;\n}\n\n.pulse {\n fill: var(--tempest-primary);\n opacity: 0.25;\n transform-origin: center;\n transform-box: fill-box;\n animation: tempest-geo-pulse 1.8s ease-out infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .pulse {\n animation: none;\n }\n}\n\n@keyframes tempest-geo-pulse {\n 0% {\n transform: scale(0.6);\n opacity: 0.35;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n\n.marker {\n fill: var(--tempest-primary);\n stroke: var(--tempest-surface);\n stroke-width: 2;\n}\n\n.marker[role=\"button\"] {\n cursor: pointer;\n}\n\n.marker[role=\"button\"]:focus-visible {\n outline: none;\n stroke: var(--tempest-primary-active);\n stroke-width: 3;\n}\n\n.scale line {\n stroke: var(--tempest-text);\n stroke-width: 2;\n}\n\n.scale text {\n fill: var(--tempest-text);\n font-size: var(--tempest-text-xs);\n font-family: var(--tempest-font-sans);\n}\n"],"mappings":";"}
@@ -1,3 +1,4 @@
1
+ import "../styles/component/TrajectoryMap.css";
1
2
  //#region src/geo/TrajectoryMap.module.css
2
3
  var e = "tempest_map_3qgBX", t = "tempest_svg_Da-XM", n = "tempest_empty_QQGkP", r = "tempest_loading_R6YCf", i = "tempest_grid_xFsTS", a = "tempest_path_-A7Sl", o = "tempest_start_OPmUL", s = "tempest_end_7SX7p", c = "tempest_current_WFLJk", l = "tempest_pulse_DUzgL", u = "tempest_tempest-geo-pulse_9O0Rj", d = "tempest_marker_HB3Rb", f = "tempest_scale_YuwqB", p = {
3
4
  map: e,
@@ -1 +1 @@
1
- {"version":3,"file":"TrajectoryMap.module.js","names":[],"sources":["../../src/geo/TrajectoryMap.module.css"],"sourcesContent":[".map {\n position: relative;\n width: 100%;\n overflow: hidden;\n background: var(--tempest-surface-2);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n font-family: var(--tempest-font-sans);\n}\n\n.svg {\n display: block;\n width: 100%;\n}\n\n.empty,\n.loading {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: var(--tempest-text-muted);\n font-size: var(--tempest-text-sm);\n}\n\n.grid line {\n stroke: var(--tempest-border);\n stroke-width: 1;\n stroke-dasharray: 3 5;\n opacity: 0.5;\n}\n\n.path {\n stroke: var(--tempest-primary);\n stroke-width: 3;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n\n.start {\n fill: var(--tempest-success-solid);\n stroke: var(--tempest-surface);\n stroke-width: 2;\n}\n\n.end {\n fill: var(--tempest-primary);\n stroke: var(--tempest-surface);\n stroke-width: 2;\n}\n\n.current {\n fill: var(--tempest-primary);\n stroke: var(--tempest-surface);\n stroke-width: 2;\n}\n\n.pulse {\n fill: var(--tempest-primary);\n opacity: 0.25;\n transform-origin: center;\n transform-box: fill-box;\n animation: tempest-geo-pulse 1.8s ease-out infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .pulse {\n animation: none;\n }\n}\n\n@keyframes tempest-geo-pulse {\n 0% {\n transform: scale(0.6);\n opacity: 0.35;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n\n.marker {\n fill: var(--tempest-primary);\n stroke: var(--tempest-surface);\n stroke-width: 2;\n}\n\n.marker[role=\"button\"] {\n cursor: pointer;\n}\n\n.marker[role=\"button\"]:focus-visible {\n outline: none;\n stroke: var(--tempest-primary-active);\n stroke-width: 3;\n}\n\n.scale line {\n stroke: var(--tempest-text);\n stroke-width: 2;\n}\n\n.scale text {\n fill: var(--tempest-text);\n font-size: var(--tempest-text-xs);\n font-family: var(--tempest-font-sans);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"TrajectoryMap.module.js","names":[],"sources":["../../src/geo/TrajectoryMap.module.css"],"sourcesContent":[".map {\n position: relative;\n width: 100%;\n overflow: hidden;\n background: var(--tempest-surface-2);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-lg);\n font-family: var(--tempest-font-sans);\n}\n\n.svg {\n display: block;\n width: 100%;\n}\n\n.empty,\n.loading {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: var(--tempest-text-muted);\n font-size: var(--tempest-text-sm);\n}\n\n.grid line {\n stroke: var(--tempest-border);\n stroke-width: 1;\n stroke-dasharray: 3 5;\n opacity: 0.5;\n}\n\n.path {\n stroke: var(--tempest-primary);\n stroke-width: 3;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n\n.start {\n fill: var(--tempest-success-solid);\n stroke: var(--tempest-surface);\n stroke-width: 2;\n}\n\n.end {\n fill: var(--tempest-primary);\n stroke: var(--tempest-surface);\n stroke-width: 2;\n}\n\n.current {\n fill: var(--tempest-primary);\n stroke: var(--tempest-surface);\n stroke-width: 2;\n}\n\n.pulse {\n fill: var(--tempest-primary);\n opacity: 0.25;\n transform-origin: center;\n transform-box: fill-box;\n animation: tempest-geo-pulse 1.8s ease-out infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .pulse {\n animation: none;\n }\n}\n\n@keyframes tempest-geo-pulse {\n 0% {\n transform: scale(0.6);\n opacity: 0.35;\n }\n 100% {\n transform: scale(1.6);\n opacity: 0;\n }\n}\n\n.marker {\n fill: var(--tempest-primary);\n stroke: var(--tempest-surface);\n stroke-width: 2;\n}\n\n.marker[role=\"button\"] {\n cursor: pointer;\n}\n\n.marker[role=\"button\"]:focus-visible {\n outline: none;\n stroke: var(--tempest-primary-active);\n stroke-width: 3;\n}\n\n.scale line {\n stroke: var(--tempest-text);\n stroke-width: 2;\n}\n\n.scale text {\n fill: var(--tempest-text);\n font-size: var(--tempest-text-xs);\n font-family: var(--tempest-font-sans);\n}\n"],"mappings":";"}
@@ -1,2 +1,3 @@
1
+ require("../styles/component/IconPicker.css");
1
2
  var e=`tempest_picker_TP94V`,t=`tempest_preview_lo-Gg`,n=`tempest_input_5dPK-`,r={picker:e,preview:t,input:n};exports.default=r,exports.input=n,exports.picker=e,exports.preview=t;
2
3
  //# sourceMappingURL=IconPicker.module.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"IconPicker.module.cjs","names":[],"sources":["../../src/icons/IconPicker.module.css"],"sourcesContent":[".picker {\n display: inline-flex;\n align-items: center;\n gap: var(--tempest-space-2);\n font-family: var(--tempest-font-sans);\n}\n\n.preview {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n width: 34px;\n height: 34px;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-surface);\n color: var(--tempest-text);\n}\n\n.input {\n flex: 1 1 auto;\n min-width: 0;\n padding: var(--tempest-space-2) var(--tempest-space-3);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-bg);\n color: var(--tempest-text);\n font-family: inherit;\n font-size: var(--tempest-text-sm);\n min-height: 34px;\n}\n\n.input:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 1px;\n}\n\n.input[aria-invalid=\"true\"] {\n border-color: var(--tempest-danger);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"IconPicker.module.cjs","names":[],"sources":["../../src/icons/IconPicker.module.css"],"sourcesContent":[".picker {\n display: inline-flex;\n align-items: center;\n gap: var(--tempest-space-2);\n font-family: var(--tempest-font-sans);\n}\n\n.preview {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n width: 34px;\n height: 34px;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-surface);\n color: var(--tempest-text);\n}\n\n.input {\n flex: 1 1 auto;\n min-width: 0;\n padding: var(--tempest-space-2) var(--tempest-space-3);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-bg);\n color: var(--tempest-text);\n font-family: inherit;\n font-size: var(--tempest-text-sm);\n min-height: 34px;\n}\n\n.input:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 1px;\n}\n\n.input[aria-invalid=\"true\"] {\n border-color: var(--tempest-danger);\n}\n"],"mappings":";"}
@@ -1,3 +1,4 @@
1
+ import "../styles/component/IconPicker.css";
1
2
  //#region src/icons/IconPicker.module.css
2
3
  var e = "tempest_picker_TP94V", t = "tempest_preview_lo-Gg", n = "tempest_input_5dPK-", r = {
3
4
  picker: e,
@@ -1 +1 @@
1
- {"version":3,"file":"IconPicker.module.js","names":[],"sources":["../../src/icons/IconPicker.module.css"],"sourcesContent":[".picker {\n display: inline-flex;\n align-items: center;\n gap: var(--tempest-space-2);\n font-family: var(--tempest-font-sans);\n}\n\n.preview {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n width: 34px;\n height: 34px;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-surface);\n color: var(--tempest-text);\n}\n\n.input {\n flex: 1 1 auto;\n min-width: 0;\n padding: var(--tempest-space-2) var(--tempest-space-3);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-bg);\n color: var(--tempest-text);\n font-family: inherit;\n font-size: var(--tempest-text-sm);\n min-height: 34px;\n}\n\n.input:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 1px;\n}\n\n.input[aria-invalid=\"true\"] {\n border-color: var(--tempest-danger);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"IconPicker.module.js","names":[],"sources":["../../src/icons/IconPicker.module.css"],"sourcesContent":[".picker {\n display: inline-flex;\n align-items: center;\n gap: var(--tempest-space-2);\n font-family: var(--tempest-font-sans);\n}\n\n.preview {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n width: 34px;\n height: 34px;\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-surface);\n color: var(--tempest-text);\n}\n\n.input {\n flex: 1 1 auto;\n min-width: 0;\n padding: var(--tempest-space-2) var(--tempest-space-3);\n border: 1px solid var(--tempest-border);\n border-radius: var(--tempest-radius-md);\n background: var(--tempest-bg);\n color: var(--tempest-text);\n font-family: inherit;\n font-size: var(--tempest-text-sm);\n min-height: 34px;\n}\n\n.input:focus-visible {\n outline: 2px solid var(--tempest-primary);\n outline-offset: 1px;\n}\n\n.input[aria-invalid=\"true\"] {\n border-color: var(--tempest-danger);\n}\n"],"mappings":";"}
@@ -1,2 +1,2 @@
1
- const e=require("../utils/json-frame.cjs");function t(t,n={}){let{withCredentials:r=!1,namedEvents:i=[],heartbeatEvents:a=[`ping`],maxRetries:o=10,initialBackoff:s=1e3,maxBackoff:c=3e4,parser:l,onOpen:u,onMessage:d,onError:f,onParseError:p,onStatusChange:m}=n,h=null,g=null,_=0,v=`idle`,y=!1;function b(e){v!==e&&(v=e,m?.(e))}function x(t,n){if(a.includes(t))return;let r=e.decodeFrame(typeof n.data==`string`?n.data:``,l,p,`createEventStream`);r.delivered&&d?.({event:t,data:r.data,id:n.lastEventId||void 0,raw:n})}function S(){if(y)return;if(_>=o){b(`error`);return}let e=Math.min(s*2**_,c);_+=1,g=setTimeout(C,e)}function C(){if(y)return;h&&h.close(),b(`connecting`);let e=new EventSource(t,{withCredentials:r});h=e,e.onopen=()=>{_=0,b(`open`),u?.()},e.onmessage=e=>x(`message`,e);for(let t of i)e.addEventListener(t,e=>x(t,e));for(let t of a)e.addEventListener(t,()=>{});e.onerror=t=>{f?.(t),e.close(),h=null,b(`closed`),S()}}function w(){y=!0,g&&=(clearTimeout(g),null),_=0,h&&=(h.close(),null),b(`closed`)}function T(){g&&=(clearTimeout(g),null),_=0,y=!1,C()}return C(),{close:w,reconnect:T,get status(){return v}}}exports.createEventStream=t;
1
+ const e=require("../utils/json-frame.cjs");function t(t,n={}){let{withCredentials:r=!1,namedEvents:i=[],heartbeatEvents:a=[`ping`],maxRetries:o=10,initialBackoff:s=1e3,maxBackoff:c=3e4,parser:l,onOpen:u,onMessage:d,onError:f,onParseError:p,schema:m,onValidationError:h,onStatusChange:g}=n,_=null,v=null,y=0,b=`idle`,x=!1;function S(e){b!==e&&(b=e,g?.(e))}function C(t,n){if(a.includes(t))return;let r=e.decodeFrame(typeof n.data==`string`?n.data:``,`createEventStream`,{parser:l,onParseError:p,schema:m,onValidationError:h});r.delivered&&d?.({event:t,data:r.data,id:n.lastEventId||void 0,raw:n})}function w(){if(x)return;if(y>=o){S(`error`);return}let e=Math.min(s*2**y,c);y+=1,v=setTimeout(T,e)}function T(){if(x)return;_&&_.close(),S(`connecting`);let e=new EventSource(t,{withCredentials:r});_=e,e.onopen=()=>{y=0,S(`open`),u?.()},e.onmessage=e=>C(`message`,e);for(let t of i)e.addEventListener(t,e=>C(t,e));for(let t of a)e.addEventListener(t,()=>{});e.onerror=t=>{f?.(t),e.close(),_=null,S(`closed`),w()}}function E(){x=!0,v&&=(clearTimeout(v),null),y=0,_&&=(_.close(),null),S(`closed`)}function D(){v&&=(clearTimeout(v),null),y=0,x=!1,T()}return T(),{close:E,reconnect:D,get status(){return b}}}exports.createEventStream=t;
2
2
  //# sourceMappingURL=create-event-stream.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-event-stream.cjs","names":[],"sources":["../../src/sse/create-event-stream.ts"],"sourcesContent":["/**\n * @tempest-limits function-lines — the body is the SSE line protocol — accumulate\n * `data:` lines until a blank line, track `id:` for Last-Event-ID, honour `retry:` —\n * plus the reconnect that uses the id it just tracked.\n */\nimport { decodeFrame } from \"../utils/json-frame\";\nexport type EventStreamStatus = \"idle\" | \"connecting\" | \"open\" | \"closed\" | \"error\";\n\nexport interface EventStreamMessage<T> {\n /** Server-named event (default `\"message\"`). */\n event: string;\n /** Parsed payload — JSON-decoded when possible, raw string otherwise. */\n data: T;\n /** Server-supplied id, if any. */\n id?: string;\n /** Raw `MessageEvent` for advanced cases. */\n raw: MessageEvent;\n}\n\nexport interface CreateEventStreamOptions<T> {\n /** Send cookies with the EventSource handshake. Default: false. */\n withCredentials?: boolean;\n /** Subscribe to named events in addition to `message`. */\n namedEvents?: readonly string[];\n /** Treat these named events as heartbeat-only (no callback). Default: `[\"ping\"]`. */\n heartbeatEvents?: readonly string[];\n /** Max reconnect attempts. Default: 10. Pass 0 to disable reconnect. */\n maxRetries?: number;\n /** Initial backoff in ms; doubles per attempt, capped at `maxBackoff`. Default: 1000. */\n initialBackoff?: number;\n /** Maximum backoff in ms. Default: 30000. */\n maxBackoff?: number;\n /** Parse `event.data`. Defaults to JSON with raw-string fallback. */\n parser?: (raw: string) => T;\n /**\n * A frame arrived that is not valid JSON, and no `parser` was supplied.\n *\n * Registering this drops the frame instead of delivering it: the previous\n * behaviour handed `onMessage` the raw `string` announced as your message\n * type, so the failure surfaced later, at the first property access, with\n * nothing left pointing at the parse. Leave it out and that behaviour is\n * kept, with a one-time warning in development builds.\n */\n onParseError?: (error: unknown, raw: string) => void;\n onOpen?: () => void;\n onMessage?: (message: EventStreamMessage<T>) => void;\n onError?: (error: Event) => void;\n onStatusChange?: (status: EventStreamStatus) => void;\n}\n\nexport interface EventStreamController {\n close: () => void;\n /** Force an immediate reconnect, resetting the retry counter. */\n reconnect: () => void;\n /** Current connection status. */\n readonly status: EventStreamStatus;\n}\n\n/**\n * Open a Server-Sent Events stream with automatic exponential-backoff reconnect.\n *\n * Heartbeat events (default `\"ping\"`) keep the socket alive without firing\n * `onMessage`. Pass `withCredentials: true` when the backend authenticates via\n * cookies. Call `close()` from the returned controller to tear down.\n *\n * @param url - Full SSE endpoint URL.\n * @param options - Stream configuration and callbacks.\n * @returns A controller exposing `close`, `reconnect` and the current `status`.\n */\nexport function createEventStream<T = unknown>(\n url: string,\n options: CreateEventStreamOptions<T> = {},\n): EventStreamController {\n const {\n withCredentials = false,\n namedEvents = [],\n heartbeatEvents = [\"ping\"],\n maxRetries = 10,\n initialBackoff = 1000,\n maxBackoff = 30000,\n parser,\n onOpen,\n onMessage,\n onError,\n onParseError,\n onStatusChange,\n } = options;\n\n let source: EventSource | null = null;\n let retryTimer: ReturnType<typeof setTimeout> | null = null;\n let retries = 0;\n let status: EventStreamStatus = \"idle\";\n let closed = false;\n\n function setStatus(next: EventStreamStatus): void {\n if (status === next) return;\n status = next;\n onStatusChange?.(next);\n }\n\n function emit(eventName: string, event: MessageEvent): void {\n if (heartbeatEvents.includes(eventName)) return;\n const decoded = decodeFrame<T>(\n typeof event.data === \"string\" ? event.data : \"\",\n parser,\n onParseError,\n \"createEventStream\",\n );\n if (!decoded.delivered) return;\n onMessage?.({\n event: eventName,\n data: decoded.data,\n id: event.lastEventId || undefined,\n raw: event,\n });\n }\n\n function scheduleReconnect(): void {\n if (closed) return;\n if (retries >= maxRetries) {\n setStatus(\"error\");\n return;\n }\n const delay = Math.min(initialBackoff * 2 ** retries, maxBackoff);\n retries += 1;\n retryTimer = setTimeout(connect, delay);\n }\n\n function connect(): void {\n if (closed) return;\n if (source) source.close();\n setStatus(\"connecting\");\n\n const es = new EventSource(url, { withCredentials });\n source = es;\n\n es.onopen = () => {\n retries = 0;\n setStatus(\"open\");\n onOpen?.();\n };\n\n es.onmessage = (event) => emit(\"message\", event);\n for (const name of namedEvents) {\n es.addEventListener(name, (event) => emit(name, event as MessageEvent));\n }\n for (const name of heartbeatEvents) {\n es.addEventListener(name, () => {\n /* heartbeat — keep socket alive */\n });\n }\n\n es.onerror = (event) => {\n onError?.(event);\n es.close();\n source = null;\n setStatus(\"closed\");\n scheduleReconnect();\n };\n }\n\n function close(): void {\n closed = true;\n if (retryTimer) {\n clearTimeout(retryTimer);\n retryTimer = null;\n }\n retries = 0;\n if (source) {\n source.close();\n source = null;\n }\n setStatus(\"closed\");\n }\n\n function reconnect(): void {\n if (retryTimer) {\n clearTimeout(retryTimer);\n retryTimer = null;\n }\n retries = 0;\n closed = false;\n connect();\n }\n\n connect();\n\n return {\n close,\n reconnect,\n get status() {\n return status;\n },\n };\n}\n"],"mappings":"2CAqEA,SAAgB,EACZ,EACA,EAAuC,CAAC,EACnB,CACrB,GAAM,CACF,kBAAkB,GAClB,cAAc,CAAC,EACf,kBAAkB,CAAC,MAAM,EACzB,aAAa,GACb,iBAAiB,IACjB,aAAa,IACb,SACA,SACA,YACA,UACA,eACA,kBACA,EAEA,EAA6B,KAC7B,EAAmD,KACnD,EAAU,EACV,EAA4B,OAC5B,EAAS,GAEb,SAAS,EAAU,EAA+B,CAC1C,IAAW,IACf,EAAS,EACT,IAAiB,CAAI,EACzB,CAEA,SAAS,EAAK,EAAmB,EAA2B,CACxD,GAAI,EAAgB,SAAS,CAAS,EAAG,OACzC,IAAM,EAAU,EAAA,YACZ,OAAO,EAAM,MAAS,SAAW,EAAM,KAAO,GAC9C,EACA,EACA,mBACJ,EACK,EAAQ,WACb,IAAY,CACR,MAAO,EACP,KAAM,EAAQ,KACd,GAAI,EAAM,aAAe,IAAA,GACzB,IAAK,CACT,CAAC,CACL,CAEA,SAAS,GAA0B,CAC/B,GAAI,EAAQ,OACZ,GAAI,GAAW,EAAY,CACvB,EAAU,OAAO,EACjB,MACJ,CACA,IAAM,EAAQ,KAAK,IAAI,EAAiB,GAAK,EAAS,CAAU,EAChE,GAAW,EACX,EAAa,WAAW,EAAS,CAAK,CAC1C,CAEA,SAAS,GAAgB,CACrB,GAAI,EAAQ,OACR,GAAQ,EAAO,MAAM,EACzB,EAAU,YAAY,EAEtB,IAAM,EAAK,IAAI,YAAY,EAAK,CAAE,iBAAgB,CAAC,EACnD,EAAS,EAET,EAAG,WAAe,CACd,EAAU,EACV,EAAU,MAAM,EAChB,IAAS,CACb,EAEA,EAAG,UAAa,GAAU,EAAK,UAAW,CAAK,EAC/C,IAAK,IAAM,KAAQ,EACf,EAAG,iBAAiB,EAAO,GAAU,EAAK,EAAM,CAAqB,CAAC,EAE1E,IAAK,IAAM,KAAQ,EACf,EAAG,iBAAiB,MAAY,CAEhC,CAAC,EAGL,EAAG,QAAW,GAAU,CACpB,IAAU,CAAK,EACf,EAAG,MAAM,EACT,EAAS,KACT,EAAU,QAAQ,EAClB,EAAkB,CACtB,CACJ,CAEA,SAAS,GAAc,CACnB,EAAS,GACT,AAEI,KADA,aAAa,CAAU,EACV,MAEjB,EAAU,EACV,AAEI,KADA,EAAO,MAAM,EACJ,MAEb,EAAU,QAAQ,CACtB,CAEA,SAAS,GAAkB,CACvB,AAEI,KADA,aAAa,CAAU,EACV,MAEjB,EAAU,EACV,EAAS,GACT,EAAQ,CACZ,CAIA,OAFA,EAAQ,EAED,CACH,QACA,YACA,IAAI,QAAS,CACT,OAAO,CACX,CACJ,CACJ"}
1
+ {"version":3,"file":"create-event-stream.cjs","names":[],"sources":["../../src/sse/create-event-stream.ts"],"sourcesContent":["/**\n * @tempest-limits function-lines — the body is the SSE line protocol — accumulate\n * `data:` lines until a blank line, track `id:` for Last-Event-ID, honour `retry:` —\n * plus the reconnect that uses the id it just tracked.\n */\nimport { decodeFrame } from \"../utils/json-frame\";\nimport type { SchemaIssue, SchemaLike } from \"../utils/schema-like\";\nexport type EventStreamStatus = \"idle\" | \"connecting\" | \"open\" | \"closed\" | \"error\";\n\nexport interface EventStreamMessage<T> {\n /** Server-named event (default `\"message\"`). */\n event: string;\n /** Parsed payload — validated when `schema` is set, JSON-decoded when possible, raw string otherwise. */\n data: T;\n /** Server-supplied id, if any. */\n id?: string;\n /** Raw `MessageEvent` for advanced cases. */\n raw: MessageEvent;\n}\n\nexport interface CreateEventStreamOptions<T> {\n /** Send cookies with the EventSource handshake. Default: false. */\n withCredentials?: boolean;\n /** Subscribe to named events in addition to `message`. */\n namedEvents?: readonly string[];\n /** Treat these named events as heartbeat-only (no callback). Default: `[\"ping\"]`. */\n heartbeatEvents?: readonly string[];\n /** Max reconnect attempts. Default: 10. Pass 0 to disable reconnect. */\n maxRetries?: number;\n /** Initial backoff in ms; doubles per attempt, capped at `maxBackoff`. Default: 1000. */\n initialBackoff?: number;\n /** Maximum backoff in ms. Default: 30000. */\n maxBackoff?: number;\n /** Parse `event.data`. Defaults to JSON with raw-string fallback. */\n parser?: (raw: string) => T;\n /**\n * A frame arrived that is not valid JSON, and no `parser` was supplied.\n *\n * Registering this drops the frame instead of delivering it: the previous\n * behaviour handed `onMessage` the raw `string` announced as your message\n * type, so the failure surfaced later, at the first property access, with\n * nothing left pointing at the parse. Leave it out and that behaviour is\n * kept, with a one-time warning in development builds.\n */\n onParseError?: (error: unknown, raw: string) => void;\n /**\n * Schema every decoded frame must satisfy, from zod, valibot, arktype or\n * anything else exposing `~standard` or `.safeParse`.\n *\n * Without it nothing changes: the payload reaches `onMessage` announced as\n * `T` on the strength of the type argument alone, which is a promise about\n * the server that TypeScript cannot keep. With it, a frame that does not\n * match is **not** delivered — the same rule `onParseError` already follows —\n * and `onValidationError` hears why. The value delivered is the schema's\n * output, so coercions and defaults are honoured.\n *\n * When `parser` is also supplied, it decodes first and the schema validates\n * what it returned.\n *\n * The validation must be synchronous. A frame is decoded inside the\n * `message` handler and delivered from it, so an async schema would deliver\n * frames in whatever order their validations settled; that case is reported\n * through `onValidationError` instead of awaited.\n */\n schema?: SchemaLike<T>;\n /**\n * A frame was decoded but the `schema` refused it, so it was dropped.\n *\n * The one signal that does not depend on how the app's bundler resolves\n * `process`: the one-time development warning behind `onParseError` needs\n * `isDevBuild()` to be able to answer, and this callback is the app's own.\n */\n onValidationError?: (issues: SchemaIssue[], raw: string) => void;\n onOpen?: () => void;\n onMessage?: (message: EventStreamMessage<T>) => void;\n onError?: (error: Event) => void;\n onStatusChange?: (status: EventStreamStatus) => void;\n}\n\nexport interface EventStreamController {\n close: () => void;\n /** Force an immediate reconnect, resetting the retry counter. */\n reconnect: () => void;\n /** Current connection status. */\n readonly status: EventStreamStatus;\n}\n\n/**\n * Open a Server-Sent Events stream with automatic exponential-backoff reconnect.\n *\n * Heartbeat events (default `\"ping\"`) keep the socket alive without firing\n * `onMessage`. Pass `withCredentials: true` when the backend authenticates via\n * cookies. Call `close()` from the returned controller to tear down.\n *\n * @param url - Full SSE endpoint URL.\n * @param options - Stream configuration and callbacks.\n * @returns A controller exposing `close`, `reconnect` and the current `status`.\n */\nexport function createEventStream<T = unknown>(\n url: string,\n options: CreateEventStreamOptions<T> = {},\n): EventStreamController {\n const {\n withCredentials = false,\n namedEvents = [],\n heartbeatEvents = [\"ping\"],\n maxRetries = 10,\n initialBackoff = 1000,\n maxBackoff = 30000,\n parser,\n onOpen,\n onMessage,\n onError,\n onParseError,\n schema,\n onValidationError,\n onStatusChange,\n } = options;\n\n let source: EventSource | null = null;\n let retryTimer: ReturnType<typeof setTimeout> | null = null;\n let retries = 0;\n let status: EventStreamStatus = \"idle\";\n let closed = false;\n\n function setStatus(next: EventStreamStatus): void {\n if (status === next) return;\n status = next;\n onStatusChange?.(next);\n }\n\n function emit(eventName: string, event: MessageEvent): void {\n if (heartbeatEvents.includes(eventName)) return;\n const decoded = decodeFrame<T>(\n typeof event.data === \"string\" ? event.data : \"\",\n \"createEventStream\",\n { parser, onParseError, schema, onValidationError },\n );\n if (!decoded.delivered) return;\n onMessage?.({\n event: eventName,\n data: decoded.data,\n id: event.lastEventId || undefined,\n raw: event,\n });\n }\n\n function scheduleReconnect(): void {\n if (closed) return;\n if (retries >= maxRetries) {\n setStatus(\"error\");\n return;\n }\n const delay = Math.min(initialBackoff * 2 ** retries, maxBackoff);\n retries += 1;\n retryTimer = setTimeout(connect, delay);\n }\n\n function connect(): void {\n if (closed) return;\n if (source) source.close();\n setStatus(\"connecting\");\n\n const es = new EventSource(url, { withCredentials });\n source = es;\n\n es.onopen = () => {\n retries = 0;\n setStatus(\"open\");\n onOpen?.();\n };\n\n es.onmessage = (event) => emit(\"message\", event);\n for (const name of namedEvents) {\n es.addEventListener(name, (event) => emit(name, event as MessageEvent));\n }\n for (const name of heartbeatEvents) {\n es.addEventListener(name, () => {\n /* heartbeat — keep socket alive */\n });\n }\n\n es.onerror = (event) => {\n onError?.(event);\n es.close();\n source = null;\n setStatus(\"closed\");\n scheduleReconnect();\n };\n }\n\n function close(): void {\n closed = true;\n if (retryTimer) {\n clearTimeout(retryTimer);\n retryTimer = null;\n }\n retries = 0;\n if (source) {\n source.close();\n source = null;\n }\n setStatus(\"closed\");\n }\n\n function reconnect(): void {\n if (retryTimer) {\n clearTimeout(retryTimer);\n retryTimer = null;\n }\n retries = 0;\n closed = false;\n connect();\n }\n\n connect();\n\n return {\n close,\n reconnect,\n get status() {\n return status;\n },\n };\n}\n"],"mappings":"2CAkGA,SAAgB,EACZ,EACA,EAAuC,CAAC,EACnB,CACrB,GAAM,CACF,kBAAkB,GAClB,cAAc,CAAC,EACf,kBAAkB,CAAC,MAAM,EACzB,aAAa,GACb,iBAAiB,IACjB,aAAa,IACb,SACA,SACA,YACA,UACA,eACA,SACA,oBACA,kBACA,EAEA,EAA6B,KAC7B,EAAmD,KACnD,EAAU,EACV,EAA4B,OAC5B,EAAS,GAEb,SAAS,EAAU,EAA+B,CAC1C,IAAW,IACf,EAAS,EACT,IAAiB,CAAI,EACzB,CAEA,SAAS,EAAK,EAAmB,EAA2B,CACxD,GAAI,EAAgB,SAAS,CAAS,EAAG,OACzC,IAAM,EAAU,EAAA,YACZ,OAAO,EAAM,MAAS,SAAW,EAAM,KAAO,GAC9C,oBACA,CAAE,SAAQ,eAAc,SAAQ,mBAAkB,CACtD,EACK,EAAQ,WACb,IAAY,CACR,MAAO,EACP,KAAM,EAAQ,KACd,GAAI,EAAM,aAAe,IAAA,GACzB,IAAK,CACT,CAAC,CACL,CAEA,SAAS,GAA0B,CAC/B,GAAI,EAAQ,OACZ,GAAI,GAAW,EAAY,CACvB,EAAU,OAAO,EACjB,MACJ,CACA,IAAM,EAAQ,KAAK,IAAI,EAAiB,GAAK,EAAS,CAAU,EAChE,GAAW,EACX,EAAa,WAAW,EAAS,CAAK,CAC1C,CAEA,SAAS,GAAgB,CACrB,GAAI,EAAQ,OACR,GAAQ,EAAO,MAAM,EACzB,EAAU,YAAY,EAEtB,IAAM,EAAK,IAAI,YAAY,EAAK,CAAE,iBAAgB,CAAC,EACnD,EAAS,EAET,EAAG,WAAe,CACd,EAAU,EACV,EAAU,MAAM,EAChB,IAAS,CACb,EAEA,EAAG,UAAa,GAAU,EAAK,UAAW,CAAK,EAC/C,IAAK,IAAM,KAAQ,EACf,EAAG,iBAAiB,EAAO,GAAU,EAAK,EAAM,CAAqB,CAAC,EAE1E,IAAK,IAAM,KAAQ,EACf,EAAG,iBAAiB,MAAY,CAEhC,CAAC,EAGL,EAAG,QAAW,GAAU,CACpB,IAAU,CAAK,EACf,EAAG,MAAM,EACT,EAAS,KACT,EAAU,QAAQ,EAClB,EAAkB,CACtB,CACJ,CAEA,SAAS,GAAc,CACnB,EAAS,GACT,AAEI,KADA,aAAa,CAAU,EACV,MAEjB,EAAU,EACV,AAEI,KADA,EAAO,MAAM,EACJ,MAEb,EAAU,QAAQ,CACtB,CAEA,SAAS,GAAkB,CACvB,AAEI,KADA,aAAa,CAAU,EACV,MAEjB,EAAU,EACV,EAAS,GACT,EAAQ,CACZ,CAIA,OAFA,EAAQ,EAED,CACH,QACA,YACA,IAAI,QAAS,CACT,OAAO,CACX,CACJ,CACJ"}