tempest-react-sdk 0.25.0 → 0.26.1

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 (322) hide show
  1. package/README.md +14 -1
  2. package/bin/lib/alias/collect.mjs +94 -0
  3. package/bin/lib/alias/collect.test.mjs +95 -0
  4. package/bin/lib/alias/discover.mjs +77 -0
  5. package/bin/lib/alias/discover.test.mjs +189 -0
  6. package/bin/lib/alias/index.mjs +88 -0
  7. package/bin/lib/alias/index.test.mjs +138 -0
  8. package/bin/lib/alias/rewrite-css.mjs +76 -0
  9. package/bin/lib/alias/rewrite-css.test.mjs +85 -0
  10. package/bin/lib/alias/rewrite.mjs +141 -0
  11. package/bin/lib/alias/rewrite.test.mjs +148 -0
  12. package/bin/lib/alias/specifier.mjs +49 -0
  13. package/bin/lib/alias/specifier.test.mjs +85 -0
  14. package/bin/lib/alias/tsconfig.mjs +116 -0
  15. package/bin/lib/alias/typescript.mjs +23 -0
  16. package/bin/lib/doctor/lucide.mjs +74 -0
  17. package/bin/lib/doctor/lucide.test.mjs +107 -0
  18. package/bin/lib/icons/generate.mjs +156 -0
  19. package/bin/lib/icons/generate.test.mjs +125 -0
  20. package/bin/tempest.mjs +174 -13
  21. package/dist/audio/use-audio.cjs +1 -1
  22. package/dist/audio/use-audio.cjs.map +1 -1
  23. package/dist/audio/use-audio.js +12 -12
  24. package/dist/audio/use-audio.js.map +1 -1
  25. package/dist/charts/palette.cjs +1 -1
  26. package/dist/charts/palette.cjs.map +1 -1
  27. package/dist/charts/palette.js +2 -2
  28. package/dist/charts/palette.js.map +1 -1
  29. package/dist/charts.d.ts +5 -3
  30. package/dist/components/ClickOutside/ClickOutside.cjs +1 -1
  31. package/dist/components/ClickOutside/ClickOutside.cjs.map +1 -1
  32. package/dist/components/ClickOutside/ClickOutside.js +3 -1
  33. package/dist/components/ClickOutside/ClickOutside.js.map +1 -1
  34. package/dist/components/DataTable/DataTable.cjs +1 -1
  35. package/dist/components/DataTable/DataTable.cjs.map +1 -1
  36. package/dist/components/DataTable/DataTable.js +21 -23
  37. package/dist/components/DataTable/DataTable.js.map +1 -1
  38. package/dist/components/Kanban/Kanban.cjs +2 -0
  39. package/dist/components/Kanban/Kanban.cjs.map +1 -0
  40. package/dist/components/Kanban/Kanban.js +102 -0
  41. package/dist/components/Kanban/Kanban.js.map +1 -0
  42. package/dist/components/Kanban/Kanban.module.cjs +2 -0
  43. package/dist/components/Kanban/Kanban.module.cjs.map +1 -0
  44. package/dist/components/Kanban/Kanban.module.js +19 -0
  45. package/dist/components/Kanban/Kanban.module.js.map +1 -0
  46. package/dist/components/NotificationCenter/NotificationCenter.cjs +2 -0
  47. package/dist/components/NotificationCenter/NotificationCenter.cjs.map +1 -0
  48. package/dist/components/NotificationCenter/NotificationCenter.js +83 -0
  49. package/dist/components/NotificationCenter/NotificationCenter.js.map +1 -0
  50. package/dist/components/NotificationCenter/NotificationCenter.module.cjs +2 -0
  51. package/dist/components/NotificationCenter/NotificationCenter.module.cjs.map +1 -0
  52. package/dist/components/NotificationCenter/NotificationCenter.module.js +21 -0
  53. package/dist/components/NotificationCenter/NotificationCenter.module.js.map +1 -0
  54. package/dist/components/NotificationCenter/use-notification-inbox.cjs +2 -0
  55. package/dist/components/NotificationCenter/use-notification-inbox.cjs.map +1 -0
  56. package/dist/components/NotificationCenter/use-notification-inbox.js +63 -0
  57. package/dist/components/NotificationCenter/use-notification-inbox.js.map +1 -0
  58. package/dist/components/RefreshIndicator/RefreshIndicator.cjs +1 -1
  59. package/dist/components/RefreshIndicator/RefreshIndicator.cjs.map +1 -1
  60. package/dist/components/RefreshIndicator/RefreshIndicator.js +17 -17
  61. package/dist/components/RefreshIndicator/RefreshIndicator.js.map +1 -1
  62. package/dist/components/Tooltip/Tooltip.cjs +1 -1
  63. package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
  64. package/dist/components/Tooltip/Tooltip.js +26 -20
  65. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  66. package/dist/components/VirtualTable/VirtualTable.cjs +2 -0
  67. package/dist/components/VirtualTable/VirtualTable.cjs.map +1 -0
  68. package/dist/components/VirtualTable/VirtualTable.js +116 -0
  69. package/dist/components/VirtualTable/VirtualTable.js.map +1 -0
  70. package/dist/components/VirtualTable/VirtualTable.module.cjs +2 -0
  71. package/dist/components/VirtualTable/VirtualTable.module.cjs.map +1 -0
  72. package/dist/components/VirtualTable/VirtualTable.module.js +20 -0
  73. package/dist/components/VirtualTable/VirtualTable.module.js.map +1 -0
  74. package/dist/components/Wizard/Wizard.cjs +1 -1
  75. package/dist/components/Wizard/Wizard.cjs.map +1 -1
  76. package/dist/components/Wizard/Wizard.js +53 -53
  77. package/dist/components/Wizard/Wizard.js.map +1 -1
  78. package/dist/geo/use-position-tracker.cjs +1 -1
  79. package/dist/geo/use-position-tracker.cjs.map +1 -1
  80. package/dist/geo/use-position-tracker.js +3 -1
  81. package/dist/geo/use-position-tracker.js.map +1 -1
  82. package/dist/hooks/use-async.cjs +1 -1
  83. package/dist/hooks/use-async.cjs.map +1 -1
  84. package/dist/hooks/use-async.js +3 -1
  85. package/dist/hooks/use-async.js.map +1 -1
  86. package/dist/hooks/use-click-outside.cjs +1 -1
  87. package/dist/hooks/use-click-outside.cjs.map +1 -1
  88. package/dist/hooks/use-click-outside.js +3 -1
  89. package/dist/hooks/use-click-outside.js.map +1 -1
  90. package/dist/hooks/use-deep-memo.cjs.map +1 -1
  91. package/dist/hooks/use-deep-memo.js.map +1 -1
  92. package/dist/hooks/use-event-listener.cjs +1 -1
  93. package/dist/hooks/use-event-listener.cjs.map +1 -1
  94. package/dist/hooks/use-event-listener.js +3 -1
  95. package/dist/hooks/use-event-listener.js.map +1 -1
  96. package/dist/hooks/use-interval.cjs +1 -1
  97. package/dist/hooks/use-interval.cjs.map +1 -1
  98. package/dist/hooks/use-interval.js +3 -1
  99. package/dist/hooks/use-interval.js.map +1 -1
  100. package/dist/hooks/use-is-first-render.cjs.map +1 -1
  101. package/dist/hooks/use-is-first-render.js.map +1 -1
  102. package/dist/hooks/use-long-press-handlers.cjs +1 -1
  103. package/dist/hooks/use-long-press-handlers.cjs.map +1 -1
  104. package/dist/hooks/use-long-press-handlers.js +25 -23
  105. package/dist/hooks/use-long-press-handlers.js.map +1 -1
  106. package/dist/hooks/use-long-press.cjs +1 -1
  107. package/dist/hooks/use-long-press.cjs.map +1 -1
  108. package/dist/hooks/use-long-press.js +3 -1
  109. package/dist/hooks/use-long-press.js.map +1 -1
  110. package/dist/hooks/use-online.cjs +1 -1
  111. package/dist/hooks/use-online.cjs.map +1 -1
  112. package/dist/hooks/use-online.js +6 -4
  113. package/dist/hooks/use-online.js.map +1 -1
  114. package/dist/hooks/use-previous.cjs.map +1 -1
  115. package/dist/hooks/use-previous.js.map +1 -1
  116. package/dist/hooks/use-service-worker-update.cjs +1 -1
  117. package/dist/hooks/use-service-worker-update.cjs.map +1 -1
  118. package/dist/hooks/use-service-worker-update.js +3 -1
  119. package/dist/hooks/use-service-worker-update.js.map +1 -1
  120. package/dist/hooks/use-sortable.cjs +2 -0
  121. package/dist/hooks/use-sortable.cjs.map +1 -0
  122. package/dist/hooks/use-sortable.js +169 -0
  123. package/dist/hooks/use-sortable.js.map +1 -0
  124. package/dist/hooks/use-stable-callback.cjs.map +1 -1
  125. package/dist/hooks/use-stable-callback.js.map +1 -1
  126. package/dist/hooks/use-timeout.cjs +1 -1
  127. package/dist/hooks/use-timeout.cjs.map +1 -1
  128. package/dist/hooks/use-timeout.js +3 -1
  129. package/dist/hooks/use-timeout.js.map +1 -1
  130. package/dist/icons/Icon.cjs +2 -0
  131. package/dist/icons/Icon.cjs.map +1 -0
  132. package/dist/icons/Icon.js +24 -0
  133. package/dist/icons/Icon.js.map +1 -0
  134. package/dist/icons/IconProvider.cjs +2 -0
  135. package/dist/icons/IconProvider.cjs.map +1 -0
  136. package/dist/icons/IconProvider.js +24 -0
  137. package/dist/icons/IconProvider.js.map +1 -0
  138. package/dist/icons/generated/aliases.cjs +2 -0
  139. package/dist/icons/generated/aliases.cjs.map +1 -0
  140. package/dist/icons/generated/aliases.js +255 -0
  141. package/dist/icons/generated/aliases.js.map +1 -0
  142. package/dist/icons/generated/icon-names.cjs +2 -0
  143. package/dist/icons/generated/icon-names.cjs.map +1 -0
  144. package/dist/icons/generated/icon-names.js +6 -0
  145. package/dist/icons/generated/icon-names.js.map +1 -0
  146. package/dist/icons/generated/loaders.cjs +2 -0
  147. package/dist/icons/generated/loaders.cjs.map +1 -0
  148. package/dist/icons/generated/loaders.js +32 -0
  149. package/dist/icons/generated/loaders.js.map +1 -0
  150. package/dist/icons/generated/shard-a.cjs +2 -0
  151. package/dist/icons/generated/shard-a.cjs.map +1 -0
  152. package/dist/icons/generated/shard-a.js +114 -0
  153. package/dist/icons/generated/shard-a.js.map +1 -0
  154. package/dist/icons/generated/shard-b.cjs +2 -0
  155. package/dist/icons/generated/shard-b.cjs.map +1 -0
  156. package/dist/icons/generated/shard-b.js +156 -0
  157. package/dist/icons/generated/shard-b.js.map +1 -0
  158. package/dist/icons/generated/shard-c.cjs +2 -0
  159. package/dist/icons/generated/shard-c.cjs.map +1 -0
  160. package/dist/icons/generated/shard-c.js +269 -0
  161. package/dist/icons/generated/shard-c.js.map +1 -0
  162. package/dist/icons/generated/shard-d.cjs +2 -0
  163. package/dist/icons/generated/shard-d.cjs.map +1 -0
  164. package/dist/icons/generated/shard-d.js +62 -0
  165. package/dist/icons/generated/shard-d.js.map +1 -0
  166. package/dist/icons/generated/shard-e.cjs +2 -0
  167. package/dist/icons/generated/shard-e.cjs.map +1 -0
  168. package/dist/icons/generated/shard-e.js +32 -0
  169. package/dist/icons/generated/shard-e.js.map +1 -0
  170. package/dist/icons/generated/shard-f.cjs +2 -0
  171. package/dist/icons/generated/shard-f.cjs.map +1 -0
  172. package/dist/icons/generated/shard-f.js +139 -0
  173. package/dist/icons/generated/shard-f.js.map +1 -0
  174. package/dist/icons/generated/shard-g.cjs +2 -0
  175. package/dist/icons/generated/shard-g.cjs.map +1 -0
  176. package/dist/icons/generated/shard-g.js +61 -0
  177. package/dist/icons/generated/shard-g.js.map +1 -0
  178. package/dist/icons/generated/shard-h.cjs +2 -0
  179. package/dist/icons/generated/shard-h.cjs.map +1 -0
  180. package/dist/icons/generated/shard-h.js +63 -0
  181. package/dist/icons/generated/shard-h.js.map +1 -0
  182. package/dist/icons/generated/shard-i.cjs +2 -0
  183. package/dist/icons/generated/shard-i.cjs.map +1 -0
  184. package/dist/icons/generated/shard-i.js +30 -0
  185. package/dist/icons/generated/shard-i.js.map +1 -0
  186. package/dist/icons/generated/shard-j.cjs +2 -0
  187. package/dist/icons/generated/shard-j.cjs.map +1 -0
  188. package/dist/icons/generated/shard-j.js +10 -0
  189. package/dist/icons/generated/shard-j.js.map +1 -0
  190. package/dist/icons/generated/shard-k.cjs +2 -0
  191. package/dist/icons/generated/shard-k.cjs.map +1 -0
  192. package/dist/icons/generated/shard-k.js +16 -0
  193. package/dist/icons/generated/shard-k.js.map +1 -0
  194. package/dist/icons/generated/shard-l.cjs +2 -0
  195. package/dist/icons/generated/shard-l.cjs.map +1 -0
  196. package/dist/icons/generated/shard-l.js +88 -0
  197. package/dist/icons/generated/shard-l.js.map +1 -0
  198. package/dist/icons/generated/shard-m.cjs +2 -0
  199. package/dist/icons/generated/shard-m.cjs.map +1 -0
  200. package/dist/icons/generated/shard-m.js +140 -0
  201. package/dist/icons/generated/shard-m.js.map +1 -0
  202. package/dist/icons/generated/shard-n.cjs +2 -0
  203. package/dist/icons/generated/shard-n.cjs.map +1 -0
  204. package/dist/icons/generated/shard-n.js +24 -0
  205. package/dist/icons/generated/shard-n.js.map +1 -0
  206. package/dist/icons/generated/shard-o.cjs +2 -0
  207. package/dist/icons/generated/shard-o.cjs.map +1 -0
  208. package/dist/icons/generated/shard-o.js +17 -0
  209. package/dist/icons/generated/shard-o.js.map +1 -0
  210. package/dist/icons/generated/shard-p.cjs +2 -0
  211. package/dist/icons/generated/shard-p.cjs.map +1 -0
  212. package/dist/icons/generated/shard-p.js +115 -0
  213. package/dist/icons/generated/shard-p.js.map +1 -0
  214. package/dist/icons/generated/shard-q.cjs +2 -0
  215. package/dist/icons/generated/shard-q.cjs.map +1 -0
  216. package/dist/icons/generated/shard-q.js +10 -0
  217. package/dist/icons/generated/shard-q.js.map +1 -0
  218. package/dist/icons/generated/shard-r.cjs +2 -0
  219. package/dist/icons/generated/shard-r.cjs.map +1 -0
  220. package/dist/icons/generated/shard-r.js +77 -0
  221. package/dist/icons/generated/shard-r.js.map +1 -0
  222. package/dist/icons/generated/shard-s.cjs +2 -0
  223. package/dist/icons/generated/shard-s.cjs.map +1 -0
  224. package/dist/icons/generated/shard-s.js +255 -0
  225. package/dist/icons/generated/shard-s.js.map +1 -0
  226. package/dist/icons/generated/shard-t.cjs +2 -0
  227. package/dist/icons/generated/shard-t.cjs.map +1 -0
  228. package/dist/icons/generated/shard-t.js +109 -0
  229. package/dist/icons/generated/shard-t.js.map +1 -0
  230. package/dist/icons/generated/shard-u.cjs +2 -0
  231. package/dist/icons/generated/shard-u.cjs.map +1 -0
  232. package/dist/icons/generated/shard-u.js +49 -0
  233. package/dist/icons/generated/shard-u.js.map +1 -0
  234. package/dist/icons/generated/shard-v.cjs +2 -0
  235. package/dist/icons/generated/shard-v.cjs.map +1 -0
  236. package/dist/icons/generated/shard-v.js +30 -0
  237. package/dist/icons/generated/shard-v.js.map +1 -0
  238. package/dist/icons/generated/shard-w.cjs +2 -0
  239. package/dist/icons/generated/shard-w.cjs.map +1 -0
  240. package/dist/icons/generated/shard-w.js +48 -0
  241. package/dist/icons/generated/shard-w.js.map +1 -0
  242. package/dist/icons/generated/shard-x.cjs +2 -0
  243. package/dist/icons/generated/shard-x.cjs.map +1 -0
  244. package/dist/icons/generated/shard-x.js +10 -0
  245. package/dist/icons/generated/shard-x.js.map +1 -0
  246. package/dist/icons/generated/shard-z.cjs +2 -0
  247. package/dist/icons/generated/shard-z.cjs.map +1 -0
  248. package/dist/icons/generated/shard-z.js +25 -0
  249. package/dist/icons/generated/shard-z.js.map +1 -0
  250. package/dist/icons/icon-context.cjs +2 -0
  251. package/dist/icons/icon-context.cjs.map +1 -0
  252. package/dist/icons/icon-context.js +13 -0
  253. package/dist/icons/icon-context.js.map +1 -0
  254. package/dist/icons/is-icon-name.cjs +2 -0
  255. package/dist/icons/is-icon-name.cjs.map +1 -0
  256. package/dist/icons/is-icon-name.js +10 -0
  257. package/dist/icons/is-icon-name.js.map +1 -0
  258. package/dist/icons/shard-cache.cjs +2 -0
  259. package/dist/icons/shard-cache.cjs.map +1 -0
  260. package/dist/icons/shard-cache.js +41 -0
  261. package/dist/icons/shard-cache.js.map +1 -0
  262. package/dist/icons/use-icon.cjs +2 -0
  263. package/dist/icons/use-icon.cjs.map +1 -0
  264. package/dist/icons/use-icon.js +20 -0
  265. package/dist/icons/use-icon.js.map +1 -0
  266. package/dist/icons-virtual.d.ts +22 -0
  267. package/dist/icons.cjs +1 -0
  268. package/dist/icons.d.ts +220 -0
  269. package/dist/icons.js +9 -0
  270. package/dist/offline/use-offline-sync.cjs +1 -1
  271. package/dist/offline/use-offline-sync.cjs.map +1 -1
  272. package/dist/offline/use-offline-sync.js +3 -1
  273. package/dist/offline/use-offline-sync.js.map +1 -1
  274. package/dist/push/use-push-subscription.cjs +1 -1
  275. package/dist/push/use-push-subscription.cjs.map +1 -1
  276. package/dist/push/use-push-subscription.js +3 -1
  277. package/dist/push/use-push-subscription.js.map +1 -1
  278. package/dist/sse/use-event-stream.cjs +1 -1
  279. package/dist/sse/use-event-stream.cjs.map +1 -1
  280. package/dist/sse/use-event-stream.js +3 -1
  281. package/dist/sse/use-event-stream.js.map +1 -1
  282. package/dist/styles.css +1 -1
  283. package/dist/tempest-react-sdk.cjs +1 -1
  284. package/dist/tempest-react-sdk.d.ts +585 -3
  285. package/dist/tempest-react-sdk.js +189 -183
  286. package/dist/theme/ThemeProvider.cjs +1 -1
  287. package/dist/theme/ThemeProvider.cjs.map +1 -1
  288. package/dist/theme/ThemeProvider.js +6 -2
  289. package/dist/theme/ThemeProvider.js.map +1 -1
  290. package/dist/theme/color.cjs +1 -1
  291. package/dist/theme/color.cjs.map +1 -1
  292. package/dist/theme/color.js +77 -46
  293. package/dist/theme/color.js.map +1 -1
  294. package/dist/theme/create-theme.cjs +1 -1
  295. package/dist/theme/create-theme.cjs.map +1 -1
  296. package/dist/theme/create-theme.js +9 -3
  297. package/dist/theme/create-theme.js.map +1 -1
  298. package/dist/utils/compare-values.cjs +2 -0
  299. package/dist/utils/compare-values.cjs.map +1 -0
  300. package/dist/utils/compare-values.js +8 -0
  301. package/dist/utils/compare-values.js.map +1 -0
  302. package/dist/vision/use-camera-stream.cjs +1 -1
  303. package/dist/vision/use-camera-stream.cjs.map +1 -1
  304. package/dist/vision/use-camera-stream.js +3 -1
  305. package/dist/vision/use-camera-stream.js.map +1 -1
  306. package/dist/vite/create-vite-config.cjs +1 -1
  307. package/dist/vite/create-vite-config.cjs.map +1 -1
  308. package/dist/vite/create-vite-config.js +30 -22
  309. package/dist/vite/create-vite-config.js.map +1 -1
  310. package/dist/vite/tempest-icons.cjs +9 -0
  311. package/dist/vite/tempest-icons.cjs.map +1 -0
  312. package/dist/vite/tempest-icons.js +99 -0
  313. package/dist/vite/tempest-icons.js.map +1 -0
  314. package/dist/vite.cjs +1 -1
  315. package/dist/vite.d.ts +79 -0
  316. package/dist/vite.js +6 -5
  317. package/dist/ws/use-web-socket.cjs +1 -1
  318. package/dist/ws/use-web-socket.cjs.map +1 -1
  319. package/dist/ws/use-web-socket.js +3 -1
  320. package/dist/ws/use-web-socket.js.map +1 -1
  321. package/package.json +12 -3
  322. package/template/package.json +1 -1
