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
@@ -3236,6 +3236,34 @@ export declare interface CreateEventStreamOptions<T> {
3236
3236
  * kept, with a one-time warning in development builds.
3237
3237
  */
3238
3238
  onParseError?: (error: unknown, raw: string) => void;
3239
+ /**
3240
+ * Schema every decoded frame must satisfy, from zod, valibot, arktype or
3241
+ * anything else exposing `~standard` or `.safeParse`.
3242
+ *
3243
+ * Without it nothing changes: the payload reaches `onMessage` announced as
3244
+ * `T` on the strength of the type argument alone, which is a promise about
3245
+ * the server that TypeScript cannot keep. With it, a frame that does not
3246
+ * match is **not** delivered — the same rule `onParseError` already follows —
3247
+ * and `onValidationError` hears why. The value delivered is the schema's
3248
+ * output, so coercions and defaults are honoured.
3249
+ *
3250
+ * When `parser` is also supplied, it decodes first and the schema validates
3251
+ * what it returned.
3252
+ *
3253
+ * The validation must be synchronous. A frame is decoded inside the
3254
+ * `message` handler and delivered from it, so an async schema would deliver
3255
+ * frames in whatever order their validations settled; that case is reported
3256
+ * through `onValidationError` instead of awaited.
3257
+ */
3258
+ schema?: SchemaLike<T>;
3259
+ /**
3260
+ * A frame was decoded but the `schema` refused it, so it was dropped.
3261
+ *
3262
+ * The one signal that does not depend on how the app's bundler resolves
3263
+ * `process`: the one-time development warning behind `onParseError` needs
3264
+ * `isDevBuild()` to be able to answer, and this callback is the app's own.
3265
+ */
3266
+ onValidationError?: (issues: SchemaIssue[], raw: string) => void;
3239
3267
  onOpen?: () => void;
3240
3268
  onMessage?: (message: EventStreamMessage<T>) => void;
3241
3269
  onError?: (error: Event) => void;
@@ -4420,6 +4448,37 @@ export declare interface CreateWebSocketOptions<T> {
4420
4448
  * kept, with a one-time warning in development builds.
4421
4449
  */
4422
4450
  onParseError?: (error: unknown, raw: string) => void;
4451
+ /**
4452
+ * Schema every decoded frame must satisfy, from zod, valibot, arktype or
4453
+ * anything else exposing `~standard` or `.safeParse`.
4454
+ *
4455
+ * Without it nothing changes: the payload reaches `onMessage` announced as
4456
+ * `T` on the strength of the type argument alone, which is a promise about
4457
+ * the server that TypeScript cannot keep. With it, a frame that does not
4458
+ * match is **not** delivered — the same rule `onParseError` already follows —
4459
+ * and `onValidationError` hears why. The value delivered is the schema's
4460
+ * output, so coercions and defaults are honoured.
4461
+ *
4462
+ * When `parser` is also supplied, it decodes first and the schema validates
4463
+ * what it returned.
4464
+ *
4465
+ * A server ping is still answered when the schema drops it: the heartbeat is
4466
+ * the transport's contract with the server, not the app's with its payload,
4467
+ * and a socket that stops sending `pong` is closed with `4408` once per
4468
+ * timeout. The validation itself must be synchronous — a frame is decoded
4469
+ * inside the `message` handler and delivered from it, so an async schema
4470
+ * would deliver frames in whatever order their validations settled; that
4471
+ * case is reported through `onValidationError` instead of awaited.
4472
+ */
4473
+ schema?: SchemaLike<T>;
4474
+ /**
4475
+ * A frame was decoded but the `schema` refused it, so it was dropped.
4476
+ *
4477
+ * The one signal that does not depend on how the app's bundler resolves
4478
+ * `process`: the one-time development warning behind `onParseError` needs
4479
+ * `isDevBuild()` to be able to answer, and this callback is the app's own.
4480
+ */
4481
+ onValidationError?: (issues: SchemaIssue[], raw: string) => void;
4423
4482
  onOpen?: (event: Event) => void;
4424
4483
  onMessage?: (message: WebSocketMessage<T>) => void;
4425
4484
  onClose?: (event: CloseEvent) => void;
@@ -5732,7 +5791,7 @@ export declare interface EventStreamController {
5732
5791
  export declare interface EventStreamMessage<T> {
5733
5792
  /** Server-named event (default `"message"`). */
5734
5793
  event: string;
5735
- /** Parsed payload — JSON-decoded when possible, raw string otherwise. */
5794
+ /** Parsed payload — validated when `schema` is set, JSON-decoded when possible, raw string otherwise. */
5736
5795
  data: T;
5737
5796
  /** Server-supplied id, if any. */
5738
5797
  id?: string;
@@ -7454,6 +7513,11 @@ export declare function isStandalone(): boolean;
7454
7513
  */
7455
7514
  export declare function isString(value: unknown): value is string;
7456
7515
 
7516
+ /** A path segment as Standard Schema reports it: a key, or an object holding one. */
7517
+ declare type IssuePathSegment = PropertyKey | {
7518
+ readonly key: PropertyKey;
7519
+ };
7520
+
7457
7521
  /** True when `value` is a finite latitude in `[-90, 90]`. */
7458
7522
  export declare function isValidLatitude(value: number): boolean;
7459
7523
 
@@ -10882,6 +10946,12 @@ export declare interface RatingStarsProps {
10882
10946
  className?: string;
10883
10947
  }
10884
10948
 
10949
+ /** One issue as either supported shape reports it. */
10950
+ declare interface RawIssue {
10951
+ readonly message: string;
10952
+ readonly path?: readonly IssuePathSegment[] | undefined;
10953
+ }
10954
+
10885
10955
  /**
10886
10956
  * Pick the readable foreground for a background, by contrast ratio.
10887
10957
  *
@@ -11617,6 +11687,19 @@ export declare interface SafeAreaProps extends HTMLAttributes<HTMLDivElement> {
11617
11687
  children?: ReactNode;
11618
11688
  }
11619
11689
 
11690
+ /** A schema exposing zod's `.safeParse`, including versions older than `~standard`. */
11691
+ export declare interface SafeParseSchemaLike<T> {
11692
+ readonly safeParse: (value: unknown) => {
11693
+ readonly success: true;
11694
+ readonly data: T;
11695
+ } | {
11696
+ readonly success: false;
11697
+ readonly error: {
11698
+ readonly issues: readonly RawIssue[];
11699
+ };
11700
+ };
11701
+ }
11702
+
11620
11703
  /**
11621
11704
  * Divide the video caps by the size of the room.
11622
11705
  *
@@ -11720,6 +11803,36 @@ export declare interface SchedulerProps extends Omit<HTMLAttributes<HTMLDivEleme
11720
11803
  now?: Date;
11721
11804
  }
11722
11805
 
11806
+ /**
11807
+ * The SDK's answer to "the caller handed me a schema" — one normalizer behind
11808
+ * every option that takes one.
11809
+ *
11810
+ * Internal, and imported by path rather than through the `utils` barrel: the
11811
+ * function exists so `decodeFrame` and anything else that validates a payload
11812
+ * share one reading of the two shapes below, not so consumers can call it. The
11813
+ * types are public, because an option typed `SchemaLike<T>` is a name the
11814
+ * consumer has to be able to write down.
11815
+ *
11816
+ * Two shapes are accepted on purpose:
11817
+ *
11818
+ * - [Standard Schema](https://standardschema.dev) (`~standard`), which zod
11819
+ * (>=3.24), valibot and arktype all implement, so the SDK validates against
11820
+ * any of them without depending on one;
11821
+ * - `.safeParse`, because the SDK's own zod range starts at `^3.23.0`, which
11822
+ * predates `~standard`, and because it is the method every zod user already
11823
+ * knows.
11824
+ */
11825
+ /** One field-level complaint from a schema validation. */
11826
+ export declare interface SchemaIssue {
11827
+ /** Dotted path to the offending field, or `"<root>"` for the value itself. */
11828
+ path: string;
11829
+ /** What the validator said was wrong. */
11830
+ message: string;
11831
+ }
11832
+
11833
+ /** Anything the SDK can validate a payload against. */
11834
+ export declare type SchemaLike<T> = StandardSchemaLike<T> | SafeParseSchemaLike<T>;
11835
+
11723
11836
  /** Lifecycle of a screen share. */
11724
11837
  export declare type ScreenCaptureStatus = "idle" | "requesting" | "sharing" | "error";
11725
11838
 
@@ -11912,13 +12025,13 @@ export declare function setAudioOutput(element: HTMLMediaElement | null, sinkId:
11912
12025
  * the SDK routes through it — `grep -rn "dev-mode" src/` for the current list,
11913
12026
  * which an enumeration written here would only drift away from.
11914
12027
  *
11915
- * {@link setDevBuild} is public, because the environment the SDK cannot read is
11916
- * the one it most needs to: a Vite app. See its doc for why.
12028
+ * {@link setDevBuild} is public, because a context nothing compiles cannot be
12029
+ * detected from the inside. See its doc for when that is.
11917
12030
  */
11918
12031
  /**
11919
12032
  * Tell the SDK whether the app around it was built for development.
11920
12033
  *
11921
- * Call it once, at bootstrap, from a build the SDK cannot inspect:
12034
+ * Call it once, at bootstrap, from a context {@link isDevBuild} cannot read:
11922
12035
  *
11923
12036
  * ```ts
11924
12037
  * import { setDevBuild } from "tempest-react-sdk";
@@ -11926,20 +12039,29 @@ export declare function setAudioOutput(element: HTMLMediaElement | null, sinkId:
11926
12039
  * setDevBuild(import.meta.env.DEV);
11927
12040
  * ```
11928
12041
  *
11929
- * **Why the SDK cannot work this out on its own in a Vite app.** The automatic
11930
- * detection reads `process.env.NODE_ENV`, which webpack, Rspack and Parcel
11931
- * replace with a literal while building the *app*. Vite replaces neither half:
11932
- * `process` is not defined in a browser bundle, so the read throws and the
11933
- * answer is `false` including under `vite dev`. Its own signal,
11934
- * `import.meta.env.DEV`, cannot be used here either, because Vite would replace
11935
- * it while building *this package* and the published artifact would ship the
11936
- * constant. Only the app is compiled at the moment the answer is knowable, so
11937
- * only the app can supply it.
11938
- *
11939
- * The default stays `false` on purpose. `parseResponse` puts the raw response
11940
- * payload in its message when this is on, so a wrong guess in the other
11941
- * direction leaks a payload into a production error string. Silence is the safe
11942
- * default; the report is one line away for anyone who wants it.
12042
+ * **When you need it.** Not for an ordinary Vite, webpack, Rspack or Parcel
12043
+ * app: all of them substitute `process.env.NODE_ENV` while building the app, so
12044
+ * the automatic read already answers correctly there measured for Vite 5
12045
+ * through 8 in {@link isDevBuild}, whose doc carries the table. What is left is
12046
+ * the context nothing compiles or nothing configures:
12047
+ *
12048
+ * - code no bundler transformed a raw service-worker script registered as a
12049
+ * file of its own, a plain `<script type="module">`;
12050
+ * - a staging or QA build that never sets `NODE_ENV=production`, where the
12051
+ * automatic answer is `true` and `parseResponse` would put the raw response
12052
+ * payload in an error string seen by real users. `setDevBuild(false)` closes
12053
+ * that;
12054
+ * - a test that wants the other branch, and puts it back on the way out.
12055
+ *
12056
+ * `import.meta.env.DEV` cannot be read by the SDK on your behalf, which is why
12057
+ * the signal is a parameter: Vite would replace it while building *this
12058
+ * package*, and the published artifact would ship the constant.
12059
+ *
12060
+ * The default stays `false` when the read throws. `parseResponse` puts the raw
12061
+ * response payload in its message when this is on, so guessing `true` in a
12062
+ * context that cannot prove it leaks a payload into a production error string.
12063
+ * Silence is the safe default; the report is one line away for anyone who wants
12064
+ * it.
11943
12065
  *
11944
12066
  * Passing `undefined` clears the override and returns to automatic detection,
11945
12067
  * which is what a test that set it should do on the way out.
@@ -11948,8 +12070,8 @@ export declare function setAudioOutput(element: HTMLMediaElement | null, sinkId:
11948
12070
  * `undefined` to go back to detecting it.
11949
12071
  *
11950
12072
  * @example
11951
- * // Vite the case this exists for
11952
- * setDevBuild(import.meta.env.DEV);
12073
+ * // A service worker, or any context no bundler transformed
12074
+ * setDevBuild(false);
11953
12075
  *
11954
12076
  * @example
11955
12077
  * // A test that flips it, and puts it back
@@ -12621,6 +12743,23 @@ export declare const STALE_TIME: {
12621
12743
  readonly INFINITE: number;
12622
12744
  };
12623
12745
 
12746
+ /** A schema exposing the [Standard Schema](https://standardschema.dev) interface. */
12747
+ export declare interface StandardSchemaLike<T> {
12748
+ readonly "~standard": {
12749
+ readonly validate: (value: unknown) => {
12750
+ readonly value: T;
12751
+ readonly issues?: undefined;
12752
+ } | {
12753
+ readonly issues: readonly RawIssue[];
12754
+ } | Promise<{
12755
+ readonly value: T;
12756
+ readonly issues?: undefined;
12757
+ } | {
12758
+ readonly issues: readonly RawIssue[];
12759
+ }>;
12760
+ };
12761
+ }
12762
+
12624
12763
  /**
12625
12764
  * KPI card. Dashboard widget showing a label + big value + optional
12626
12765
  * delta/trend and hint.
@@ -14648,12 +14787,28 @@ export declare function useEventListener<K extends keyof HTMLElementEventMap>(ev
14648
14787
  * tied to the component (and the `url`/`enabled` dependencies); the stream
14649
14788
  * closes on unmount.
14650
14789
  *
14790
+ * Pass `schema` to have every frame validated before it reaches `onMessage`,
14791
+ * instead of trusting the type argument: without it `data` is announced as `T`
14792
+ * on the strength of the generic alone, which is a promise about the server
14793
+ * that TypeScript cannot keep. It is read when the stream opens, so declare it
14794
+ * outside the component rather than building one inline per render.
14795
+ *
14651
14796
  * @example
14652
14797
  * useEventStream<Notification>(`${API}/notifications/stream`, {
14653
14798
  * enabled: !!user,
14654
14799
  * withCredentials: true,
14655
14800
  * onMessage: ({ data }) => addNotification(data),
14656
14801
  * });
14802
+ *
14803
+ * @example
14804
+ * // Validated: a frame that does not match never reaches `onMessage`
14805
+ * const notificationSchema = z.object({ id: z.string(), message: z.string() });
14806
+ *
14807
+ * useEventStream<Notification>(`${API}/notifications/stream`, {
14808
+ * schema: notificationSchema,
14809
+ * onValidationError: (issues) => logger.warn("stream drift", { issues }),
14810
+ * onMessage: ({ data }) => addNotification(data),
14811
+ * });
14657
14812
  */
14658
14813
  export declare function useEventStream<T = unknown>(url: string, options?: UseEventStreamOptions<T>): UseEventStreamResult<T>;
14659
14814
 
@@ -16803,6 +16958,10 @@ export { useWatch }
16803
16958
  * baked into the connection, so changing one reopens it with the new value
16804
16959
  * rather than being silently ignored.
16805
16960
  *
16961
+ * `schema` is read when the socket opens, so declare it outside the component
16962
+ * (or memoize it): a schema built inline is a new object on every render, and
16963
+ * the one in force is whichever existed at the last open.
16964
+ *
16806
16965
  * @param url - Full ws:// or wss:// URL.
16807
16966
  * @param options - Connection configuration and callbacks.
16808
16967
  * @returns Status, last frame, and the `send` / `reconnect` controls.
@@ -17717,7 +17876,7 @@ export declare interface WebSocketController {
17717
17876
  export declare type WebSocketLostReason = "rejected" | "exhausted";
17718
17877
 
17719
17878
  export declare interface WebSocketMessage<T> {
17720
- /** Parsed payload — JSON-decoded when possible, raw string otherwise. */
17879
+ /** Parsed payload — validated when `schema` is set, JSON-decoded when possible, raw string otherwise. */
17721
17880
  data: T;
17722
17881
  /** The original `MessageEvent`. */
17723
17882
  raw: MessageEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"dev-mode.cjs","names":[],"sources":["../../src/utils/dev-mode.ts"],"sourcesContent":["/**\n * {@link isDevBuild} stays internal, imported by path (`../utils/dev-mode`)\n * rather than through the `utils` barrel: re-exporting it would make a one-line\n * env read part of the package's public API, with the semver weight that\n * carries, for something no consumer asked for. Every dev-only diagnostic in\n * the SDK routes through it — `grep -rn \"dev-mode\" src/` for the current list,\n * which an enumeration written here would only drift away from.\n *\n * {@link setDevBuild} is public, because the environment the SDK cannot read is\n * the one it most needs to: a Vite app. See its doc for why.\n */\n\n/**\n * Whether the consuming app was built for development.\n *\n * Reads `process.env.NODE_ENV`, which every supported bundler (Vite, webpack,\n * Rspack, Parcel) replaces with a literal **while building the app**. That\n * timing is the whole point: `import.meta.env.DEV` looks equivalent and is not,\n * because Vite replaces it while building *this package*, so a published\n * artifact carries the constant `false` and every guard behind it becomes dead\n * code the app's own dev server can no longer switch on.\n *\n * The expression is written out in full, and the failure is caught rather than\n * guarded against. A `typeof process === \"undefined\"` check would read as the\n * careful version and quietly reintroduce the bug: bundlers substitute the\n * member expression `process.env.NODE_ENV` and nothing else, so in a browser —\n * where the identifier `process` does not existthe guard would return early\n * while the literal right after it had already been replaced with\n * `\"development\"`.\n *\n * Returns `false` when the read throws, which is the environment that defines\n * neither symbol: a raw service-worker context, a plain\n * `<script type=\"module\">`, a bundler substituting nothing. **A Vite app is in\n * that set**, `vite dev` included — Vite replaces neither `process` nor\n * `process.env.NODE_ENV` in the app it builds, so the read throws there like\n * anywhere else. Staying quiet is deliberate — a dev-only warning that cannot\n * prove it is in development is better silent than shouting in someone's\n * production console.\n *\n * {@link setDevBuild} is how that app says so, and it is checked first. The\n * automatic read stays exactly as written underneath, bare member expression\n * and all: a `typeof process === \"undefined\"` guard in front of it would return\n * early in a webpack build whose literal had already been substituted, which is\n * the one environment this currently gets right.\n *\n * @returns Whether development-only diagnostics should run.\n *\n * @example\n * if (isDevBuild()) console.warn(\"[my-app] this prop combination does nothing\");\n *\n * @tempest-limits empty-catch — the only thing the read can throw is the\n * environment answering \"not defined\", which is the return value, not an error\n * worth reporting. Logging it would print on every call in exactly the context\n * that has nowhere to print.\n */\nlet configuredDevBuild: boolean | undefined;\n\n/**\n * Tell the SDK whether the app around it was built for development.\n *\n * Call it once, at bootstrap, from a build the SDK cannot inspect:\n *\n * ```ts\n * import { setDevBuild } from \"tempest-react-sdk\";\n *\n * setDevBuild(import.meta.env.DEV);\n * ```\n *\n * **Why the SDK cannot work this out on its own in a Vite app.** The automatic\n * detection reads `process.env.NODE_ENV`, which webpack, Rspack and Parcel\n * replace with a literal while building the *app*. Vite replaces neither half:\n * `process` is not defined in a browser bundle, so the read throws and the\n * answer is `false` including under `vite dev`. Its own signal,\n * `import.meta.env.DEV`, cannot be used here either, because Vite would replace\n * it while building *this package* and the published artifact would ship the\n * constant. Only the app is compiled at the moment the answer is knowable, so\n * only the app can supply it.\n *\n * The default stays `false` on purpose. `parseResponse` puts the raw response\n * payload in its message when this is on, so a wrong guess in the other\n * direction leaks a payload into a production error string. Silence is the safe\n * default; the report is one line away for anyone who wants it.\n *\n * Passing `undefined` clears the override and returns to automatic detection,\n * which is what a test that set it should do on the way out.\n *\n * @param value - `true` for a development build, `false` for production,\n * `undefined` to go back to detecting it.\n *\n * @example\n * // Vite the case this exists for\n * setDevBuild(import.meta.env.DEV);\n *\n * @example\n * // A test that flips it, and puts it back\n * afterEach(() => setDevBuild(undefined));\n */\nexport function setDevBuild(value: boolean | undefined): void {\n configuredDevBuild = value;\n}\n\nexport function isDevBuild(): boolean {\n if (configuredDevBuild !== undefined) return configuredDevBuild;\n try {\n return process.env.NODE_ENV !== \"production\";\n } catch {\n return false;\n }\n}\n"],"mappings":"AAuDA,IAAI,EA0CJ,SAAgB,EAAY,EAAkC,CAC1D,EAAqB,CACzB,CAEA,SAAgB,GAAsB,CAClC,GAAI,IAAuB,IAAA,GAAW,OAAO,EAC7C,GAAI,CACA,OAAA,QAAA,IAAA,WAAgC,YACpC,MAAQ,CACJ,MAAO,EACX,CACJ"}
1
+ {"version":3,"file":"dev-mode.cjs","names":[],"sources":["../../src/utils/dev-mode.ts"],"sourcesContent":["/**\n * {@link isDevBuild} stays internal, imported by path (`../utils/dev-mode`)\n * rather than through the `utils` barrel: re-exporting it would make a one-line\n * env read part of the package's public API, with the semver weight that\n * carries, for something no consumer asked for. Every dev-only diagnostic in\n * the SDK routes through it — `grep -rn \"dev-mode\" src/` for the current list,\n * which an enumeration written here would only drift away from.\n *\n * {@link setDevBuild} is public, because a context nothing compiles cannot be\n * detected from the inside. See its doc for when that is.\n */\n\n/**\n * Whether the consuming app was built for development.\n *\n * Reads `process.env.NODE_ENV`, which every supported bundler replaces with a\n * literal **while building the app** — Vite included. That last word is a\n * correction: this doc used to claim Vite substitutes neither half, so every\n * dev-only diagnostic in the SDK was unreachable under `vite dev`. Measured on\n * 2026-09-07 with 0.61.0 installed into a probe app, both from a packed tarball\n * (a real copy under `node_modules`, which Vite pre-bundles) and from a `file:`\n * link (a symlink it does not), reading back the module the dev server actually\n * served:\n *\n * | Vite | `vite dev` | `vite build` |\n * | --- | --- | --- |\n * | 5.4.21, 6.4.3, 7.3.6 | folded to `true` | folded to `false` |\n * | 8.2.2 | `\"development\" !== \"production\"` | folded to `false` |\n *\n * So this answers correctly in a Vite app on its own, in development and in\n * production, pre-bundled or served through the dev server's transform. The\n * wrong belief survived releases because nobody read the served module — the\n * expression is not substituted in a *browser console*, which is where it is\n * natural to go looking.\n *\n * `import.meta.env.DEV` still cannot be used here: Vite would replace it while\n * building *this package*, so the published artifact would carry the constant\n * and every guard behind it would be dead code no app could switch back on.\n *\n * The expression is written out in full, and the failure is caught rather than\n * guarded against. A `typeof process === \"undefined\"` check would read as the\n * careful version and quietly break the environments that work: substitution\n * replaces the member expression `process.env.NODE_ENV` and nothing else, so\n * the guard would return early in front of a literal that had already been\n * swapped in. The identifier itself never exists at runtime `typeof process`\n * is `\"undefined\"` in the page, measured in the same probe which is exactly\n * why the read is wrapped in `try` instead.\n *\n * Returns `false` when the read throws, which is the context nothing\n * transformed: a raw service-worker script, a plain `<script type=\"module\">`, a\n * bundler substituting nothing. Staying quiet there is deliberate — a dev-only\n * warning that cannot prove it is in development is better silent than shouting\n * in someone's production console.\n *\n * {@link setDevBuild} overrides all of it and is checked first.\n *\n * @returns Whether development-only diagnostics should run.\n *\n * @example\n * if (isDevBuild()) console.warn(\"[my-app] this prop combination does nothing\");\n *\n * @tempest-limits empty-catch — the only thing the read can throw is the\n * environment answering \"not defined\", which is the return value, not an error\n * worth reporting. Logging it would print on every call in exactly the context\n * that has nowhere to print.\n */\nlet configuredDevBuild: boolean | undefined;\n\n/**\n * Tell the SDK whether the app around it was built for development.\n *\n * Call it once, at bootstrap, from a context {@link isDevBuild} cannot read:\n *\n * ```ts\n * import { setDevBuild } from \"tempest-react-sdk\";\n *\n * setDevBuild(import.meta.env.DEV);\n * ```\n *\n * **When you need it.** Not for an ordinary Vite, webpack, Rspack or Parcel\n * app: all of them substitute `process.env.NODE_ENV` while building the app, so\n * the automatic read already answers correctly there — measured for Vite 5\n * through 8 in {@link isDevBuild}, whose doc carries the table. What is left is\n * the context nothing compiles or nothing configures:\n *\n * - code no bundler transformed a raw service-worker script registered as a\n * file of its own, a plain `<script type=\"module\">`;\n * - a staging or QA build that never sets `NODE_ENV=production`, where the\n * automatic answer is `true` and `parseResponse` would put the raw response\n * payload in an error string seen by real users. `setDevBuild(false)` closes\n * that;\n * - a test that wants the other branch, and puts it back on the way out.\n *\n * `import.meta.env.DEV` cannot be read by the SDK on your behalf, which is why\n * the signal is a parameter: Vite would replace it while building *this\n * package*, and the published artifact would ship the constant.\n *\n * The default stays `false` when the read throws. `parseResponse` puts the raw\n * response payload in its message when this is on, so guessing `true` in a\n * context that cannot prove it leaks a payload into a production error string.\n * Silence is the safe default; the report is one line away for anyone who wants\n * it.\n *\n * Passing `undefined` clears the override and returns to automatic detection,\n * which is what a test that set it should do on the way out.\n *\n * @param value - `true` for a development build, `false` for production,\n * `undefined` to go back to detecting it.\n *\n * @example\n * // A service worker, or any context no bundler transformed\n * setDevBuild(false);\n *\n * @example\n * // A test that flips it, and puts it back\n * afterEach(() => setDevBuild(undefined));\n */\nexport function setDevBuild(value: boolean | undefined): void {\n configuredDevBuild = value;\n}\n\nexport function isDevBuild(): boolean {\n if (configuredDevBuild !== undefined) return configuredDevBuild;\n try {\n return process.env.NODE_ENV !== \"production\";\n } catch {\n return false;\n }\n}\n"],"mappings":"AAkEA,IAAI,EAmDJ,SAAgB,EAAY,EAAkC,CAC1D,EAAqB,CACzB,CAEA,SAAgB,GAAsB,CAClC,GAAI,IAAuB,IAAA,GAAW,OAAO,EAC7C,GAAI,CACA,OAAA,QAAA,IAAA,WAAgC,YACpC,MAAQ,CACJ,MAAO,EACX,CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"dev-mode.js","names":[],"sources":["../../src/utils/dev-mode.ts"],"sourcesContent":["/**\n * {@link isDevBuild} stays internal, imported by path (`../utils/dev-mode`)\n * rather than through the `utils` barrel: re-exporting it would make a one-line\n * env read part of the package's public API, with the semver weight that\n * carries, for something no consumer asked for. Every dev-only diagnostic in\n * the SDK routes through it — `grep -rn \"dev-mode\" src/` for the current list,\n * which an enumeration written here would only drift away from.\n *\n * {@link setDevBuild} is public, because the environment the SDK cannot read is\n * the one it most needs to: a Vite app. See its doc for why.\n */\n\n/**\n * Whether the consuming app was built for development.\n *\n * Reads `process.env.NODE_ENV`, which every supported bundler (Vite, webpack,\n * Rspack, Parcel) replaces with a literal **while building the app**. That\n * timing is the whole point: `import.meta.env.DEV` looks equivalent and is not,\n * because Vite replaces it while building *this package*, so a published\n * artifact carries the constant `false` and every guard behind it becomes dead\n * code the app's own dev server can no longer switch on.\n *\n * The expression is written out in full, and the failure is caught rather than\n * guarded against. A `typeof process === \"undefined\"` check would read as the\n * careful version and quietly reintroduce the bug: bundlers substitute the\n * member expression `process.env.NODE_ENV` and nothing else, so in a browser —\n * where the identifier `process` does not existthe guard would return early\n * while the literal right after it had already been replaced with\n * `\"development\"`.\n *\n * Returns `false` when the read throws, which is the environment that defines\n * neither symbol: a raw service-worker context, a plain\n * `<script type=\"module\">`, a bundler substituting nothing. **A Vite app is in\n * that set**, `vite dev` included — Vite replaces neither `process` nor\n * `process.env.NODE_ENV` in the app it builds, so the read throws there like\n * anywhere else. Staying quiet is deliberate — a dev-only warning that cannot\n * prove it is in development is better silent than shouting in someone's\n * production console.\n *\n * {@link setDevBuild} is how that app says so, and it is checked first. The\n * automatic read stays exactly as written underneath, bare member expression\n * and all: a `typeof process === \"undefined\"` guard in front of it would return\n * early in a webpack build whose literal had already been substituted, which is\n * the one environment this currently gets right.\n *\n * @returns Whether development-only diagnostics should run.\n *\n * @example\n * if (isDevBuild()) console.warn(\"[my-app] this prop combination does nothing\");\n *\n * @tempest-limits empty-catch — the only thing the read can throw is the\n * environment answering \"not defined\", which is the return value, not an error\n * worth reporting. Logging it would print on every call in exactly the context\n * that has nowhere to print.\n */\nlet configuredDevBuild: boolean | undefined;\n\n/**\n * Tell the SDK whether the app around it was built for development.\n *\n * Call it once, at bootstrap, from a build the SDK cannot inspect:\n *\n * ```ts\n * import { setDevBuild } from \"tempest-react-sdk\";\n *\n * setDevBuild(import.meta.env.DEV);\n * ```\n *\n * **Why the SDK cannot work this out on its own in a Vite app.** The automatic\n * detection reads `process.env.NODE_ENV`, which webpack, Rspack and Parcel\n * replace with a literal while building the *app*. Vite replaces neither half:\n * `process` is not defined in a browser bundle, so the read throws and the\n * answer is `false` including under `vite dev`. Its own signal,\n * `import.meta.env.DEV`, cannot be used here either, because Vite would replace\n * it while building *this package* and the published artifact would ship the\n * constant. Only the app is compiled at the moment the answer is knowable, so\n * only the app can supply it.\n *\n * The default stays `false` on purpose. `parseResponse` puts the raw response\n * payload in its message when this is on, so a wrong guess in the other\n * direction leaks a payload into a production error string. Silence is the safe\n * default; the report is one line away for anyone who wants it.\n *\n * Passing `undefined` clears the override and returns to automatic detection,\n * which is what a test that set it should do on the way out.\n *\n * @param value - `true` for a development build, `false` for production,\n * `undefined` to go back to detecting it.\n *\n * @example\n * // Vite the case this exists for\n * setDevBuild(import.meta.env.DEV);\n *\n * @example\n * // A test that flips it, and puts it back\n * afterEach(() => setDevBuild(undefined));\n */\nexport function setDevBuild(value: boolean | undefined): void {\n configuredDevBuild = value;\n}\n\nexport function isDevBuild(): boolean {\n if (configuredDevBuild !== undefined) return configuredDevBuild;\n try {\n return process.env.NODE_ENV !== \"production\";\n } catch {\n return false;\n }\n}\n"],"mappings":";AAuDA,IAAI;AA0CJ,SAAgB,EAAY,GAAkC;CAC1D,IAAqB;AACzB;AAEA,SAAgB,IAAsB;CAClC,IAAI,MAAuB,KAAA,GAAW,OAAO;CAC7C,IAAI;EACA,OAAA,QAAA,IAAA,aAAgC;CACpC,QAAQ;EACJ,OAAO;CACX;AACJ"}
1
+ {"version":3,"file":"dev-mode.js","names":[],"sources":["../../src/utils/dev-mode.ts"],"sourcesContent":["/**\n * {@link isDevBuild} stays internal, imported by path (`../utils/dev-mode`)\n * rather than through the `utils` barrel: re-exporting it would make a one-line\n * env read part of the package's public API, with the semver weight that\n * carries, for something no consumer asked for. Every dev-only diagnostic in\n * the SDK routes through it — `grep -rn \"dev-mode\" src/` for the current list,\n * which an enumeration written here would only drift away from.\n *\n * {@link setDevBuild} is public, because a context nothing compiles cannot be\n * detected from the inside. See its doc for when that is.\n */\n\n/**\n * Whether the consuming app was built for development.\n *\n * Reads `process.env.NODE_ENV`, which every supported bundler replaces with a\n * literal **while building the app** — Vite included. That last word is a\n * correction: this doc used to claim Vite substitutes neither half, so every\n * dev-only diagnostic in the SDK was unreachable under `vite dev`. Measured on\n * 2026-09-07 with 0.61.0 installed into a probe app, both from a packed tarball\n * (a real copy under `node_modules`, which Vite pre-bundles) and from a `file:`\n * link (a symlink it does not), reading back the module the dev server actually\n * served:\n *\n * | Vite | `vite dev` | `vite build` |\n * | --- | --- | --- |\n * | 5.4.21, 6.4.3, 7.3.6 | folded to `true` | folded to `false` |\n * | 8.2.2 | `\"development\" !== \"production\"` | folded to `false` |\n *\n * So this answers correctly in a Vite app on its own, in development and in\n * production, pre-bundled or served through the dev server's transform. The\n * wrong belief survived releases because nobody read the served module — the\n * expression is not substituted in a *browser console*, which is where it is\n * natural to go looking.\n *\n * `import.meta.env.DEV` still cannot be used here: Vite would replace it while\n * building *this package*, so the published artifact would carry the constant\n * and every guard behind it would be dead code no app could switch back on.\n *\n * The expression is written out in full, and the failure is caught rather than\n * guarded against. A `typeof process === \"undefined\"` check would read as the\n * careful version and quietly break the environments that work: substitution\n * replaces the member expression `process.env.NODE_ENV` and nothing else, so\n * the guard would return early in front of a literal that had already been\n * swapped in. The identifier itself never exists at runtime `typeof process`\n * is `\"undefined\"` in the page, measured in the same probe which is exactly\n * why the read is wrapped in `try` instead.\n *\n * Returns `false` when the read throws, which is the context nothing\n * transformed: a raw service-worker script, a plain `<script type=\"module\">`, a\n * bundler substituting nothing. Staying quiet there is deliberate — a dev-only\n * warning that cannot prove it is in development is better silent than shouting\n * in someone's production console.\n *\n * {@link setDevBuild} overrides all of it and is checked first.\n *\n * @returns Whether development-only diagnostics should run.\n *\n * @example\n * if (isDevBuild()) console.warn(\"[my-app] this prop combination does nothing\");\n *\n * @tempest-limits empty-catch — the only thing the read can throw is the\n * environment answering \"not defined\", which is the return value, not an error\n * worth reporting. Logging it would print on every call in exactly the context\n * that has nowhere to print.\n */\nlet configuredDevBuild: boolean | undefined;\n\n/**\n * Tell the SDK whether the app around it was built for development.\n *\n * Call it once, at bootstrap, from a context {@link isDevBuild} cannot read:\n *\n * ```ts\n * import { setDevBuild } from \"tempest-react-sdk\";\n *\n * setDevBuild(import.meta.env.DEV);\n * ```\n *\n * **When you need it.** Not for an ordinary Vite, webpack, Rspack or Parcel\n * app: all of them substitute `process.env.NODE_ENV` while building the app, so\n * the automatic read already answers correctly there — measured for Vite 5\n * through 8 in {@link isDevBuild}, whose doc carries the table. What is left is\n * the context nothing compiles or nothing configures:\n *\n * - code no bundler transformed a raw service-worker script registered as a\n * file of its own, a plain `<script type=\"module\">`;\n * - a staging or QA build that never sets `NODE_ENV=production`, where the\n * automatic answer is `true` and `parseResponse` would put the raw response\n * payload in an error string seen by real users. `setDevBuild(false)` closes\n * that;\n * - a test that wants the other branch, and puts it back on the way out.\n *\n * `import.meta.env.DEV` cannot be read by the SDK on your behalf, which is why\n * the signal is a parameter: Vite would replace it while building *this\n * package*, and the published artifact would ship the constant.\n *\n * The default stays `false` when the read throws. `parseResponse` puts the raw\n * response payload in its message when this is on, so guessing `true` in a\n * context that cannot prove it leaks a payload into a production error string.\n * Silence is the safe default; the report is one line away for anyone who wants\n * it.\n *\n * Passing `undefined` clears the override and returns to automatic detection,\n * which is what a test that set it should do on the way out.\n *\n * @param value - `true` for a development build, `false` for production,\n * `undefined` to go back to detecting it.\n *\n * @example\n * // A service worker, or any context no bundler transformed\n * setDevBuild(false);\n *\n * @example\n * // A test that flips it, and puts it back\n * afterEach(() => setDevBuild(undefined));\n */\nexport function setDevBuild(value: boolean | undefined): void {\n configuredDevBuild = value;\n}\n\nexport function isDevBuild(): boolean {\n if (configuredDevBuild !== undefined) return configuredDevBuild;\n try {\n return process.env.NODE_ENV !== \"production\";\n } catch {\n return false;\n }\n}\n"],"mappings":";AAkEA,IAAI;AAmDJ,SAAgB,EAAY,GAAkC;CAC1D,IAAqB;AACzB;AAEA,SAAgB,IAAsB;CAClC,IAAI,MAAuB,KAAA,GAAW,OAAO;CAC7C,IAAI;EACA,OAAA,QAAA,IAAA,aAAgC;CACpC,QAAQ;EACJ,OAAO;CACX;AACJ"}
@@ -1,2 +1,2 @@
1
- const e=require("./dev-mode.cjs");var t=new Set;function n(n){e.isDevBuild()&&!t.has(n)&&(t.add(n),console.warn(`[tempest-react-sdk] ${n}: a frame was not valid JSON, so the raw string is being delivered as if it were your message type. Pass \`parser\` to decode it, or \`onParseError\` to drop it and handle the failure. This warning appears once.`))}function r(e,t,r,i){if(t)return{delivered:!0,data:t(e)};try{return{delivered:!0,data:JSON.parse(e)}}catch(t){return r?(r(t,e),{delivered:!1,data:void 0}):(n(i),{delivered:!0,data:e})}}exports.decodeFrame=r;
1
+ const e=require("./dev-mode.cjs"),t=require("./schema-like.cjs");var n=new Set;function r(t){e.isDevBuild()&&!n.has(t)&&(n.add(t),console.warn(`[tempest-react-sdk] ${t}: a frame was not valid JSON, so the raw string is being delivered as if it were your message type. Pass \`parser\` to decode it, or \`onParseError\` to drop it and handle the failure. This warning appears once.`))}function i(t,r){let i=`${t}:schema`;if(!e.isDevBuild()||n.has(i))return;n.add(i);let a=r.map(e=>`${e.path}: ${e.message}`).join(`; `);console.warn(`[tempest-react-sdk] ${t}: a frame did not match \`schema\` and was dropped (${a}). Pass \`onValidationError\` to handle it yourself. This warning appears once.`)}function a(e,n,a){let{parser:o,onParseError:s,schema:c,onValidationError:l}=a;function u(r){if(!c)return{delivered:!0,data:r};let a=t.validateWithSchema(c,r);return a.ok?{delivered:!0,data:a.data}:(l?l(a.issues,e):i(n,a.issues),{delivered:!1,data:void 0})}if(o)return u(o(e));let d;try{d=JSON.parse(e)}catch(t){return s?(s(t,e),{delivered:!1,data:void 0}):c?u(e):(r(n),{delivered:!0,data:e})}return u(d)}exports.decodeFrame=a;
2
2
  //# sourceMappingURL=json-frame.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-frame.cjs","names":[],"sources":["../../src/utils/json-frame.ts"],"sourcesContent":["import { isDevBuild } from \"./dev-mode\";\n\n/**\n * The one decoder behind `createWebSocket`, `useWebSocket` and\n * `createEventStream`.\n *\n * Internal, and imported by path rather than through the `utils` barrel: it\n * exists so the three transports share one answer to \"the frame is not JSON\",\n * not so consumers can call it.\n *\n * That question used to have three identical copies of the same wrong answer —\n * `return raw as unknown as T`, which hands the consumer a `string` announced as\n * `T`. The failure never surfaced at the parse; it surfaced later, on the first\n * `message.id`, with nothing left to say the frame had not been JSON.\n */\n\n/** Outcome of decoding one frame. */\nexport interface DecodedFrame<T> {\n /** Whether the message should reach `onMessage`. */\n delivered: boolean;\n /** The decoded payload. Only meaningful when `delivered` is `true`. */\n data: T;\n}\n\nconst warned = new Set<string>();\n\n/**\n * Warn once per transport that a frame arrived which was not JSON.\n *\n * Once, because a stream sending text frames sends many, and a console line per\n * frame buries the one that mattered. Development builds only.\n *\n * @param transport - Label used in the message, e.g. `\"createWebSocket\"`.\n * @returns Nothing.\n */\nfunction warnOnce(transport: string): void {\n if (!isDevBuild() || warned.has(transport)) return;\n warned.add(transport);\n console.warn(\n `[tempest-react-sdk] ${transport}: a frame was not valid JSON, so the raw string is ` +\n `being delivered as if it were your message type. Pass \\`parser\\` to decode it, or ` +\n `\\`onParseError\\` to drop it and handle the failure. This warning appears once.`,\n );\n}\n\n/**\n * Decode one frame, reporting whether it should be delivered.\n *\n * A caller-supplied `parser` owns the frame completely and its result is always\n * delivered — decoding text, binary-as-base64 or a protocol of its own is the\n * point of that option.\n *\n * Without one, the frame is parsed as JSON. When that throws:\n *\n * - with `onParseError`, the callback fires and the frame is **not** delivered,\n * because a consumer that asked to hear about failures did not ask to also\n * receive the broken frame;\n * - without it, the raw string is delivered as `T` — the behaviour every version\n * before this one had, kept so nothing breaks — and development builds warn\n * once that it happened.\n *\n * @param raw - The frame body as text.\n * @param parser - Caller-supplied decoder, if any.\n * @param onParseError - Caller-supplied failure handler, if any.\n * @param transport - Label used in the development warning.\n * @returns Whether to deliver, and the payload.\n */\nexport function decodeFrame<T>(\n raw: string,\n parser: ((raw: string) => T) | undefined,\n onParseError: ((error: unknown, raw: string) => void) | undefined,\n transport: string,\n): DecodedFrame<T> {\n if (parser) return { delivered: true, data: parser(raw) };\n try {\n return { delivered: true, data: JSON.parse(raw) as T };\n } catch (error) {\n if (onParseError) {\n onParseError(error, raw);\n return { delivered: false, data: undefined as T };\n }\n warnOnce(transport);\n return { delivered: true, data: raw as unknown as T };\n }\n}\n\n/**\n * Forget which transports have already warned.\n *\n * Exists for tests, which would otherwise see the first case swallow the\n * warning for every case after it.\n *\n * @returns Nothing.\n */\nexport function resetFrameWarnings(): void {\n warned.clear();\n}\n"],"mappings":"kCAwBA,IAAM,EAAS,IAAI,IAWnB,SAAS,EAAS,EAAyB,CAClC,EAAA,WAAW,GAAK,GAAO,IAAI,CAAS,IACzC,EAAO,IAAI,CAAS,EACpB,QAAQ,KACJ,uBAAuB,EAAU,oNAGrC,EACJ,CAwBA,SAAgB,EACZ,EACA,EACA,EACA,EACe,CACf,GAAI,EAAQ,MAAO,CAAE,UAAW,GAAM,KAAM,EAAO,CAAG,CAAE,EACxD,GAAI,CACA,MAAO,CAAE,UAAW,GAAM,KAAM,KAAK,MAAM,CAAG,CAAO,CACzD,OAAS,EAAO,CAMZ,OALI,GACA,EAAa,EAAO,CAAG,EAChB,CAAE,UAAW,GAAO,KAAM,IAAA,EAAe,IAEpD,EAAS,CAAS,EACX,CAAE,UAAW,GAAM,KAAM,CAAoB,EACxD,CACJ"}
1
+ {"version":3,"file":"json-frame.cjs","names":[],"sources":["../../src/utils/json-frame.ts"],"sourcesContent":["import { isDevBuild } from \"./dev-mode\";\nimport { validateWithSchema, type SchemaIssue, type SchemaLike } from \"./schema-like\";\n\n/**\n * The one decoder behind `createWebSocket`, `useWebSocket` and\n * `createEventStream`.\n *\n * Internal, and imported by path rather than through the `utils` barrel: it\n * exists so the three transports share one answer to \"the frame is not JSON\",\n * not so consumers can call it.\n *\n * That question used to have three identical copies of the same wrong answer —\n * `return raw as unknown as T`, which hands the consumer a `string` announced as\n * `T`. The failure never surfaced at the parse; it surfaced later, on the first\n * `message.id`, with nothing left to say the frame had not been JSON.\n */\n\n/** Outcome of decoding one frame. */\nexport interface DecodedFrame<T> {\n /** Whether the message should reach `onMessage`. */\n delivered: boolean;\n /** The decoded payload. Only meaningful when `delivered` is `true`. */\n data: T;\n}\n\n/** How one frame should be turned into `T`, and who hears about failures. */\nexport interface DecodeFrameOptions<T> {\n /** Caller-supplied decoder, which owns the frame completely. */\n parser?: (raw: string) => T;\n /** Caller-supplied handler for a frame that is not valid JSON. */\n onParseError?: (error: unknown, raw: string) => void;\n /** Caller-supplied schema the decoded payload must satisfy. */\n schema?: SchemaLike<T>;\n /** Caller-supplied handler for a payload the schema refused. */\n onValidationError?: (issues: SchemaIssue[], raw: string) => void;\n}\n\nconst warned = new Set<string>();\n\n/**\n * Warn once per transport that a frame arrived which was not JSON.\n *\n * Once, because a stream sending text frames sends many, and a console line per\n * frame buries the one that mattered. Development builds only.\n *\n * @param transport - Label used in the message, e.g. `\"createWebSocket\"`.\n * @returns Nothing.\n */\nfunction warnOnce(transport: string): void {\n if (!isDevBuild() || warned.has(transport)) return;\n warned.add(transport);\n console.warn(\n `[tempest-react-sdk] ${transport}: a frame was not valid JSON, so the raw string is ` +\n `being delivered as if it were your message type. Pass \\`parser\\` to decode it, or ` +\n `\\`onParseError\\` to drop it and handle the failure. This warning appears once.`,\n );\n}\n\n/**\n * Warn once per transport that a frame was dropped by the schema.\n *\n * A dropped frame with no `onValidationError` is otherwise completely silent —\n * the stream looks healthy and the payload simply never arrives, which is the\n * hardest shape of failure to notice. Development builds only, once, for the\n * same reason as {@link warnOnce}.\n *\n * @param transport - Label used in the message, e.g. `\"createEventStream\"`.\n * @param issues - The issues the schema reported, summarized into the message.\n * @returns Nothing.\n */\nfunction warnValidationOnce(transport: string, issues: SchemaIssue[]): void {\n const key = `${transport}:schema`;\n if (!isDevBuild() || warned.has(key)) return;\n warned.add(key);\n const summary = issues.map((issue) => `${issue.path}: ${issue.message}`).join(\"; \");\n console.warn(\n `[tempest-react-sdk] ${transport}: a frame did not match \\`schema\\` and was dropped ` +\n `(${summary}). Pass \\`onValidationError\\` to handle it yourself. This warning ` +\n `appears once.`,\n );\n}\n\n/**\n * Decode one frame, reporting whether it should be delivered.\n *\n * A caller-supplied `parser` owns the frame completely: its result is delivered\n * as it is, or validated when a `schema` was also supplied — decoding text,\n * binary-as-base64 or a protocol of its own is the point of that option.\n *\n * Without one, the frame is parsed as JSON. When that throws:\n *\n * - with `onParseError`, the callback fires and the frame is **not** delivered,\n * because a consumer that asked to hear about failures did not ask to also\n * receive the broken frame;\n * - with `schema` and no `onParseError`, the raw string goes to the schema,\n * which refuses it — a caller who asked for validation never receives an\n * unvalidated payload, and a frame the server sent empty is exactly this case;\n * - with neither, the raw string is delivered as `T` — the behaviour every\n * version before this one had, kept so nothing breaks — and development builds\n * warn once that it happened.\n *\n * With a `schema`, a payload the schema refuses is not delivered, and\n * `onValidationError` hears the issues. The value delivered is the schema's\n * **output**, so a schema that coerces or defaults is honoured.\n *\n * @param raw - The frame body as text.\n * @param transport - Label used in the development warnings.\n * @param options - Caller-supplied decoder, schema and failure handlers.\n * @returns Whether to deliver, and the payload.\n */\nexport function decodeFrame<T>(\n raw: string,\n transport: string,\n options: DecodeFrameOptions<T>,\n): DecodedFrame<T> {\n const { parser, onParseError, schema, onValidationError } = options;\n\n /**\n * Put one decoded payload through the schema, when there is one.\n *\n * @param value - The payload as parsing produced it.\n * @returns Whether to deliver, and the payload the consumer should see.\n */\n function gate(value: unknown): DecodedFrame<T> {\n if (!schema) return { delivered: true, data: value as T };\n const result = validateWithSchema(schema, value);\n if (result.ok) return { delivered: true, data: result.data };\n if (onValidationError) onValidationError(result.issues, raw);\n else warnValidationOnce(transport, result.issues);\n return { delivered: false, data: undefined as T };\n }\n\n if (parser) return gate(parser(raw));\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw);\n } catch (error) {\n if (onParseError) {\n onParseError(error, raw);\n return { delivered: false, data: undefined as T };\n }\n if (schema) return gate(raw);\n warnOnce(transport);\n return { delivered: true, data: raw as unknown as T };\n }\n return gate(parsed);\n}\n\n/**\n * Forget which transports have already warned.\n *\n * Exists for tests, which would otherwise see the first case swallow the\n * warning for every case after it.\n *\n * @returns Nothing.\n */\nexport function resetFrameWarnings(): void {\n warned.clear();\n}\n"],"mappings":"iEAqCA,IAAM,EAAS,IAAI,IAWnB,SAAS,EAAS,EAAyB,CAClC,EAAA,WAAW,GAAK,GAAO,IAAI,CAAS,IACzC,EAAO,IAAI,CAAS,EACpB,QAAQ,KACJ,uBAAuB,EAAU,oNAGrC,EACJ,CAcA,SAAS,EAAmB,EAAmB,EAA6B,CACxE,IAAM,EAAM,GAAG,EAAU,SACzB,GAAI,CAAC,EAAA,WAAW,GAAK,EAAO,IAAI,CAAG,EAAG,OACtC,EAAO,IAAI,CAAG,EACd,IAAM,EAAU,EAAO,IAAK,GAAU,GAAG,EAAM,KAAK,IAAI,EAAM,SAAS,CAAC,CAAC,KAAK,IAAI,EAClF,QAAQ,KACJ,uBAAuB,EAAU,sDACzB,EAAQ,gFAEpB,CACJ,CA8BA,SAAgB,EACZ,EACA,EACA,EACe,CACf,GAAM,CAAE,SAAQ,eAAc,SAAQ,qBAAsB,EAQ5D,SAAS,EAAK,EAAiC,CAC3C,GAAI,CAAC,EAAQ,MAAO,CAAE,UAAW,GAAM,KAAM,CAAW,EACxD,IAAM,EAAS,EAAA,mBAAmB,EAAQ,CAAK,EAI/C,OAHI,EAAO,GAAW,CAAE,UAAW,GAAM,KAAM,EAAO,IAAK,GACvD,EAAmB,EAAkB,EAAO,OAAQ,CAAG,EACtD,EAAmB,EAAW,EAAO,MAAM,EACzC,CAAE,UAAW,GAAO,KAAM,IAAA,EAAe,EACpD,CAEA,GAAI,EAAQ,OAAO,EAAK,EAAO,CAAG,CAAC,EACnC,IAAI,EACJ,GAAI,CACA,EAAS,KAAK,MAAM,CAAG,CAC3B,OAAS,EAAO,CAOZ,OANI,GACA,EAAa,EAAO,CAAG,EAChB,CAAE,UAAW,GAAO,KAAM,IAAA,EAAe,GAEhD,EAAe,EAAK,CAAG,GAC3B,EAAS,CAAS,EACX,CAAE,UAAW,GAAM,KAAM,CAAoB,EACxD,CACA,OAAO,EAAK,CAAM,CACtB"}
@@ -1,30 +1,49 @@
1
1
  import { isDevBuild as e } from "./dev-mode.js";
2
+ import { validateWithSchema as t } from "./schema-like.js";
2
3
  //#region src/utils/json-frame.ts
3
- var t = /* @__PURE__ */ new Set();
4
- function n(n) {
5
- e() && !t.has(n) && (t.add(n), console.warn(`[tempest-react-sdk] ${n}: a frame was not valid JSON, so the raw string is being delivered as if it were your message type. Pass \`parser\` to decode it, or \`onParseError\` to drop it and handle the failure. This warning appears once.`));
4
+ var n = /* @__PURE__ */ new Set();
5
+ function r(t) {
6
+ e() && !n.has(t) && (n.add(t), console.warn(`[tempest-react-sdk] ${t}: a frame was not valid JSON, so the raw string is being delivered as if it were your message type. Pass \`parser\` to decode it, or \`onParseError\` to drop it and handle the failure. This warning appears once.`));
6
7
  }
7
- function r(e, t, r, i) {
8
- if (t) return {
9
- delivered: !0,
10
- data: t(e)
11
- };
12
- try {
13
- return {
8
+ function i(t, r) {
9
+ let i = `${t}:schema`;
10
+ if (!e() || n.has(i)) return;
11
+ n.add(i);
12
+ let a = r.map((e) => `${e.path}: ${e.message}`).join("; ");
13
+ console.warn(`[tempest-react-sdk] ${t}: a frame did not match \`schema\` and was dropped (${a}). Pass \`onValidationError\` to handle it yourself. This warning appears once.`);
14
+ }
15
+ function a(e, n, a) {
16
+ let { parser: o, onParseError: s, schema: c, onValidationError: l } = a;
17
+ function u(r) {
18
+ if (!c) return {
14
19
  delivered: !0,
15
- data: JSON.parse(e)
20
+ data: r
16
21
  };
22
+ let a = t(c, r);
23
+ return a.ok ? {
24
+ delivered: !0,
25
+ data: a.data
26
+ } : (l ? l(a.issues, e) : i(n, a.issues), {
27
+ delivered: !1,
28
+ data: void 0
29
+ });
30
+ }
31
+ if (o) return u(o(e));
32
+ let d;
33
+ try {
34
+ d = JSON.parse(e);
17
35
  } catch (t) {
18
- return r ? (r(t, e), {
36
+ return s ? (s(t, e), {
19
37
  delivered: !1,
20
38
  data: void 0
21
- }) : (n(i), {
39
+ }) : c ? u(e) : (r(n), {
22
40
  delivered: !0,
23
41
  data: e
24
42
  });
25
43
  }
44
+ return u(d);
26
45
  }
27
46
  //#endregion
28
- export { r as decodeFrame };
47
+ export { a as decodeFrame };
29
48
 
30
49
  //# sourceMappingURL=json-frame.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-frame.js","names":[],"sources":["../../src/utils/json-frame.ts"],"sourcesContent":["import { isDevBuild } from \"./dev-mode\";\n\n/**\n * The one decoder behind `createWebSocket`, `useWebSocket` and\n * `createEventStream`.\n *\n * Internal, and imported by path rather than through the `utils` barrel: it\n * exists so the three transports share one answer to \"the frame is not JSON\",\n * not so consumers can call it.\n *\n * That question used to have three identical copies of the same wrong answer —\n * `return raw as unknown as T`, which hands the consumer a `string` announced as\n * `T`. The failure never surfaced at the parse; it surfaced later, on the first\n * `message.id`, with nothing left to say the frame had not been JSON.\n */\n\n/** Outcome of decoding one frame. */\nexport interface DecodedFrame<T> {\n /** Whether the message should reach `onMessage`. */\n delivered: boolean;\n /** The decoded payload. Only meaningful when `delivered` is `true`. */\n data: T;\n}\n\nconst warned = new Set<string>();\n\n/**\n * Warn once per transport that a frame arrived which was not JSON.\n *\n * Once, because a stream sending text frames sends many, and a console line per\n * frame buries the one that mattered. Development builds only.\n *\n * @param transport - Label used in the message, e.g. `\"createWebSocket\"`.\n * @returns Nothing.\n */\nfunction warnOnce(transport: string): void {\n if (!isDevBuild() || warned.has(transport)) return;\n warned.add(transport);\n console.warn(\n `[tempest-react-sdk] ${transport}: a frame was not valid JSON, so the raw string is ` +\n `being delivered as if it were your message type. Pass \\`parser\\` to decode it, or ` +\n `\\`onParseError\\` to drop it and handle the failure. This warning appears once.`,\n );\n}\n\n/**\n * Decode one frame, reporting whether it should be delivered.\n *\n * A caller-supplied `parser` owns the frame completely and its result is always\n * delivered — decoding text, binary-as-base64 or a protocol of its own is the\n * point of that option.\n *\n * Without one, the frame is parsed as JSON. When that throws:\n *\n * - with `onParseError`, the callback fires and the frame is **not** delivered,\n * because a consumer that asked to hear about failures did not ask to also\n * receive the broken frame;\n * - without it, the raw string is delivered as `T` — the behaviour every version\n * before this one had, kept so nothing breaks — and development builds warn\n * once that it happened.\n *\n * @param raw - The frame body as text.\n * @param parser - Caller-supplied decoder, if any.\n * @param onParseError - Caller-supplied failure handler, if any.\n * @param transport - Label used in the development warning.\n * @returns Whether to deliver, and the payload.\n */\nexport function decodeFrame<T>(\n raw: string,\n parser: ((raw: string) => T) | undefined,\n onParseError: ((error: unknown, raw: string) => void) | undefined,\n transport: string,\n): DecodedFrame<T> {\n if (parser) return { delivered: true, data: parser(raw) };\n try {\n return { delivered: true, data: JSON.parse(raw) as T };\n } catch (error) {\n if (onParseError) {\n onParseError(error, raw);\n return { delivered: false, data: undefined as T };\n }\n warnOnce(transport);\n return { delivered: true, data: raw as unknown as T };\n }\n}\n\n/**\n * Forget which transports have already warned.\n *\n * Exists for tests, which would otherwise see the first case swallow the\n * warning for every case after it.\n *\n * @returns Nothing.\n */\nexport function resetFrameWarnings(): void {\n warned.clear();\n}\n"],"mappings":";;AAwBA,IAAM,oBAAS,IAAI,IAAY;AAW/B,SAAS,EAAS,GAAyB;CACnC,AAAC,EAAW,KAAK,GAAO,IAAI,CAAS,MACzC,EAAO,IAAI,CAAS,GACpB,QAAQ,KACJ,uBAAuB,EAAU,oNAGrC;AACJ;AAwBA,SAAgB,EACZ,GACA,GACA,GACA,GACe;CACf,IAAI,GAAQ,OAAO;EAAE,WAAW;EAAM,MAAM,EAAO,CAAG;CAAE;CACxD,IAAI;EACA,OAAO;GAAE,WAAW;GAAM,MAAM,KAAK,MAAM,CAAG;EAAO;CACzD,SAAS,GAAO;EAMZ,OALI,KACA,EAAa,GAAO,CAAG,GAChB;GAAE,WAAW;GAAO,MAAM,KAAA;EAAe,MAEpD,EAAS,CAAS,GACX;GAAE,WAAW;GAAM,MAAM;EAAoB;CACxD;AACJ"}
1
+ {"version":3,"file":"json-frame.js","names":[],"sources":["../../src/utils/json-frame.ts"],"sourcesContent":["import { isDevBuild } from \"./dev-mode\";\nimport { validateWithSchema, type SchemaIssue, type SchemaLike } from \"./schema-like\";\n\n/**\n * The one decoder behind `createWebSocket`, `useWebSocket` and\n * `createEventStream`.\n *\n * Internal, and imported by path rather than through the `utils` barrel: it\n * exists so the three transports share one answer to \"the frame is not JSON\",\n * not so consumers can call it.\n *\n * That question used to have three identical copies of the same wrong answer —\n * `return raw as unknown as T`, which hands the consumer a `string` announced as\n * `T`. The failure never surfaced at the parse; it surfaced later, on the first\n * `message.id`, with nothing left to say the frame had not been JSON.\n */\n\n/** Outcome of decoding one frame. */\nexport interface DecodedFrame<T> {\n /** Whether the message should reach `onMessage`. */\n delivered: boolean;\n /** The decoded payload. Only meaningful when `delivered` is `true`. */\n data: T;\n}\n\n/** How one frame should be turned into `T`, and who hears about failures. */\nexport interface DecodeFrameOptions<T> {\n /** Caller-supplied decoder, which owns the frame completely. */\n parser?: (raw: string) => T;\n /** Caller-supplied handler for a frame that is not valid JSON. */\n onParseError?: (error: unknown, raw: string) => void;\n /** Caller-supplied schema the decoded payload must satisfy. */\n schema?: SchemaLike<T>;\n /** Caller-supplied handler for a payload the schema refused. */\n onValidationError?: (issues: SchemaIssue[], raw: string) => void;\n}\n\nconst warned = new Set<string>();\n\n/**\n * Warn once per transport that a frame arrived which was not JSON.\n *\n * Once, because a stream sending text frames sends many, and a console line per\n * frame buries the one that mattered. Development builds only.\n *\n * @param transport - Label used in the message, e.g. `\"createWebSocket\"`.\n * @returns Nothing.\n */\nfunction warnOnce(transport: string): void {\n if (!isDevBuild() || warned.has(transport)) return;\n warned.add(transport);\n console.warn(\n `[tempest-react-sdk] ${transport}: a frame was not valid JSON, so the raw string is ` +\n `being delivered as if it were your message type. Pass \\`parser\\` to decode it, or ` +\n `\\`onParseError\\` to drop it and handle the failure. This warning appears once.`,\n );\n}\n\n/**\n * Warn once per transport that a frame was dropped by the schema.\n *\n * A dropped frame with no `onValidationError` is otherwise completely silent —\n * the stream looks healthy and the payload simply never arrives, which is the\n * hardest shape of failure to notice. Development builds only, once, for the\n * same reason as {@link warnOnce}.\n *\n * @param transport - Label used in the message, e.g. `\"createEventStream\"`.\n * @param issues - The issues the schema reported, summarized into the message.\n * @returns Nothing.\n */\nfunction warnValidationOnce(transport: string, issues: SchemaIssue[]): void {\n const key = `${transport}:schema`;\n if (!isDevBuild() || warned.has(key)) return;\n warned.add(key);\n const summary = issues.map((issue) => `${issue.path}: ${issue.message}`).join(\"; \");\n console.warn(\n `[tempest-react-sdk] ${transport}: a frame did not match \\`schema\\` and was dropped ` +\n `(${summary}). Pass \\`onValidationError\\` to handle it yourself. This warning ` +\n `appears once.`,\n );\n}\n\n/**\n * Decode one frame, reporting whether it should be delivered.\n *\n * A caller-supplied `parser` owns the frame completely: its result is delivered\n * as it is, or validated when a `schema` was also supplied — decoding text,\n * binary-as-base64 or a protocol of its own is the point of that option.\n *\n * Without one, the frame is parsed as JSON. When that throws:\n *\n * - with `onParseError`, the callback fires and the frame is **not** delivered,\n * because a consumer that asked to hear about failures did not ask to also\n * receive the broken frame;\n * - with `schema` and no `onParseError`, the raw string goes to the schema,\n * which refuses it — a caller who asked for validation never receives an\n * unvalidated payload, and a frame the server sent empty is exactly this case;\n * - with neither, the raw string is delivered as `T` — the behaviour every\n * version before this one had, kept so nothing breaks — and development builds\n * warn once that it happened.\n *\n * With a `schema`, a payload the schema refuses is not delivered, and\n * `onValidationError` hears the issues. The value delivered is the schema's\n * **output**, so a schema that coerces or defaults is honoured.\n *\n * @param raw - The frame body as text.\n * @param transport - Label used in the development warnings.\n * @param options - Caller-supplied decoder, schema and failure handlers.\n * @returns Whether to deliver, and the payload.\n */\nexport function decodeFrame<T>(\n raw: string,\n transport: string,\n options: DecodeFrameOptions<T>,\n): DecodedFrame<T> {\n const { parser, onParseError, schema, onValidationError } = options;\n\n /**\n * Put one decoded payload through the schema, when there is one.\n *\n * @param value - The payload as parsing produced it.\n * @returns Whether to deliver, and the payload the consumer should see.\n */\n function gate(value: unknown): DecodedFrame<T> {\n if (!schema) return { delivered: true, data: value as T };\n const result = validateWithSchema(schema, value);\n if (result.ok) return { delivered: true, data: result.data };\n if (onValidationError) onValidationError(result.issues, raw);\n else warnValidationOnce(transport, result.issues);\n return { delivered: false, data: undefined as T };\n }\n\n if (parser) return gate(parser(raw));\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw);\n } catch (error) {\n if (onParseError) {\n onParseError(error, raw);\n return { delivered: false, data: undefined as T };\n }\n if (schema) return gate(raw);\n warnOnce(transport);\n return { delivered: true, data: raw as unknown as T };\n }\n return gate(parsed);\n}\n\n/**\n * Forget which transports have already warned.\n *\n * Exists for tests, which would otherwise see the first case swallow the\n * warning for every case after it.\n *\n * @returns Nothing.\n */\nexport function resetFrameWarnings(): void {\n warned.clear();\n}\n"],"mappings":";;;AAqCA,IAAM,oBAAS,IAAI,IAAY;AAW/B,SAAS,EAAS,GAAyB;CACnC,AAAC,EAAW,KAAK,GAAO,IAAI,CAAS,MACzC,EAAO,IAAI,CAAS,GACpB,QAAQ,KACJ,uBAAuB,EAAU,oNAGrC;AACJ;AAcA,SAAS,EAAmB,GAAmB,GAA6B;CACxE,IAAM,IAAM,GAAG,EAAU;CACzB,IAAI,CAAC,EAAW,KAAK,EAAO,IAAI,CAAG,GAAG;CACtC,EAAO,IAAI,CAAG;CACd,IAAM,IAAU,EAAO,KAAK,MAAU,GAAG,EAAM,KAAK,IAAI,EAAM,SAAS,CAAC,CAAC,KAAK,IAAI;CAClF,QAAQ,KACJ,uBAAuB,EAAU,sDACzB,EAAQ,gFAEpB;AACJ;AA8BA,SAAgB,EACZ,GACA,GACA,GACe;CACf,IAAM,EAAE,WAAQ,iBAAc,WAAQ,yBAAsB;CAQ5D,SAAS,EAAK,GAAiC;EAC3C,IAAI,CAAC,GAAQ,OAAO;GAAE,WAAW;GAAM,MAAM;EAAW;EACxD,IAAM,IAAS,EAAmB,GAAQ,CAAK;EAI/C,OAHI,EAAO,KAAW;GAAE,WAAW;GAAM,MAAM,EAAO;EAAK,KACvD,IAAmB,EAAkB,EAAO,QAAQ,CAAG,IACtD,EAAmB,GAAW,EAAO,MAAM,GACzC;GAAE,WAAW;GAAO,MAAM,KAAA;EAAe;CACpD;CAEA,IAAI,GAAQ,OAAO,EAAK,EAAO,CAAG,CAAC;CACnC,IAAI;CACJ,IAAI;EACA,IAAS,KAAK,MAAM,CAAG;CAC3B,SAAS,GAAO;EAOZ,OANI,KACA,EAAa,GAAO,CAAG,GAChB;GAAE,WAAW;GAAO,MAAM,KAAA;EAAe,KAEhD,IAAe,EAAK,CAAG,KAC3B,EAAS,CAAS,GACX;GAAE,WAAW;GAAM,MAAM;EAAoB;CACxD;CACA,OAAO,EAAK,CAAM;AACtB"}
@@ -0,0 +1,2 @@
1
+ var e={path:`<root>`,message:`the schema validated asynchronously, and a frame is decoded synchronously — there is nowhere to await it. Use a synchronous schema, or validate inside your own handler.`};function t(e){return!e||e.length===0?`<root>`:e.map(e=>String(typeof e==`object`&&e?e.key:e)).join(`.`)}function n(e){return{path:t(e.path),message:e.message}}function r(t,r){if(`~standard`in t){let i=t[`~standard`].validate(r);if(typeof i.then==`function`)return{ok:!1,issues:[e]};let a=i;return a.issues?{ok:!1,issues:a.issues.map(n)}:{ok:!0,data:a.value}}let i=t.safeParse(r);return i.success?{ok:!0,data:i.data}:{ok:!1,issues:i.error.issues.map(n)}}exports.validateWithSchema=r;
2
+ //# sourceMappingURL=schema-like.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-like.cjs","names":[],"sources":["../../src/utils/schema-like.ts"],"sourcesContent":["/**\n * The SDK's answer to \"the caller handed me a schema\" — one normalizer behind\n * every option that takes one.\n *\n * Internal, and imported by path rather than through the `utils` barrel: the\n * function exists so `decodeFrame` and anything else that validates a payload\n * share one reading of the two shapes below, not so consumers can call it. The\n * types are public, because an option typed `SchemaLike<T>` is a name the\n * consumer has to be able to write down.\n *\n * Two shapes are accepted on purpose:\n *\n * - [Standard Schema](https://standardschema.dev) (`~standard`), which zod\n * (>=3.24), valibot and arktype all implement, so the SDK validates against\n * any of them without depending on one;\n * - `.safeParse`, because the SDK's own zod range starts at `^3.23.0`, which\n * predates `~standard`, and because it is the method every zod user already\n * knows.\n */\n\n/** One field-level complaint from a schema validation. */\nexport interface SchemaIssue {\n /** Dotted path to the offending field, or `\"<root>\"` for the value itself. */\n path: string;\n /** What the validator said was wrong. */\n message: string;\n}\n\n/** A path segment as Standard Schema reports it: a key, or an object holding one. */\ntype IssuePathSegment = PropertyKey | { readonly key: PropertyKey };\n\n/** One issue as either supported shape reports it. */\ninterface RawIssue {\n readonly message: string;\n readonly path?: readonly IssuePathSegment[] | undefined;\n}\n\n/** A schema exposing the [Standard Schema](https://standardschema.dev) interface. */\nexport interface StandardSchemaLike<T> {\n readonly \"~standard\": {\n readonly validate: (\n value: unknown,\n ) =>\n | { readonly value: T; readonly issues?: undefined }\n | { readonly issues: readonly RawIssue[] }\n | Promise<\n | { readonly value: T; readonly issues?: undefined }\n | { readonly issues: readonly RawIssue[] }\n >;\n };\n}\n\n/** A schema exposing zod's `.safeParse`, including versions older than `~standard`. */\nexport interface SafeParseSchemaLike<T> {\n readonly safeParse: (\n value: unknown,\n ) =>\n | { readonly success: true; readonly data: T }\n | { readonly success: false; readonly error: { readonly issues: readonly RawIssue[] } };\n}\n\n/** Anything the SDK can validate a payload against. */\nexport type SchemaLike<T> = StandardSchemaLike<T> | SafeParseSchemaLike<T>;\n\n/** Outcome of validating one value against a {@link SchemaLike}. */\nexport type SchemaValidation<T> = { ok: true; data: T } | { ok: false; issues: SchemaIssue[] };\n\n/**\n * The issue reported when a schema answers asynchronously.\n *\n * A frame is decoded inside the transport's `message` handler and delivered from\n * it, so there is nowhere to await: awaiting would deliver frames in whatever\n * order their validations settled, which is worse than refusing. Reported as a\n * validation failure rather than thrown, so it arrives through the same\n * `onValidationError` the caller already registered.\n */\nconst ASYNC_ISSUE: SchemaIssue = {\n path: \"<root>\",\n message:\n \"the schema validated asynchronously, and a frame is decoded synchronously — \" +\n \"there is nowhere to await it. Use a synchronous schema, or validate inside your \" +\n \"own handler.\",\n};\n\n/**\n * Format a Standard Schema issue path as a dotted string.\n *\n * @param path - The reported path, if any.\n * @returns The dotted path, or `\"<root>\"` when the value itself is at fault.\n */\nfunction formatPath(path: readonly IssuePathSegment[] | undefined): string {\n if (!path || path.length === 0) return \"<root>\";\n return path\n .map((segment) =>\n typeof segment === \"object\" && segment !== null ? String(segment.key) : String(segment),\n )\n .join(\".\");\n}\n\n/**\n * Normalize one issue from either supported shape.\n *\n * @param issue - The issue as the validator reported it.\n * @returns The issue with a dotted path.\n */\nfunction toIssue(issue: RawIssue): SchemaIssue {\n return { path: formatPath(issue.path), message: issue.message };\n}\n\n/**\n * Validate a value against a schema, whichever of the two shapes it has.\n *\n * @param schema - A Standard Schema or a `.safeParse` schema.\n * @param value - The value to validate.\n * @returns The validated output, or the issues explaining why it was refused.\n */\nexport function validateWithSchema<T>(schema: SchemaLike<T>, value: unknown): SchemaValidation<T> {\n if (\"~standard\" in schema) {\n const result = schema[\"~standard\"].validate(value);\n if (typeof (result as { then?: unknown }).then === \"function\") {\n return { ok: false, issues: [ASYNC_ISSUE] };\n }\n const settled = result as\n | { readonly value: T; readonly issues?: undefined }\n | { readonly issues: readonly RawIssue[] };\n if (settled.issues) return { ok: false, issues: settled.issues.map(toIssue) };\n return { ok: true, data: settled.value };\n }\n const result = schema.safeParse(value);\n if (result.success) return { ok: true, data: result.data };\n return { ok: false, issues: result.error.issues.map(toIssue) };\n}\n"],"mappings":"AA4EA,IAAM,EAA2B,CAC7B,KAAM,SACN,QACI,0KAGR,EAQA,SAAS,EAAW,EAAuD,CAEvE,MADI,CAAC,GAAQ,EAAK,SAAW,EAAU,SAChC,EACF,IAAK,GACgD,OAAlD,OAAO,GAAY,UAAY,EAA0B,EAAQ,IAAc,CAAO,CAC1F,CAAC,CACA,KAAK,GAAG,CACjB,CAQA,SAAS,EAAQ,EAA8B,CAC3C,MAAO,CAAE,KAAM,EAAW,EAAM,IAAI,EAAG,QAAS,EAAM,OAAQ,CAClE,CASA,SAAgB,EAAsB,EAAuB,EAAqC,CAC9F,GAAI,cAAe,EAAQ,CACvB,IAAM,EAAS,EAAO,YAAY,CAAC,SAAS,CAAK,EACjD,GAAI,OAAQ,EAA8B,MAAS,WAC/C,MAAO,CAAE,GAAI,GAAO,OAAQ,CAAC,CAAW,CAAE,EAE9C,IAAM,EAAU,EAIhB,OADI,EAAQ,OAAe,CAAE,GAAI,GAAO,OAAQ,EAAQ,OAAO,IAAI,CAAO,CAAE,EACrE,CAAE,GAAI,GAAM,KAAM,EAAQ,KAAM,CAC3C,CACA,IAAM,EAAS,EAAO,UAAU,CAAK,EAErC,OADI,EAAO,QAAgB,CAAE,GAAI,GAAM,KAAM,EAAO,IAAK,EAClD,CAAE,GAAI,GAAO,OAAQ,EAAO,MAAM,OAAO,IAAI,CAAO,CAAE,CACjE"}
@@ -0,0 +1,43 @@
1
+ //#region src/utils/schema-like.ts
2
+ var e = {
3
+ path: "<root>",
4
+ message: "the schema validated asynchronously, and a frame is decoded synchronously — there is nowhere to await it. Use a synchronous schema, or validate inside your own handler."
5
+ };
6
+ function t(e) {
7
+ return !e || e.length === 0 ? "<root>" : e.map((e) => String(typeof e == "object" && e ? e.key : e)).join(".");
8
+ }
9
+ function n(e) {
10
+ return {
11
+ path: t(e.path),
12
+ message: e.message
13
+ };
14
+ }
15
+ function r(t, r) {
16
+ if ("~standard" in t) {
17
+ let i = t["~standard"].validate(r);
18
+ if (typeof i.then == "function") return {
19
+ ok: !1,
20
+ issues: [e]
21
+ };
22
+ let a = i;
23
+ return a.issues ? {
24
+ ok: !1,
25
+ issues: a.issues.map(n)
26
+ } : {
27
+ ok: !0,
28
+ data: a.value
29
+ };
30
+ }
31
+ let i = t.safeParse(r);
32
+ return i.success ? {
33
+ ok: !0,
34
+ data: i.data
35
+ } : {
36
+ ok: !1,
37
+ issues: i.error.issues.map(n)
38
+ };
39
+ }
40
+ //#endregion
41
+ export { r as validateWithSchema };
42
+
43
+ //# sourceMappingURL=schema-like.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-like.js","names":[],"sources":["../../src/utils/schema-like.ts"],"sourcesContent":["/**\n * The SDK's answer to \"the caller handed me a schema\" — one normalizer behind\n * every option that takes one.\n *\n * Internal, and imported by path rather than through the `utils` barrel: the\n * function exists so `decodeFrame` and anything else that validates a payload\n * share one reading of the two shapes below, not so consumers can call it. The\n * types are public, because an option typed `SchemaLike<T>` is a name the\n * consumer has to be able to write down.\n *\n * Two shapes are accepted on purpose:\n *\n * - [Standard Schema](https://standardschema.dev) (`~standard`), which zod\n * (>=3.24), valibot and arktype all implement, so the SDK validates against\n * any of them without depending on one;\n * - `.safeParse`, because the SDK's own zod range starts at `^3.23.0`, which\n * predates `~standard`, and because it is the method every zod user already\n * knows.\n */\n\n/** One field-level complaint from a schema validation. */\nexport interface SchemaIssue {\n /** Dotted path to the offending field, or `\"<root>\"` for the value itself. */\n path: string;\n /** What the validator said was wrong. */\n message: string;\n}\n\n/** A path segment as Standard Schema reports it: a key, or an object holding one. */\ntype IssuePathSegment = PropertyKey | { readonly key: PropertyKey };\n\n/** One issue as either supported shape reports it. */\ninterface RawIssue {\n readonly message: string;\n readonly path?: readonly IssuePathSegment[] | undefined;\n}\n\n/** A schema exposing the [Standard Schema](https://standardschema.dev) interface. */\nexport interface StandardSchemaLike<T> {\n readonly \"~standard\": {\n readonly validate: (\n value: unknown,\n ) =>\n | { readonly value: T; readonly issues?: undefined }\n | { readonly issues: readonly RawIssue[] }\n | Promise<\n | { readonly value: T; readonly issues?: undefined }\n | { readonly issues: readonly RawIssue[] }\n >;\n };\n}\n\n/** A schema exposing zod's `.safeParse`, including versions older than `~standard`. */\nexport interface SafeParseSchemaLike<T> {\n readonly safeParse: (\n value: unknown,\n ) =>\n | { readonly success: true; readonly data: T }\n | { readonly success: false; readonly error: { readonly issues: readonly RawIssue[] } };\n}\n\n/** Anything the SDK can validate a payload against. */\nexport type SchemaLike<T> = StandardSchemaLike<T> | SafeParseSchemaLike<T>;\n\n/** Outcome of validating one value against a {@link SchemaLike}. */\nexport type SchemaValidation<T> = { ok: true; data: T } | { ok: false; issues: SchemaIssue[] };\n\n/**\n * The issue reported when a schema answers asynchronously.\n *\n * A frame is decoded inside the transport's `message` handler and delivered from\n * it, so there is nowhere to await: awaiting would deliver frames in whatever\n * order their validations settled, which is worse than refusing. Reported as a\n * validation failure rather than thrown, so it arrives through the same\n * `onValidationError` the caller already registered.\n */\nconst ASYNC_ISSUE: SchemaIssue = {\n path: \"<root>\",\n message:\n \"the schema validated asynchronously, and a frame is decoded synchronously — \" +\n \"there is nowhere to await it. Use a synchronous schema, or validate inside your \" +\n \"own handler.\",\n};\n\n/**\n * Format a Standard Schema issue path as a dotted string.\n *\n * @param path - The reported path, if any.\n * @returns The dotted path, or `\"<root>\"` when the value itself is at fault.\n */\nfunction formatPath(path: readonly IssuePathSegment[] | undefined): string {\n if (!path || path.length === 0) return \"<root>\";\n return path\n .map((segment) =>\n typeof segment === \"object\" && segment !== null ? String(segment.key) : String(segment),\n )\n .join(\".\");\n}\n\n/**\n * Normalize one issue from either supported shape.\n *\n * @param issue - The issue as the validator reported it.\n * @returns The issue with a dotted path.\n */\nfunction toIssue(issue: RawIssue): SchemaIssue {\n return { path: formatPath(issue.path), message: issue.message };\n}\n\n/**\n * Validate a value against a schema, whichever of the two shapes it has.\n *\n * @param schema - A Standard Schema or a `.safeParse` schema.\n * @param value - The value to validate.\n * @returns The validated output, or the issues explaining why it was refused.\n */\nexport function validateWithSchema<T>(schema: SchemaLike<T>, value: unknown): SchemaValidation<T> {\n if (\"~standard\" in schema) {\n const result = schema[\"~standard\"].validate(value);\n if (typeof (result as { then?: unknown }).then === \"function\") {\n return { ok: false, issues: [ASYNC_ISSUE] };\n }\n const settled = result as\n | { readonly value: T; readonly issues?: undefined }\n | { readonly issues: readonly RawIssue[] };\n if (settled.issues) return { ok: false, issues: settled.issues.map(toIssue) };\n return { ok: true, data: settled.value };\n }\n const result = schema.safeParse(value);\n if (result.success) return { ok: true, data: result.data };\n return { ok: false, issues: result.error.issues.map(toIssue) };\n}\n"],"mappings":";AA4EA,IAAM,IAA2B;CAC7B,MAAM;CACN,SACI;AAGR;AAQA,SAAS,EAAW,GAAuD;CAEvE,OADI,CAAC,KAAQ,EAAK,WAAW,IAAU,WAChC,EACF,KAAK,MACgD,OAAlD,OAAO,KAAY,YAAY,IAA0B,EAAQ,MAAc,CAAO,CAC1F,CAAC,CACA,KAAK,GAAG;AACjB;AAQA,SAAS,EAAQ,GAA8B;CAC3C,OAAO;EAAE,MAAM,EAAW,EAAM,IAAI;EAAG,SAAS,EAAM;CAAQ;AAClE;AASA,SAAgB,EAAsB,GAAuB,GAAqC;CAC9F,IAAI,eAAe,GAAQ;EACvB,IAAM,IAAS,EAAO,YAAY,CAAC,SAAS,CAAK;EACjD,IAAI,OAAQ,EAA8B,QAAS,YAC/C,OAAO;GAAE,IAAI;GAAO,QAAQ,CAAC,CAAW;EAAE;EAE9C,IAAM,IAAU;EAIhB,OADI,EAAQ,SAAe;GAAE,IAAI;GAAO,QAAQ,EAAQ,OAAO,IAAI,CAAO;EAAE,IACrE;GAAE,IAAI;GAAM,MAAM,EAAQ;EAAM;CAC3C;CACA,IAAM,IAAS,EAAO,UAAU,CAAK;CAErC,OADI,EAAO,UAAgB;EAAE,IAAI;EAAM,MAAM,EAAO;CAAK,IAClD;EAAE,IAAI;EAAO,QAAQ,EAAO,MAAM,OAAO,IAAI,CAAO;CAAE;AACjE"}
@@ -0,0 +1,3 @@
1
+ var e=/var\(\s*(--[A-Za-z0-9-]+)/g,t=/--tempest-[A-Za-z0-9-]*(?:\$\{|["'`]\s*\+|\s*\+\s*["'`])/;function n(e){let t=[];for(let n of e.matchAll(/([^{}]+)\{([^{}]*)\}/g)){let e=new Map;for(let t of(n[2]??``).split(`;`)){let n=t.indexOf(`:`);if(n<0)continue;let r=t.slice(0,n).trim();r&&e.set(r,t.slice(n+1).trim())}e.size!==0&&t.push({selector:(n[1]??``).trim(),declarations:e})}return t}function r(t,n){let r=new Set;for(let e of t)for(let t of e.declarations.keys())r.add(t);let i=new Set,a=[...n.matchAll(e)].map(e=>e[1]??``);for(;a.length>0;){let n=a.pop()??``;if(!i.has(n)&&r.has(n)){i.add(n);for(let r of t){let t=r.declarations.get(n);if(t!==void 0)for(let n of t.matchAll(e))a.push(n[1]??``)}}}return i}function i(e,i){if(t.test(i))return null;let a=n(e),o=r(a,i);if(o.size===0)return null;let s=[];for(let e of a){let t=[...e.declarations].filter(([e])=>e.startsWith(`--`)===!1||o.has(e));t.every(([e])=>e.startsWith(`--`)===!1)||s.push(`${e.selector}{${t.map(([e,t])=>`${e}:${t}`).join(`;`)}}`)}return s.join(`
2
+ `)}exports.narrowTokens=i,exports.parseTokenBlocks=n,exports.reachableTokens=r;
3
+ //# sourceMappingURL=narrow-tokens.cjs.map