@@ -79,186 +79,192 @@ import { useInstallPrompt as Me } from "./hooks/use-install-prompt.js";
79
79
  import { registerServiceWorker as Ne, skipWaiting as Pe, unregisterAllServiceWorkers as Fe } from "./sw/register-service-worker.js";
80
80
  import { useServiceWorkerUpdate as Ie } from "./hooks/use-service-worker-update.js";
81
81
  import { estimateStorage as Le, requestPersistentStorage as Re, useStorageEstimate as ze } from "./hooks/use-storage-estimate.js";
82
- import { OfflineIndicator as Be } from "./components/OfflineIndicator/OfflineIndicator.js";
83
- import { useOfflineSync as Ve, useSyncStatus as He } from "./offline/use-offline-sync.js";
84
- import { SyncStatusBadge as Ue } from "./components/SyncStatusBadge/SyncStatusBadge.js";
85
- import { UpdatePrompt as We } from "./components/UpdatePrompt/UpdatePrompt.js";
86
- import { Kbd as Ge } from "./components/Kbd/Kbd.js";
87
- import { ModalsProvider as Ke, useModals as qe } from "./components/ModalsManager/ModalsManager.js";
88
- import { Navbar as Je } from "./components/Navbar/Navbar.js";
89
- import { NProgressBar as Ye, nprogress as Xe } from "./components/NProgress/NProgress.js";
90
- import { Page as Ze } from "./components/Page/Page.js";
91
- import { Pagination as Qe } from "./components/Pagination/Pagination.js";
92
- import { PasswordInput as $e, estimatePasswordStrength as et } from "./components/PasswordInput/PasswordInput.js";
93
- import { PinInput as tt } from "./components/PinInput/PinInput.js";
94
- import { Popover as nt } from "./components/Popover/Popover.js";
95
- import { Progress as rt } from "./components/Progress/Progress.js";
96
- import { Radio as it, RadioGroup as at } from "./components/Radio/Radio.js";
97
- import { RangeSlider as ot } from "./components/RangeSlider/RangeSlider.js";
98
- import { RatingStars as st } from "./components/RatingStars/RatingStars.js";
99
- import { Hide as ct, Show as lt } from "./components/Responsive/Responsive.js";
100
- import { SafeArea as ut } from "./components/SafeArea/SafeArea.js";
101
- import { SearchBar as dt } from "./components/SearchBar/SearchBar.js";
102
- import { SegmentedControl as ft } from "./components/SegmentedControl/SegmentedControl.js";
103
- import { Select as pt } from "./components/Select/Select.js";
104
- import { Sidebar as mt } from "./components/Sidebar/Sidebar.js";
105
- import { Skeleton as ht } from "./components/Skeleton/Skeleton.js";
106
- import { Spacer as gt } from "./components/Spacer/Spacer.js";
107
- import { Spinner as _t } from "./components/Spinner/Spinner.js";
108
- import { Stat as vt } from "./components/Stat/Stat.js";
109
- import { Stepper as yt } from "./components/Stepper/Stepper.js";
110
- import { clamp as bt, formatBytes as xt, formatCompactNumber as St } from "./utils/numbers.js";
111
- import { StepperInput as Ct } from "./components/StepperInput/StepperInput.js";
112
- import { Switch as wt } from "./components/Switch/Switch.js";
113
- import { Tag as Tt } from "./components/Tag/Tag.js";
114
- import { Table as Et } from "./components/Table/Table.js";
115
- import { Tabs as Dt } from "./components/Tabs/Tabs.js";
116
- import { Textarea as Ot } from "./components/Textarea/Textarea.js";
117
- import { Timeline as kt } from "./components/Timeline/Timeline.js";
118
- import { Tooltip as At } from "./components/Tooltip/Tooltip.js";
119
- import { ToastProvider as jt, useToast as Mt } from "./components/Toast/ToastProvider.js";
120
- import { VirtualList as Nt } from "./components/VirtualList/VirtualList.js";
121
- import { CopyButton as Pt } from "./components/CopyButton/CopyButton.js";
122
- import { relativeTime as Ft } from "./utils/relative-time.js";
123
- import { RelativeTime as It } from "./components/RelativeTime/RelativeTime.js";
124
- import { Money as Lt } from "./components/Money/Money.js";
125
- import { TreeView as Rt } from "./components/TreeView/TreeView.js";
126
- import { TruncateText as zt } from "./components/TruncateText/TruncateText.js";
127
- import { VisuallyHidden as Bt } from "./components/VisuallyHidden/VisuallyHidden.js";
128
- import { Portal as Vt } from "./components/Portal/Portal.js";
129
- import { ClickOutside as Ht } from "./components/ClickOutside/ClickOutside.js";
130
- import { ConditionalWrapper as Ut } from "./components/ConditionalWrapper/ConditionalWrapper.js";
131
- import { For as Wt } from "./components/For/For.js";
132
- import { ErrorText as Gt } from "./components/ErrorText/ErrorText.js";
133
- import { Image as Kt } from "./components/Image/Image.js";
134
- import { DataList as qt } from "./components/DataList/DataList.js";
135
- import { DescriptionList as Jt } from "./components/DescriptionList/DescriptionList.js";
136
- import { Toggle as Yt } from "./components/Toggle/Toggle.js";
137
- import { ToggleGroup as Xt, ToggleGroupItem as Zt } from "./components/ToggleGroup/ToggleGroup.js";
138
- import { Label as Qt } from "./components/Label/Label.js";
139
- import { Collapsible as $t } from "./components/Collapsible/Collapsible.js";
140
- import { ContextMenu as en } from "./components/ContextMenu/ContextMenu.js";
141
- import { HoverCard as tn } from "./components/HoverCard/HoverCard.js";
142
- import { Command as nn } from "./components/Command/Command.js";
143
- import { ScrollArea as rn } from "./components/ScrollArea/ScrollArea.js";
144
- import { Resizable as an } from "./components/Resizable/Resizable.js";
145
- import { Calendar as on } from "./components/Calendar/Calendar.js";
146
- import { Slider as sn } from "./components/Slider/Slider.js";
147
- import { MultiSelect as cn } from "./components/MultiSelect/MultiSelect.js";
148
- import { DateRangePicker as ln } from "./components/DateRangePicker/DateRangePicker.js";
149
- import { NavigationMenu as un } from "./components/NavigationMenu/NavigationMenu.js";
150
- import { Menubar as dn } from "./components/Menubar/Menubar.js";
151
- import { Carousel as fn } from "./components/Carousel/Carousel.js";
152
- import { DataTable as pn } from "./components/DataTable/DataTable.js";
153
- import { ListTile as mn } from "./components/ListTile/ListTile.js";
154
- import { FloatingActionButton as hn } from "./components/FloatingActionButton/FloatingActionButton.js";
155
- import { NavigationRail as gn } from "./components/NavigationRail/NavigationRail.js";
156
- import { TimePicker as _n } from "./components/TimePicker/TimePicker.js";
157
- import { RefreshIndicator as vn } from "./components/RefreshIndicator/RefreshIndicator.js";
158
- import { Wizard as yn } from "./components/Wizard/Wizard.js";
159
- import { Lightbox as bn } from "./components/Lightbox/Lightbox.js";
160
- import { SignaturePad as xn } from "./components/SignaturePad/SignaturePad.js";
161
- import { formatCPF as Sn, formatCurrency as Cn, formatDate as wn, formatDateTime as Tn, formatPercent as En, formatPhone as Dn } from "./utils/format.js";
162
- import { storage as On } from "./utils/storage.js";
163
- import { camelCase as kn, capitalize as An, kebabCase as jn, pluralize as Mn, slugify as Nn, truncate as Pn } from "./utils/strings.js";
164
- import { chunk as Fn, groupBy as In, range as Ln, uniqueBy as Rn } from "./utils/arrays.js";
165
- import { deepMerge as zn, isEmpty as Bn, omit as Vn, pick as Hn } from "./utils/objects.js";
166
- import { assertNever as Un, isDefined as Wn, isNumber as Gn, isPlainObject as Kn, isString as qn } from "./utils/guards.js";
167
- import { debounce as Jn, memoizeOne as Yn, once as Xn, throttle as Zn } from "./utils/functions.js";
168
- import { sleep as Qn, withTimeout as $n } from "./utils/promises.js";
169
- import { randomId as er } from "./utils/ids.js";
170
- import { writeXlsx as tr } from "./utils/xlsx.js";
171
- import { TempestApiError as nr, buildApiError as rr, isApiError as ir } from "./http/errors.js";
172
- import { createApiClient as ar } from "./http/api-client.js";
173
- import { parseResponse as or } from "./http/parse-response.js";
174
- import { uploadWithProgress as sr } from "./http/upload-with-progress.js";
175
- import { retry as cr } from "./http/retry.js";
176
- import { generateIdempotencyKey as lr } from "./http/idempotency.js";
177
- import { usePoll as ur } from "./http/use-poll.js";
178
- import { createAuthStore as dr } from "./auth/create-auth-store.js";
179
- import { AuthGuard as fr } from "./auth/AuthGuard.js";
180
- import { decodeJWT as pr, isJWTExpired as mr } from "./auth/jwt.js";
181
- import { lazyWithRetry as hr } from "./auth/lazy-with-retry.js";
182
- import { createRefreshQueue as gr } from "./auth/refresh-queue.js";
183
- import { createTempestAuth as _r } from "./auth/create-tempest-auth.js";
184
- import { AccessControlProvider as vr, useAccessControl as yr } from "./access/access-control-context.js";
185
- import { useCan as br } from "./access/use-can.js";
186
- import { Can as xr } from "./access/Can.js";
187
- import { createRoleAccessControl as Sr } from "./access/create-role-access-control.js";
188
- import { permissionsFromToken as Cr } from "./access/permissions-from-token.js";
189
- import { GoogleSignIn as wr } from "./oauth/GoogleSignIn.js";
190
- import { useOAuthCallback as Tr } from "./oauth/use-oauth-callback.js";
191
- import { CACHE_TIME as Er, REFETCH_TIME as Dr, STALE_TIME as Or } from "./query/constants.js";
192
- import { createQueryKeys as kr } from "./query/create-query-keys.js";
193
- import { QueryProvider as Ar } from "./query/QueryProvider.js";
194
- import { emptyOffsetPage as jr, isCursorPage as Mr, isOffsetPage as Nr } from "./query/pagination.js";
195
- import { usePaginatedQuery as Pr } from "./query/use-paginated-query.js";
196
- import { useCursorQuery as Fr } from "./query/use-cursor-query.js";
197
- import { useOfflineMutation as Ir } from "./query/use-offline-mutation.js";
198
- import { removeById as Lr, upsertById as Rr } from "./query/optimistic.js";
199
- import { createOfflineStore as zr } from "./offline/create-offline-store.js";
200
- import { persistQueryClientOffline as Br } from "./query/offline-persistence.js";
201
- import { createDataProvider as Vr } from "./data/create-data-provider.js";
202
- import { TempestDataProvider as Hr, useDataProvider as Ur } from "./data/data-provider-context.js";
203
- import { listQueryKey as Wr, oneQueryKey as Gr, useCreate as Kr, useDelete as qr, useList as Jr, useOne as Yr, useUpdate as Xr } from "./data/use-resource.js";
204
- import { RouteGuard as Zr } from "./router/RouteGuard.js";
205
- import { AppRouter as Qr, defineRoutes as $r } from "./router/AppRouter.js";
206
- import { BrowserRouter as ei, HashRouter as ti, Link as ni, MemoryRouter as ri, NavLink as ii, Navigate as ai, Outlet as oi, Route as si, Routes as ci, redirect as li, useLocation as ui, useMatch as di, useNavigate as fi, useParams as pi, useRouteError as mi, useSearchParams as hi } from "./router/index.js";
207
- import { createStore as gi } from "./store/create-store.js";
208
- import { createSelectors as _i } from "./store/create-selectors.js";
209
- import { ThemeProvider as vi, useTheme as yi } from "./theme/ThemeProvider.js";
210
- import { createI18n as bi } from "./i18n/create-i18n.js";
211
- import { I18nProvider as xi, useI18n as Si, useTranslate as Ci } from "./i18n/I18nProvider.js";
212
- import { ErrorBoundary as wi } from "./error-boundary/ErrorBoundary.js";
213
- import { AppProviders as Ti } from "./app/AppProviders.js";
214
- import { createEventStream as Ei } from "./sse/create-event-stream.js";
215
- import { useEventStream as Di } from "./sse/use-event-stream.js";
216
- import { isPushSupported as Oi, urlBase64ToUint8Array as ki } from "./push/utils.js";
217
- import { WebPushClient as Ai, WebPushPermissionDeniedError as ji, WebPushUnsupportedError as Mi } from "./push/web-push-client.js";
218
- import { usePushSubscription as Ni } from "./push/use-push-subscription.js";
219
- import { installNotificationClickHandler as Pi, installPushHandler as Fi, installSkipWaitingListener as Ii } from "./sw/create-push-handler.js";
220
- import { createPartialResponse as Li, installPrecache as Ri, installRuntimeCache as zi } from "./sw/cache.js";
221
- import { installBackgroundSync as Bi } from "./sw/background-sync.js";
222
- import { registerPeriodicSync as Vi } from "./sw/periodic-sync.js";
223
- import { clearCaches as Hi, inspectCaches as Ui } from "./sw/cache-inspect.js";
224
- import { createAudioPlayer as Wi, playAudio as Gi, stopAudio as Ki } from "./audio/audio-player.js";
225
- import { useAudio as qi } from "./audio/use-audio.js";
226
- import { createOfflineSync as Ji } from "./offline/create-offline-sync.js";
227
- import { higherVersionWins as Yi, lastWriteWins as Xi } from "./offline/conflict.js";
228
- import { useErrorHandler as Zi } from "./error-boundary/use-error-handler.js";
229
- import { FormField as Qi } from "./forms/FormField.js";
230
- import { validateForm as $i } from "./forms/validate-form.js";
231
- import { zodResolver as ea } from "./forms/zod-resolver.js";
232
- import { useZodForm as ta } from "./forms/use-zod-form.js";
233
- import { formatCEP as na, formatCNPJ as ra, unmask as ia, validateCNPJ as aa, validateCPF as oa } from "./forms/br-validators.js";
234
- import { CEPInput as sa, CNPJInput as ca, CPFInput as la, MoneyInput as ua, PhoneInput as da } from "./forms/masked-inputs.js";
235
- import { useViaCEP as fa } from "./forms/use-viacep.js";
236
- import { Controller as pa, FormProvider as ma, useFieldArray as ha, useForm as ga, useFormContext as _a, useFormState as va, useWatch as ya } from "./forms/index.js";
237
- import { createWebSocket as ba } from "./ws/create-web-socket.js";
238
- import { useWebSocket as xa } from "./ws/use-web-socket.js";
239
- import { clampLatitude as Sa, isCoordinate as Ca, isValidLatitude as wa, isValidLongitude as Ta, normalizeLongitude as Ea } from "./geo/types.js";
240
- import { EARTH_RADIUS_KM as Da, bearingDeg as Oa, haversineKm as ka, pathLengthKm as Aa, toRadians as ja } from "./geo/distance.js";
241
- import { DEFAULT_CAR_SPEED_KMH as Ma, DEFAULT_CIRCUITY_FACTOR as Na, DEFAULT_MODE_DURATION_FACTORS as Pa, durationFactor as Fa, estimateTravel as Ia } from "./geo/estimate.js";
242
- import { boundingBox as La, boundsCenter as Ra, expandBounds as za } from "./geo/bounds.js";
243
- import { MERCATOR_MAX_LATITUDE as Ba, fitProjection as Va, projectMercator as Ha, unprojectMercator as Ua } from "./geo/projection.js";
244
- import { createOSRMBackend as Wa } from "./geo/routing.js";
245
- import { createPositionTracker as Ga } from "./geo/create-position-tracker.js";
246
- import { usePositionTracker as Ka } from "./geo/use-position-tracker.js";
247
- import { TrajectoryMap as qa } from "./geo/TrajectoryMap.js";
248
- import { THEME_STYLE_ID as Ja, applyTheme as Ya, readThemeToken as Xa } from "./theme/apply-theme.js";
249
- import { contrastRatio as Za, createColorScale as Qa, hexToOklch as $a, hexToRgb as eo, hexToRgbaString as to, oklchToHex as no, readableForeground as ro, relativeLuminance as io, rgbToHex as ao } from "./theme/color.js";
250
- import { createTheme as oo, themeContrast as so } from "./theme/create-theme.js";
251
- import { getThemePreset as co, themePresets as lo } from "./theme/theme-presets.js";
252
- import { getInitialTheme as uo, themeInitScript as fo } from "./theme/initial-theme.js";
253
- import { consoleSink as po, createLogger as mo } from "./logger/logger.js";
254
- import { TelemetryProvider as ho, useTelemetry as go } from "./telemetry/TelemetryProvider.js";
255
- import { consoleTelemetryAdapter as _o } from "./telemetry/console-adapter.js";
256
- import { createSentryTelemetryAdapter as vo } from "./telemetry/sentry-adapter.js";
257
- import { createPostHogTelemetryAdapter as yo } from "./telemetry/posthog-adapter.js";
258
- import { FeatureFlagsProvider as bo, useFeatureFlag as xo, useFlagValue as So } from "./feature-flags/FeatureFlagsProvider.js";
259
- import { createInMemoryFlags as Co } from "./feature-flags/in-memory-adapter.js";
260
- import { createGrowthBookFeatureFlagsAdapter as wo } from "./feature-flags/growthbook-adapter.js";
261
- import { createLaunchDarklyFeatureFlagsAdapter as To } from "./feature-flags/launchdarkly-adapter.js";
262
- import { isShareSupported as Eo, share as Do } from "./share/share.js";
263
- import { shareOrDownloadBlob as Oo } from "./share/share-or-download.js";
264
- export { vr as AccessControlProvider, t as Accordion, n as Alert, r as AppBar, Ti as AppProviders, Qr as AppRouter, o as AppShell, s as AspectRatio, fr as AuthGuard, c as Avatar, l as AvatarGroup, i as BREAKPOINTS, u as Badge, d as Banner, f as BottomNavigation, p as BottomSheet, m as Breadcrumbs, ei as BrowserRouter, h as Button, Er as CACHE_TIME, sa as CEPInput, ca as CNPJInput, la as CPFInput, on as Calendar, xr as Can, g as Card, fn as Carousel, _ as Center, v as Checkbox, y as ChipInput, Ht as ClickOutside, $t as Collapsible, b as Combobox, nn as Command, Ut as ConditionalWrapper, S as ConfirmDialog, I as Container, en as ContextMenu, pa as Controller, Pt as CopyButton, Ma as DEFAULT_CAR_SPEED_KMH, Na as DEFAULT_CIRCUITY_FACTOR, Pa as DEFAULT_MODE_DURATION_FACTORS, qt as DataList, pn as DataTable, w as DatePicker, ln as DateRangePicker, Jt as DescriptionList, T as Divider, E as Drawer, D as DropdownMenu, O as Dropzone, Da as EARTH_RADIUS_KM, k as EmptyState, wi as ErrorBoundary, A as ErrorState, Gt as ErrorText, bo as FeatureFlagsProvider, j as FileUpload, hn as FloatingActionButton, Wt as For, M as Form, N as FormActions, Qi as FormField, ma as FormProvider, P as FormRow, F as FormSection, wr as GoogleSignIn, L as Grid, ti as HashRouter, ct as Hide, tn as HoverCard, xi as I18nProvider, Kt as Image, C as Input, B as InstallBanner, V as InstallButton, Ge as Kbd, Qt as Label, bn as Lightbox, ni as Link, mn as ListTile, Ba as MERCATOR_MAX_LATITUDE, ri as MemoryRouter, dn as Menubar, x as Modal, Ke as ModalsProvider, Lt as Money, ua as MoneyInput, cn as MultiSelect, Ye as NProgressBar, ii as NavLink, Je as Navbar, ai as Navigate, un as NavigationMenu, gn as NavigationRail, Be as OfflineIndicator, oi as Outlet, Ze as Page, Qe as Pagination, $e as PasswordInput, da as PhoneInput, tt as PinInput, nt as Popover, Vt as Portal, rt as Progress, Ar as QueryProvider, Dr as REFETCH_TIME, it as Radio, at as RadioGroup, ot as RangeSlider, st as RatingStars, vn as RefreshIndicator, It as RelativeTime, an as Resizable, si as Route, Zr as RouteGuard, ci as Routes, Or as STALE_TIME, ut as SafeArea, rn as ScrollArea, dt as SearchBar, ft as SegmentedControl, pt as Select, lt as Show, mt as Sidebar, xn as SignaturePad, ht as Skeleton, sn as Slider, gt as Spacer, _t as Spinner, R as Stack, vt as Stat, yt as Stepper, Ct as StepperInput, wt as Switch, Ue as SyncStatusBadge, Ja as THEME_STYLE_ID, Et as Table, Dt as Tabs, Tt as Tag, ho as TelemetryProvider, nr as TempestApiError, Hr as TempestDataProvider, Ot as Textarea, vi as ThemeProvider, _n as TimePicker, kt as Timeline, jt as ToastProvider, Yt as Toggle, Xt as ToggleGroup, Zt as ToggleGroupItem, At as Tooltip, qa as TrajectoryMap, Rt as TreeView, zt as TruncateText, We as UpdatePrompt, Nt as VirtualList, Bt as VisuallyHidden, Ai as WebPushClient, ji as WebPushPermissionDeniedError, Mi as WebPushUnsupportedError, yn as Wizard, Ya as applyTheme, Un as assertNever, Oa as bearingDeg, La as boundingBox, Ra as boundsCenter, rr as buildApiError, De as buildOpenInChromeIntent, kn as camelCase, An as capitalize, Fn as chunk, bt as clamp, Sa as clampLatitude, Hi as clearCaches, e as cn, po as consoleSink, _o as consoleTelemetryAdapter, Za as contrastRatio, ar as createApiClient, Wi as createAudioPlayer, dr as createAuthStore, Qa as createColorScale, Vr as createDataProvider, Ei as createEventStream, wo as createGrowthBookFeatureFlagsAdapter, bi as createI18n, Co as createInMemoryFlags, To as createLaunchDarklyFeatureFlagsAdapter, mo as createLogger, Wa as createOSRMBackend, zr as createOfflineStore, Ji as createOfflineSync, Li as createPartialResponse, Ga as createPositionTracker, yo as createPostHogTelemetryAdapter, kr as createQueryKeys, gr as createRefreshQueue, Sr as createRoleAccessControl, _i as createSelectors, vo as createSentryTelemetryAdapter, gi as createStore, _r as createTempestAuth, oo as createTheme, ba as createWebSocket, Jn as debounce, pr as decodeJWT, zn as deepMerge, $r as defineRoutes, Fa as durationFactor, jr as emptyOffsetPage, et as estimatePasswordStrength, Le as estimateStorage, Ia as estimateTravel, za as expandBounds, Va as fitProjection, xt as formatBytes, na as formatCEP, ra as formatCNPJ, Sn as formatCPF, St as formatCompactNumber, Cn as formatCurrency, wn as formatDate, Tn as formatDateTime, En as formatPercent, Dn as formatPhone, lr as generateIdempotencyKey, uo as getInitialTheme, co as getThemePreset, In as groupBy, ka as haversineKm, $a as hexToOklch, eo as hexToRgb, to as hexToRgbaString, Yi as higherVersionWins, Ui as inspectCaches, Bi as installBackgroundSync, Pi as installNotificationClickHandler, Ri as installPrecache, Fi as installPushHandler, zi as installRuntimeCache, Ii as installSkipWaitingListener, Oe as isAndroid, ke as isAndroidWithoutPromptApi, ir as isApiError, Ca as isCoordinate, Mr as isCursorPage, Wn as isDefined, Bn as isEmpty, Ae as isIOS, mr as isJWTExpired, Gn as isNumber, Nr as isOffsetPage, Kn as isPlainObject, Oi as isPushSupported, Eo as isShareSupported, je as isStandalone, qn as isString, wa as isValidLatitude, Ta as isValidLongitude, jn as kebabCase, Xi as lastWriteWins, hr as lazyWithRetry, Wr as listQueryKey, Yn as memoizeOne, Ea as normalizeLongitude, Xe as nprogress, no as oklchToHex, Vn as omit, Xn as once, Gr as oneQueryKey, or as parseResponse, Aa as pathLengthKm, Cr as permissionsFromToken, Br as persistQueryClientOffline, Hn as pick, Gi as playAudio, Mn as pluralize, Ha as projectMercator, er as randomId, Ln as range, Xa as readThemeToken, ro as readableForeground, li as redirect, Vi as registerPeriodicSync, Ne as registerServiceWorker, io as relativeLuminance, Ft as relativeTime, Lr as removeById, Re as requestPersistentStorage, cr as retry, ao as rgbToHex, Do as share, Oo as shareOrDownloadBlob, Pe as skipWaiting, Qn as sleep, Nn as slugify, Ki as stopAudio, On as storage, so as themeContrast, fo as themeInitScript, lo as themePresets, Zn as throttle, ja as toRadians, Pn as truncate, Rn as uniqueBy, ia as unmask, Ua as unprojectMercator, Fe as unregisterAllServiceWorkers, sr as uploadWithProgress, Rr as upsertById, ki as urlBase64ToUint8Array, yr as useAccessControl, Y as useAsync, qi as useAudio, z as useBeforeInstallPrompt, a as useBreakpoint, br as useCan, Ce as useClickOutside, W as useClientFilter, ee as useClipboard, _e as useCounter, Kr as useCreate, Fr as useCursorQuery, Ur as useDataProvider, H as useDebounce, se as useDeepMemo, qr as useDelete, he as useDisclosure, ve as useDocumentTitle, Z as useDocumentVisibility, Zi as useErrorHandler, K as useEventListener, Di as useEventStream, ye as useFavicon, xo as useFeatureFlag, ha as useFieldArray, So as useFlagValue, ae as useFocusTrap, ga as useForm, _a as useFormContext, va as useFormState, re as useGeolocation, pe as useHover, Si as useI18n, ne as useIdle, Me as useInstallPrompt, Q as useIntersectionObserver, le as useInterval, we as useIsFirstRender, te as useKeyboardShortcut, Jr as useList, ge as useListState, q as useLocalStorage, ui as useLocation, me as useLongPress, Ee as useLongPressHandlers, be as useMap, di as useMatch, G as useMediaQuery, qe as useModals, fi as useNavigate, Tr as useOAuthCallback, Te as useObjectUrl, Ir as useOfflineMutation, Ve as useOfflineSync, Yr as useOne, X as useOnline, Pr as usePaginatedQuery, U as usePagination, pi as useParams, ur as usePoll, Ka as usePositionTracker, ce as usePrevious, Ni as usePushSubscription, Se as useQueue, $ as useResizeObserver, mi as useRouteError, ie as useScrollLock, hi as useSearchParams, Ie as useServiceWorkerUpdate, xe as useSet, oe as useStableCallback, ze as useStorageEstimate, He as useSyncStatus, go as useTelemetry, yi as useTheme, de as useThrottle, ue as useTimeout, Mt as useToast, J as useToggle, Ci as useTranslate, Xr as useUpdate, fa as useViaCEP, ya as useWatch, xa as useWebSocket, fe as useWindowSize, ta as useZodForm, aa as validateCNPJ, oa as validateCPF, $i as validateForm, $n as withTimeout, tr as writeXlsx, ea as zodResolver };
82
+ import { moveItem as Be, useSortable as Ve } from "./hooks/use-sortable.js";
83
+ import { OfflineIndicator as He } from "./components/OfflineIndicator/OfflineIndicator.js";
84
+ import { useOfflineSync as Ue, useSyncStatus as We } from "./offline/use-offline-sync.js";
85
+ import { SyncStatusBadge as Ge } from "./components/SyncStatusBadge/SyncStatusBadge.js";
86
+ import { UpdatePrompt as Ke } from "./components/UpdatePrompt/UpdatePrompt.js";
87
+ import { Kanban as qe, applyKanbanMove as Je } from "./components/Kanban/Kanban.js";
88
+ import { Kbd as Ye } from "./components/Kbd/Kbd.js";
89
+ import { ModalsProvider as Xe, useModals as Ze } from "./components/ModalsManager/ModalsManager.js";
90
+ import { Navbar as Qe } from "./components/Navbar/Navbar.js";
91
+ import { NProgressBar as $e, nprogress as et } from "./components/NProgress/NProgress.js";
92
+ import { Page as tt } from "./components/Page/Page.js";
93
+ import { Pagination as nt } from "./components/Pagination/Pagination.js";
94
+ import { PasswordInput as rt, estimatePasswordStrength as it } from "./components/PasswordInput/PasswordInput.js";
95
+ import { PinInput as at } from "./components/PinInput/PinInput.js";
96
+ import { Popover as ot } from "./components/Popover/Popover.js";
97
+ import { Progress as st } from "./components/Progress/Progress.js";
98
+ import { Radio as ct, RadioGroup as lt } from "./components/Radio/Radio.js";
99
+ import { RangeSlider as ut } from "./components/RangeSlider/RangeSlider.js";
100
+ import { RatingStars as dt } from "./components/RatingStars/RatingStars.js";
101
+ import { Hide as ft, Show as pt } from "./components/Responsive/Responsive.js";
102
+ import { SafeArea as mt } from "./components/SafeArea/SafeArea.js";
103
+ import { SearchBar as ht } from "./components/SearchBar/SearchBar.js";
104
+ import { SegmentedControl as gt } from "./components/SegmentedControl/SegmentedControl.js";
105
+ import { Select as _t } from "./components/Select/Select.js";
106
+ import { Sidebar as vt } from "./components/Sidebar/Sidebar.js";
107
+ import { Skeleton as yt } from "./components/Skeleton/Skeleton.js";
108
+ import { Spacer as bt } from "./components/Spacer/Spacer.js";
109
+ import { Spinner as xt } from "./components/Spinner/Spinner.js";
110
+ import { Stat as St } from "./components/Stat/Stat.js";
111
+ import { Stepper as Ct } from "./components/Stepper/Stepper.js";
112
+ import { clamp as wt, formatBytes as Tt, formatCompactNumber as Et } from "./utils/numbers.js";
113
+ import { StepperInput as Dt } from "./components/StepperInput/StepperInput.js";
114
+ import { Switch as Ot } from "./components/Switch/Switch.js";
115
+ import { Tag as kt } from "./components/Tag/Tag.js";
116
+ import { Table as At } from "./components/Table/Table.js";
117
+ import { Tabs as jt } from "./components/Tabs/Tabs.js";
118
+ import { Textarea as Mt } from "./components/Textarea/Textarea.js";
119
+ import { Timeline as Nt } from "./components/Timeline/Timeline.js";
120
+ import { Tooltip as Pt } from "./components/Tooltip/Tooltip.js";
121
+ import { ToastProvider as Ft, useToast as It } from "./components/Toast/ToastProvider.js";
122
+ import { relativeTime as Lt } from "./utils/relative-time.js";
123
+ import { NotificationCenter as Rt } from "./components/NotificationCenter/NotificationCenter.js";
124
+ import { useNotificationInbox as zt } from "./components/NotificationCenter/use-notification-inbox.js";
125
+ import { VirtualList as Bt } from "./components/VirtualList/VirtualList.js";
126
+ import { compareValues as Vt } from "./utils/compare-values.js";
127
+ import { VirtualTable as Ht } from "./components/VirtualTable/VirtualTable.js";
128
+ import { CopyButton as Ut } from "./components/CopyButton/CopyButton.js";
129
+ import { RelativeTime as Wt } from "./components/RelativeTime/RelativeTime.js";
130
+ import { Money as Gt } from "./components/Money/Money.js";
131
+ import { TreeView as Kt } from "./components/TreeView/TreeView.js";
132
+ import { TruncateText as qt } from "./components/TruncateText/TruncateText.js";
133
+ import { VisuallyHidden as Jt } from "./components/VisuallyHidden/VisuallyHidden.js";
134
+ import { Portal as Yt } from "./components/Portal/Portal.js";
135
+ import { ClickOutside as Xt } from "./components/ClickOutside/ClickOutside.js";
136
+ import { ConditionalWrapper as Zt } from "./components/ConditionalWrapper/ConditionalWrapper.js";
137
+ import { For as Qt } from "./components/For/For.js";
138
+ import { ErrorText as $t } from "./components/ErrorText/ErrorText.js";
139
+ import { Image as en } from "./components/Image/Image.js";
140
+ import { DataList as tn } from "./components/DataList/DataList.js";
141
+ import { DescriptionList as nn } from "./components/DescriptionList/DescriptionList.js";
142
+ import { Toggle as rn } from "./components/Toggle/Toggle.js";
143
+ import { ToggleGroup as an, ToggleGroupItem as on } from "./components/ToggleGroup/ToggleGroup.js";
144
+ import { Label as sn } from "./components/Label/Label.js";
145
+ import { Collapsible as cn } from "./components/Collapsible/Collapsible.js";
146
+ import { ContextMenu as ln } from "./components/ContextMenu/ContextMenu.js";
147
+ import { HoverCard as un } from "./components/HoverCard/HoverCard.js";
148
+ import { Command as dn } from "./components/Command/Command.js";
149
+ import { ScrollArea as fn } from "./components/ScrollArea/ScrollArea.js";
150
+ import { Resizable as pn } from "./components/Resizable/Resizable.js";
151
+ import { Calendar as mn } from "./components/Calendar/Calendar.js";
152
+ import { Slider as hn } from "./components/Slider/Slider.js";
153
+ import { MultiSelect as gn } from "./components/MultiSelect/MultiSelect.js";
154
+ import { DateRangePicker as _n } from "./components/DateRangePicker/DateRangePicker.js";
155
+ import { NavigationMenu as vn } from "./components/NavigationMenu/NavigationMenu.js";
156
+ import { Menubar as yn } from "./components/Menubar/Menubar.js";
157
+ import { Carousel as bn } from "./components/Carousel/Carousel.js";
158
+ import { DataTable as xn } from "./components/DataTable/DataTable.js";
159
+ import { ListTile as Sn } from "./components/ListTile/ListTile.js";
160
+ import { FloatingActionButton as Cn } from "./components/FloatingActionButton/FloatingActionButton.js";
161
+ import { NavigationRail as wn } from "./components/NavigationRail/NavigationRail.js";
162
+ import { TimePicker as Tn } from "./components/TimePicker/TimePicker.js";
163
+ import { RefreshIndicator as En } from "./components/RefreshIndicator/RefreshIndicator.js";
164
+ import { Wizard as Dn } from "./components/Wizard/Wizard.js";
165
+ import { Lightbox as On } from "./components/Lightbox/Lightbox.js";
166
+ import { SignaturePad as kn } from "./components/SignaturePad/SignaturePad.js";
167
+ import { formatCPF as An, formatCurrency as jn, formatDate as Mn, formatDateTime as Nn, formatPercent as Pn, formatPhone as Fn } from "./utils/format.js";
168
+ import { storage as In } from "./utils/storage.js";
169
+ import { camelCase as Ln, capitalize as Rn, kebabCase as zn, pluralize as Bn, slugify as Vn, truncate as Hn } from "./utils/strings.js";
170
+ import { chunk as Un, groupBy as Wn, range as Gn, uniqueBy as Kn } from "./utils/arrays.js";
171
+ import { deepMerge as qn, isEmpty as Jn, omit as Yn, pick as Xn } from "./utils/objects.js";
172
+ import { assertNever as Zn, isDefined as Qn, isNumber as $n, isPlainObject as er, isString as tr } from "./utils/guards.js";
173
+ import { debounce as nr, memoizeOne as rr, once as ir, throttle as ar } from "./utils/functions.js";
174
+ import { sleep as or, withTimeout as sr } from "./utils/promises.js";
175
+ import { randomId as cr } from "./utils/ids.js";
176
+ import { writeXlsx as lr } from "./utils/xlsx.js";
177
+ import { TempestApiError as ur, buildApiError as dr, isApiError as fr } from "./http/errors.js";
178
+ import { createApiClient as pr } from "./http/api-client.js";
179
+ import { parseResponse as mr } from "./http/parse-response.js";
180
+ import { uploadWithProgress as hr } from "./http/upload-with-progress.js";
181
+ import { retry as gr } from "./http/retry.js";
182
+ import { generateIdempotencyKey as _r } from "./http/idempotency.js";
183
+ import { usePoll as vr } from "./http/use-poll.js";
184
+ import { createAuthStore as yr } from "./auth/create-auth-store.js";
185
+ import { AuthGuard as br } from "./auth/AuthGuard.js";
186
+ import { decodeJWT as xr, isJWTExpired as Sr } from "./auth/jwt.js";
187
+ import { lazyWithRetry as Cr } from "./auth/lazy-with-retry.js";
188
+ import { createRefreshQueue as wr } from "./auth/refresh-queue.js";
189
+ import { createTempestAuth as Tr } from "./auth/create-tempest-auth.js";
190
+ import { AccessControlProvider as Er, useAccessControl as Dr } from "./access/access-control-context.js";
191
+ import { useCan as Or } from "./access/use-can.js";
192
+ import { Can as kr } from "./access/Can.js";
193
+ import { createRoleAccessControl as Ar } from "./access/create-role-access-control.js";
194
+ import { permissionsFromToken as jr } from "./access/permissions-from-token.js";
195
+ import { GoogleSignIn as Mr } from "./oauth/GoogleSignIn.js";
196
+ import { useOAuthCallback as Nr } from "./oauth/use-oauth-callback.js";
197
+ import { CACHE_TIME as Pr, REFETCH_TIME as Fr, STALE_TIME as Ir } from "./query/constants.js";
198
+ import { createQueryKeys as Lr } from "./query/create-query-keys.js";
199
+ import { QueryProvider as Rr } from "./query/QueryProvider.js";
200
+ import { emptyOffsetPage as zr, isCursorPage as Br, isOffsetPage as Vr } from "./query/pagination.js";
201
+ import { usePaginatedQuery as Hr } from "./query/use-paginated-query.js";
202
+ import { useCursorQuery as Ur } from "./query/use-cursor-query.js";
203
+ import { useOfflineMutation as Wr } from "./query/use-offline-mutation.js";
204
+ import { removeById as Gr, upsertById as Kr } from "./query/optimistic.js";
205
+ import { createOfflineStore as qr } from "./offline/create-offline-store.js";
206
+ import { persistQueryClientOffline as Jr } from "./query/offline-persistence.js";
207
+ import { createDataProvider as Yr } from "./data/create-data-provider.js";
208
+ import { TempestDataProvider as Xr, useDataProvider as Zr } from "./data/data-provider-context.js";
209
+ import { listQueryKey as Qr, oneQueryKey as $r, useCreate as ei, useDelete as ti, useList as ni, useOne as ri, useUpdate as ii } from "./data/use-resource.js";
210
+ import { RouteGuard as ai } from "./router/RouteGuard.js";
211
+ import { AppRouter as oi, defineRoutes as si } from "./router/AppRouter.js";
212
+ import { BrowserRouter as ci, HashRouter as li, Link as ui, MemoryRouter as di, NavLink as fi, Navigate as pi, Outlet as mi, Route as hi, Routes as gi, redirect as _i, useLocation as vi, useMatch as yi, useNavigate as bi, useParams as xi, useRouteError as Si, useSearchParams as Ci } from "./router/index.js";
213
+ import { createStore as wi } from "./store/create-store.js";
214
+ import { createSelectors as Ti } from "./store/create-selectors.js";
215
+ import { ThemeProvider as Ei, useTheme as Di } from "./theme/ThemeProvider.js";
216
+ import { createI18n as Oi } from "./i18n/create-i18n.js";
217
+ import { I18nProvider as ki, useI18n as Ai, useTranslate as ji } from "./i18n/I18nProvider.js";
218
+ import { ErrorBoundary as Mi } from "./error-boundary/ErrorBoundary.js";
219
+ import { AppProviders as Ni } from "./app/AppProviders.js";
220
+ import { createEventStream as Pi } from "./sse/create-event-stream.js";
221
+ import { useEventStream as Fi } from "./sse/use-event-stream.js";
222
+ import { isPushSupported as Ii, urlBase64ToUint8Array as Li } from "./push/utils.js";
223
+ import { WebPushClient as Ri, WebPushPermissionDeniedError as zi, WebPushUnsupportedError as Bi } from "./push/web-push-client.js";
224
+ import { usePushSubscription as Vi } from "./push/use-push-subscription.js";
225
+ import { installNotificationClickHandler as Hi, installPushHandler as Ui, installSkipWaitingListener as Wi } from "./sw/create-push-handler.js";
226
+ import { createPartialResponse as Gi, installPrecache as Ki, installRuntimeCache as qi } from "./sw/cache.js";
227
+ import { installBackgroundSync as Ji } from "./sw/background-sync.js";
228
+ import { registerPeriodicSync as Yi } from "./sw/periodic-sync.js";
229
+ import { clearCaches as Xi, inspectCaches as Zi } from "./sw/cache-inspect.js";
230
+ import { createAudioPlayer as Qi, playAudio as $i, stopAudio as ea } from "./audio/audio-player.js";
231
+ import { useAudio as ta } from "./audio/use-audio.js";
232
+ import { createOfflineSync as na } from "./offline/create-offline-sync.js";
233
+ import { higherVersionWins as ra, lastWriteWins as ia } from "./offline/conflict.js";
234
+ import { useErrorHandler as aa } from "./error-boundary/use-error-handler.js";
235
+ import { FormField as oa } from "./forms/FormField.js";
236
+ import { validateForm as sa } from "./forms/validate-form.js";
237
+ import { zodResolver as ca } from "./forms/zod-resolver.js";
238
+ import { useZodForm as la } from "./forms/use-zod-form.js";
239
+ import { formatCEP as ua, formatCNPJ as da, unmask as fa, validateCNPJ as pa, validateCPF as ma } from "./forms/br-validators.js";
240
+ import { CEPInput as ha, CNPJInput as ga, CPFInput as _a, MoneyInput as va, PhoneInput as ya } from "./forms/masked-inputs.js";
241
+ import { useViaCEP as ba } from "./forms/use-viacep.js";
242
+ import { Controller as xa, FormProvider as Sa, useFieldArray as Ca, useForm as wa, useFormContext as Ta, useFormState as Ea, useWatch as Da } from "./forms/index.js";
243
+ import { createWebSocket as Oa } from "./ws/create-web-socket.js";
244
+ import { useWebSocket as ka } from "./ws/use-web-socket.js";
245
+ import { clampLatitude as Aa, isCoordinate as ja, isValidLatitude as Ma, isValidLongitude as Na, normalizeLongitude as Pa } from "./geo/types.js";
246
+ import { EARTH_RADIUS_KM as Fa, bearingDeg as Ia, haversineKm as La, pathLengthKm as Ra, toRadians as za } from "./geo/distance.js";
247
+ import { DEFAULT_CAR_SPEED_KMH as Ba, DEFAULT_CIRCUITY_FACTOR as Va, DEFAULT_MODE_DURATION_FACTORS as Ha, durationFactor as Ua, estimateTravel as Wa } from "./geo/estimate.js";
248
+ import { boundingBox as Ga, boundsCenter as Ka, expandBounds as qa } from "./geo/bounds.js";
249
+ import { MERCATOR_MAX_LATITUDE as Ja, fitProjection as Ya, projectMercator as Xa, unprojectMercator as Za } from "./geo/projection.js";
250
+ import { createOSRMBackend as Qa } from "./geo/routing.js";
251
+ import { createPositionTracker as $a } from "./geo/create-position-tracker.js";
252
+ import { usePositionTracker as eo } from "./geo/use-position-tracker.js";
253
+ import { TrajectoryMap as to } from "./geo/TrajectoryMap.js";
254
+ import { THEME_STYLE_ID as no, applyTheme as ro, readThemeToken as io } from "./theme/apply-theme.js";
255
+ import { contrastRatio as ao, createColorScale as oo, hexToOklch as so, hexToRgb as co, hexToRgbaString as lo, oklchToHex as uo, readableForeground as fo, relativeLuminance as po, rgbToHex as mo } from "./theme/color.js";
256
+ import { createTheme as ho, themeContrast as go } from "./theme/create-theme.js";
257
+ import { getThemePreset as _o, themePresets as vo } from "./theme/theme-presets.js";
258
+ import { getInitialTheme as yo, themeInitScript as bo } from "./theme/initial-theme.js";
259
+ import { consoleSink as xo, createLogger as So } from "./logger/logger.js";
260
+ import { TelemetryProvider as Co, useTelemetry as wo } from "./telemetry/TelemetryProvider.js";
261
+ import { consoleTelemetryAdapter as To } from "./telemetry/console-adapter.js";
262
+ import { createSentryTelemetryAdapter as Eo } from "./telemetry/sentry-adapter.js";
263
+ import { createPostHogTelemetryAdapter as Do } from "./telemetry/posthog-adapter.js";
264
+ import { FeatureFlagsProvider as Oo, useFeatureFlag as ko, useFlagValue as Ao } from "./feature-flags/FeatureFlagsProvider.js";
265
+ import { createInMemoryFlags as jo } from "./feature-flags/in-memory-adapter.js";
266
+ import { createGrowthBookFeatureFlagsAdapter as Mo } from "./feature-flags/growthbook-adapter.js";
267
+ import { createLaunchDarklyFeatureFlagsAdapter as No } from "./feature-flags/launchdarkly-adapter.js";
268
+ import { isShareSupported as Po, share as Fo } from "./share/share.js";
269
+ import { shareOrDownloadBlob as Io } from "./share/share-or-download.js";
270
+ export { Er as AccessControlProvider, t as Accordion, n as Alert, r as AppBar, Ni as AppProviders, oi as AppRouter, o as AppShell, s as AspectRatio, br as AuthGuard, c as Avatar, l as AvatarGroup, i as BREAKPOINTS, u as Badge, d as Banner, f as BottomNavigation, p as BottomSheet, m as Breadcrumbs, ci as BrowserRouter, h as Button, Pr as CACHE_TIME, ha as CEPInput, ga as CNPJInput, _a as CPFInput, mn as Calendar, kr as Can, g as Card, bn as Carousel, _ as Center, v as Checkbox, y as ChipInput, Xt as ClickOutside, cn as Collapsible, b as Combobox, dn as Command, Zt as ConditionalWrapper, S as ConfirmDialog, I as Container, ln as ContextMenu, xa as Controller, Ut as CopyButton, Ba as DEFAULT_CAR_SPEED_KMH, Va as DEFAULT_CIRCUITY_FACTOR, Ha as DEFAULT_MODE_DURATION_FACTORS, tn as DataList, xn as DataTable, w as DatePicker, _n as DateRangePicker, nn as DescriptionList, T as Divider, E as Drawer, D as DropdownMenu, O as Dropzone, Fa as EARTH_RADIUS_KM, k as EmptyState, Mi as ErrorBoundary, A as ErrorState, $t as ErrorText, Oo as FeatureFlagsProvider, j as FileUpload, Cn as FloatingActionButton, Qt as For, M as Form, N as FormActions, oa as FormField, Sa as FormProvider, P as FormRow, F as FormSection, Mr as GoogleSignIn, L as Grid, li as HashRouter, ft as Hide, un as HoverCard, ki as I18nProvider, en as Image, C as Input, B as InstallBanner, V as InstallButton, qe as Kanban, Ye as Kbd, sn as Label, On as Lightbox, ui as Link, Sn as ListTile, Ja as MERCATOR_MAX_LATITUDE, di as MemoryRouter, yn as Menubar, x as Modal, Xe as ModalsProvider, Gt as Money, va as MoneyInput, gn as MultiSelect, $e as NProgressBar, fi as NavLink, Qe as Navbar, pi as Navigate, vn as NavigationMenu, wn as NavigationRail, Rt as NotificationCenter, He as OfflineIndicator, mi as Outlet, tt as Page, nt as Pagination, rt as PasswordInput, ya as PhoneInput, at as PinInput, ot as Popover, Yt as Portal, st as Progress, Rr as QueryProvider, Fr as REFETCH_TIME, ct as Radio, lt as RadioGroup, ut as RangeSlider, dt as RatingStars, En as RefreshIndicator, Wt as RelativeTime, pn as Resizable, hi as Route, ai as RouteGuard, gi as Routes, Ir as STALE_TIME, mt as SafeArea, fn as ScrollArea, ht as SearchBar, gt as SegmentedControl, _t as Select, pt as Show, vt as Sidebar, kn as SignaturePad, yt as Skeleton, hn as Slider, bt as Spacer, xt as Spinner, R as Stack, St as Stat, Ct as Stepper, Dt as StepperInput, Ot as Switch, Ge as SyncStatusBadge, no as THEME_STYLE_ID, At as Table, jt as Tabs, kt as Tag, Co as TelemetryProvider, ur as TempestApiError, Xr as TempestDataProvider, Mt as Textarea, Ei as ThemeProvider, Tn as TimePicker, Nt as Timeline, Ft as ToastProvider, rn as Toggle, an as ToggleGroup, on as ToggleGroupItem, Pt as Tooltip, to as TrajectoryMap, Kt as TreeView, qt as TruncateText, Ke as UpdatePrompt, Bt as VirtualList, Ht as VirtualTable, Jt as VisuallyHidden, Ri as WebPushClient, zi as WebPushPermissionDeniedError, Bi as WebPushUnsupportedError, Dn as Wizard, Je as applyKanbanMove, ro as applyTheme, Zn as assertNever, Ia as bearingDeg, Ga as boundingBox, Ka as boundsCenter, dr as buildApiError, De as buildOpenInChromeIntent, Ln as camelCase, Rn as capitalize, Un as chunk, wt as clamp, Aa as clampLatitude, Xi as clearCaches, e as cn, Vt as compareValues, xo as consoleSink, To as consoleTelemetryAdapter, ao as contrastRatio, pr as createApiClient, Qi as createAudioPlayer, yr as createAuthStore, oo as createColorScale, Yr as createDataProvider, Pi as createEventStream, Mo as createGrowthBookFeatureFlagsAdapter, Oi as createI18n, jo as createInMemoryFlags, No as createLaunchDarklyFeatureFlagsAdapter, So as createLogger, Qa as createOSRMBackend, qr as createOfflineStore, na as createOfflineSync, Gi as createPartialResponse, $a as createPositionTracker, Do as createPostHogTelemetryAdapter, Lr as createQueryKeys, wr as createRefreshQueue, Ar as createRoleAccessControl, Ti as createSelectors, Eo as createSentryTelemetryAdapter, wi as createStore, Tr as createTempestAuth, ho as createTheme, Oa as createWebSocket, nr as debounce, xr as decodeJWT, qn as deepMerge, si as defineRoutes, Ua as durationFactor, zr as emptyOffsetPage, it as estimatePasswordStrength, Le as estimateStorage, Wa as estimateTravel, qa as expandBounds, Ya as fitProjection, Tt as formatBytes, ua as formatCEP, da as formatCNPJ, An as formatCPF, Et as formatCompactNumber, jn as formatCurrency, Mn as formatDate, Nn as formatDateTime, Pn as formatPercent, Fn as formatPhone, _r as generateIdempotencyKey, yo as getInitialTheme, _o as getThemePreset, Wn as groupBy, La as haversineKm, so as hexToOklch, co as hexToRgb, lo as hexToRgbaString, ra as higherVersionWins, Zi as inspectCaches, Ji as installBackgroundSync, Hi as installNotificationClickHandler, Ki as installPrecache, Ui as installPushHandler, qi as installRuntimeCache, Wi as installSkipWaitingListener, Oe as isAndroid, ke as isAndroidWithoutPromptApi, fr as isApiError, ja as isCoordinate, Br as isCursorPage, Qn as isDefined, Jn as isEmpty, Ae as isIOS, Sr as isJWTExpired, $n as isNumber, Vr as isOffsetPage, er as isPlainObject, Ii as isPushSupported, Po as isShareSupported, je as isStandalone, tr as isString, Ma as isValidLatitude, Na as isValidLongitude, zn as kebabCase, ia as lastWriteWins, Cr as lazyWithRetry, Qr as listQueryKey, rr as memoizeOne, Be as moveItem, Pa as normalizeLongitude, et as nprogress, uo as oklchToHex, Yn as omit, ir as once, $r as oneQueryKey, mr as parseResponse, Ra as pathLengthKm, jr as permissionsFromToken, Jr as persistQueryClientOffline, Xn as pick, $i as playAudio, Bn as pluralize, Xa as projectMercator, cr as randomId, Gn as range, io as readThemeToken, fo as readableForeground, _i as redirect, Yi as registerPeriodicSync, Ne as registerServiceWorker, po as relativeLuminance, Lt as relativeTime, Gr as removeById, Re as requestPersistentStorage, gr as retry, mo as rgbToHex, Fo as share, Io as shareOrDownloadBlob, Pe as skipWaiting, or as sleep, Vn as slugify, ea as stopAudio, In as storage, go as themeContrast, bo as themeInitScript, vo as themePresets, ar as throttle, za as toRadians, Hn as truncate, Kn as uniqueBy, fa as unmask, Za as unprojectMercator, Fe as unregisterAllServiceWorkers, hr as uploadWithProgress, Kr as upsertById, Li as urlBase64ToUint8Array, Dr as useAccessControl, Y as useAsync, ta as useAudio, z as useBeforeInstallPrompt, a as useBreakpoint, Or as useCan, Ce as useClickOutside, W as useClientFilter, ee as useClipboard, _e as useCounter, ei as useCreate, Ur as useCursorQuery, Zr as useDataProvider, H as useDebounce, se as useDeepMemo, ti as useDelete, he as useDisclosure, ve as useDocumentTitle, Z as useDocumentVisibility, aa as useErrorHandler, K as useEventListener, Fi as useEventStream, ye as useFavicon, ko as useFeatureFlag, Ca as useFieldArray, Ao as useFlagValue, ae as useFocusTrap, wa as useForm, Ta as useFormContext, Ea as useFormState, re as useGeolocation, pe as useHover, Ai as useI18n, ne as useIdle, Me as useInstallPrompt, Q as useIntersectionObserver, le as useInterval, we as useIsFirstRender, te as useKeyboardShortcut, ni as useList, ge as useListState, q as useLocalStorage, vi as useLocation, me as useLongPress, Ee as useLongPressHandlers, be as useMap, yi as useMatch, G as useMediaQuery, Ze as useModals, bi as useNavigate, zt as useNotificationInbox, Nr as useOAuthCallback, Te as useObjectUrl, Wr as useOfflineMutation, Ue as useOfflineSync, ri as useOne, X as useOnline, Hr as usePaginatedQuery, U as usePagination, xi as useParams, vr as usePoll, eo as usePositionTracker, ce as usePrevious, Vi as usePushSubscription, Se as useQueue, $ as useResizeObserver, Si as useRouteError, ie as useScrollLock, Ci as useSearchParams, Ie as useServiceWorkerUpdate, xe as useSet, Ve as useSortable, oe as useStableCallback, ze as useStorageEstimate, We as useSyncStatus, wo as useTelemetry, Di as useTheme, de as useThrottle, ue as useTimeout, It as useToast, J as useToggle, ji as useTranslate, ii as useUpdate, ba as useViaCEP, Da as useWatch, ka as useWebSocket, fe as useWindowSize, la as useZodForm, pa as validateCNPJ, ma as validateCPF, sa as validateForm, sr as withTimeout, lr as writeXlsx, ca as zodResolver };
@@ -1,2 +1,2 @@
1
- let e=require("react"),t=require("react/jsx-runtime");var n=(0,e.createContext)(null);function r(e){return e===`dark`||e===`light`?e:typeof window>`u`?`light`:window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}function i(e,t,n,r){let i=Array.isArray(n)?n:[n];for(let n of i)e.setAttribute(n,t);if(r&&typeof document<`u`){let e=document.querySelector(`meta[name="theme-color"]`);e&&(e.content=r[t])}}function a(e){if(!e||typeof window>`u`)return null;try{let t=window.localStorage.getItem(e);return t===`light`||t===`dark`||t===`system`?t:null}catch{return null}}function o({children:o,defaultTheme:s=`system`,storageKey:c=`tempest-theme`,target:l,attribute:u=`data-tempest-theme`,themeColor:d}){let[f,p]=(0,e.useState)(()=>a(c)??s),[m,h]=(0,e.useState)(()=>r(f)),g=(0,e.useRef)(l);g.current=l;let _=Array.isArray(u)?u.join(`,`):u,v=(0,e.useRef)(d);v.current=d,(0,e.useEffect)(()=>{let e=g.current?.()??document.documentElement;if(!e)return;let t=r(f);i(e,t,u,v.current),h(t)},[f,_]),(0,e.useEffect)(()=>{if(f!==`system`||typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=()=>{let t=g.current?.()??document.documentElement;if(!t)return;let n=e.matches?`dark`:`light`;i(t,n,u,v.current),h(n)};return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[f,_]);let y=(0,e.useCallback)(e=>{if(p(e),c&&typeof window<`u`)try{window.localStorage.setItem(c,e)}catch{}},[c]),b=(0,e.useCallback)(()=>{y(m===`dark`?`light`:`dark`)},[m,y]),x=(0,e.useMemo)(()=>({theme:f,resolvedTheme:m,setTheme:y,toggle:b}),[f,m,y,b]);return(0,t.jsx)(n.Provider,{value:x,children:o})}function s(){let t=(0,e.useContext)(n);if(!t)throw Error(`useTheme must be used inside a <ThemeProvider>`);return t}exports.ThemeProvider=o,exports.useTheme=s;
1
+ let e=require("react"),t=require("react/jsx-runtime");var n=(0,e.createContext)(null);function r(e){return e===`dark`||e===`light`?e:typeof window>`u`?`light`:window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}function i(e,t,n,r){let i=Array.isArray(n)?n:[n];for(let n of i)e.setAttribute(n,t);if(r&&typeof document<`u`){let e=document.querySelector(`meta[name="theme-color"]`);e&&(e.content=r[t])}}function a(e){if(!e||typeof window>`u`)return null;try{let t=window.localStorage.getItem(e);return t===`light`||t===`dark`||t===`system`?t:null}catch{return null}}function o({children:o,defaultTheme:s=`system`,storageKey:c=`tempest-theme`,target:l,attribute:u=`data-tempest-theme`,themeColor:d}){let[f,p]=(0,e.useState)(()=>a(c)??s),[m,h]=(0,e.useState)(()=>r(f)),g=(0,e.useRef)(l);(0,e.useEffect)(()=>{g.current=l},[l]);let _=Array.isArray(u)?u.join(`,`):u,v=(0,e.useRef)(d);(0,e.useEffect)(()=>{v.current=d},[d]),(0,e.useEffect)(()=>{let e=g.current?.()??document.documentElement;if(!e)return;let t=r(f);i(e,t,u,v.current),h(t)},[f,_]),(0,e.useEffect)(()=>{if(f!==`system`||typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=()=>{let t=g.current?.()??document.documentElement;if(!t)return;let n=e.matches?`dark`:`light`;i(t,n,u,v.current),h(n)};return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[f,_]);let y=(0,e.useCallback)(e=>{if(p(e),c&&typeof window<`u`)try{window.localStorage.setItem(c,e)}catch{}},[c]),b=(0,e.useCallback)(()=>{y(m===`dark`?`light`:`dark`)},[m,y]),x=(0,e.useMemo)(()=>({theme:f,resolvedTheme:m,setTheme:y,toggle:b}),[f,m,y,b]);return(0,t.jsx)(n.Provider,{value:x,children:o})}function s(){let t=(0,e.useContext)(n);if(!t)throw Error(`useTheme must be used inside a <ThemeProvider>`);return t}exports.ThemeProvider=o,exports.useTheme=s;
2
2
  //# sourceMappingURL=ThemeProvider.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.cjs","names":[],"sources":["../../src/theme/ThemeProvider.tsx"],"sourcesContent":["import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type { ReactNode } from \"react\";\nimport type { ResolvedTheme, ThemeMode } from \"./types\";\n\nexport interface ThemeContextValue {\n /** Raw user preference (light / dark / system). */\n theme: ThemeMode;\n /** Effective theme actually applied to the DOM (light or dark). */\n resolvedTheme: ResolvedTheme;\n /** Update the preference. Persisted to localStorage when `storageKey` is set. */\n setTheme: (next: ThemeMode) => void;\n /** Convenience: flip light ↔ dark. When in `system` mode, switches to the opposite of the current resolved theme. */\n toggle: () => void;\n}\n\nconst ThemeContext = createContext<ThemeContextValue | null>(null);\n\nexport interface ThemeProviderProps {\n children: ReactNode;\n /** Initial preference when nothing is stored. Default: `\"system\"`. */\n defaultTheme?: ThemeMode;\n /** localStorage key used to persist the preference. Pass `null` to disable persistence. Default: `\"tempest-theme\"`. */\n storageKey?: string | null;\n /**\n * Element that receives the theme attribute(s). Defaults to\n * `document.documentElement`. Override when scoping the theme to a subtree.\n */\n target?: () => HTMLElement | null;\n /**\n * Attribute name(s) written on the target with the resolved theme\n * (`\"light\"` / `\"dark\"`). Default: `\"data-tempest-theme\"`.\n *\n * Pass an array to mirror the theme onto more than one attribute — handy\n * when the SDK components read `data-tempest-theme` but the host app's own\n * CSS keys off a different attribute (e.g. `[\"data-tempest-theme\",\n * \"data-theme\"]`). Avoids a separate sync effect in the consumer.\n */\n attribute?: string | string[];\n /**\n * When set, keeps `<meta name=\"theme-color\">` in sync with the resolved\n * theme — `content` becomes `themeColor.dark` in dark mode and\n * `themeColor.light` in light mode. The meta tag must already exist in the\n * document `<head>`. No-op when omitted.\n */\n themeColor?: { light: string; dark: string };\n}\n\nfunction resolve(mode: ThemeMode): ResolvedTheme {\n if (mode === \"dark\" || mode === \"light\") return mode;\n if (typeof window === \"undefined\") return \"light\";\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n}\n\n/**\n * Write the resolved theme onto every configured attribute and, when a\n * `themeColor` map is provided, sync the `<meta name=\"theme-color\">` tag.\n */\nfunction applyResolved(\n element: HTMLElement,\n resolved: ResolvedTheme,\n attribute: string | string[],\n themeColor?: { light: string; dark: string },\n): void {\n const attrs = Array.isArray(attribute) ? attribute : [attribute];\n for (const attr of attrs) element.setAttribute(attr, resolved);\n if (themeColor && typeof document !== \"undefined\") {\n const meta = document.querySelector<HTMLMetaElement>('meta[name=\"theme-color\"]');\n if (meta) meta.content = themeColor[resolved];\n }\n}\n\nfunction readStored(storageKey: string | null): ThemeMode | null {\n if (!storageKey || typeof window === \"undefined\") return null;\n try {\n const value = window.localStorage.getItem(storageKey);\n if (value === \"light\" || value === \"dark\" || value === \"system\") return value;\n return null;\n } catch {\n return null;\n }\n}\n\n/**\n * Wire dark/light theming. Writes a data attribute on a target element (the\n * `<html>` element by default) and exposes the current preference via\n * {@link useTheme}.\n *\n * Pair with `themeInitScript()` in the HTML head to prevent the flash of\n * incorrect theme on first paint.\n */\nexport function ThemeProvider({\n children,\n defaultTheme = \"system\",\n storageKey = \"tempest-theme\",\n target,\n attribute = \"data-tempest-theme\",\n themeColor,\n}: ThemeProviderProps) {\n const [theme, setThemeState] = useState<ThemeMode>(\n () => readStored(storageKey) ?? defaultTheme,\n );\n const [resolvedTheme, setResolvedTheme] = useState<ResolvedTheme>(() => resolve(theme));\n\n const targetRef = useRef<typeof target>(target);\n targetRef.current = target;\n\n const attributeKey = Array.isArray(attribute) ? attribute.join(\",\") : attribute;\n const themeColorRef = useRef(themeColor);\n themeColorRef.current = themeColor;\n\n useEffect(() => {\n const element = targetRef.current?.() ?? document.documentElement;\n if (!element) return;\n const next = resolve(theme);\n applyResolved(element, next, attribute, themeColorRef.current);\n setResolvedTheme(next);\n // attributeKey is the stable string form of `attribute`.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [theme, attributeKey]);\n\n useEffect(() => {\n if (theme !== \"system\" || typeof window === \"undefined\") return;\n const list = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handler = (): void => {\n const element = targetRef.current?.() ?? document.documentElement;\n if (!element) return;\n const next: ResolvedTheme = list.matches ? \"dark\" : \"light\";\n applyResolved(element, next, attribute, themeColorRef.current);\n setResolvedTheme(next);\n };\n list.addEventListener(\"change\", handler);\n return () => list.removeEventListener(\"change\", handler);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [theme, attributeKey]);\n\n const setTheme = useCallback(\n (next: ThemeMode) => {\n setThemeState(next);\n if (storageKey && typeof window !== \"undefined\") {\n try {\n window.localStorage.setItem(storageKey, next);\n } catch {\n /* ignore quota errors */\n }\n }\n },\n [storageKey],\n );\n\n const toggle = useCallback(() => {\n setTheme(resolvedTheme === \"dark\" ? \"light\" : \"dark\");\n }, [resolvedTheme, setTheme]);\n\n const value = useMemo<ThemeContextValue>(\n () => ({ theme, resolvedTheme, setTheme, toggle }),\n [theme, resolvedTheme, setTheme, toggle],\n );\n\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n}\n\n/**\n * Read and mutate the current theme. Must be used inside a {@link ThemeProvider}.\n */\nexport function useTheme(): ThemeContextValue {\n const ctx = useContext(ThemeContext);\n if (!ctx) throw new Error(\"useTheme must be used inside a <ThemeProvider>\");\n return ctx;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ThemeProvider.cjs","names":[],"sources":["../../src/theme/ThemeProvider.tsx"],"sourcesContent":["import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type { ReactNode } from \"react\";\nimport type { ResolvedTheme, ThemeMode } from \"./types\";\n\nexport interface ThemeContextValue {\n /** Raw user preference (light / dark / system). */\n theme: ThemeMode;\n /** Effective theme actually applied to the DOM (light or dark). */\n resolvedTheme: ResolvedTheme;\n /** Update the preference. Persisted to localStorage when `storageKey` is set. */\n setTheme: (next: ThemeMode) => void;\n /** Convenience: flip light ↔ dark. When in `system` mode, switches to the opposite of the current resolved theme. */\n toggle: () => void;\n}\n\nconst ThemeContext = createContext<ThemeContextValue | null>(null);\n\nexport interface ThemeProviderProps {\n children: ReactNode;\n /** Initial preference when nothing is stored. Default: `\"system\"`. */\n defaultTheme?: ThemeMode;\n /** localStorage key used to persist the preference. Pass `null` to disable persistence. Default: `\"tempest-theme\"`. */\n storageKey?: string | null;\n /**\n * Element that receives the theme attribute(s). Defaults to\n * `document.documentElement`. Override when scoping the theme to a subtree.\n */\n target?: () => HTMLElement | null;\n /**\n * Attribute name(s) written on the target with the resolved theme\n * (`\"light\"` / `\"dark\"`). Default: `\"data-tempest-theme\"`.\n *\n * Pass an array to mirror the theme onto more than one attribute — handy\n * when the SDK components read `data-tempest-theme` but the host app's own\n * CSS keys off a different attribute (e.g. `[\"data-tempest-theme\",\n * \"data-theme\"]`). Avoids a separate sync effect in the consumer.\n */\n attribute?: string | string[];\n /**\n * When set, keeps `<meta name=\"theme-color\">` in sync with the resolved\n * theme — `content` becomes `themeColor.dark` in dark mode and\n * `themeColor.light` in light mode. The meta tag must already exist in the\n * document `<head>`. No-op when omitted.\n */\n themeColor?: { light: string; dark: string };\n}\n\nfunction resolve(mode: ThemeMode): ResolvedTheme {\n if (mode === \"dark\" || mode === \"light\") return mode;\n if (typeof window === \"undefined\") return \"light\";\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n}\n\n/**\n * Write the resolved theme onto every configured attribute and, when a\n * `themeColor` map is provided, sync the `<meta name=\"theme-color\">` tag.\n */\nfunction applyResolved(\n element: HTMLElement,\n resolved: ResolvedTheme,\n attribute: string | string[],\n themeColor?: { light: string; dark: string },\n): void {\n const attrs = Array.isArray(attribute) ? attribute : [attribute];\n for (const attr of attrs) element.setAttribute(attr, resolved);\n if (themeColor && typeof document !== \"undefined\") {\n const meta = document.querySelector<HTMLMetaElement>('meta[name=\"theme-color\"]');\n if (meta) meta.content = themeColor[resolved];\n }\n}\n\nfunction readStored(storageKey: string | null): ThemeMode | null {\n if (!storageKey || typeof window === \"undefined\") return null;\n try {\n const value = window.localStorage.getItem(storageKey);\n if (value === \"light\" || value === \"dark\" || value === \"system\") return value;\n return null;\n } catch {\n return null;\n }\n}\n\n/**\n * Wire dark/light theming. Writes a data attribute on a target element (the\n * `<html>` element by default) and exposes the current preference via\n * {@link useTheme}.\n *\n * Pair with `themeInitScript()` in the HTML head to prevent the flash of\n * incorrect theme on first paint.\n */\nexport function ThemeProvider({\n children,\n defaultTheme = \"system\",\n storageKey = \"tempest-theme\",\n target,\n attribute = \"data-tempest-theme\",\n themeColor,\n}: ThemeProviderProps) {\n const [theme, setThemeState] = useState<ThemeMode>(\n () => readStored(storageKey) ?? defaultTheme,\n );\n const [resolvedTheme, setResolvedTheme] = useState<ResolvedTheme>(() => resolve(theme));\n\n const targetRef = useRef<typeof target>(target);\n useEffect(() => {\n targetRef.current = target;\n }, [target]);\n\n const attributeKey = Array.isArray(attribute) ? attribute.join(\",\") : attribute;\n const themeColorRef = useRef(themeColor);\n useEffect(() => {\n themeColorRef.current = themeColor;\n }, [themeColor]);\n\n useEffect(() => {\n const element = targetRef.current?.() ?? document.documentElement;\n if (!element) return;\n const next = resolve(theme);\n applyResolved(element, next, attribute, themeColorRef.current);\n setResolvedTheme(next);\n // attributeKey is the stable string form of `attribute`.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [theme, attributeKey]);\n\n useEffect(() => {\n if (theme !== \"system\" || typeof window === \"undefined\") return;\n const list = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handler = (): void => {\n const element = targetRef.current?.() ?? document.documentElement;\n if (!element) return;\n const next: ResolvedTheme = list.matches ? \"dark\" : \"light\";\n applyResolved(element, next, attribute, themeColorRef.current);\n setResolvedTheme(next);\n };\n list.addEventListener(\"change\", handler);\n return () => list.removeEventListener(\"change\", handler);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [theme, attributeKey]);\n\n const setTheme = useCallback(\n (next: ThemeMode) => {\n setThemeState(next);\n if (storageKey && typeof window !== \"undefined\") {\n try {\n window.localStorage.setItem(storageKey, next);\n } catch {\n /* ignore quota errors */\n }\n }\n },\n [storageKey],\n );\n\n const toggle = useCallback(() => {\n setTheme(resolvedTheme === \"dark\" ? \"light\" : \"dark\");\n }, [resolvedTheme, setTheme]);\n\n const value = useMemo<ThemeContextValue>(\n () => ({ theme, resolvedTheme, setTheme, toggle }),\n [theme, resolvedTheme, setTheme, toggle],\n );\n\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n}\n\n/**\n * Read and mutate the current theme. Must be used inside a {@link ThemeProvider}.\n */\nexport function useTheme(): ThemeContextValue {\n const ctx = useContext(ThemeContext);\n if (!ctx) throw new Error(\"useTheme must be used inside a <ThemeProvider>\");\n return ctx;\n}\n"],"mappings":"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"}
@@ -24,9 +24,13 @@ function d(e) {
24
24
  }
25
25
  function f({ children: e, defaultTheme: n = "system", storageKey: f = "tempest-theme", target: p, attribute: m = "data-tempest-theme", themeColor: h }) {
26
26
  let [g, _] = o(() => d(f) ?? n), [v, y] = o(() => l(g)), b = a(p);
27
- b.current = p;
27
+ r(() => {
28
+ b.current = p;
29
+ }, [p]);
28
30
  let x = Array.isArray(m) ? m.join(",") : m, S = a(h);
29
- S.current = h, r(() => {
31
+ r(() => {
32
+ S.current = h;
33
+ }, [h]), r(() => {
30
34
  let e = b.current?.() ?? document.documentElement;
31
35
  if (!e) return;
32
36
  let t = l(g);